[jboss-cvs] JBoss Messaging SVN: r5239 - in branches/Branch_JBMESSAGING_1416: tests/src/org/jboss/test/messaging/jms and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Nov 3 03:24:56 EST 2008
Author: gaohoward
Date: 2008-11-03 03:24:55 -0500 (Mon, 03 Nov 2008)
New Revision: 5239
Modified:
branches/Branch_JBMESSAGING_1416/src/main/org/jboss/jms/client/state/ProducerState.java
branches/Branch_JBMESSAGING_1416/tests/src/org/jboss/test/messaging/jms/OrderingGroupMiscTest.java
Log:
JBMESSAGING-1416
Modified: branches/Branch_JBMESSAGING_1416/src/main/org/jboss/jms/client/state/ProducerState.java
===================================================================
--- branches/Branch_JBMESSAGING_1416/src/main/org/jboss/jms/client/state/ProducerState.java 2008-11-03 07:02:03 UTC (rev 5238)
+++ branches/Branch_JBMESSAGING_1416/src/main/org/jboss/jms/client/state/ProducerState.java 2008-11-03 08:24:55 UTC (rev 5239)
@@ -191,7 +191,7 @@
//let the session reset the ordering group
public void disableOrderingGroup()
{
- if (!isOrderingGroupEnabled)
+ if (isOrderingGroupEnabled)
{
setOrderingGroupEnabled(false);
parent.removeOrderingGroup(orderingGroupName);
Modified: branches/Branch_JBMESSAGING_1416/tests/src/org/jboss/test/messaging/jms/OrderingGroupMiscTest.java
===================================================================
--- branches/Branch_JBMESSAGING_1416/tests/src/org/jboss/test/messaging/jms/OrderingGroupMiscTest.java 2008-11-03 07:02:03 UTC (rev 5238)
+++ branches/Branch_JBMESSAGING_1416/tests/src/org/jboss/test/messaging/jms/OrderingGroupMiscTest.java 2008-11-03 08:24:55 UTC (rev 5239)
@@ -315,6 +315,165 @@
}
}
+
+ /*
+ * Send 10 ordering messages with default priority and
+ * then disable ordering, then send 1 message with high
+ * priority. Make sure the last message is received first
+ * and the other is received later but ordered.
+ */
+ public void testOrderingGroupOnOff() throws Exception
+ {
+ Connection conn = null;
+
+ try
+ {
+ conn = cf.createConnection();
+
+ Session producerSess = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+ JBossMessageProducer producer = (JBossMessageProducer)producerSess.createProducer(queue1);
+
+ conn.start();
+
+
+ TextMessage tmNormal1 = producerSess.createTextMessage("NoOrdering-1");
+ producer.send(tmNormal1, DeliveryMode.PERSISTENT, 6, Message.DEFAULT_TIME_TO_LIVE);
+ TextMessage tmNormal2 = producerSess.createTextMessage("NoOrdering-2");
+ producer.send(tmNormal2, DeliveryMode.PERSISTENT, 7, Message.DEFAULT_TIME_TO_LIVE);
+
+ producer.enableOrderingGroup(null);
+ //sending out ordering messages with priorities ranging from 0 to 5;
+ for (int i = 0; i < 10; i++)
+ {
+ TextMessage tm = producerSess.createTextMessage("Ordering" + i);
+ producer.send(tm, DeliveryMode.PERSISTENT, i%6, Message.DEFAULT_TIME_TO_LIVE);
+ }
+
+ producer.disableOrderingGroup();
+
+ TextMessage tmNormal3 = producerSess.createTextMessage("NoOrdering-3");
+ producer.send(tmNormal3, DeliveryMode.PERSISTENT, 8, Message.DEFAULT_TIME_TO_LIVE);
+ TextMessage tmNormal4 = producerSess.createTextMessage("NoOrdering-4");
+ producer.send(tmNormal4, DeliveryMode.PERSISTENT, 9, Message.DEFAULT_TIME_TO_LIVE);
+
+ Session consumerSess = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+ MessageConsumer consumer = consumerSess.createConsumer(queue1);
+
+ TextMessage rmNormal = (TextMessage)consumer.receive(1000);
+ assertNotNull(rmNormal);
+ assertEquals("NoOrdering-4", rmNormal.getText());
+
+ rmNormal = (TextMessage)consumer.receive(1000);
+ assertNotNull(rmNormal);
+ assertEquals("NoOrdering-3", rmNormal.getText());
+
+ rmNormal = (TextMessage)consumer.receive(1000);
+ assertNotNull(rmNormal);
+ assertEquals("NoOrdering-2", rmNormal.getText());
+
+ rmNormal = (TextMessage)consumer.receive(1000);
+ assertNotNull(rmNormal);
+ assertEquals("NoOrdering-1", rmNormal.getText());
+
+ for (int i = 0; i < 10; i++)
+ {
+ TextMessage rm = (TextMessage)consumer.receive(1000);
+ assertNotNull(rm);
+ assertEquals("Ordering" + i, rm.getText());
+ rm.acknowledge();
+ }
+
+ assertNull(consumer.receive(1000));
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+ }
+ }
+
+ /*
+ * create 100 ordering groups, each sending 100 messages
+ * make sure the order of each group is guaranteed.
+ */
+ public void testMultipleOrderingGroups() throws Exception
+ {
+ Connection conn = null;
+
+ try
+ {
+ conn = cf.createConnection();
+
+ Session producerSess = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+ JBossMessageProducer producer = (JBossMessageProducer)producerSess.createProducer(queue1);
+ producer.enableOrderingGroup(null);
+
+ Session consumerSess = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+ MessageConsumer consumer = consumerSess.createConsumer(queue1);
+ conn.start();
+
+ final int NUM_MSG = 100;
+
+ //Send some messages
+ for (int i = 0; i < 100; ++i)
+ {
+ TextMessage tm = producerSess.createTextMessage("ordering" + i);
+ producer.send(tm);
+ }
+
+ assertRemainingMessages(NUM_MSG);
+
+ log.trace("Sent messages");
+
+ int count = 0;
+ while (true)
+ {
+ Message m = consumer.receive(400);
+ if (m == null) break;
+ count++;
+ }
+
+ assertRemainingMessages(NUM_MSG);
+
+ log.trace("Received " + count + " messages");
+
+ //if ordering group, count should be 1.
+ assertEquals(1, count);
+
+ consumerSess.recover();
+
+ assertRemainingMessages(NUM_MSG);
+
+ log.trace("Session recover called");
+
+ TextMessage m = null;
+
+ int i = 0;
+ for (; i < 100; ++i)
+ {
+ m = (TextMessage)consumer.receive();
+ log.trace("Received message " + i);
+ m.acknowledge();
+ assertTrue(m.getText().equals("ordering" + i));
+ }
+
+ assertRemainingMessages(0);
+
+ // make sure I don't receive anything else
+
+ checkEmpty(queue1);
+
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+ }
+ }
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
@@ -333,13 +492,4 @@
}
// Inner classes -------------------------------------------------
- class MessageListenerForSelector implements MessageListener
- {
-
- public void onMessage(Message rmsg)
- {
- recvMsgs.add((TextMessage)rmsg);
- }
-
- }
}
More information about the jboss-cvs-commits
mailing list