Author: jmesnil
Date: 2010-08-31 04:38:19 -0400 (Tue, 31 Aug 2010)
New Revision: 9613
Modified:
branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/topology/TopologyClusterTestBase.java
Log:
add tests to check topology updates on HA clients
Modified:
branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/topology/TopologyClusterTestBase.java
===================================================================
---
branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/topology/TopologyClusterTestBase.java 2010-08-31
02:31:32 UTC (rev 9612)
+++
branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/topology/TopologyClusterTestBase.java 2010-08-31
08:38:19 UTC (rev 9613)
@@ -246,6 +246,8 @@
sf.close();
+ locator.close();
+
stopServers(0);
}
@@ -319,6 +321,8 @@
checkContains(new int[] {}, nodeIDs, nodes);
sf.close();
+
+ locator.close();
}
public void testStopNodes() throws Throwable
@@ -399,9 +403,70 @@
{
}
+
+ locator.close();
}
-
+ public void testMultipleClientSessionFactories() throws Throwable
+ {
+ startServers(0, 1, 2, 3, 4);
+ String[] nodeIDs = getNodeIDs(0, 1, 2, 3, 4);
+
+ ServerLocator locator = createHAServerLocator();
+
+ final List<String> nodes = new ArrayList<String>();
+ final CountDownLatch upLatch = new CountDownLatch(5);
+
+ locator.addClusterTopologyListener(new ClusterTopologyListener()
+ {
+ public void nodeUP(String nodeID,
+ Pair<TransportConfiguration, TransportConfiguration>
connectorPair,
+ boolean last,
+ int distance)
+ {
+ if (!nodes.contains(nodeID))
+ {
+ nodes.add(nodeID);
+ upLatch.countDown();
+ }
+ }
+
+ public void nodeDown(String nodeID)
+ {
+ if (nodes.contains(nodeID))
+ {
+ nodes.remove(nodeID);
+ }
+ }
+ });
+
+ ClientSessionFactory[] sfs = new ClientSessionFactory[] {
+
locator.createSessionFactory(),
+
locator.createSessionFactory(),
+
locator.createSessionFactory(),
+
locator.createSessionFactory(),
+
locator.createSessionFactory() };
+ assertTrue("Was not notified that all servers are UP", upLatch.await(10,
SECONDS));
+ checkContains(new int[] { 0, 1, 2, 3, 4 }, nodeIDs, nodes);
+
+ waitForClusterConnections(0, 4);
+ waitForClusterConnections(1, 4);
+ waitForClusterConnections(2, 4);
+ waitForClusterConnections(3, 4);
+ waitForClusterConnections(4, 4);
+
+ stopServers(0, 4, 2, 3, 1);
+ checkContains(new int[] { }, nodeIDs, nodes);
+
+ for (int i = 0; i < sfs.length; i++)
+ {
+ ClientSessionFactory sf = sfs[i];
+ sf.close();
+ }
+
+ locator.close();
+ }
+
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
Show replies by date