[jboss-cvs] JBoss Messaging SVN: r1781 - in trunk/tests/src/org/jboss/test/messaging/jms/clustering: . base

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Dec 13 01:32:48 EST 2006


Author: ovidiu.feodorov at jboss.com
Date: 2006-12-13 01:32:45 -0500 (Wed, 13 Dec 2006)
New Revision: 1781

Added:
   trunk/tests/src/org/jboss/test/messaging/jms/clustering/FailoverTest.java
Modified:
   trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedDestinationsTest.java
   trunk/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java
   trunk/tests/src/org/jboss/test/messaging/jms/clustering/SimpleClusteringTest.java
   trunk/tests/src/org/jboss/test/messaging/jms/clustering/base/ClusteringTestBase.java
Log:
Modified ClusteringTestBase to start a variable number of cluster nodes.
Must be set up as 'nodeCount' in the test's setUp().


Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedDestinationsTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedDestinationsTest.java	2006-12-13 05:30:32 UTC (rev 1780)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedDestinationsTest.java	2006-12-13 06:32:45 UTC (rev 1781)
@@ -126,14 +126,17 @@
 
    protected void setUp() throws Exception
    {
+      nodeCount = 3;
+
       super.setUp();
+
+      log.debug("setup done");
    }
 
    protected void tearDown() throws Exception
    {
       super.tearDown();
    }
