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);