eagle-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From qingwz...@apache.org
Subject incubator-eagle git commit: [EAGLE-473] Query error if query string contains "[]"
Date Fri, 19 Aug 2016 04:10:01 GMT
Repository: incubator-eagle
Updated Branches:
  refs/heads/develop 34e77cafc -> 9432fcf91


[EAGLE-473] Query error if query string contains "[]"

https://issues.apache.org/jira/browse/EAGLE-473

Fix the bug with an unit test

Author: Qingwen Zhao <qingwen220@gmail.com>

Closes #361 from qingwen220/EAGLE-473.


Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/9432fcf9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/9432fcf9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/9432fcf9

Branch: refs/heads/develop
Commit: 9432fcf91ab94cd9e228eb353e1b93739f977e67
Parents: 34e77ca
Author: Qingwen Zhao <qingwen220@gmail.com>
Authored: Fri Aug 19 12:09:53 2016 +0800
Committer: Qingwen Zhao <qingwen220@gmail.com>
Committed: Fri Aug 19 12:09:53 2016 +0800

----------------------------------------------------------------------
 .../apache/eagle/query/ListQueryCompiler.java   |  6 +--
 .../aggregate/test/TestListQueryCompiler.java   | 47 ++++++++++++++++++++
 2 files changed, 50 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/9432fcf9/eagle-core/eagle-query/eagle-query-base/src/main/java/org/apache/eagle/query/ListQueryCompiler.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-query-base/src/main/java/org/apache/eagle/query/ListQueryCompiler.java
b/eagle-core/eagle-query/eagle-query-base/src/main/java/org/apache/eagle/query/ListQueryCompiler.java
index c630c41..ab01064 100755
--- a/eagle-core/eagle-query/eagle-query-base/src/main/java/org/apache/eagle/query/ListQueryCompiler.java
+++ b/eagle-core/eagle-query/eagle-query-base/src/main/java/org/apache/eagle/query/ListQueryCompiler.java
@@ -42,7 +42,7 @@ public class ListQueryCompiler {
 	/**
 	 * syntax is <EntityName>[<Filter>]{<Projection>}
 	 */
-	private final static String listRegex = "^([^\\[]+)\\[([^\\]]*)\\]\\{(.+)\\}$";
+	private final static String listRegex = "^([^\\[]+)\\[(.*)\\]\\{(.+)\\}$";
 	private final static Pattern _listPattern = Pattern.compile(listRegex);
 
 	/**
@@ -62,10 +62,10 @@ public class ListQueryCompiler {
 	 */
 
 	/** The regular expression before add EXP{<Expression>} in query **/
-	private final static String aggRegex = "^([^\\[]+)\\[([^\\]]*)\\]<([^>]*)>\\{(.+)\\}$";
+	private final static String aggRegex = "^([^\\[]+)\\[(.*)\\]<([^>]*)>\\{(.+)\\}$";
 	private final static Pattern _aggPattern = Pattern.compile(aggRegex);
 
-	private final static String sortRegex = "^([^\\[]+)\\[([^\\]]*)\\]<([^>]*)>\\{(.+)\\}\\.\\{(.+)\\}$";
+	private final static String sortRegex = "^([^\\[]+)\\[(.*)\\]<([^>]*)>\\{(.+)\\}\\.\\{(.+)\\}$";
 	private final static Pattern _sortPattern = Pattern.compile(sortRegex);
 	
 	private String _serviceName;

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/9432fcf9/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/aggregate/test/TestListQueryCompiler.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/aggregate/test/TestListQueryCompiler.java
b/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/aggregate/test/TestListQueryCompiler.java
new file mode 100644
index 0000000..10f96dc
--- /dev/null
+++ b/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/aggregate/test/TestListQueryCompiler.java
@@ -0,0 +1,47 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.eagle.query.aggregate.test;
+
+import org.apache.eagle.query.ListQueryCompiler;
+import org.apache.eagle.query.parser.EagleQueryParseException;
+import org.junit.Assert;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TestListQueryCompiler {
+    private final static Logger LOG = LoggerFactory.getLogger(TestListQueryCompiler.class);
+    @Test
+    public void test() throws Exception {
+        try {
+            String queryWithCondition = "TestTimeSeriesAPIEntity[@site=\"test\"]{*}";
+            ListQueryCompiler compiler = new ListQueryCompiler(queryWithCondition);
+            String queryWithSquareBrackets = "TestTimeSeriesAPIEntity[@condition=\"[A9BB756BFB8]
Data[site=2]/(4/5)\"]{*}";
+            new ListQueryCompiler(queryWithSquareBrackets);
+            String queryWithoutCondition = "TestTimeSeriesAPIEntity[]{*}";
+            new ListQueryCompiler(queryWithoutCondition);
+            String query = "TestTimeSeriesAPIEntity[@condition=\"[A9BB756BFB8]{4/5}\"]{*}";
+            new ListQueryCompiler(query);
+        } catch (IllegalArgumentException e) {
+            LOG.error(e.getMessage());
+            Assert.assertTrue(false);
+        }
+        Assert.assertTrue(true);
+    }
+}


Mime
View raw message