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 2018/02/20 16:28:47 UTC

incubator-unomi git commit: UNOMI-163 Make optimization configurable

Repository: incubator-unomi
Updated Branches:
  refs/heads/master 8df430d33 -> 769129894


UNOMI-163 Make optimization configurable

Signed-off-by: Serge Huber <sh...@apache.org>


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

Branch: refs/heads/master
Commit: 769129894feee8452e95df163c9807e87c606122
Parents: 8df430d
Author: Serge Huber <sh...@apache.org>
Authored: Tue Feb 20 17:28:41 2018 +0100
Committer: Serge Huber <sh...@apache.org>
Committed: Tue Feb 20 17:28:41 2018 +0100

----------------------------------------------------------------------
 .../conditions/PropertyConditionEvaluator.java        | 14 ++++++++++----
 .../main/resources/OSGI-INF/blueprint/blueprint.xml   |  5 ++++-
 2 files changed, 14 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/76912989/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 0b97abf..239c321 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
@@ -38,7 +38,6 @@ import org.slf4j.LoggerFactory;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.concurrent.ConcurrentSkipListSet;
 import java.util.function.LongSupplier;
 import java.util.regex.Pattern;
 
@@ -53,6 +52,11 @@ public class PropertyConditionEvaluator implements ConditionEvaluator {
     public static final String NOT_OPTIMIZED_MARKER = "$$$###NOT_OPTIMIZED###$$$";
 
     private Map<String, Map<String, ExpressionAccessor>> expressionCache = new HashMap<>(64);
+    private boolean usePropertyConditionOptimizations = true;
+
+    public void setUsePropertyConditionOptimizations(boolean usePropertyConditionOptimizations) {
+        this.usePropertyConditionOptimizations = usePropertyConditionOptimizations;
+    }
 
     private int compare(Object actualValue, String expectedValue, Object expectedValueDate, Object expectedValueInteger, Object expectedValueDateExpr) {
         if (expectedValue == null && expectedValueDate == null && expectedValueInteger == null && getDate(expectedValueDateExpr) == null) {
@@ -246,9 +250,11 @@ public class PropertyConditionEvaluator implements ConditionEvaluator {
     }
 
     protected Object getPropertyValue(Item item, String expression) throws Exception {
-        Object result = getHardcodedPropertyValue(item, expression);
-        if (!NOT_OPTIMIZED_MARKER.equals(result)) {
-            return result;
+        if (usePropertyConditionOptimizations) {
+            Object result = getHardcodedPropertyValue(item, expression);
+            if (!NOT_OPTIMIZED_MARKER.equals(result)) {
+                return result;
+            }
         }
         return getOGNLPropertyValue(item, expression);
     }

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/76912989/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 31e68db..37f7ab1 100644
--- a/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -25,6 +25,7 @@
                              update-strategy="reload" placeholder-prefix="${base.">
         <cm:default-properties>
             <cm:property name="useEventToUpdateProfile" value="false" />
+            <cm:property name="usePropertyConditionOptimizations" value="true" />
         </cm:default-properties>
     </cm:property-placeholder>
 
@@ -115,7 +116,9 @@
         <service-properties>
             <entry key="conditionEvaluatorId" value="propertyConditionEvaluator"/>
         </service-properties>
-        <bean class="org.apache.unomi.plugins.baseplugin.conditions.PropertyConditionEvaluator"/>
+        <bean class="org.apache.unomi.plugins.baseplugin.conditions.PropertyConditionEvaluator">
+            <property name="usePropertyConditionOptimizations" value="${base.usePropertyConditionOptimizations}" />
+        </bean>
     </service>
 
     <service interface="org.apache.unomi.persistence.elasticsearch.conditions.ConditionEvaluator">