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
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
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
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
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); }