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

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Aug 11 05:13:50 EDT 2010


Author: jmesnil
Date: 2010-08-11 05:13:49 -0400 (Wed, 11 Aug 2010)
New Revision: 9525

Added:
   branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/TwoWayTwoNodeClusterWithDiscoveryTest.java
Modified:
   branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterHeadersRemovedTest.java
   branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java
   branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/MessageRedistributionTest.java
   branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/OneWayChainClusterTest.java
   branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/OnewayTwoNodeClusterTest.java
   branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java
   branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/TwoWayTwoNodeClusterTest.java
Log:
HA refactoring

* fix tests setup
* add tests for new HA use cases

Modified: branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterHeadersRemovedTest.java
===================================================================
--- branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterHeadersRemovedTest.java	2010-08-11 02:16:35 UTC (rev 9524)
+++ branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterHeadersRemovedTest.java	2010-08-11 09:13:49 UTC (rev 9525)
@@ -54,6 +54,7 @@
    public void testHeadersRemoved() throws Exception
    {
       setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
+      setupClusterConnection("clusterX", 1, -1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());

Modified: branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java
===================================================================
--- branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java	2010-08-11 02:16:35 UTC (rev 9524)
+++ branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java	2010-08-11 09:13:49 UTC (rev 9525)
@@ -1251,20 +1251,8 @@
       configuration.setBackup(backup);
 
       configuration.getAcceptorConfigurations().clear();
-
-      Map<String, Object> params = generateParams(node, netty);
-
-      if (netty)
-      {
-         TransportConfiguration nettytc = new TransportConfiguration(ServiceTestBase.NETTY_ACCEPTOR_FACTORY, params);
-         configuration.getAcceptorConfigurations().add(nettytc);
-      }
-      else
-      {
-         TransportConfiguration invmtc = new TransportConfiguration(ServiceTestBase.INVM_ACCEPTOR_FACTORY, params);
-         configuration.getAcceptorConfigurations().add(invmtc);
-      }
-
+      configuration.getAcceptorConfigurations().add(createTransportConfiguration(netty, true, generateParams(node, netty)));
+      
       HornetQServer server;
 
       if (fileStorage)
@@ -1470,12 +1458,16 @@
       TransportConfiguration connectorFrom = createTransportConfiguration(netty, false, generateParams(nodeFrom, netty));
       serverFrom.getConfiguration().getConnectorConfigurations().put(name, connectorFrom);
 
-      TransportConfiguration serverTotc = createTransportConfiguration(netty, false, generateParams(nodeTo, netty));
-      serverFrom.getConfiguration().getConnectorConfigurations().put(serverTotc.getName(), serverTotc);
+      List<String> pairs = null;
+      
+      if (nodeTo != -1)
+      {
+         TransportConfiguration serverTotc = createTransportConfiguration(netty, false, generateParams(nodeTo, netty));
+         serverFrom.getConfiguration().getConnectorConfigurations().put(serverTotc.getName(), serverTotc);
+         pairs = new ArrayList<String>();
+         pairs.add(serverTotc.getName());
+      }
 
-      List<String> pairs = new ArrayList<String>();
-      pairs.add(serverTotc.getName());
-
       ClusterConnectionConfiguration clusterConf = new ClusterConnectionConfiguration(name,
                                                                                       address,
                                                                                       name,
@@ -1544,44 +1536,14 @@
          throw new IllegalStateException("No server at node " + nodeFrom);
       }
 
-      Map<String, TransportConfiguration> connectors = serverFrom.getConfiguration().getConnectorConfigurations();
+      TransportConfiguration connectorFrom = createTransportConfiguration(netty, false, generateParams(nodeFrom, netty));
+      serverFrom.getConfiguration().getConnectorConfigurations().put(name, connectorFrom);
 
       List<String> pairs = new ArrayList<String>();
-
-      for (int i = 0; i < nodesTo.length; i++)
+      for (int element : nodesTo)
       {
-         Map<String, Object> params = generateParams(nodesTo[i], netty);
-
-         TransportConfiguration serverTotc;
-
-         if (netty)
-         {
-            serverTotc = new TransportConfiguration(ServiceTestBase.NETTY_CONNECTOR_FACTORY, params);
-         }
-         else
-         {
-            serverTotc = new TransportConfiguration(ServiceTestBase.INVM_CONNECTOR_FACTORY, params);
-         }
-
-         connectors.put(serverTotc.getName(), serverTotc);
-
-         /*Map<String, Object> backupParams = generateParams(backupsTo[i], netty);
-
-         TransportConfiguration serverBackupTotc;
-
-         if (netty)
-         {
-            serverBackupTotc = new TransportConfiguration(ServiceTestBase.NETTY_CONNECTOR_FACTORY, backupParams);
-         }
-         else
-         {
-            serverBackupTotc = new TransportConfiguration(ServiceTestBase.INVM_CONNECTOR_FACTORY, backupParams);
-         }
-
-         connectors.put(serverBackupTotc.getName(), serverBackupTotc);
-
-         Pair<String, String> connectorPair = new Pair<String, String>(serverTotc.getName(), serverBackupTotc.getName());*/
-
+         TransportConfiguration serverTotc = createTransportConfiguration(netty, false, generateParams(element, netty));
+         serverFrom.getConfiguration().getConnectorConfigurations().put(serverTotc.getName(), serverTotc);
          pairs.add(serverTotc.getName());
       }
 

Modified: branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/MessageRedistributionTest.java
===================================================================
--- branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/MessageRedistributionTest.java	2010-08-11 02:16:35 UTC (rev 9524)
+++ branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/MessageRedistributionTest.java	2010-08-11 09:13:49 UTC (rev 9525)
@@ -609,9 +609,6 @@
 
       setupSessionFactory(0, isNetty());
       
-      setupSessionFactory(1, isNetty());
-      setupSessionFactory(2, isNetty());
-
       createQueue(0, "queues.testaddress", "queue0", null, false);
       
       waitForBindings(0, "queues.testaddress", 1, 0, true);
@@ -621,7 +618,9 @@
       //Now bring up node 1
       
       startServers(1);
-      
+
+      setupSessionFactory(1, isNetty());
+
       createQueue(1, "queues.testaddress", "queue0", null, false);
       
       waitForBindings(1, "queues.testaddress", 1, 0, true);

Modified: branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/OneWayChainClusterTest.java
===================================================================
--- branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/OneWayChainClusterTest.java	2010-08-11 02:16:35 UTC (rev 9524)
+++ branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/OneWayChainClusterTest.java	2010-08-11 09:13:49 UTC (rev 9525)
@@ -63,6 +63,7 @@
       setupClusterConnection("cluster1-2", 1, 2, "queues", false, 4, isNetty());
       setupClusterConnection("cluster2-3", 2, 3, "queues", false, 4, isNetty());
       setupClusterConnection("cluster3-4", 3, 4, "queues", false, 4, isNetty());
+      setupClusterConnection("cluster4-X", 4, -1, "queues", false, 4, isNetty());
 
       startServers(0, 1, 2, 3, 4);
 
@@ -78,6 +79,14 @@
       addConsumer(1, 4, "queue0", null);
 
       waitForBindings(0, "queues.testaddress", 1, 1, true);
+      
+      Thread.sleep(2000);
+      System.out.println(clusterDescription(servers[0]));
+      System.out.println(clusterDescription(servers[1]));
+      System.out.println(clusterDescription(servers[2]));
+      System.out.println(clusterDescription(servers[3]));
+      System.out.println(clusterDescription(servers[4]));
+      
       waitForBindings(0, "queues.testaddress", 1, 1, false);
 
       send(0, "queues.testaddress", 10, false, null);
@@ -91,6 +100,7 @@
       setupClusterConnection("cluster1-2", 1, 2, "queues", false, 4, isNetty());
       setupClusterConnection("cluster2-3", 2, 3, "queues", false, 4, isNetty());
       setupClusterConnection("cluster3-4", 3, 4, "queues", false, 4, isNetty());
+      setupClusterConnection("cluster4-X", 4, -1, "queues", false, 4, isNetty());
 
       startServers(0, 1, 2, 3, 4);
 
@@ -123,6 +133,7 @@
       setupClusterConnection("cluster1-2", 1, 2, "queues", true, 4, isNetty());
       setupClusterConnection("cluster2-3", 2, 3, "queues", true, 4, isNetty());
       setupClusterConnection("cluster3-4", 3, 4, "queues", true, 4, isNetty());
+      setupClusterConnection("cluster4-X", 4, -1, "queues", false, 4, isNetty());
 
       startServers(0, 1, 2, 3, 4);
 
@@ -153,6 +164,7 @@
       setupClusterConnection("cluster1-2", 1, 2, "queues", false, 4, isNetty());
       setupClusterConnection("cluster2-3", 2, 3, "queues", false, 4, isNetty());
       setupClusterConnection("cluster3-4", 3, 4, "queues", false, 4, isNetty());
+      setupClusterConnection("cluster4-X", 4, -1, "queues", false, 4, isNetty());
 
       startServers(0, 1, 2, 3, 4);
 
@@ -178,6 +190,7 @@
       setupClusterConnection("cluster1-2", 1, 2, "queues", false, 4, isNetty());
       setupClusterConnection("cluster2-3", 2, 3, "queues", false, 4, isNetty());
       setupClusterConnection("cluster3-4", 3, 4, "queues", false, 4, isNetty());
+      setupClusterConnection("cluster4-X", 4, -1, "queues", false, 4, isNetty());
 
       startServers(0, 1, 2, 3, 4);
 
@@ -210,6 +223,7 @@
       setupClusterConnection("cluster1-2", 1, 2, "queues", false, 4, isNetty());
       setupClusterConnection("cluster2-3", 2, 3, "queues", false, 4, isNetty());
       setupClusterConnection("cluster3-4", 3, 4, "queues", false, 4, isNetty());
+      setupClusterConnection("cluster4-X", 4, -1, "queues", false, 4, isNetty());
 
       startServers(0, 1, 2, 3, 4);
 
@@ -242,6 +256,7 @@
       setupClusterConnection("cluster1-2", 1, 2, "queues", false, 3, isNetty());
       setupClusterConnection("cluster2-3", 2, 3, "queues", false, 3, isNetty());
       setupClusterConnection("cluster3-4", 3, 4, "queues", false, 3, isNetty());
+      setupClusterConnection("cluster4-X", 4, -1, "queues", false, 4, isNetty());
 
       startServers(0, 1, 2, 3, 4);
 
@@ -269,6 +284,7 @@
       setupClusterConnection("cluster1-2", 1, 2, "queues", false, 4, isNetty());
       setupClusterConnection("cluster2-3", 2, 3, "queues", false, 4, isNetty());
       setupClusterConnection("cluster3-4", 3, 4, "queues", false, 4, isNetty());
+      setupClusterConnection("cluster4-X", 4, -1, "queues", false, 4, isNetty());
 
       startServers(0, 1, 2, 3, 4);
 
@@ -290,12 +306,31 @@
       verifyReceiveRoundRobin(10, 0, 1);
       verifyNotReceive(0, 1);
 
+      System.out.println(clusterDescription(servers[0]));
+      System.out.println(clusterDescription(servers[1]));
+      System.out.println(clusterDescription(servers[2]));
+      System.out.println(clusterDescription(servers[3]));
+      System.out.println(clusterDescription(servers[4]));
+
       stopServers(2);
 
+      Thread.sleep(2000);
+      System.out.println(clusterDescription(servers[0]));
+      System.out.println(clusterDescription(servers[1]));
+      System.out.println(clusterDescription(servers[3]));
+      System.out.println(clusterDescription(servers[4]));
+
       startServers(2);
 
       Thread.sleep(2000);
 
+      System.out.println(clusterDescription(servers[0]));
+      System.out.println(clusterDescription(servers[1]));
+      System.out.println(clusterDescription(servers[2]));
+      System.out.println(clusterDescription(servers[3]));
+      System.out.println(clusterDescription(servers[4]));
+
+      
       send(0, "queues.testaddress", 10, false, null);
 
       verifyReceiveRoundRobin(10, 0, 1);

Modified: branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/OnewayTwoNodeClusterTest.java
===================================================================
--- branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/OnewayTwoNodeClusterTest.java	2010-08-11 02:16:35 UTC (rev 9524)
+++ branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/OnewayTwoNodeClusterTest.java	2010-08-11 09:13:49 UTC (rev 9525)
@@ -37,6 +37,11 @@
 
       setupServer(0, isFileStorage(), isNetty());
       setupServer(1, isFileStorage(), isNetty());
+      
+      // server #0 is connected to server #1
+      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
+      // server #1 is connected to nobody
+      setupClusterConnection("clusterX", 1, -1, "queues", false, 1, isNetty());
    }
 
    @Override
