[jboss-cvs] JBoss Messaging SVN: r1737 - branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Dec 9 10:22:53 EST 2006


Author: timfox
Date: 2006-12-09 10:22:51 -0500 (Sat, 09 Dec 2006)
New Revision: 1737

Modified:
   branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java
Log:
Extended test



Modified: branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java
===================================================================
--- branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java	2006-12-09 15:11:31 UTC (rev 1736)
+++ branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java	2006-12-09 15:22:51 UTC (rev 1737)
@@ -190,58 +190,61 @@
    }
  
    /*
-    * Test that the failover mapping is created correctly
+    * Test that the failover mapping is created correctly and updated properly when nodes leave
+    * or join
     */
    public void testDefaultFailoverMap() throws Exception
    {     
-      JBossConnectionFactory factory =  (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+      {
+         JBossConnectionFactory factory =  (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+         
+         ClusteredClientConnectionFactoryDelegate delegate =
+            (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
+         
+         assertEquals(3, ServerManagement.getServer(0).getNumberOfNodesOnCluster());
+         
+         ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
+         
+         ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
+         
+         ClientConnectionFactoryDelegate cf2 = delegate.getDelegates()[1];
+         
+         ClientConnectionFactoryDelegate cf3 = delegate.getDelegates()[2];
+         
+         //The order here depends on the order the servers were started in
+         
+         //If any servers get stopped and then started then the order will change
+    
+         log.info("cf1 serverid=" + cf1.getServerId());
+         
+         log.info("cf2 serverid=" + cf2.getServerId());
+         
+         log.info("cf3 serverid=" + cf3.getServerId());
+         
+         
+         assertEquals(0, cf1.getServerId());
+         
+         assertEquals(1, cf2.getServerId());
+         
+         assertEquals(2, cf3.getServerId());
+         
+         Map failoverMap = delegate.getFailoverMap();
+         
+         assertEquals(3, delegates.length);
+         
+         assertEquals(3, failoverMap.size());
+         
+         // Default failover policy just chooses the node to the right
+         
+         assertEquals(cf2.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
+         
+         assertEquals(cf3.getServerId(), ((Integer)failoverMap.get(new Integer(cf2.getServerId()))).intValue());
+         
+         assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf3.getServerId()))).intValue());
+         
+         assertEquals(2, ((Integer)failoverMap.get(new Integer(1))).intValue());
+      }
       
-      ClusteredClientConnectionFactoryDelegate delegate =
-         (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
-      
-      assertEquals(3, ServerManagement.getServer(0).getNumberOfNodesOnCluster());
-      
-      ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
-      
-      ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
-      
-      ClientConnectionFactoryDelegate cf2 = delegate.getDelegates()[1];
-      
-      ClientConnectionFactoryDelegate cf3 = delegate.getDelegates()[2];
-      
-      //The order here depends on the order the servers were started in
-      
-      //If any servers get stopped and then started then the order will change
- 
-      log.info("cf1 serverid=" + cf1.getServerId());
-      
-      log.info("cf2 serverid=" + cf2.getServerId());
-      
-      log.info("cf3 serverid=" + cf3.getServerId());
-      
-      
-      assertEquals(0, cf1.getServerId());
-      
-      assertEquals(1, cf2.getServerId());
-      
-      assertEquals(2, cf3.getServerId());
-      
-      Map failoverMap = delegate.getFailoverMap();
-      
-      assertEquals(3, delegates.length);
-      
-      assertEquals(3, failoverMap.size());
-      
-      // Default failover policy just chooses the node to the right
-      
-      assertEquals(cf2.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
-      
-      assertEquals(cf3.getServerId(), ((Integer)failoverMap.get(new Integer(cf2.getServerId()))).intValue());
-      
-      assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf3.getServerId()))).intValue());
-      
-      assertEquals(2, ((Integer)failoverMap.get(new Integer(1))).intValue());
-      
       //Now cleanly stop one of the servers
       
       
@@ -252,44 +255,46 @@
       
       assertEquals(2, ServerManagement.getServer(1).getNumberOfNodesOnCluster());
       
-      //Lookup another connection factory
+      {         
+         //Lookup another connection factory
+         
+         JBossConnectionFactory factory =  (JBossConnectionFactory )ic1.lookup("/ConnectionFactory");
+         
+         log.info("Got connection factory");
+         
+         ClusteredClientConnectionFactoryDelegate delegate =
+            (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
+         
+         ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
+         
+         Map failoverMap = delegate.getFailoverMap();
+         
+         log.info("Got failover map");
+         
+         assertEquals(2, delegates.length);
+         
+         ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
+         
+         ClientConnectionFactoryDelegate cf2 = delegate.getDelegates()[1];
+         
+         //Order here depends on order servers were started in
+         
+         log.info("cf1 serverid=" + cf1.getServerId());
+         
+         log.info("cf2 serverid=" + cf2.getServerId());
+         
+         assertEquals(1, cf1.getServerId());
+         
+         assertEquals(2, cf2.getServerId());
+         
+         
+         assertEquals(2, failoverMap.size());
+         
+         assertEquals(cf2.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
+         
+         assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf2.getServerId()))).intValue());
+      }
       