-  
 
    /*
     * Create a consumer on each queue on each node.
@@ -156,7 +159,7 @@
          
          log.info("Created connections");
          
-         checkConnectionsDifferentServers(conn1, conn2, conn3);
+         checkConnectionsDifferentServers(new Connection[] {conn1, conn2, conn3});
 
          Session sess1 = conn1.createSession(false, Session.AUTO_ACKNOWLEDGE);
          Session sess2 = conn2.createSession(false, Session.AUTO_ACKNOWLEDGE);
@@ -164,9 +167,9 @@
          
          log.info("Created sessions");
 
-         MessageConsumer cons1 = sess1.createConsumer(queue0);
-         MessageConsumer cons2 = sess2.createConsumer(queue1);
-         MessageConsumer cons3 = sess3.createConsumer(queue2);
+         MessageConsumer cons1 = sess1.createConsumer(queue[0]);
+         MessageConsumer cons2 = sess2.createConsumer(queue[1]);
+         MessageConsumer cons3 = sess3.createConsumer(queue[2]);
          
          log.info("Created consumers");
 
@@ -176,7 +179,7 @@
 
          // Send at node 0
 
-         MessageProducer prod = sess1.createProducer(queue0);
+         MessageProducer prod = sess1.createProducer(queue[0]);
 
          prod.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
 
@@ -210,7 +213,7 @@
 
          // Send at node 1
 
-         MessageProducer prod1 = sess2.createProducer(queue1);
+         MessageProducer prod1 = sess2.createProducer(queue[1]);
 
          prod1.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
 
@@ -240,7 +243,7 @@
 
          // Send at node 2
 
-         MessageProducer prod2 = sess3.createProducer(queue2);
+         MessageProducer prod2 = sess3.createProducer(queue[2]);
 
          prod2.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
 
@@ -308,19 +311,19 @@
          
          log.info("Created connections");
          
-         checkConnectionsDifferentServers(conn1, conn2, conn3);
+         checkConnectionsDifferentServers(new Connection[] {conn1, conn2, conn3});
 
          Session sess1 = conn1.createSession(false, Session.AUTO_ACKNOWLEDGE);
          Session sess2 = conn2.createSession(false, Session.AUTO_ACKNOWLEDGE);
          Session sess3 = conn3.createSession(false, Session.AUTO_ACKNOWLEDGE);
 
-         MessageConsumer cons1 = sess1.createConsumer(topic0);
-         MessageConsumer cons2 = sess2.createConsumer(topic1);
-         MessageConsumer cons3 = sess3.createConsumer(topic2);
+         MessageConsumer cons1 = sess1.createConsumer(topic[0]);
+         MessageConsumer cons2 = sess2.createConsumer(topic[1]);
+         MessageConsumer cons3 = sess3.createConsumer(topic[2]);
 
-         MessageConsumer cons4 = sess1.createConsumer(topic0);
+         MessageConsumer cons4 = sess1.createConsumer(topic[0]);
 
-         MessageConsumer cons5 = sess2.createConsumer(topic1);
+         MessageConsumer cons5 = sess2.createConsumer(topic[1]);
 
          conn1.start();
          conn2.start();
@@ -328,7 +331,7 @@
 
          // Send at node 0
 
-         MessageProducer prod = sess1.createProducer(topic0);
+         MessageProducer prod = sess1.createProducer(topic[0]);
 
          prod.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
 
@@ -426,19 +429,19 @@
          
          log.info("Created connections");
          
-         checkConnectionsDifferentServers(conn1, conn2, conn3);
+         checkConnectionsDifferentServers(new Connection[] {conn1, conn2, conn3});
 
          Session sess1 = conn1.createSession(false, Session.AUTO_ACKNOWLEDGE);
          Session sess2 = conn2.createSession(false, Session.AUTO_ACKNOWLEDGE);
          Session sess3 = conn3.createSession(false, Session.AUTO_ACKNOWLEDGE);
 
-         MessageConsumer cons1 = sess1.createConsumer(topic0);
-         MessageConsumer cons2 = sess2.createConsumer(topic1);
-         MessageConsumer cons3 = sess3.createConsumer(topic2);
+         MessageConsumer cons1 = sess1.createConsumer(topic[0]);
+         MessageConsumer cons2 = sess2.createConsumer(topic[1]);
+         MessageConsumer cons3 = sess3.createConsumer(topic[2]);
 
-         MessageConsumer cons4 = sess1.createConsumer(topic0, "COLOUR='red'");
+         MessageConsumer cons4 = sess1.createConsumer(topic[0], "COLOUR='red'");
 
-         MessageConsumer cons5 = sess2.createConsumer(topic1, "COLOUR='blue'");
+         MessageConsumer cons5 = sess2.createConsumer(topic[1], "COLOUR='blue'");
 
          conn1.start();
          conn2.start();
@@ -446,7 +449,7 @@
 
          // Send at node 0
 
-         MessageProducer prod = sess1.createProducer(topic0);
+         MessageProducer prod = sess1.createProducer(topic[0]);
 
          prod.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
 
@@ -566,7 +569,7 @@
          
          log.info("Created connections");
          
-         checkConnectionsDifferentServers(conn1, conn2, conn3);
+         checkConnectionsDifferentServers(new Connection[] {conn1, conn2, conn3});
 
          conn1.setClientID("wib1");
          conn2.setClientID("wib1");
@@ -602,11 +605,11 @@
          }
          catch (Exception ignore) {}
 
-         MessageConsumer cons1 = sess1.createDurableSubscriber(topic0, "sub");
-         MessageConsumer cons2 = sess2.createDurableSubscriber(topic1, "sub1");
-         MessageConsumer cons3 = sess3.createDurableSubscriber(topic2, "sub2");
-         MessageConsumer cons4 = sess1.createDurableSubscriber(topic0, "sub3");
-         MessageConsumer cons5 = sess2.createDurableSubscriber(topic1, "sub4");
+         MessageConsumer cons1 = sess1.createDurableSubscriber(topic[0], "sub");
+         MessageConsumer cons2 = sess2.createDurableSubscriber(topic[1], "sub1");
+         MessageConsumer cons3 = sess3.createDurableSubscriber(topic[2], "sub2");
+         MessageConsumer cons4 = sess1.createDurableSubscriber(topic[0], "sub3");
+         MessageConsumer cons5 = sess2.createDurableSubscriber(topic[1], "sub4");
 
          conn1.start();
          conn2.start();
@@ -614,7 +617,7 @@
 
          // Send at node 0
 
-         MessageProducer prod = sess1.createProducer(topic0);
+         MessageProducer prod = sess1.createProducer(topic[0]);
 
          prod.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
 
@@ -704,13 +707,10 @@
       }
    }
 
-
-
-
    /*
     * Create shared durable subs on multiple nodes, the local instance should always get the message
     */
