You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2016/04/20 09:45:44 UTC

svn commit: r1740063 - in /qpid/java/trunk: broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/ common/src/main/java/org/apache/qpid/filter/

Author: kwall
Date: Wed Apr 20 07:45:44 2016
New Revision: 1740063

URL: http://svn.apache.org/viewvc?rev=1740063&view=rev
Log:
QPID-7206: [Java Broker] Query API - support enums on RHS of expression too

Modified:
    qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQueryTest.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/ComparisonExpression.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/UnaryExpression.java

Modified: qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQueryTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQueryTest.java?rev=1740063&r1=1740062&r2=1740063&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQueryTest.java (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQueryTest.java Wed Apr 20 07:45:44 2016
@@ -47,6 +47,7 @@ public class ConfiguredObjectQueryTest e
     private static final String NUMBER_ATTR = "numberAttr";
     private static final String DATE_ATTR = "dateAttr";
     private static final String ENUM_ATTR = "enumAttr";
+    private static final String ENUM2_ATTR = "enum2Attr";
 
     enum Snakes
     {
@@ -365,6 +366,7 @@ public class ConfiguredObjectQueryTest e
         {{
             put(ConfiguredObject.ID, objectUuid);
             put(ENUM_ATTR, Snakes.PYTHON);
+            put(ENUM2_ATTR, Snakes.PYTHON);
         }});
 
         _objects.add(obj);
@@ -374,19 +376,29 @@ public class ConfiguredObjectQueryTest e
                                            String.format("%s = '%s'", ENUM_ATTR, Snakes.PYTHON));
 
         List<List<Object>> results = _query.getResults();
-        assertEquals("Unexpected number of results", 1, results.size());
+        assertEquals("Unexpected number of results - enumAttr equality with enum constant", 1, results.size());
 
         List<Object> row = _query.getResults().iterator().next();
         assertEquals("Unexpected row", objectUuid, row.get(0));
 
         _query = new ConfiguredObjectQuery(_objects,
                                            String.format("%s", ConfiguredObject.ID),
+                                           String.format("'%s' = %s", Snakes.PYTHON, ENUM_ATTR));
+
+        results = _query.getResults();
+        assertEquals("Unexpected number of results - enum constant equality with enumAttr", 1, results.size());
+
+        row = _query.getResults().iterator().next();
+        assertEquals("Unexpected row", objectUuid, row.get(0));
+
+        _query = new ConfiguredObjectQuery(_objects,
+                                           String.format("%s", ConfiguredObject.ID),
                                            String.format("%s in ('%s', '%s', '%s')",
                                                          ENUM_ATTR,
                                                          "toad", Snakes.VIPER, Snakes.PYTHON));
 
         results = _query.getResults();
-        assertEquals("Unexpected number of results", 1, results.size());
+        assertEquals("Unexpected number of results - emumAttr with set", 1, results.size());
 
         row = _query.getResults().iterator().next();
         assertEquals("Unexpected row", objectUuid, row.get(0));
@@ -396,7 +408,14 @@ public class ConfiguredObjectQueryTest e
                                            String.format("%s <> '%s'", ENUM_ATTR, "toad"));
 
         results = _query.getResults();
-        assertEquals("Unexpected number of results", 1, results.size());
+        assertEquals("Unexpected number of results - enumAttr not equal enum constant", 1, results.size());
+
+        _query = new ConfiguredObjectQuery(_objects,
+                                           String.format("%s", ConfiguredObject.ID),
+                                           String.format("%s = %s", ENUM_ATTR, ENUM2_ATTR));
+
+        results = _query.getResults();
+        assertEquals("Unexpected number of results - two attributes of type enum", 1, results.size());
 
     }
 

Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/ComparisonExpression.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/ComparisonExpression.java?rev=1740063&r1=1740062&r2=1740063&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/ComparisonExpression.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/ComparisonExpression.java Wed Apr 20 07:45:44 2016
@@ -540,6 +540,17 @@ public abstract class ComparisonExpressi
                     return Boolean.FALSE;
                 }
             }
+            else if (lv instanceof String)
+            {
+                if (rv instanceof Enum)
+                {
+                    lv = Enum.valueOf(rc, (String) lv);
+                }
+                else
+                {
+                    return Boolean.FALSE;
+                }
+            }
             else
             {
                 return Boolean.FALSE;

Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/UnaryExpression.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/UnaryExpression.java?rev=1740063&r1=1740062&r2=1740063&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/UnaryExpression.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/UnaryExpression.java Wed Apr 20 07:45:44 2016
@@ -114,7 +114,7 @@ public abstract class UnaryExpression<T>
         }
         else if (clazz == BigDecimal.class)
         {
-            // We ussually get a big deciamal when we have Long.MIN_VALUE constant in the
+            // We usually get a big decimal when we have Long.MIN_VALUE constant in the
             // Selector.  Long.MIN_VALUE is too big to store in a Long as a positive so we store it
             // as a Big decimal.  But it gets Negated right away.. to here we try to covert it back
             // to a Long.



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org