[jboss-cvs] JBoss Messaging SVN: r3168 - in trunk: tests/src/org/jboss/test/messaging/jms/selector and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Oct 2 22:34:11 EDT 2007
Author: clebert.suconic at jboss.com
Date: 2007-10-02 22:34:11 -0400 (Tue, 02 Oct 2007)
New Revision: 3168
Modified:
trunk/src/main/org/jboss/jms/server/selector/Selector.java
trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java
Log:
http://jira.jboss.com/jira/browse/JBMESSAGING-1091 - fixing selector
Modified: trunk/src/main/org/jboss/jms/server/selector/Selector.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/selector/Selector.java 2007-10-02 22:11:22 UTC (rev 3167)
+++ trunk/src/main/org/jboss/jms/server/selector/Selector.java 2007-10-03 02:34:11 UTC (rev 3168)
@@ -23,11 +23,10 @@
import java.util.HashMap;
import java.util.Iterator;
-
+import javax.jms.DeliveryMode;
import javax.jms.InvalidSelectorException;
import javax.jms.JMSException;
import javax.jms.Message;
-
import org.jboss.logging.Logger;
import org.jboss.messaging.core.contract.Filter;
@@ -132,9 +131,9 @@
while (i.hasNext())
{
Identifier id = (Identifier) i.next();
-
+
Object find = mess.getObjectProperty(id.name);
-
+
if (find == null)
find = getHeaderFieldReferences(mess, id.name);
@@ -195,7 +194,9 @@
// JMSTimeStamp, JMSCorrelationID and JMSType
//
if (idName.equals("JMSDeliveryMode"))
- return new Integer(mess.getJMSDeliveryMode());
+ {
+ return mess.getJMSDeliveryMode()==DeliveryMode.PERSISTENT ? "PERSISTENT" : "NON_PERSISTENT";
+ }
else if (idName.equals("JMSPriority"))
return new Integer(mess.getJMSPriority());
else if (idName.equals("JMSMessageID"))
Modified: trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java 2007-10-02 22:11:22 UTC (rev 3167)
+++ trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java 2007-10-03 02:34:11 UTC (rev 3168)
@@ -31,6 +31,7 @@
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Session;
+import javax.jms.TextMessage;
import org.jboss.test.messaging.jms.JMSTestCase;
@@ -653,6 +654,58 @@
}
}
+ public void testDeliveryModeOnSelector() throws Exception
+ {
+ Connection conn = null;
+
+ try
+ {
+ conn = cf.createConnection();
+ conn.start();
+
+ Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ MessageProducer prodNonPersistent = session.createProducer(queue1);
+ prodNonPersistent.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+
+ MessageProducer prodPersistent = session.createProducer(queue1);
+ prodPersistent.setDeliveryMode(DeliveryMode.PERSISTENT);
+
+ String selector = "JMSDeliveryMode = 'PERSISTENT'";
+ MessageConsumer persistentConsumer = session.createConsumer(queue1, selector);
+ conn.start();
+
+ TextMessage msg = session.createTextMessage("NonPersistent");
+ prodNonPersistent.send(msg);
+
+ msg = session.createTextMessage("Persistent");
+ prodPersistent.send(msg);
+
+ msg = (TextMessage)persistentConsumer.receive(2000);
+ assertNotNull(msg);
+ assertEquals(DeliveryMode.PERSISTENT, msg.getJMSDeliveryMode());
+ assertEquals("Persistent", msg.getText());
+
+ assertNull(persistentConsumer.receive(1000));
+
+ persistentConsumer.close();
+
+ MessageConsumer genericConsumer = session.createConsumer(queue1);
+ msg = (TextMessage)genericConsumer.receive(1000);
+
+ assertNotNull(msg);
+
+ assertEquals("NonPersistent", msg.getText());
+ assertEquals(DeliveryMode.NON_PERSISTENT, msg.getJMSDeliveryMode());
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+ }
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
More information about the jboss-cvs-commits
mailing list