[hornetq-commits] JBoss hornetq SVN: r9613 - branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/topology.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Aug 31 04:38:20 EDT 2010


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 -------------------------------------------------



More information about the hornetq-commits mailing list