-   protected void clusteredTopicSharedDurableLocalConsumer(boolean persistent) throws Exception
+   private void clusteredTopicSharedDurableLocalConsumer(boolean persistent) throws Exception
    {
       Connection conn1 = null;
       Connection conn2 = null;
@@ -726,7 +726,7 @@
          
          log.info("Created connections");
          
-         checkConnectionsDifferentServers(conn1, conn2, conn3);
+         checkConnectionsDifferentServers(new Connection[] {conn1, conn2, conn3});
          conn1.setClientID("wib1");
          conn2.setClientID("wib1");
          conn3.setClientID("wib1");
@@ -751,9 +751,9 @@
          }
          catch (Exception ignore) {}
 
-         MessageConsumer cons1 = sess1.createDurableSubscriber(topic0, "sub");
-         MessageConsumer cons2 = sess2.createDurableSubscriber(topic1, "sub");
-         MessageConsumer cons3 = sess3.createDurableSubscriber(topic2, "sub");
+         MessageConsumer cons1 = sess1.createDurableSubscriber(topic[0], "sub");
+         MessageConsumer cons2 = sess2.createDurableSubscriber(topic[1], "sub");
+         MessageConsumer cons3 = sess3.createDurableSubscriber(topic[2], "sub");
 
          conn1.start();
          conn2.start();
@@ -761,7 +761,7 @@
 
          // Send at node 0
 
-         MessageProducer prod = sess1.createProducer(topic0);
+         MessageProducer prod = sess1.createProducer(topic[0]);
 
          prod.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
 
@@ -793,7 +793,7 @@
 
          // Send at node 1
 
-         MessageProducer prod1 = sess2.createProducer(topic1);
+         MessageProducer prod1 = sess2.createProducer(topic[1]);
 
          prod1.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
 
@@ -823,7 +823,7 @@
 
          // Send at node 2
 
-         MessageProducer prod2 = sess3.createProducer(topic2);
+         MessageProducer prod2 = sess3.createProducer(topic[2]);
 
          prod2.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
 
@@ -887,7 +887,7 @@
     * should round robin
     * note that this test assumes round robin
     */
-   protected void clusteredTopicSharedDurableNoLocalSub(boolean persistent) throws Exception
+   private void clusteredTopicSharedDurableNoLocalSub(boolean persistent) throws Exception
    {
       Connection conn1 = null;
       Connection conn2 = null;
@@ -903,7 +903,7 @@
          
          log.info("Created connections");
          
-         checkConnectionsDifferentServers(conn1, conn2, conn3);
+         checkConnectionsDifferentServers(new Connection[] {conn1, conn2, conn3});
          
          conn2.setClientID("wib1");
          conn3.setClientID("wib1");
@@ -923,8 +923,8 @@
          }
          catch (Exception ignore) {}
 
-         MessageConsumer cons1 = sess2.createDurableSubscriber(topic1, "sub");
-         MessageConsumer cons2 = sess3.createDurableSubscriber(topic2, "sub");
+         MessageConsumer cons1 = sess2.createDurableSubscriber(topic[1], "sub");
+         MessageConsumer cons2 = sess3.createDurableSubscriber(topic[2], "sub");
 
          conn2.start();
          conn3.start();
@@ -933,7 +933,7 @@
 
          //Should round robin between the other 2 since there is no active consumer on sub  on node 0
 
-         MessageProducer prod = sess1.createProducer(topic0);
+         MessageProducer prod = sess1.createProducer(topic[0]);
 
          prod.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
 

