You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2015/03/02 19:12:24 UTC
[2/2] qpid-jms git commit: add use of escaped quotes as condensed
alternative for the 'hyphenated parser'
add use of escaped quotes as condensed alternative for the 'hyphenated parser'
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/fd2139c2
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/fd2139c2
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/fd2139c2
Branch: refs/heads/master
Commit: fd2139c27d96126f0cef9a6b55701f439b21f6dc
Parents: fa5f720
Author: Robert Gemmell <ro...@apache.org>
Authored: Mon Mar 2 18:00:59 2015 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Mon Mar 2 18:02:15 2015 +0000
----------------------------------------------------------------------
qpid-jms-client/src/main/javacc/StrictParser.jj | 15 +++++++++++++++
.../org/apache/qpid/jms/selector/SelectorTest.java | 8 ++++++++
2 files changed, 23 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fd2139c2/qpid-jms-client/src/main/javacc/StrictParser.jj
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/javacc/StrictParser.jj b/qpid-jms-client/src/main/javacc/StrictParser.jj
index dfe8dab..b095209 100755
--- a/qpid-jms-client/src/main/javacc/StrictParser.jj
+++ b/qpid-jms-client/src/main/javacc/StrictParser.jj
@@ -131,6 +131,7 @@ TOKEN [IGNORE_CASE] :
TOKEN [IGNORE_CASE] :
{
< ID : ["a"-"z", "_", "$"] (["a"-"z","0"-"9","_", "$"])* >
+ | < QUOTED_ID : "\"" ( ("\"\"") | ~["\""] )* "\"" >
}
// ----------------------------------------------------------------------------
@@ -556,6 +557,20 @@ PropertyExpression variable() :
{
left = new PropertyExpression(t.image);
}
+ |
+ t = <QUOTED_ID>
+ {
+ // Decode the string value.
+ StringBuffer rc = new StringBuffer();
+ 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;
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fd2139c2/qpid-jms-client/src/test/java/org/apache/qpid/jms/selector/SelectorTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/selector/SelectorTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/selector/SelectorTest.java
index 97590ba..a103f9a 100755
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/selector/SelectorTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/selector/SelectorTest.java
@@ -429,6 +429,14 @@ public class SelectorTest extends TestCase {
assertInvalidSelector(message, "=TEST 'test'");
}
+ public void testHyphenatedProperty() throws Exception {
+ MockMessage message = createMessage();
+ message.setStringProperty("hyphenated-prop", "val");
+
+ assertSelector(message, "\"hyphenated-prop\" = 'val'", true);
+ assertSelector(message, "\"hyphenated-prop\" = 'other'", false);
+ }
+
protected MockMessage createMessage() {
MockMessage message = createMessage("FOO.BAR");
message.setJMSType("selector-test");
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org