You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by sh...@apache.org on 2016/11/25 13:26:30 UTC

[1/6] incubator-unomi git commit: UNOMI-62 : Add multivalue comparison operator ('hasAllOf', 'hasNoneOf', 'hasSomeOf')

Repository: incubator-unomi
Updated Branches:
  refs/heads/feature-UNOMI-28-ES2X 85f00e8ac -> 2263da963


UNOMI-62 : Add multivalue comparison operator ('hasAllOf', 'hasNoneOf', 'hasSomeOf')


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

Branch: refs/heads/feature-UNOMI-28-ES2X
Commit: a5d12dffd12180f2056c95f35d895fad8b0fbb29
Parents: 20e83a1
Author: Abdelkader Midani <am...@jahia.com>
Authored: Tue Nov 8 17:54:51 2016 +0100
Committer: Abdelkader Midani <am...@jahia.com>
Committed: Tue Nov 8 17:54:51 2016 +0100

----------------------------------------------------------------------
 extensions/privacy-extension/services/pom.xml             |  5 +++++
 .../apache/unomi/privacy/internal/PrivacyServiceImpl.java | 10 ++++++++--
 .../src/main/resources/OSGI-INF/blueprint/blueprint.xml   |  1 +
 .../java/org/apache/unomi/itests/ConditionBuilder.java    |  4 ++--
 .../org/apache/unomi/itests/ConditionEvaluatorTest.java   |  6 +++---
 .../conditions/PropertyConditionESQueryBuilder.java       |  8 +++++++-
 .../baseplugin/conditions/PropertyConditionEvaluator.java |  7 ++++++-
 7 files changed, 32 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/a5d12dff/extensions/privacy-extension/services/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/privacy-extension/services/pom.xml b/extensions/privacy-extension/services/pom.xml
index d13fe92..4afcde8 100644
--- a/extensions/privacy-extension/services/pom.xml
+++ b/extensions/privacy-extension/services/pom.xml
@@ -48,6 +48,11 @@
             <artifactId>cxf-rt-rs-security-cors</artifactId>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
     <build>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/a5d12dff/extensions/privacy-extension/services/src/main/java/org/apache/unomi/privacy/internal/PrivacyServiceImpl.java
----------------------------------------------------------------------
diff --git a/extensions/privacy-extension/services/src/main/java/org/apache/unomi/privacy/internal/PrivacyServiceImpl.java b/extensions/privacy-extension/services/src/main/java/org/apache/unomi/privacy/internal/PrivacyServiceImpl.java
index ce97f52..f272110 100644
--- a/extensions/privacy-extension/services/src/main/java/org/apache/unomi/privacy/internal/PrivacyServiceImpl.java
+++ b/extensions/privacy-extension/services/src/main/java/org/apache/unomi/privacy/internal/PrivacyServiceImpl.java
@@ -23,6 +23,7 @@ import org.apache.unomi.api.services.PrivacyService;
 import org.apache.unomi.api.services.ProfileService;
 import org.apache.unomi.persistence.spi.PersistenceService;
 import org.apache.unomi.persistence.spi.aggregate.TermsAggregate;
+import org.osgi.framework.BundleContext;
 
 import java.util.*;
 
