[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