You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2008/02/12 17:45:00 UTC

svn commit: r620858 - in /incubator/qpid/branches/M2.1/java: broker/src/main/grammar/SelectorParser.jj client/src/test/java/org/apache/qpid/test/unit/basic/SelectorTest.java

Author: rgodfrey
Date: Tue Feb 12 08:44:59 2008
New Revision: 620858

URL: http://svn.apache.org/viewvc?rev=620858&view=rev
Log:
QPID-787 : Allow for quoting of identifiers in selectors

Modified:
    incubator/qpid/branches/M2.1/java/broker/src/main/grammar/SelectorParser.jj
    incubator/qpid/branches/M2.1/java/client/src/test/java/org/apache/qpid/test/unit/basic/SelectorTest.java

Modified: incubator/qpid/branches/M2.1/java/broker/src/main/grammar/SelectorParser.jj
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2.1/java/broker/src/main/grammar/SelectorParser.jj?rev=620858&r1=620857&r2=620858&view=diff
==============================================================================
--- incubator/qpid/branches/M2.1/java/broker/src/main/grammar/SelectorParser.jj (original)
+++ incubator/qpid/branches/M2.1/java/broker/src/main/grammar/SelectorParser.jj Tue Feb 12 08:44:59 2008
@@ -172,6 +172,7 @@
 TOKEN [IGNORE_CASE] :
 {
     < ID : ["a"-"z", "_", "$"] (["a"-"z","0"-"9","_", "$"])* >
+    | < QUOTED_ID : "\"" ( ("\"\"") | ~["\""] )*  "\""  >
 }
 
 // ----------------------------------------------------------------------------
@@ -589,6 +590,7 @@
 PropertyExpression variable() :
 {
     Token t;
+    StringBuffer rc = new StringBuffer();
     PropertyExpression left=null;
 }
 {
@@ -597,6 +599,21 @@
         {
             left = new PropertyExpression(t.image);
         }
+        |
+        t = <QUOTED_ID>
+        {
+            // Decode the sting value.
+            String image = t.image;
+            for( int i=1; i < image.length()-1; i++ ) {
+                char c = image.charAt(i);
+                if( c == '"' )
+                    i++;
+                rc.append(c);
+            }
+            return new PropertyExpression(rc.toString());
+        }
+
+
     )
     {
         return left;

Modified: incubator/qpid/branches/M2.1/java/client/src/test/java/org/apache/qpid/test/unit/basic/SelectorTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2.1/java/client/src/test/java/org/apache/qpid/test/unit/basic/SelectorTest.java?rev=620858&r1=620857&r2=620858&view=diff
==============================================================================
--- incubator/qpid/branches/M2.1/java/client/src/test/java/org/apache/qpid/test/unit/basic/SelectorTest.java (original)
+++ incubator/qpid/branches/M2.1/java/client/src/test/java/org/apache/qpid/test/unit/basic/SelectorTest.java Tue Feb 12 08:44:59 2008
@@ -72,7 +72,7 @@
         connection.start();
 
         String selector = null;
-        // selector = "Cost = 2 AND JMSDeliveryMode=" + DeliveryMode.NON_PERSISTENT;
+         selector = "Cost = 2 AND \"property-with-hyphen\" = 'wibble'";
         // selector = "JMSType = Special AND Cost = 2 AND AMQMessageID > 0 AND JMSDeliveryMode=" + DeliveryMode.NON_PERSISTENT;
 
         _session = (AMQSession) connection.createSession(false, AMQSession.NO_ACKNOWLEDGE);
@@ -87,6 +87,7 @@
             Message msg = _session.createTextMessage("Message");
             msg.setJMSPriority(1);
             msg.setIntProperty("Cost", 2);
+            msg.setStringProperty("property-with-hyphen","wibble");
             msg.setJMSType("Special");
 
             _logger.info("Sending Message:" + msg);