Added: trunk/tests/src/org/jboss/test/messaging/jms/clustering/FailoverTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/FailoverTest.java	2006-12-13 05:30:32 UTC (rev 1780)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/FailoverTest.java	2006-12-13 06:32:45 UTC (rev 1781)
@@ -0,0 +1,57 @@
+/**
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.test.messaging.jms.clustering;
+
+import org.jboss.test.messaging.jms.clustering.base.ClusteringTestBase;
+
+/**
+ * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
+ * @version <tt>$Revision$</tt>
+ *
+ * $Id$
+ */
+public class FailoverTest extends ClusteringTestBase
+{
+   // Constants -----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   public FailoverTest(String name)
+   {
+      super(name);
+   }
+
+   // Public --------------------------------------------------------
+
+   public void simpleFailover() throws Exception
+   {
+
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+   }
+
+   protected void tearDown() throws Exception
+   {
+      super.tearDown();
+   }
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+
+}

Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java	2006-12-13 05:30:32 UTC (rev 1780)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java	2006-12-13 06:32:45 UTC (rev 1781)
@@ -77,7 +77,7 @@
     */
    public void testRoundRobinConnectionCreation() throws Exception
    {
-      JBossConnectionFactory factory =  (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+      JBossConnectionFactory factory =  (JBossConnectionFactory )ic[0].lookup("/ConnectionFactory");
       
       ClusteredClientConnectionFactoryDelegate delegate =
          (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
@@ -200,7 +200,7 @@
    public void testDefaultFailoverMap() throws Exception
    {     
       {
-         JBossConnectionFactory factory =  (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+         JBossConnectionFactory factory =  (JBossConnectionFactory )ic[0].lookup("/ConnectionFactory");
          
          ClusteredClientConnectionFactoryDelegate delegate =
             (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
@@ -259,7 +259,7 @@
       {         
          //Lookup another connection factory
          
-         JBossConnectionFactory factory =  (JBossConnectionFactory )ic1.lookup("/ConnectionFactory");
+         JBossConnectionFactory factory =  (JBossConnectionFactory )ic[1].lookup("/ConnectionFactory");
          
          log.info("Got connection factory");
          
@@ -307,7 +307,7 @@
       {         
          //Lookup another connection factory
          
-         JBossConnectionFactory factory =  (JBossConnectionFactory )ic2.lookup("/ConnectionFactory");
+         JBossConnectionFactory factory =  (JBossConnectionFactory )ic[2].lookup("/ConnectionFactory");
          
          ClusteredClientConnectionFactoryDelegate delegate =
             (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
@@ -333,7 +333,7 @@
       ServerManagement.start("all", 0);
       
       {
-         JBossConnectionFactory factory =  (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+         JBossConnectionFactory factory =  (JBossConnectionFactory )ic[0].lookup("/ConnectionFactory");
          
          log.info("Got connection factory");
          
@@ -374,7 +374,7 @@
       ServerManagement.start("all", 1);
       
       {
-         JBossConnectionFactory factory =  (JBossConnectionFactory )ic1.lookup("/ConnectionFactory");
+         JBossConnectionFactory factory =  (JBossConnectionFactory )ic[1].lookup("/ConnectionFactory");
          
          log.info("Got connection factory");
          
@@ -420,7 +420,7 @@
    
    public void testSimpleFailover() throws Exception
    {
-      JBossConnectionFactory factory =  (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+      JBossConnectionFactory factory =  (JBossConnectionFactory )ic[0].lookup("/ConnectionFactory");
       
       ClusteredClientConnectionFactoryDelegate delegate =
          (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
@@ -484,9 +484,9 @@
                            
          Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
          
-         MessageProducer prod = sess.createProducer(queue1);
+         MessageProducer prod = sess.createProducer(queue[1]);
          
-         MessageConsumer cons = sess.createConsumer(queue1);
+         MessageConsumer cons = sess.createConsumer(queue[1]);
          
          final int NUM_MESSAGES = 100;
          
@@ -497,7 +497,7 @@
             prod.send(tm);
          }
          
-         //So now, messages should be in queue1 on server 1
+         //So now, messages should be in queue[1] on server 1
          //So we now kill server 1
          //Which should cause transparent failover of connection conn onto server 1
          
@@ -555,7 +555,7 @@
    
    public void testFailoverWithUnackedMessagesClientAcknowledge() throws Exception
    {
-      JBossConnectionFactory factory =  (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+      JBossConnectionFactory factory =  (JBossConnectionFactory )ic[0].lookup("/ConnectionFactory");
       
       ClusteredClientConnectionFactoryDelegate delegate =
          (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
@@ -618,9 +618,9 @@
                            
          Session sess = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
          
-         MessageProducer prod = sess.createProducer(queue1);
+         MessageProducer prod = sess.createProducer(queue[1]);
          
-         MessageConsumer cons = sess.createConsumer(queue1);
+         MessageConsumer cons = sess.createConsumer(queue[1]);
          
          final int NUM_MESSAGES = 100;
          
@@ -645,7 +645,7 @@
             assertEquals("message:" + i, tm.getText());
          }
          
-         //So now, messages should be in queue1 on server 1
+         //So now, messages should be in queue[1] on server 1
          //So we now kill server 1
          //Which should cause transparent failover of connection conn onto server 1
          
@@ -699,7 +699,7 @@
          
          sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
          
-         cons = sess.createConsumer(queue1);
+         cons = sess.createConsumer(queue[1]);
          
          Message m = cons.receive(500);
          
@@ -726,7 +726,7 @@
    
    public void testFailoverWithUnackedMessagesTransactional() throws Exception
    {
-      JBossConnectionFactory factory =  (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+      JBossConnectionFactory factory =  (JBossConnectionFactory )ic[0].lookup("/ConnectionFactory");
       
       ClusteredClientConnectionFactoryDelegate delegate =
          (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
@@ -789,9 +789,9 @@
                            
          Session sess = conn.createSession(true, Session.SESSION_TRANSACTED);
          
-         MessageProducer prod = sess.createProducer(queue1);
+         MessageProducer prod = sess.createProducer(queue[1]);
          
-         MessageConsumer cons = sess.createConsumer(queue1);
+         MessageConsumer cons = sess.createConsumer(queue[1]);
          
          final int NUM_MESSAGES = 100;
          
@@ -818,7 +818,7 @@
             assertEquals("message:" + i, tm.getText());
          }
          
-         //So now, messages should be in queue1 on server 1
+         //So now, messages should be in queue[1] on server 1
          //So we now kill server 1
          //Which should cause transparent failover of connection conn onto server 1
          
@@ -872,7 +872,7 @@
          
          sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
          
-         cons = sess.createConsumer(queue1);
+         cons = sess.createConsumer(queue[1]);
          
          Message m = cons.receive(500);
          
@@ -902,7 +902,7 @@
    
 //   public void testEvenSimplerFailover() throws Exception
 //   {
-//      JBossConnectionFactory factory =  (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+//      JBossConnectionFactory factory =  (JBossConnectionFactory )ic[0].lookup("/ConnectionFactory");
 //                  
 //      Connection conn = null;
 //      
@@ -942,7 +942,7 @@
 // {
 // try
 // {
-// JBossConnectionFactory factory =  (JBossConnectionFactory )ic2.lookup("/ConnectionFactory");
+// JBossConnectionFactory factory =  (JBossConnectionFactory )ic[2].lookup("/ConnectionFactory");
 // ClusteredClientConnectionFactoryDelegate delegate =
 // (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
 // log.info ("number of delegates = " + delegate.getDelegates().length);
@@ -971,7 +971,7 @@
 // 
 // ServerManagement.log(ServerManagement.INFO,"##### Looking up ConnectionFactory at testConnectionFactoryConnect");
 // 
-// factory =  (JBossConnectionFactory )ic2.lookup("/ConnectionFactory");
+// factory =  (JBossConnectionFactory )ic[2].lookup("/ConnectionFactory");
 // delegate = (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
 // 
 // assertEquals(2, ServerManagement.getServer(0).getNumberOfNodesOnCluster());
@@ -997,7 +997,7 @@
 // assertTrue(jbcf1.getDelegate() instanceof ClusteredClientConnectionFactoryDelegate);
 // 
 // log.info(">>Lookup Queue");
-// Destination destination = (Destination) ic2.lookup("topic/testDistributedTopic");
+// Destination destination = (Destination) ic[2].lookup("topic/testDistributedTopic");
 // 
 // log.info("Creating connection server1");
 // JBossConnection conn = (JBossConnection) cf.createConnection();
@@ -1083,7 +1083,7 @@
 // log.info("++testTopicSubscriber");
 // 
 // log.info(">>Lookup Queue");
-// Destination destination = (Destination) ic1.lookup("queue/testDistributedQueue");
+// Destination destination = (Destination) ic[1].lookup("queue/testDistributedQueue");
 // 
 // log.info("Creating connection server1");
 // JBossConnection conn = (JBossConnection) cf1.createConnection();
@@ -1175,7 +1175,11 @@
    
    protected void setUp() throws Exception
    {
+      nodeCount = 3;
+
       super.setUp();
+
+      log.debug("setup done");
    }
    
    protected void tearDown() throws Exception

Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/SimpleClusteringTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/SimpleClusteringTest.java	2006-12-13 05:30:32 UTC (rev 1780)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/SimpleClusteringTest.java	2006-12-13 06:32:45 UTC (rev 1781)
@@ -101,11 +101,6 @@
 
    }
    
-//   public void testKill() throws Exception
-//   {
-//      ServerManagement.getServer(0).kill();
-//   }
-
    public void testDistributedTopic() throws Exception
    {
       Connection conn = null;
@@ -126,15 +121,15 @@
          SimpleMessageListener ml1 = new SimpleMessageListener();
          SimpleMessageListener ml2 = new SimpleMessageListener();
 
-         s.createConsumer(topic0).setMessageListener(ml);
-         s1.createConsumer(topic0).setMessageListener(ml1);
-         s2.createConsumer(topic0).setMessageListener(ml2);
+         s.createConsumer(topic[0]).setMessageListener(ml);
+         s1.createConsumer(topic[0]).setMessageListener(ml1);
+         s2.createConsumer(topic[0]).setMessageListener(ml2);
 
          conn.start();
          conn1.start();
          conn2.start();
 
-         s.createProducer(topic0).send(s.createTextMessage("boom"));
+         s.createProducer(topic[0]).send(s.createTextMessage("boom"));
 
          TextMessage rm = null;
 
@@ -163,9 +158,7 @@
          {
             conn2.close();
          }
-
       }
-
    }
 
    // Package protected ---------------------------------------------
@@ -174,6 +167,8 @@
 
    protected void setUp() throws Exception
    {
+      nodeCount = 3;
+
       super.setUp();
 
       log.debug("setup done");

Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/base/ClusteringTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/base/ClusteringTestBase.java	2006-12-13 05:30:32 UTC (rev 1780)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/base/ClusteringTestBase.java	2006-12-13 06:32:45 UTC (rev 1781)
@@ -40,6 +40,7 @@
 /**
  * @author <a href="mailto:tim.fox at jboss.org">Tim Fox</a>
  * @author <a href="mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
+ * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
  * @version <tt>$Revision:$</tt>
  * $Id:$
  */
@@ -51,20 +52,15 @@
 
    // Attributes ----------------------------------------------------
 
-   protected Context ic0;
-   protected Context ic1;
-   protected Context ic2;
+   protected int nodeCount;
 
-   protected Queue queue0;
-   protected Queue queue1;
-   protected Queue queue2;
+   protected Context[] ic;
+   protected Queue queue[];
+   protected Topic topic[];
 
-   protected Topic topic0;
-   protected Topic topic1;
-   protected Topic topic2;
-   
-   //No need to have 3 conncetion factories since a clustered connection factory
-   //will create connections in a round robin fashion on different servers
+   // No need to have multiple conncetion factories since a clustered connection factory will create
+   // connections in a round robin fashion on different servers.
+
    protected ConnectionFactory cf;
 
    // Constructors --------------------------------------------------
@@ -84,183 +80,128 @@
    {
       super.setUp();
 
-      String banner =
-         "####################################################### Start " +
-         (isRemote() ? "REMOTE" : "IN-VM") + " test: " + getName();
+      if (nodeCount < 1)
+      {
+         throw new Exception("Node count not defined! Initalize nodeCount in the test's setUp()");
+      }
 
-      ServerManagement.log(ServerManagement.INFO,banner);
+      ic = new Context[nodeCount];
+      queue = new Queue[nodeCount];
+      topic = new Topic[nodeCount];
 
-      try
+      for(int i = 0; i < nodeCount; i++)
       {
-         startServer(0);
-         startServer(1);
-         startServer(2);
+         ServerManagement.start("all", i);
+         ServerManagement.deployClusteredQueue("testDistributedQueue", i);
+         ServerManagement.deployClusteredTopic("testDistributedTopic", i);
 
-         log.info("Deployed destinations ok");
+         ic[i] = new InitialContext(ServerManagement.getJNDIEnvironment(i));
+         queue[i] = (Queue)ic[i].lookup("queue/testDistributedQueue");
+         topic[i] = (Topic)ic[i].lookup("topic/testDistributedTopic");
+      }
 
-         ic0 = new InitialContext(ServerManagement.getJNDIEnvironment(0));
-         ic1 = new InitialContext(ServerManagement.getJNDIEnvironment(1));
-         ic2 = new InitialContext(ServerManagement.getJNDIEnvironment(2));
+      // We only need to lookup one connection factory since it will be clustered so we will
+      // actually create connections on different servers (round robin).
+      cf = (ConnectionFactory)ic[0].lookup("/ConnectionFactory");
 
-         //We only need to lookup one connection factory since it will be a clustered cf
-         //so we will actually create connections on different servers (round robin)
-         cf = (ConnectionFactory)ic0.lookup("/ConnectionFactory");
-
-         queue0 = (Queue)ic0.lookup("queue/testDistributedQueue");
-         queue1 = (Queue)ic1.lookup("queue/testDistributedQueue");
-         queue2 = (Queue)ic2.lookup("queue/testDistributedQueue");
-
-         topic0 = (Topic)ic0.lookup("topic/testDistributedTopic");
-         topic1 = (Topic)ic1.lookup("topic/testDistributedTopic");
-         topic2 = (Topic)ic2.lookup("topic/testDistributedTopic");
-
-         drainQueues();
-      }
-      catch (Exception e)
-      {
-         e.printStackTrace();
-         throw e;
-      }
+      drainQueues();
    }
 
    protected void tearDown() throws Exception
    {
-      try
-      {                  
-         if (!ServerManagement.isKilled(0) && ServerManagement.getServer(0).isStarted())
-         {
-            ServerManagement.log(ServerManagement.INFO, "Undeploying Server 0", 0);
-            ServerManagement.undeployQueue("testDistributedQueue", 0);
-            ServerManagement.undeployTopic("testDistributedTopic", 0);
-         }
 
-         if (!ServerManagement.isKilled(1) && ServerManagement.getServer(1).isStarted())
+      for(int i = 0; i < nodeCount; i++)
+      {
+         if (!ServerManagement.isKilled(i) && ServerManagement.getServer(i).isStarted())
          {
-            ServerManagement.log(ServerManagement.INFO, "Undeploying Server 1", 1);
-            ServerManagement.undeployQueue("testDistributedQueue", 1);
-            ServerManagement.undeployTopic("testDistributedTopic", 1);
+            ServerManagement.log(ServerManagement.INFO, "Undeploying Server " + i, i);
+            ServerManagement.undeployQueue("testDistributedQueue", i);
+            ServerManagement.undeployTopic("testDistributedTopic", i);
          }
 
-         if (!ServerManagement.isKilled(2) && ServerManagement.getServer(2).isStarted())
-         {
-            ServerManagement.log(ServerManagement.INFO, "Undeploying Server 2", 2);
-            ServerManagement.undeployQueue("testDistributedQueue", 2);
-            ServerManagement.undeployTopic("testDistributedTopic", 2);
-         }
+         ic[i].close();
+      }
 
-         ic0.close();
-         ic1.close();
-         ic2.close();
+      super.tearDown();
+   }
 
-         super.tearDown();
-      }
-      catch (Exception e)
+   protected void checkConnectionsDifferentServers(Connection[] conn) throws Exception
+   {
+      int[] serverID = new int[conn.length];
+      for(int i = 0; i < conn.length; i++)
       {
-         e.printStackTrace();
-         throw e;
+         ConnectionState state = (ConnectionState)(((DelegateSupport)((JBossConnection)conn[i]).
+            getDelegate()).getState());
+         serverID[i] = state.getServerID();
       }
-   }
 
-   protected void checkConnectionsDifferentServers(Connection conn, Connection conn1, Connection conn2)
-   {
-      ConnectionState state0 =
-         (ConnectionState)(((DelegateSupport)((JBossConnection)conn).getDelegate()).getState());
-      ConnectionState state1 =
-         (ConnectionState)(((DelegateSupport)((JBossConnection)conn1).getDelegate()).getState());
-      ConnectionState state2 =
-         (ConnectionState)(((DelegateSupport)((JBossConnection)conn2).getDelegate()).getState());
+      for(int i = 0; i < nodeCount; i++)
+      {
+         for(int j = 0; j < nodeCount; j++)
+         {
+            if (i == j)
+            {
+               continue;
+            }
 
-      int serverID0 = state0.getServerID();
-      int serverID1 = state1.getServerID();
-      int serverID2 = state2.getServerID();
-
-      log.info("Server 0 ID: " + serverID0);
-      log.info("Server 1 ID: " + serverID1);
-      log.info("Server 2 ID: " + serverID2);
-
-      assertTrue(serverID0 != serverID1);
-      assertTrue(serverID1 != serverID2);
+            if (serverID[i] == serverID[j])
+            {
+               fail("Connections " + i + " and " + j +
+                  " are pointing to the same physical node (" + serverID[i] + ")");
+            }
+         }
+      }
    }
 
-   protected void drainQueues() throws Exception
+   // Private -------------------------------------------------------
+
+   private void drainQueues() throws Exception
    {
-      Connection conn0 = null;
-      Connection conn1 = null;
-      Connection conn2 = null;
+      Connection[] conn = new Connection[nodeCount];
+      int[] serverID = new int[nodeCount];
 
       try
       {
-         //Since the cf is clustered, this will create connections on 3 different nodes
-         //(round robin)
-         conn0 = cf.createConnection();
-         conn1 = cf.createConnection();
-         conn2 = cf.createConnection();
+         // TODO This is a dangerous hack, relying on an arbitrary distribution algorithm
+         // (round-robin in this case). If we want a connection to a specific node, we should be
+         // able to look up something like "/ConnectionFactory0"
 
-         checkConnectionsDifferentServers(conn0, conn1, conn2);
+         for(int i = 0; i < nodeCount; i++)
+         {
+            conn[i] = cf.createConnection();
+         }
 
-         Session sess0 = conn0.createSession(false, Session.AUTO_ACKNOWLEDGE);
-         Session sess1 = conn1.createSession(false, Session.AUTO_ACKNOWLEDGE);
-         Session sess2 = conn2.createSession(false, Session.AUTO_ACKNOWLEDGE);
+         // Safety check, making sure we get connections to distinct nodes
 
-         MessageConsumer cons0 = sess0.createConsumer(queue0);
-         MessageConsumer cons1 = sess1.createConsumer(queue1);
-         MessageConsumer cons2 = sess2.createConsumer(queue2);
+         checkConnectionsDifferentServers(conn);
 
-         conn0.start();
-         conn1.start();
-         conn2.start();
-
-         Message msg = null;
-
-         do
+         for(int i = 0; i < nodeCount; i++)
          {
-            msg = cons0.receive(1000);
-            log.info("1 Drained message " + msg);
-         }
-         while (msg != null);
+            Session s = conn[i].createSession(false, Session.AUTO_ACKNOWLEDGE);
+            MessageConsumer c = s.createConsumer(queue[i]);
+            conn[i].start();
 
-         do
-         {
-            msg = cons1.receive(1000);
-            log.info("2 Drained message " + msg);
+            Message msg = null;
+            do
+            {
+               msg = c.receive(1000);
+               log.info("Drained message " + msg + " on node " + i);
+            }
+            while (msg != null);
          }
-         while (msg != null);
-
-         do
-         {
-            msg = cons2.receive(1000);
-            log.info("3 Drained message " + msg);
-         }
-         while (msg != null);
       }
       finally
       {
-         if (conn0 != null)
+         for(int i = 0; i < nodeCount; i++)
          {
-            conn0.close();
+            if (conn[i] != null)
+            {
+               conn[i].close();
+            }
          }
-
-         if (conn1 != null)
-         {
-            conn1.close();
-         }
-
-         if (conn2 != null)
-         {
-            conn2.close();
-         }
       }
    }
 
-   // Private -------------------------------------------------------
-
-   private void startServer(int serverIndex) throws Exception
-   {
-      ServerManagement.start("all", serverIndex);
-      ServerManagement.deployClusteredQueue("testDistributedQueue", serverIndex);
-      ServerManagement.deployClusteredTopic("testDistributedTopic", serverIndex);
-   }
-
    // Inner classes -------------------------------------------------
 
 }




More information about the jboss-cvs-commits mailing list