@@ -61,7 +66,6 @@
     */
    public void testNeverStartTargetStartSourceThenStopSource() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(0);
 
       // Give it a little time for the bridge to try to start
@@ -72,7 +76,6 @@
 
    public void testStartTargetServerBeforeSourceServer() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -95,7 +98,6 @@
 
    public void testStartSourceServerBeforeTargetServer() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(0, 1);
 
       setupSessionFactory(0, isNetty());
@@ -118,7 +120,6 @@
 
    public void testStopAndStartTarget() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(0, 1);
 
       setupSessionFactory(0, isNetty());
@@ -180,7 +181,6 @@
 
    public void testBasicLocalReceive() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -199,7 +199,6 @@
 
    public void testBasicRoundRobin() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -213,8 +212,14 @@
 
       addConsumer(1, 1, "queue0", null);
 
+      System.out.println(clusterDescription(servers[0]));
+      System.out.println(clusterDescription(servers[1]));
+
       waitForBindings(0, "queues.testaddress", 1, 1, true);
+      waitForBindings(1, "queues.testaddress", 1, 1, true);
+
       waitForBindings(0, "queues.testaddress", 1, 1, false);
+      waitForBindings(1, "queues.testaddress", 0, 0, false);
 
       send(0, "queues.testaddress", 10, false, null);
       verifyReceiveRoundRobin(10, 0, 1);
