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">