-      JBossConnectionFactory factory2 =  (JBossConnectionFactory )ic1.lookup("/ConnectionFactory");
-      
-      log.info("Got connection factory");
-      
-      ClusteredClientConnectionFactoryDelegate delegate2 =
-         (ClusteredClientConnectionFactoryDelegate)factory2.getDelegate();
-      
-      ClientConnectionFactoryDelegate[] delegates2 = delegate2.getDelegates();
-      
-      Map failoverMap2 = delegate2.getFailoverMap();
-      
-      log.info("Got failover map");
-      
-      assertEquals(2, delegates2.length);
-      
-      cf1 = delegate2.getDelegates()[0];
-      
-      cf2 = delegate2.getDelegates()[1];
-      
-      //Order here depends on order servers were started in
-      
-      log.info("cf1 serverid=" + cf1.getServerId());
-      
-      log.info("cf2 serverid=" + cf2.getServerId());
-      
-      assertEquals(1, cf1.getServerId());
-      
-      assertEquals(2, cf2.getServerId());
-      
-      
-      assertEquals(2, failoverMap2.size());
-      
-      assertEquals(cf2.getServerId(), ((Integer)failoverMap2.get(new Integer(cf1.getServerId()))).intValue());
-      
-      assertEquals(cf1.getServerId(), ((Integer)failoverMap2.get(new Integer(cf2.getServerId()))).intValue());
-      
       //Cleanly stop another server
       
       log.info("Server 1 is started: " + ServerManagement.getServer(1).isServerPeerStarted());
@@ -298,31 +303,123 @@
       
       assertEquals(1, ServerManagement.getServer(2).getNumberOfNodesOnCluster());
       
-      //Lookup another connection factory
+      {         
+         //Lookup another connection factory
+         
+         JBossConnectionFactory factory =  (JBossConnectionFactory )ic2.lookup("/ConnectionFactory");
+         
+         ClusteredClientConnectionFactoryDelegate delegate =
+            (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
+         
+         ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
+         
+         Map failoverMap = delegate.getFailoverMap();
+         
+         assertEquals(1, delegates.length);
+         
+         ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
+         
+         assertEquals(2, cf1.getServerId());
+         
+         
+         assertEquals(1, failoverMap.size());
+         
+         assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
+      }
+            
+      //Restart server 0
       
-      JBossConnectionFactory factory3 =  (JBossConnectionFactory )ic2.lookup("/ConnectionFactory");
+      ServerManagement.start("all", 0);
       
-      ClusteredClientConnectionFactoryDelegate delegate3 =
-         (ClusteredClientConnectionFactoryDelegate)factory3.getDelegate();
+      {
+         JBossConnectionFactory factory =  (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+         
+         log.info("Got connection factory");
+         
+         ClusteredClientConnectionFactoryDelegate delegate =
+            (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
+         
+         ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
+         
+         Map failoverMap = delegate.getFailoverMap();
+         
+         log.info("Got failover map");
+         
+         assertEquals(2, delegates.length);
+         
+         ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
+         
+         ClientConnectionFactoryDelegate cf2 = delegate.getDelegates()[1];
+         
+         log.info("cf1 serverid=" + cf1.getServerId());
+         
+         log.info("cf2 serverid=" + cf2.getServerId());
+         
+         assertEquals(2, cf1.getServerId());
+         
+         assertEquals(0, cf2.getServerId());
+         
+         
+         assertEquals(2, failoverMap.size());
+         
+         assertEquals(cf2.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
+         
+         assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf2.getServerId()))).intValue());
+      }
       
-      ClientConnectionFactoryDelegate[] delegates3 = delegate3.getDelegates();
       
-      Map failoverMap3 = delegate3.getFailoverMap();
+      //Restart server 1
       
-      assertEquals(1, delegates3.length);
+      ServerManagement.start("all", 1);
       
-      cf1 = delegate3.getDelegates()[0];
+      {
+         JBossConnectionFactory factory =  (JBossConnectionFactory )ic1.lookup("/ConnectionFactory");
+         
+         log.info("Got connection factory");
+         
+         ClusteredClientConnectionFactoryDelegate delegate =
+            (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
+         
+         ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
+         
+         Map failoverMap = delegate.getFailoverMap();
+         
+         log.info("Got failover map");
+         
+         assertEquals(3, delegates.length);
+         
+         ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
+         
+         ClientConnectionFactoryDelegate cf2 = delegate.getDelegates()[1];
+         
+         ClientConnectionFactoryDelegate cf3 = delegate.getDelegates()[2];
+         
+         log.info("cf1 serverid=" + cf1.getServerId());
+         
+         log.info("cf2 serverid=" + cf2.getServerId());
+         
+         log.info("cf3 serverid=" + cf3.getServerId());
+         
+         assertEquals(2, cf1.getServerId());
+         
+         assertEquals(0, cf2.getServerId());
+         
+         assertEquals(1, cf3.getServerId());
+         
+         
+         assertEquals(3, failoverMap.size());
+         
+         assertEquals(cf2.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
+         
+         assertEquals(cf3.getServerId(), ((Integer)failoverMap.get(new Integer(cf2.getServerId()))).intValue());
+         
+         assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf3.getServerId()))).intValue());
+      }            
+   }
+   
+   public void testSimpleFailover() throws Exception
+   {
       
-      assertEquals(2, cf1.getServerId());
-      
-      
-      assertEquals(1, failoverMap3.size());
-      
-      assertEquals(cf1.getServerId(), ((Integer)failoverMap3.get(new Integer(cf1.getServerId()))).intValue());
-            
-      //TODO - Add nodes back into the cluster - test framework currently does not support this
-      
-      
    }
    
    




More information about the jboss-cvs-commits mailing list