@@ -223,7 +228,6 @@
 
    public void testRoundRobinMultipleQueues() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -263,7 +267,6 @@
 
    public void testMultipleNonLoadBalancedQueues() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -305,7 +308,6 @@
 
    public void testMixtureLoadBalancedAndNonLoadBalancedQueues() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -369,7 +371,6 @@
 
    public void testMixtureLoadBalancedAndNonLoadBalancedQueuesRemoveSomeQueuesAndConsumers() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -450,7 +451,6 @@
 
    public void testMixtureLoadBalancedAndNonLoadBalancedQueuesAddQueuesOnTargetBeforeStartSource() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1);
 
       setupSessionFactory(1, isNetty());
@@ -514,7 +514,6 @@
 
    public void testMixtureLoadBalancedAndNonLoadBalancedQueuesAddQueuesOnSourceBeforeStartTarget() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(0);
 
       setupSessionFactory(0, isNetty());
@@ -578,7 +577,6 @@
 
    public void testNotRouteToNonMatchingAddress() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -614,7 +612,6 @@
 
    public void testNonLoadBalancedQueuesWithFilters() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -676,7 +673,6 @@
 
    public void testRoundRobinMultipleQueuesWithFilters() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -741,25 +737,23 @@
 
    public void testRouteWhenNoConsumersFalseNonBalancedQueues() throws Exception
    {
-      setupClusterConnection("cluster2", 0, 1, "queues2", false, 1, isNetty());
-
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
       setupSessionFactory(1, isNetty());
 
-      createQueue(0, "queues2.testaddress", "queue0", null, false);
-      createQueue(0, "queues2.testaddress", "queue1", null, false);
-      createQueue(0, "queues2.testaddress", "queue2", null, false);
+      createQueue(0, "queues.testaddress", "queue0", null, false);
+      createQueue(0, "queues.testaddress", "queue1", null, false);
+      createQueue(0, "queues.testaddress", "queue2", null, false);
 
-      createQueue(1, "queues2.testaddress", "queue3", null, false);
-      createQueue(1, "queues2.testaddress", "queue4", null, false);
-      createQueue(1, "queues2.testaddress", "queue5", null, false);
+      createQueue(1, "queues.testaddress", "queue3", null, false);
+      createQueue(1, "queues.testaddress", "queue4", null, false);
+      createQueue(1, "queues.testaddress", "queue5", null, false);
 
-      waitForBindings(0, "queues2.testaddress", 3, 0, true);
-      waitForBindings(0, "queues2.testaddress", 3, 0, false);
+      waitForBindings(0, "queues.testaddress", 3, 0, true);
+      waitForBindings(0, "queues.testaddress", 3, 0, false);
 
-      send(0, "queues2.testaddress", 10, false, null);
+      send(0, "queues.testaddress", 10, false, null);
 
       addConsumer(0, 0, "queue0", null);
       addConsumer(1, 0, "queue1", null);
@@ -776,25 +770,28 @@
 
    public void testRouteWhenNoConsumersTrueNonBalancedQueues() throws Exception
    {
-      setupClusterConnection("cluster2", 0, 1, "queues2", true, 1, isNetty());
-
+      // server #0 is connected to server #1
+      setupClusterConnection("cluster1", 0, 1, "queues", true, 1, isNetty());
+      // server #1 is connected to nobody
+      setupClusterConnection("clusterX", 1, -1, "queues", false, 1, isNetty());
+   
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
       setupSessionFactory(1, isNetty());
 
-      createQueue(0, "queues2.testaddress", "queue0", null, false);
-      createQueue(0, "queues2.testaddress", "queue1", null, false);
-      createQueue(0, "queues2.testaddress", "queue2", null, false);
+      createQueue(0, "queues.testaddress", "queue0", null, false);
+      createQueue(0, "queues.testaddress", "queue1", null, false);
+      createQueue(0, "queues.testaddress", "queue2", null, false);
 
-      createQueue(1, "queues2.testaddress", "queue3", null, false);
-      createQueue(1, "queues2.testaddress", "queue4", null, false);
-      createQueue(1, "queues2.testaddress", "queue5", null, false);
+      createQueue(1, "queues.testaddress", "queue3", null, false);
+      createQueue(1, "queues.testaddress", "queue4", null, false);
+      createQueue(1, "queues.testaddress", "queue5", null, false);
 
-      waitForBindings(0, "queues2.testaddress", 3, 0, true);
-      waitForBindings(0, "queues2.testaddress", 3, 0, false);
+      waitForBindings(0, "queues.testaddress", 3, 0, true);
+      waitForBindings(0, "queues.testaddress", 3, 0, false);
 
-      send(0, "queues2.testaddress", 10, false, null);
+      send(0, "queues.testaddress", 10, false, null);
 
       addConsumer(0, 0, "queue0", null);
       addConsumer(1, 0, "queue1", null);
@@ -811,25 +808,23 @@
 
    public void testRouteWhenNoConsumersFalseLoadBalancedQueues() throws Exception
    {
-      setupClusterConnection("cluster2", 0, 1, "queues2", false, 1, isNetty());
-
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
       setupSessionFactory(1, isNetty());
 
-      createQueue(0, "queues2.testaddress", "queue0", null, false);
-      createQueue(0, "queues2.testaddress", "queue1", null, false);
-      createQueue(0, "queues2.testaddress", "queue2", null, false);
+      createQueue(0, "queues.testaddress", "queue0", null, false);
+      createQueue(0, "queues.testaddress", "queue1", null, false);
+      createQueue(0, "queues.testaddress", "queue2", null, false);
 
-      createQueue(1, "queues2.testaddress", "queue0", null, false);
-      createQueue(1, "queues2.testaddress", "queue1", null, false);
-      createQueue(1, "queues2.testaddress", "queue2", null, false);
+      createQueue(1, "queues.testaddress", "queue0", null, false);
+      createQueue(1, "queues.testaddress", "queue1", null, false);
+      createQueue(1, "queues.testaddress", "queue2", null, false);
 
-      waitForBindings(0, "queues2.testaddress", 3, 0, true);
-      waitForBindings(0, "queues2.testaddress", 3, 0, false);
+      waitForBindings(0, "queues.testaddress", 3, 0, true);
+      waitForBindings(0, "queues.testaddress", 3, 0, false);
 
-      send(0, "queues2.testaddress", 10, false, null);
+      send(0, "queues.testaddress", 10, false, null);
 
       addConsumer(0, 0, "queue0", null);
       addConsumer(1, 0, "queue1", null);
@@ -852,29 +847,27 @@
 
    public void testRouteWhenNoConsumersFalseLoadBalancedQueuesLocalConsumer() throws Exception
    {
-      setupClusterConnection("cluster2", 0, 1, "queues2", false, 1, isNetty());
-
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
       setupSessionFactory(1, isNetty());
 
-      createQueue(0, "queues2.testaddress", "queue0", null, false);
-      createQueue(0, "queues2.testaddress", "queue1", null, false);
-      createQueue(0, "queues2.testaddress", "queue2", null, false);
+      createQueue(0, "queues.testaddress", "queue0", null, false);
+      createQueue(0, "queues.testaddress", "queue1", null, false);
+      createQueue(0, "queues.testaddress", "queue2", null, false);
 
-      createQueue(1, "queues2.testaddress", "queue0", null, false);
-      createQueue(1, "queues2.testaddress", "queue1", null, false);
-      createQueue(1, "queues2.testaddress", "queue2", null, false);
+      createQueue(1, "queues.testaddress", "queue0", null, false);
+      createQueue(1, "queues.testaddress", "queue1", null, false);
+      createQueue(1, "queues.testaddress", "queue2", null, false);
 
       addConsumer(0, 0, "queue0", null);
       addConsumer(1, 0, "queue1", null);
       addConsumer(2, 0, "queue2", null);
 
-      waitForBindings(0, "queues2.testaddress", 3, 3, true);
-      waitForBindings(0, "queues2.testaddress", 3, 0, false);
+      waitForBindings(0, "queues.testaddress", 3, 3, true);
+      waitForBindings(0, "queues.testaddress", 3, 0, false);
 
-      send(0, "queues2.testaddress", 10, false, null);
+      send(0, "queues.testaddress", 10, false, null);
 
       addConsumer(3, 1, "queue0", null);
       addConsumer(4, 1, "queue1", null);
@@ -889,23 +882,21 @@
 
    public void testRouteWhenNoConsumersFalseLoadBalancedQueuesNoLocalQueue() throws Exception
    {
-      setupClusterConnection("cluster2", 0, 1, "queues2", false, 1, isNetty());
-
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
       setupSessionFactory(1, isNetty());
 
-      createQueue(0, "queues2.testaddress", "queue0", null, false);
-      createQueue(0, "queues2.testaddress", "queue1", null, false);
+      createQueue(0, "queues.testaddress", "queue0", null, false);
+      createQueue(0, "queues.testaddress", "queue1", null, false);
 
-      createQueue(1, "queues2.testaddress", "queue0", null, false);
-      createQueue(1, "queues2.testaddress", "queue1", null, false);
+      createQueue(1, "queues.testaddress", "queue0", null, false);
+      createQueue(1, "queues.testaddress", "queue1", null, false);
 
-      waitForBindings(0, "queues2.testaddress", 2, 0, true);
-      waitForBindings(0, "queues2.testaddress", 2, 0, false);
+      waitForBindings(0, "queues.testaddress", 2, 0, true);
+      waitForBindings(0, "queues.testaddress", 2, 0, false);
 
-      send(0, "queues2.testaddress", 10, false, null);
+      send(0, "queues.testaddress", 10, false, null);
 
       addConsumer(0, 0, "queue0", null);
       addConsumer(1, 0, "queue1", null);
@@ -921,25 +912,23 @@
 
    public void testRouteWhenNoConsumersTrueLoadBalancedQueues() throws Exception
    {
-      setupClusterConnection("cluster2", 0, 1, "queues2", true, 1, isNetty());
-
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
       setupSessionFactory(1, isNetty());
 
-      createQueue(0, "queues2.testaddress", "queue0", null, false);
-      createQueue(0, "queues2.testaddress", "queue1", null, false);
-      createQueue(0, "queues2.testaddress", "queue2", null, false);
+      createQueue(0, "queues.testaddress", "queue0", null, false);
+      createQueue(0, "queues.testaddress", "queue1", null, false);
+      createQueue(0, "queues.testaddress", "queue2", null, false);
 
-      createQueue(1, "queues2.testaddress", "queue0", null, false);
-      createQueue(1, "queues2.testaddress", "queue1", null, false);
-      createQueue(1, "queues2.testaddress", "queue2", null, false);
+      createQueue(1, "queues.testaddress", "queue0", null, false);
+      createQueue(1, "queues.testaddress", "queue1", null, false);
+      createQueue(1, "queues.testaddress", "queue2", null, false);
 
-      waitForBindings(0, "queues2.testaddress", 3, 0, true);
-      waitForBindings(0, "queues2.testaddress", 3, 0, false);
+      waitForBindings(0, "queues.testaddress", 3, 0, true);
+      waitForBindings(0, "queues.testaddress", 3, 0, false);
 
-      send(0, "queues2.testaddress", 10, false, null);
+      send(0, "queues.testaddress", 10, false, null);
 
       addConsumer(0, 0, "queue0", null);
       addConsumer(1, 0, "queue1", null);
@@ -958,29 +947,31 @@
 
    public void testRouteWhenNoConsumersTrueLoadBalancedQueuesLocalConsumer() throws Exception
    {
-      setupClusterConnection("cluster2", 0, 1, "queues2", true, 1, isNetty());
+      servers[0].getConfiguration().getClusterConfigurations().clear();
+      // server #0 is connected to server #1
+      setupClusterConnection("cluster1", 0, 1, "queues", true, 1, isNetty());
 
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
       setupSessionFactory(1, isNetty());
 
-      createQueue(0, "queues2.testaddress", "queue0", null, false);
-      createQueue(0, "queues2.testaddress", "queue1", null, false);
-      createQueue(0, "queues2.testaddress", "queue2", null, false);
+      createQueue(0, "queues.testaddress", "queue0", null, false);
+      createQueue(0, "queues.testaddress", "queue1", null, false);
+      createQueue(0, "queues.testaddress", "queue2", null, false);
 
-      createQueue(1, "queues2.testaddress", "queue0", null, false);
-      createQueue(1, "queues2.testaddress", "queue1", null, false);
-      createQueue(1, "queues2.testaddress", "queue2", null, false);
+      createQueue(1, "queues.testaddress", "queue0", null, false);
+      createQueue(1, "queues.testaddress", "queue1", null, false);
+      createQueue(1, "queues.testaddress", "queue2", null, false);
 
       addConsumer(0, 0, "queue0", null);
       addConsumer(1, 0, "queue1", null);
       addConsumer(2, 0, "queue2", null);
 
-      waitForBindings(0, "queues2.testaddress", 3, 3, true);
-      waitForBindings(0, "queues2.testaddress", 3, 0, false);
+      waitForBindings(0, "queues.testaddress", 3, 3, true);
+      waitForBindings(0, "queues.testaddress", 3, 0, false);
 
-      send(0, "queues2.testaddress", 10, false, null);
+      send(0, "queues.testaddress", 10, false, null);
 
       addConsumer(3, 1, "queue0", null);
       addConsumer(4, 1, "queue1", null);
@@ -995,23 +986,25 @@
 
    public void testRouteWhenNoConsumersTrueLoadBalancedQueuesNoLocalQueue() throws Exception
    {
-      setupClusterConnection("cluster2", 0, 1, "queues2", true, 1, isNetty());
+      servers[0].getConfiguration().getClusterConfigurations().clear();
+      // server #0 is connected to server #1
+      setupClusterConnection("cluster1", 0, 1, "queues", true, 1, isNetty());
 
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
       setupSessionFactory(1, isNetty());
 
-      createQueue(0, "queues2.testaddress", "queue0", null, false);
-      createQueue(0, "queues2.testaddress", "queue1", null, false);
+      createQueue(0, "queues.testaddress", "queue0", null, false);
+      createQueue(0, "queues.testaddress", "queue1", null, false);
 
-      createQueue(1, "queues2.testaddress", "queue0", null, false);
-      createQueue(1, "queues2.testaddress", "queue1", null, false);
+      createQueue(1, "queues.testaddress", "queue0", null, false);
+      createQueue(1, "queues.testaddress", "queue1", null, false);
 
-      waitForBindings(0, "queues2.testaddress", 2, 0, true);
-      waitForBindings(0, "queues2.testaddress", 2, 0, false);
+      waitForBindings(0, "queues.testaddress", 2, 0, true);
+      waitForBindings(0, "queues.testaddress", 2, 0, false);
 
-      send(0, "queues2.testaddress", 10, false, null);
+      send(0, "queues.testaddress", 10, false, null);
 
       addConsumer(0, 0, "queue0", null);
       addConsumer(1, 0, "queue1", null);
@@ -1027,7 +1020,6 @@
 
    public void testNonLoadBalancedQueuesWithConsumersWithFilters() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -1085,7 +1077,6 @@
 
    public void testRoundRobinMultipleQueuesWithConsumersWithFilters() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues", false, 1, isNetty());
       startServers(1, 0);
 
       setupSessionFactory(0, isNetty());
@@ -1151,7 +1142,6 @@
 
    public void testMultipleClusterConnections() throws Exception
    {
-      setupClusterConnection("cluster1", 0, 1, "queues1", false, 1, isNetty());
       setupClusterConnection("cluster2", 0, 1, "queues2", false, 1, isNetty());
       setupClusterConnection("cluster3", 0, 1, "queues3", false, 1, isNetty());
 
@@ -1162,15 +1152,15 @@
 
       // Make sure the different connections don't conflict
 
-      createQueue(0, "queues1.testaddress", "queue0", null, false);
-      createQueue(0, "queues1.testaddress", "queue1", null, false);
+      createQueue(0, "queues.testaddress", "queue0", null, false);
+      createQueue(0, "queues.testaddress", "queue1", null, false);
       createQueue(0, "queues2.testaddress", "queue2", null, false);
       createQueue(0, "queues2.testaddress", "queue3", null, false);
       createQueue(0, "queues3.testaddress", "queue4", null, false);
       createQueue(0, "queues3.testaddress", "queue5", null, false);
 
-      createQueue(1, "queues1.testaddress", "queue6", null, false);
-      createQueue(1, "queues1.testaddress", "queue7", null, false);
+      createQueue(1, "queues.testaddress", "queue6", null, false);
+      createQueue(1, "queues.testaddress", "queue7", null, false);
       createQueue(1, "queues2.testaddress", "queue8", null, false);
       createQueue(1, "queues2.testaddress", "queue9", null, false);
       createQueue(1, "queues3.testaddress", "queue10", null, false);
@@ -1190,8 +1180,8 @@
       addConsumer(10, 1, "queue10", null);
       addConsumer(11, 1, "queue11", null);
 
-      waitForBindings(0, "queues1.testaddress", 2, 2, true);
-      waitForBindings(0, "queues1.testaddress", 2, 2, false);
+      waitForBindings(0, "queues.testaddress", 2, 2, true);
+      waitForBindings(0, "queues.testaddress", 2, 2, false);
 
       waitForBindings(0, "queues2.testaddress", 2, 2, true);
       waitForBindings(0, "queues2.testaddress", 2, 2, false);
@@ -1199,7 +1189,7 @@
       waitForBindings(0, "queues3.testaddress", 2, 2, true);
       waitForBindings(0, "queues3.testaddress", 2, 2, false);
 
-      send(0, "queues1.testaddress", 10, false, null);
+      send(0, "queues.testaddress", 10, false, null);
 
       verifyReceiveAll(10, 0, 1, 6, 7);
 

Modified: branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java
===================================================================
--- branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java	2010-08-11 02:16:35 UTC (rev 9524)
+++ branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java	2010-08-11 09:13:49 UTC (rev 9525)
@@ -84,6 +84,12 @@
          waitForBindings(3, "queues.testaddress", 1, 1, true);
          waitForBindings(4, "queues.testaddress", 1, 1, true);
 
+         System.out.println(clusterDescription(servers[0]));
+         System.out.println(clusterDescription(servers[1]));
+         System.out.println(clusterDescription(servers[2]));
+         System.out.println(clusterDescription(servers[3]));
+         System.out.println(clusterDescription(servers[4]));
+
          waitForBindings(0, "queues.testaddress", 4, 4, false);
          waitForBindings(1, "queues.testaddress", 4, 4, false);
          waitForBindings(2, "queues.testaddress", 4, 4, false);
@@ -1441,6 +1447,14 @@
 
       stopServers(0, 3);
 
+      System.out.println("### after servers 0 & 3 stooped ###");
+      System.out.println(clusterDescription(servers[0]));
+      System.out.println(clusterDescription(servers[1]));
+      System.out.println(clusterDescription(servers[2]));
+      System.out.println(clusterDescription(servers[3]));
+      System.out.println(clusterDescription(servers[4]));
+      System.out.println("#####################################");
+      
       startServers(3, 0);
 
       Thread.sleep(3000);
@@ -1489,6 +1503,14 @@
       waitForBindings(2, "queues.testaddress", 5, 5, true);
       waitForBindings(3, "queues.testaddress", 6, 6, true);
       waitForBindings(4, "queues.testaddress", 7, 7, true);
+      
+      System.out.println("### after servers 0 & 3 restarted ###");
+      System.out.println(clusterDescription(servers[0]));
+      System.out.println(clusterDescription(servers[1]));
+      System.out.println(clusterDescription(servers[2]));
+      System.out.println(clusterDescription(servers[3]));
+      System.out.println(clusterDescription(servers[4]));
+      System.out.println("#####################################");
 
       waitForBindings(0, "queues.testaddress", 23, 23, false);
       waitForBindings(1, "queues.testaddress", 23, 23, false);
@@ -1509,6 +1531,186 @@
       verifyReceiveRoundRobinInSomeOrder(10, 26, 27);
    }
 
+   public void testStopSuccessiveServers() throws Exception
+   {
+      setupCluster();
+
+      startServers();
+
+      setupSessionFactory(0, isNetty());
+      setupSessionFactory(1, isNetty());
+      setupSessionFactory(2, isNetty());
+      setupSessionFactory(3, isNetty());
+      setupSessionFactory(4, isNetty());
+
+      createQueue(0, "queues.testaddress", "queue0", null, false);
+      createQueue(1, "queues.testaddress", "queue1", null, false);
+      createQueue(2, "queues.testaddress", "queue2", null, false);
+      createQueue(3, "queues.testaddress", "queue3", null, false);
+      createQueue(4, "queues.testaddress", "queue4", null, false);
+
+      createQueue(0, "queues.testaddress", "queue5", null, false);
+      createQueue(1, "queues.testaddress", "queue6", null, false);
+      createQueue(2, "queues.testaddress", "queue7", null, false);
+      createQueue(3, "queues.testaddress", "queue8", null, false);
+      createQueue(4, "queues.testaddress", "queue9", null, false);
+
+      createQueue(0, "queues.testaddress", "queue10", null, false);
+      createQueue(1, "queues.testaddress", "queue11", null, false);
+      createQueue(2, "queues.testaddress", "queue12", null, false);
+      createQueue(3, "queues.testaddress", "queue13", null, false);
+      createQueue(4, "queues.testaddress", "queue14", null, false);
+
+      createQueue(0, "queues.testaddress", "queue15", null, false);
+      createQueue(1, "queues.testaddress", "queue15", null, false);
+      createQueue(2, "queues.testaddress", "queue15", null, false);
+      createQueue(3, "queues.testaddress", "queue15", null, false);
+      createQueue(4, "queues.testaddress", "queue15", null, false);
+
+      createQueue(2, "queues.testaddress", "queue16", null, false);
+      createQueue(3, "queues.testaddress", "queue16", null, false);
+      createQueue(4, "queues.testaddress", "queue16", null, false);
+
+      createQueue(0, "queues.testaddress", "queue17", null, false);
+      createQueue(1, "queues.testaddress", "queue17", null, false);
+      createQueue(4, "queues.testaddress", "queue17", null, false);
+
+      createQueue(3, "queues.testaddress", "queue18", null, false);
+      createQueue(4, "queues.testaddress", "queue18", null, false);
+
+      addConsumer(0, 0, "queue0", null);
+      addConsumer(1, 1, "queue1", null);
+      addConsumer(2, 2, "queue2", null);
+      addConsumer(3, 3, "queue3", null);
+      addConsumer(4, 4, "queue4", null);
+
+      addConsumer(5, 0, "queue5", null);
+      addConsumer(6, 1, "queue6", null);
+      addConsumer(7, 2, "queue7", null);
+      addConsumer(8, 3, "queue8", null);
+      addConsumer(9, 4, "queue9", null);
+
+      addConsumer(10, 0, "queue10", null);
+      addConsumer(11, 1, "queue11", null);
+      addConsumer(12, 2, "queue12", null);
+      addConsumer(13, 3, "queue13", null);
+      addConsumer(14, 4, "queue14", null);
+
+      addConsumer(15, 0, "queue15", null);
+      addConsumer(16, 1, "queue15", null);
+      addConsumer(17, 2, "queue15", null);
+      addConsumer(18, 3, "queue15", null);
+      addConsumer(19, 4, "queue15", null);
+
+      addConsumer(20, 2, "queue16", null);
+      addConsumer(21, 3, "queue16", null);
+      addConsumer(22, 4, "queue16", null);
+
+      addConsumer(23, 0, "queue17", null);
+      addConsumer(24, 1, "queue17", null);
+      addConsumer(25, 4, "queue17", null);
+
+      addConsumer(26, 3, "queue18", null);
+      addConsumer(27, 4, "queue18", null);
+
+      waitForBindings(0, "queues.testaddress", 5, 5, true);
+      waitForBindings(1, "queues.testaddress", 5, 5, true);
+      waitForBindings(2, "queues.testaddress", 5, 5, true);
+      waitForBindings(3, "queues.testaddress", 6, 6, true);
+      waitForBindings(4, "queues.testaddress", 7, 7, true);
+
+      waitForBindings(0, "queues.testaddress", 23, 23, false);
+      waitForBindings(1, "queues.testaddress", 23, 23, false);
+      waitForBindings(2, "queues.testaddress", 23, 23, false);
+      waitForBindings(3, "queues.testaddress", 22, 22, false);
+      waitForBindings(4, "queues.testaddress", 21, 21, false);
+
+      send(0, "queues.testaddress", 10, false, null);
+
+      verifyReceiveAll(10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14);
+
+      verifyReceiveRoundRobinInSomeOrder(10, 15, 16, 17, 18, 19);
+
+      verifyReceiveRoundRobinInSomeOrder(10, 20, 21, 22);
+
+      verifyReceiveRoundRobinInSomeOrder(10, 23, 24, 25);
+
+      verifyReceiveRoundRobinInSomeOrder(10, 26, 27);
+
+      // stop server 0
+      removeConsumer(0);
+      removeConsumer(5);
+      removeConsumer(10);
+      removeConsumer(15);
+      removeConsumer(23);
+
+      closeSessionFactory(0);
+
+      stopServers(0);
+      
+      waitForBindings(1, "queues.testaddress", 5, 5, true);
+      waitForBindings(2, "queues.testaddress", 5, 5, true);
+      waitForBindings(3, "queues.testaddress", 6, 6, true);
+      waitForBindings(4, "queues.testaddress", 7, 7, true);
+      
+      waitForBindings(1, "queues.testaddress", 18, 18, false);
+      waitForBindings(2, "queues.testaddress", 18, 18, false);
+      waitForBindings(3, "queues.testaddress", 17, 17, false);
+      waitForBindings(4, "queues.testaddress", 16, 16, false);
+
+      // stop server 1
+      removeConsumer(1);
+      removeConsumer(6);
+      removeConsumer(11);
+      removeConsumer(16);
+      removeConsumer(24);
+
+      closeSessionFactory(1);
+
+      stopServers(1);
+      
+      waitForBindings(2, "queues.testaddress", 5, 5, true);
+      waitForBindings(3, "queues.testaddress", 6, 6, true);
+      waitForBindings(4, "queues.testaddress", 7, 7, true);
+      
+      waitForBindings(2, "queues.testaddress", 13, 13, false);
+      waitForBindings(3, "queues.testaddress", 12, 12, false);
+      waitForBindings(4, "queues.testaddress", 11, 11, false);
+
+      // stop server 2
+      removeConsumer(2);
+      removeConsumer(7);
+      removeConsumer(12);
+      removeConsumer(17);
+      removeConsumer(20);
+
+      closeSessionFactory(2);
+
+      stopServers(2);
+      
+      waitForBindings(3, "queues.testaddress", 6, 6, true);
+      waitForBindings(4, "queues.testaddress", 7, 7, true);
+      
+      waitForBindings(3, "queues.testaddress", 7, 7, false);
+      waitForBindings(4, "queues.testaddress", 6, 6, false);
+
+      // stop server 3
+      removeConsumer(3);
+      removeConsumer(8);
+      removeConsumer(13);
+      removeConsumer(18);
+      removeConsumer(21);
+      removeConsumer(26);
+
+      closeSessionFactory(3);
+
+      stopServers(3);
+      
+      waitForBindings(4, "queues.testaddress", 7, 7, true);
+      
+      waitForBindings(4, "queues.testaddress", 0, 0, false);
+   }
+
    protected void setupCluster() throws Exception
    {
       setupCluster(false);

Modified: branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/TwoWayTwoNodeClusterTest.java
===================================================================
--- branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/TwoWayTwoNodeClusterTest.java	2010-08-11 02:16:35 UTC (rev 9524)
+++ branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/TwoWayTwoNodeClusterTest.java	2010-08-11 09:13:49 UTC (rev 9525)
@@ -33,9 +33,20 @@
    {
       super.setUp();
 
+      setupServers();
+      setupClusters();
+   }
+   
+   protected void setupServers()
+   {
       setupServer(0, isFileStorage(), isNetty());
+      setupServer(1, isFileStorage(), isNetty());      
+   }
 
-      setupServer(1, isFileStorage(), isNetty());
+   protected void setupClusters()
+   {
+      setupClusterConnection("cluster0", 0, 1, "queues", false, 1, isNetty());
+      setupClusterConnection("cluster1", 1, 0, "queues", false, 1, isNetty());
    }
 
    @Override
@@ -57,16 +68,85 @@
 
    public void testStartStop() throws Exception
    {
-      setupClusterConnection("cluster0", 0, 1, "queues", false, 1, isNetty());
 
-      setupClusterConnection("cluster1", 1, 0, "queues", false, 1, isNetty());
-
       startServers(0, 1);
 
-      // Give it a little time for the bridge to try to start
-      Thread.sleep(2000);
+      setupSessionFactory(0, isNetty());
+      setupSessionFactory(1, isNetty());
 
+      createQueue(0, "queues", "queue0", null, false);
+      createQueue(1, "queues", "queue0", null, false);
+
+      addConsumer(0, 0, "queue0", null);
+      addConsumer(1, 1, "queue0", null);
+
+      waitForBindings(0, "queues", 1, 1, true);
+      waitForBindings(1, "queues", 1, 1, true);
+
+      waitForBindings(0, "queues", 1, 1, false);
+      waitForBindings(1, "queues", 1, 1, false);
+
+      send(0, "queues", 10, false, null);
+      verifyReceiveRoundRobin(10, 0, 1);
+      verifyNotReceive(0, 1);
+
       stopServers(0, 1);
    }
 
+   public void testStopStart() throws Exception
+   {
+      startServers(0, 1);
+
+      setupSessionFactory(0, isNetty());
+      setupSessionFactory(1, isNetty());
+
+      createQueue(0, "queues", "queue0", null, false);
+      createQueue(1, "queues", "queue0", null, false);
+
+      addConsumer(0, 0, "queue0", null);
+      addConsumer(1, 1, "queue0", null);
+
+      waitForBindings(0, "queues", 1, 1, true);
+      waitForBindings(1, "queues", 1, 1, true);
+
+      waitForBindings(0, "queues", 1, 1, false);
+      waitForBindings(1, "queues", 1, 1, false);
+
+      send(0, "queues", 10, false, null);
+      verifyReceiveRoundRobin(10, 0, 1);
+      verifyNotReceive(0, 1);
+
+      removeConsumer(1);
+      
+      closeSessionFactory(1);
+      
+      stopServers(1);
+      
+      Thread.sleep(12000);
+
+      System.out.println(clusterDescription(servers[0]));
+
+      startServers(1);
+
+      setupSessionFactory(1, isNetty());
+
+      createQueue(1, "queues", "queue0", null, false);
+
+      addConsumer(1, 1, "queue0", null);
+
+      waitForBindings(0, "queues", 1, 1, true);
+      waitForBindings(1, "queues", 1, 1, true);
+
+      System.out.println(clusterDescription(servers[0]));
+      System.out.println(clusterDescription(servers[1]));
+      
+      waitForBindings(1, "queues", 1, 1, false);
+      waitForBindings(0, "queues", 1, 1, false);
+
+      send(0, "queues", 10, false, null);
+      verifyReceiveRoundRobin(10, 0, 1);
+      verifyNotReceive(0, 1);
+
+       stopServers(0, 1);
+   }
 }

Added: branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/TwoWayTwoNodeClusterWithDiscoveryTest.java
===================================================================
--- branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/TwoWayTwoNodeClusterWithDiscoveryTest.java	                        (rev 0)
+++ branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/TwoWayTwoNodeClusterWithDiscoveryTest.java	2010-08-11 09:13:49 UTC (rev 9525)
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2010 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.tests.integration.cluster.distribution;
+
+/**
+ * A TwoWayTwoNodeClusterWithDiscoveryTest
+ *
+ * @author jmesnil
+ *
+ *
+ */
+public class TwoWayTwoNodeClusterWithDiscoveryTest extends TwoWayTwoNodeClusterTest
+{
+
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   protected static final String groupAddress = "230.1.2.3";
+
+   protected static final int groupPort = 6745;
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   @Override
+   protected void setupClusters()
+   {
+      setupDiscoveryClusterConnection("cluster0", 0, "dg1", "queues", false, 1, isNetty());
+      setupDiscoveryClusterConnection("cluster1", 1, "dg1", "queues", false, 1, isNetty());
+   }
+
+   @Override
+   protected void setupServers()
+   {
+      setupServerWithDiscovery(0, groupAddress, groupPort, isFileStorage(), isNetty(), false);
+      setupServerWithDiscovery(1, groupAddress, groupPort, isFileStorage(), isNetty(), false);
+   }
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+
+}



More information about the hornetq-commits mailing list