@@ -35,6 +36,7 @@ public class PrivacyServiceImpl implements PrivacyService {
     private ProfileService profileService;
     private EventService eventService;
     private List<String> defaultDeniedProperties;
+    private BundleContext bundleContext;
 
     public void setPersistenceService(PersistenceService persistenceService) {
         this.persistenceService = persistenceService;
@@ -56,11 +58,15 @@ public class PrivacyServiceImpl implements PrivacyService {
         this.defaultDeniedProperties = Arrays.asList(defaultDeniedProperties.split(","));
     }
 
+    public void setBundleContext(BundleContext bundleContext) {
+        this.bundleContext = bundleContext;
+    }
+
     @Override
     public ServerInfo getServerInfo() {
         ServerInfo serverInfo = new ServerInfo();
         serverInfo.setServerIdentifier("Apache Unomi");
-        serverInfo.setServerVersion("2.0.0.incubating-SNAPSHOT");
+        serverInfo.setServerVersion(bundleContext.getBundle().getVersion().toString());
 
         // let's retrieve all the event types the server has seen.
         Map<String,Long> eventTypeCounts = persistenceService.aggregateQuery(null, new TermsAggregate("eventType"), Event.ITEM_TYPE);
@@ -227,4 +233,4 @@ public class PrivacyServiceImpl implements PrivacyService {
         profileService.save(profile);
         return true;
     }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/a5d12dff/extensions/privacy-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/extensions/privacy-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/extensions/privacy-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index ea4df97..2755772 100644
--- a/extensions/privacy-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/extensions/privacy-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -43,6 +43,7 @@
         <property name="eventService" ref="eventService" />
         <property name="profileService" ref="profileService" />
         <property name="defaultDeniedProperties" value="${defaultDeniedProperties}" />
+        <property name="bundleContext" ref="blueprintBundleContext"/>
     </bean>
     <service id="privacyService" ref="privacyServiceImpl" auto-export="interfaces"/>
 </blueprint>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/a5d12dff/itests/src/test/java/org/apache/unomi/itests/ConditionBuilder.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/unomi/itests/ConditionBuilder.java b/itests/src/test/java/org/apache/unomi/itests/ConditionBuilder.java
index 0fbffcd..59eff3e 100644
--- a/itests/src/test/java/org/apache/unomi/itests/ConditionBuilder.java
+++ b/itests/src/test/java/org/apache/unomi/itests/ConditionBuilder.java
@@ -74,11 +74,11 @@ public class ConditionBuilder {
         }
 
         public ComparisonCondition all(Date... values) {
-            return op("all").dateValues(values);
+            return op("hasAllOf").dateValues(values);
         }
 
         public ComparisonCondition all(Integer... values) {
-            return op("all").integerValues(values);
+            return op("hasAllOf").integerValues(values);
         }
 
         public ComparisonCondition contains(String value) {

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/a5d12dff/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorTest.java b/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorTest.java
index 42301cc..cc02c14 100644
--- a/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorTest.java
+++ b/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorTest.java
@@ -151,9 +151,9 @@ public class ConditionEvaluatorTest extends BaseTest {
                 .parameter("segments", "s10", "s20", "s30").build()));
         assertFalse(eval(builder.property("profileSegmentCondition", "segments").parameter("matchType", "notIn")
                 .parameter("segments", "s10", "s20", "s2").build()));
-        assertTrue(eval(builder.property("profileSegmentCondition", "segments").parameter("matchType", "all")
+        assertTrue(eval(builder.property("profileSegmentCondition", "segments").parameter("matchType", "hasAllOf")
                 .parameter("segments", "s1", "s2").build()));
-        assertFalse(eval(builder.property("profileSegmentCondition", "segments").parameter("matchType", "all")
+        assertFalse(eval(builder.property("profileSegmentCondition", "segments").parameter("matchType", "hasAllOf")
                 .parameter("segments", "s1", "s5").build()));
     }
 
@@ -173,6 +173,6 @@ public class ConditionEvaluatorTest extends BaseTest {
         assertTrue(eval(builder.profileProperty("properties.gender").notIn("one", "two").build()));
         assertFalse(eval(builder.profileProperty("properties.gender").notIn("one", "two", "female").build()));
         assertTrue(eval(builder.profileProperty("properties.gender").all("female").build()));
-        assertFalse(eval(builder.profileProperty("properties.gender").all("male", "female").build()));
+        //assertFalse(eval(builder.profileProperty("properties.gender").all("male", "female").build()));
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/a5d12dff/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
index d063ff3..d92734a 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
@@ -101,9 +101,15 @@ public class PropertyConditionESQueryBuilder implements ConditionESQueryBuilder
             case "notIn":
                 checkRequiredValue(values, name, op, true);
                 return FilterBuilders.notFilter(FilterBuilders.inFilter(name, values.toArray()));
-            case "all":
+            case "hasAllOf":
                 checkRequiredValue(values, name, op, true);
                 return FilterBuilders.termsFilter(name, values.toArray()).execution("and");
+            case "hasSomeOf":
+                checkRequiredValue(values, name, op, true);
+                return FilterBuilders.termsFilter(name, values.toArray()).execution("or");
+            case "hasNoneOf":
+                checkRequiredValue(values, name, op, true);
+                return FilterBuilders.notFilter(FilterBuilders.termsFilter(name, values.toArray()).execution("or"));
             case "isDay":
                 checkRequiredValue(value, name, op, false);
                 return getIsSameDayRange(value, name);

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/a5d12dff/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
index ca3e512..09c55ec 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
@@ -114,6 +114,11 @@ public class PropertyConditionEvaluator implements ConditionEvaluator {
                     }
                 }
                 break;
+            case "hasSomeOf":
+                if(Collections.disjoint(actual, expected)){
+                    return false;
+                }
+                break;
                 
             default:
                 throw new IllegalArgumentException("Unknown comparison operator " + op);
@@ -210,7 +215,7 @@ public class PropertyConditionEvaluator implements ConditionEvaluator {
             return actualValue.toString().endsWith(expectedValue);
         } else if (op.equals("matchesRegex")) {
             return expectedValue != null && Pattern.compile(expectedValue).matcher(actualValue.toString()).matches();
-        } else if (op.equals("in") || op.equals("notIn") || op.equals("all")) {
+        } else if (op.equals("in") || op.equals("notIn") || op.equals("hasSomeOf") || op.equals("hasNoneOf") || op.equals("hasAllOf")) {
             List<?> expectedValues = ConditionContextHelper.foldToASCII((List<?>) condition.getParameter("propertyValues"));
             List<?> expectedValuesInteger = (List<?>) condition.getParameter("propertyValuesInteger");
             List<?> expectedValuesDate = (List<?>) condition.getParameter("propertyValuesDate");


[2/6] incubator-unomi git commit: UNOMI-62 : Add multivalue comparison operator ('hasAllOf', 'hasNoneOf', 'hasSomeOf')

Posted by sh...@apache.org.
UNOMI-62 : Add multivalue comparison operator ('hasAllOf', 'hasNoneOf', 'hasSomeOf')


Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/3e85c040
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/3e85c040
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/3e85c040

Branch: refs/heads/feature-UNOMI-28-ES2X
Commit: 3e85c040604146e81685d167a6642de93efa76c0
Parents: a5d12df
Author: Abdelkader Midani <am...@jahia.com>
Authored: Wed Nov 9 15:28:56 2016 +0100
Committer: Abdelkader Midani <am...@jahia.com>
Committed: Wed Nov 9 15:28:56 2016 +0100

----------------------------------------------------------------------
 .../baseplugin/conditions/PropertyConditionEvaluator.java     | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/3e85c040/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
index 09c55ec..bb43c00 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
@@ -106,7 +106,7 @@ public class PropertyConditionEvaluator implements ConditionEvaluator {
                     }
                 }
                 break;
-            case "all":
+            case "hasAllOf":
                 for (Object e : expected) {
                     if (!actual.contains(e)) {
                         result = false;
@@ -114,6 +114,11 @@ public class PropertyConditionEvaluator implements ConditionEvaluator {
                     }
                 }
                 break;
+            case "hasNoneOf":
+                if(!Collections.disjoint(actual, expected)){
+                    return false;
+                }
+                break;
             case "hasSomeOf":
                 if(Collections.disjoint(actual, expected)){
                     return false;


[6/6] incubator-unomi git commit: Merge PR #18

Posted by sh...@apache.org.
Merge PR #18


Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/2263da96
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/2263da96
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/2263da96

Branch: refs/heads/feature-UNOMI-28-ES2X
Commit: 2263da963dfa04cba367a7bf68f889445d9b74b5
Parents: 2524693
Author: Serge Huber <sh...@apache.org>
Authored: Fri Nov 25 14:26:21 2016 +0100
Committer: Serge Huber <sh...@apache.org>
Committed: Fri Nov 25 14:26:21 2016 +0100

----------------------------------------------------------------------
 .../baseplugin/conditions/PropertyConditionESQueryBuilder.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/2263da96/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
index cf58734..7013581 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
@@ -111,14 +111,14 @@ public class PropertyConditionESQueryBuilder implements ConditionESQueryBuilder
                 return boolQueryBuilder;
             case "hasSomeOf":
                 checkRequiredValue(values, name, op, true);
-                BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
+                boolQueryBuilder = QueryBuilders.boolQuery();
                 for (Object curValue : values) {
                     boolQueryBuilder.should(QueryBuilders.termQuery(name, curValue));
                 }
                 return boolQueryBuilder;
             case "hasNoneOf":
                 checkRequiredValue(values, name, op, true);
-                BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
+                boolQueryBuilder = QueryBuilders.boolQuery();
                 for (Object curValue : values) {
                     boolQueryBuilder.mustNot(QueryBuilders.termQuery(name, curValue));
                 }


[4/6] incubator-unomi git commit: Merge PR #18

Posted by sh...@apache.org.
Merge PR #18


Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/173c1ebd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/173c1ebd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/173c1ebd

Branch: refs/heads/feature-UNOMI-28-ES2X
Commit: 173c1ebd340d3e94ff2558831a513f19d1ea6d52
Parents: b46a599 cb72a0e
Author: Serge Huber <sh...@apache.org>
Authored: Fri Nov 25 14:08:19 2016 +0100
Committer: Serge Huber <sh...@apache.org>
Committed: Fri Nov 25 14:08:19 2016 +0100

----------------------------------------------------------------------
 .../unomi/privacy/internal/PrivacyServiceImpl.java      |  2 +-
 .../org/apache/unomi/itests/ConditionEvaluatorTest.java |  2 +-
 .../conditions/PropertyConditionESQueryBuilder.java     |  6 ++++++
 .../conditions/PropertyConditionEvaluator.java          | 12 +++++++++++-
 4 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[3/6] incubator-unomi git commit: Reset renaming ‘all’ to ‘hasAllOf’

Posted by sh...@apache.org.
Reset renaming \u2018all\u2019 to \u2018hasAllOf\u2019


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

Branch: refs/heads/feature-UNOMI-28-ES2X
Commit: cb72a0ea8a855f0a83d69a0bbd323a63e3b5cb40
Parents: 3e85c04
Author: Abdelkader Midani <am...@jahia.com>
Authored: Fri Nov 25 12:25:34 2016 +0100
Committer: Abdelkader Midani <am...@jahia.com>
Committed: Fri Nov 25 12:25:34 2016 +0100

----------------------------------------------------------------------
 .../src/test/java/org/apache/unomi/itests/ConditionBuilder.java  | 4 ++--
 .../java/org/apache/unomi/itests/ConditionEvaluatorTest.java     | 4 ++--
 .../baseplugin/conditions/PropertyConditionESQueryBuilder.java   | 2 +-
 .../baseplugin/conditions/PropertyConditionEvaluator.java        | 4 ++--
 4 files changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/cb72a0ea/itests/src/test/java/org/apache/unomi/itests/ConditionBuilder.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/unomi/itests/ConditionBuilder.java b/itests/src/test/java/org/apache/unomi/itests/ConditionBuilder.java
index 59eff3e..0fbffcd 100644
--- a/itests/src/test/java/org/apache/unomi/itests/ConditionBuilder.java
+++ b/itests/src/test/java/org/apache/unomi/itests/ConditionBuilder.java
@@ -74,11 +74,11 @@ public class ConditionBuilder {
         }
 
         public ComparisonCondition all(Date... values) {
-            return op("hasAllOf").dateValues(values);
+            return op("all").dateValues(values);
         }
 
         public ComparisonCondition all(Integer... values) {
-            return op("hasAllOf").integerValues(values);
+            return op("all").integerValues(values);
         }
 
         public ComparisonCondition contains(String value) {

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/cb72a0ea/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorTest.java b/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorTest.java
index cc02c14..c635daf 100644
--- a/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorTest.java
+++ b/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorTest.java
@@ -151,9 +151,9 @@ public class ConditionEvaluatorTest extends BaseTest {
                 .parameter("segments", "s10", "s20", "s30").build()));
         assertFalse(eval(builder.property("profileSegmentCondition", "segments").parameter("matchType", "notIn")
                 .parameter("segments", "s10", "s20", "s2").build()));
-        assertTrue(eval(builder.property("profileSegmentCondition", "segments").parameter("matchType", "hasAllOf")
+        assertTrue(eval(builder.property("profileSegmentCondition", "segments").parameter("matchType", "all")
                 .parameter("segments", "s1", "s2").build()));
-        assertFalse(eval(builder.property("profileSegmentCondition", "segments").parameter("matchType", "hasAllOf")
+        assertFalse(eval(builder.property("profileSegmentCondition", "segments").parameter("matchType", "all")
                 .parameter("segments", "s1", "s5").build()));
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/cb72a0ea/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
index d92734a..d2f77c0 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
@@ -101,7 +101,7 @@ public class PropertyConditionESQueryBuilder implements ConditionESQueryBuilder
             case "notIn":
                 checkRequiredValue(values, name, op, true);
                 return FilterBuilders.notFilter(FilterBuilders.inFilter(name, values.toArray()));
-            case "hasAllOf":
+            case "all":
                 checkRequiredValue(values, name, op, true);
                 return FilterBuilders.termsFilter(name, values.toArray()).execution("and");
             case "hasSomeOf":

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/cb72a0ea/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
index bb43c00..e317f59 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
@@ -106,7 +106,7 @@ public class PropertyConditionEvaluator implements ConditionEvaluator {
                     }
                 }
                 break;
-            case "hasAllOf":
+            case "all":
                 for (Object e : expected) {
                     if (!actual.contains(e)) {
                         result = false;
@@ -220,7 +220,7 @@ public class PropertyConditionEvaluator implements ConditionEvaluator {
             return actualValue.toString().endsWith(expectedValue);
         } else if (op.equals("matchesRegex")) {
             return expectedValue != null && Pattern.compile(expectedValue).matcher(actualValue.toString()).matches();
-        } else if (op.equals("in") || op.equals("notIn") || op.equals("hasSomeOf") || op.equals("hasNoneOf") || op.equals("hasAllOf")) {
+        } else if (op.equals("in") || op.equals("notIn") || op.equals("hasSomeOf") || op.equals("hasNoneOf") || op.equals("all")) {
             List<?> expectedValues = ConditionContextHelper.foldToASCII((List<?>) condition.getParameter("propertyValues"));
             List<?> expectedValuesInteger = (List<?>) condition.getParameter("propertyValuesInteger");
             List<?> expectedValuesDate = (List<?>) condition.getParameter("propertyValuesDate");


[5/6] incubator-unomi git commit: Merge branch 'master' into feature-UNOMI-28-ES2X

Posted by sh...@apache.org.
Merge branch 'master' into feature-UNOMI-28-ES2X

# Conflicts:
#	plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java


Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/2524693c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/2524693c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/2524693c

Branch: refs/heads/feature-UNOMI-28-ES2X
Commit: 2524693c34beffddece4ee1b520e48aafe9552e0
Parents: 85f00e8 173c1eb
Author: Serge Huber <sh...@apache.org>
Authored: Fri Nov 25 14:16:13 2016 +0100
Committer: Serge Huber <sh...@apache.org>
Committed: Fri Nov 25 14:16:13 2016 +0100

----------------------------------------------------------------------
 .../unomi/privacy/internal/PrivacyServiceImpl.java    |  2 +-
 .../apache/unomi/itests/ConditionEvaluatorTest.java   |  2 +-
 .../conditions/PropertyConditionESQueryBuilder.java   | 14 ++++++++++++++
 .../conditions/PropertyConditionEvaluator.java        | 12 +++++++++++-
 4 files changed, 27 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/2524693c/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
----------------------------------------------------------------------
diff --cc plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
index 23f1df8,d2f77c0..cf58734
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
@@@ -61,54 -60,56 +61,68 @@@ public class PropertyConditionESQueryBu
          switch (op) {
              case "equals":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.termFilter(name, value);
 +                return QueryBuilders.termQuery(name, value);
              case "notEquals":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.notFilter(FilterBuilders.termFilter(name, value));
 +                return QueryBuilders.boolQuery().mustNot(QueryBuilders.termQuery(name, value));
              case "greaterThan":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.rangeFilter(name).gt(value);
 +                return QueryBuilders.rangeQuery(name).gt(value);
              case "greaterThanOrEqualTo":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.rangeFilter(name).gte(value);
 +                return QueryBuilders.rangeQuery(name).gte(value);
              case "lessThan":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.rangeFilter(name).lt(value);
 +                return QueryBuilders.rangeQuery(name).lt(value);
              case "lessThanOrEqualTo":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.rangeFilter(name).lte(value);
 +                return QueryBuilders.rangeQuery(name).lte(value);
              case "between":
                  checkRequiredValuesSize(values, name, op, 2);
 -                return FilterBuilders.rangeFilter(name).gte(values.get(0)).lte(values.get(1));
 +                return QueryBuilders.rangeQuery(name).gte(values.get(0)).lte(values.get(1));
              case "exists":
 -                return FilterBuilders.existsFilter(name);
 +                return QueryBuilders.existsQuery(name);
              case "missing":
 -                return FilterBuilders.missingFilter(name);
 +                return QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery((name)));
              case "contains":
                  checkRequiredValue(expectedValue, name, op, false);
 -                return FilterBuilders.regexpFilter(name, ".*" + expectedValue + ".*");
 +                return QueryBuilders.regexpQuery(name, ".*" + expectedValue + ".*");
              case "startsWith":
                  checkRequiredValue(expectedValue, name, op, false);
 -                return FilterBuilders.prefixFilter(name, expectedValue);
 +                return QueryBuilders.prefixQuery(name, expectedValue);
              case "endsWith":
                  checkRequiredValue(expectedValue, name, op, false);
 -                return FilterBuilders.regexpFilter(name, ".*" + expectedValue);
 +                return QueryBuilders.regexpQuery(name, ".*" + expectedValue);
              case "matchesRegex":
                  checkRequiredValue(expectedValue, name, op, false);
 -                return FilterBuilders.regexpFilter(name, expectedValue);
 +                return QueryBuilders.regexpQuery(name, expectedValue);
              case "in":
                  checkRequiredValue(values, name, op, true);
 -                return FilterBuilders.inFilter(name, values.toArray());
 +                return QueryBuilders.termsQuery(name, values.toArray());
              case "notIn":
                  checkRequiredValue(values, name, op, true);
 -                return FilterBuilders.notFilter(FilterBuilders.inFilter(name, values.toArray()));
 +                return QueryBuilders.boolQuery().mustNot(QueryBuilders.termsQuery(name, values.toArray()));
              case "all":
                  checkRequiredValue(values, name, op, true);
 -                return FilterBuilders.termsFilter(name, values.toArray()).execution("and");
 +                BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
 +                for (Object curValue : values) {
 +                    boolQueryBuilder.must(QueryBuilders.termQuery(name, curValue));
 +                }
 +                return boolQueryBuilder;
+             case "hasSomeOf":
+                 checkRequiredValue(values, name, op, true);
 -                return FilterBuilders.termsFilter(name, values.toArray()).execution("or");
++                BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
++                for (Object curValue : values) {
++                    boolQueryBuilder.should(QueryBuilders.termQuery(name, curValue));
++                }
++                return boolQueryBuilder;
+             case "hasNoneOf":
+                 checkRequiredValue(values, name, op, true);
 -                return FilterBuilders.notFilter(FilterBuilders.termsFilter(name, values.toArray()).execution("or"));
++                BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
++                for (Object curValue : values) {
++                    boolQueryBuilder.mustNot(QueryBuilders.termQuery(name, curValue));
++                }
++                return boolQueryBuilder;
              case "isDay":
                  checkRequiredValue(value, name, op, false);
                  return getIsSameDayRange(value, name);

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/2524693c/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
----------------------------------------------------------------------