org.apache.activemq.artemis.core.client.impl.Topology

Here are the examples of the java api class org.apache.activemq.artemis.core.client.impl.Topology taken from open source projects.

1. IsolatedTopologyTest#checkTopology()

Project: activemq-artemis
File: IsolatedTopologyTest.java
private void checkTopology(final ActiveMQServer serverParameter, final String clusterName, final String nodeId1, final String nodeId2, final TransportConfiguration cfg1, final TransportConfiguration cfg2) {
    Topology topology = serverParameter.getClusterManager().getClusterConnection(clusterName).getTopology();
    TopologyMemberImpl member1 = topology.getMember(nodeId1);
    TopologyMemberImpl member2 = topology.getMember(nodeId2);
    Assert.assertEquals(member1.getLive().getParams().toString(), cfg1.getParams().toString());
    Assert.assertEquals(member2.getLive().getParams().toString(), cfg2.getParams().toString());
}

2. SingleLiveMultipleBackupsFailoverTest#testMultipleFailovers()

Project: activemq-artemis
File: SingleLiveMultipleBackupsFailoverTest.java
@Test
public void testMultipleFailovers() throws Exception {
    nodeManager = new InVMNodeManager(!sharedStore);
    createLiveConfig(0);
    createBackupConfig(0, 1, 0, 2, 3, 4, 5);
    createBackupConfig(0, 2, 0, 1, 3, 4, 5);
    createBackupConfig(0, 3, 0, 1, 2, 4, 5);
    createBackupConfig(0, 4, 0, 1, 2, 3, 5);
    createBackupConfig(0, 5, 0, 1, 2, 3, 4);
    servers.get(0).start();
    waitForServerToStart(servers.get(0).getServer());
    servers.get(1).start();
    waitForServerToStart(servers.get(1).getServer());
    servers.get(2).start();
    servers.get(3).start();
    servers.get(4).start();
    servers.get(5).start();
    locator = (ServerLocatorImpl) getServerLocator(0);
    Topology topology = locator.getTopology();
    // for logging and debugging
    topology.setOwner("testMultipleFailovers");
    locator.setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setBlockOnAcknowledge(true).setReconnectAttempts(-1);
    ClientSessionFactoryInternal sf = createSessionFactoryAndWaitForTopology(locator, 2);
    int backupNode;
    ClientSession session = sendAndConsume(sf, true);
    log.info("failing node 0");
    servers.get(0).crash(session);
    session.close();
    backupNode = waitForNewLive(5, true, servers, 1, 2, 3, 4, 5);
    session = sendAndConsume(sf, false);
    log.info("failing node " + backupNode);
    servers.get(backupNode).crash(session);
    session.close();
    backupNode = waitForNewLive(5, true, servers, 1, 2, 3, 4, 5);
    session = sendAndConsume(sf, false);
    log.info("failing node " + backupNode);
    servers.get(backupNode).crash(session);
    session.close();
    backupNode = waitForNewLive(5, true, servers, 1, 2, 3, 4, 5);
    session = sendAndConsume(sf, false);
    log.info("failing node " + backupNode);
    servers.get(backupNode).crash(session);
    session.close();
    backupNode = waitForNewLive(5, true, servers, 1, 2, 3, 4, 5);
    session = sendAndConsume(sf, false);
    log.info("failing node " + backupNode);
    servers.get(backupNode).crash(session);
    session.close();
    backupNode = waitForNewLive(5, false, servers, 1, 2, 3, 4, 5);
    session = sendAndConsume(sf, false);
    session.close();
    servers.get(backupNode).stop();
    locator.close();
}

3. ActiveMQTestBase#waitForTopology()

Project: activemq-artemis
File: ActiveMQTestBase.java
protected void waitForTopology(final ActiveMQServer server, String clusterConnectionName, final int nodes, final long timeout) throws Exception {
    logger.debug("waiting for " + nodes + " on the topology for server = " + server);
    long start = System.currentTimeMillis();
    ClusterConnection clusterConnection = server.getClusterManager().getClusterConnection(clusterConnectionName);
    Topology topology = clusterConnection.getTopology();
    do {
        if (nodes == topology.getMembers().size()) {
            return;
        }
        Thread.sleep(10);
    } while (System.currentTimeMillis() - start < timeout);
    String msg = "Timed out waiting for cluster topology of " + nodes + " (received " + topology.getMembers().size() + ") topology = " + topology + ")";
    ActiveMQServerLogger.LOGGER.error(msg);
    throw new Exception(msg);
}

4. ActiveMQTestBase#waitForTopology()

Project: activemq-artemis
File: ActiveMQTestBase.java
protected Topology waitForTopology(final ActiveMQServer server, final int liveNodes, final int backupNodes, final long timeout) throws Exception {
    logger.debug("waiting for " + liveNodes + " on the topology for server = " + server);
    long start = System.currentTimeMillis();
    Set<ClusterConnection> ccs = server.getClusterManager().getClusterConnections();
    if (ccs.size() != 1) {
        throw new IllegalStateException("You need a single cluster connection on this version of waitForTopology on ServiceTestBase");
    }
    Topology topology = server.getClusterManager().getDefaultConnection(null).getTopology();
    int liveNodesCount = 0;
    int backupNodesCount = 0;
    do {
        liveNodesCount = 0;
        backupNodesCount = 0;
        for (TopologyMemberImpl member : topology.getMembers()) {
            if (member.getLive() != null) {
                liveNodesCount++;
            }
            if (member.getBackup() != null) {
                backupNodesCount++;
            }
        }
        if ((liveNodes == -1 || liveNodes == liveNodesCount) && (backupNodes == -1 || backupNodes == backupNodesCount)) {
            return topology;
        }
        Thread.sleep(10);
    } while (System.currentTimeMillis() - start < timeout);
    String msg = "Timed out waiting for cluster topology of live=" + liveNodes + ",backup=" + backupNodes + " (received live=" + liveNodesCount + ", backup=" + backupNodesCount + ") topology = " + topology.describe() + ")";
    ActiveMQServerLogger.LOGGER.error(msg);
    throw new Exception(msg);
}