[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