This is an automated email from the ASF dual-hosted git repository.
jsinovassinnaik pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/unomi.git
The following commit(s) were added to refs/heads/master by this push:
new 73c9ea9a3 UNOMI-901: change condition evaluator injection to avoid
reference issue on stop" (#730)
73c9ea9a3 is described below
commit 73c9ea9a3742ed0069f7158242628a5935c06f84
Author: Jonathan SINOVASSIN-NAIK <[email protected]>
AuthorDate: Tue Sep 16 14:30:57 2025 +0200
UNOMI-901: change condition evaluator injection to avoid reference issue on
stop" (#730)
---
.../ElasticSearchPersistenceServiceImpl.java | 16 +--------
.../resources/OSGI-INF/blueprint/blueprint.xml | 12 ++-----
persistence-spi/pom.xml | 7 +++-
.../{ => evaluator}/ConditionEvaluator.java | 2 +-
.../ConditionEvaluatorDispatcher.java | 6 +---
.../impl}/ConditionEvaluatorDispatcherImpl.java | 37 ++++++++++++-------
.../resources/OSGI-INF/blueprint/blueprint.xml | 41 ----------------------
.../conditions/BooleanConditionEvaluator.java | 4 +--
...eoLocationByPointSessionConditionEvaluator.java | 4 +--
.../conditions/IdsConditionEvaluator.java | 4 +--
.../conditions/MatchAllConditionEvaluator.java | 4 +--
.../conditions/NestedConditionEvaluator.java | 4 +--
.../conditions/NotConditionEvaluator.java | 4 +--
.../conditions/PastEventConditionEvaluator.java | 4 +--
.../conditions/PropertyConditionEvaluator.java | 4 +--
.../SourceEventPropertyConditionEvaluator.java | 4 +--
.../resources/OSGI-INF/blueprint/blueprint.xml | 18 +++++-----
17 files changed, 62 insertions(+), 113 deletions(-)
diff --git
a/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
b/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
index 624a721ed..8117116d0 100644
---
a/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
+++
b/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
@@ -74,8 +74,7 @@ import org.apache.unomi.persistence.spi.aggregate.*;
import org.apache.unomi.persistence.spi.aggregate.DateRangeAggregate;
import org.apache.unomi.persistence.spi.aggregate.IpRangeAggregate;
import org.apache.unomi.persistence.spi.conditions.ConditionContextHelper;
-import org.apache.unomi.persistence.spi.conditions.ConditionEvaluator;
-import
org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
import org.elasticsearch.client.*;
import org.osgi.framework.*;
@@ -611,19 +610,6 @@ public class ElasticSearchPersistenceServiceImpl
implements PersistenceService,
bundleContext.removeBundleListener(this);
}
- public void bindConditionEvaluator(ServiceReference<ConditionEvaluator>
conditionEvaluatorServiceReference) {
- ConditionEvaluator conditionEvaluator =
bundleContext.getService(conditionEvaluatorServiceReference);
-
conditionEvaluatorDispatcher.addEvaluator(conditionEvaluatorServiceReference.getProperty("conditionEvaluatorId").toString(),
- conditionEvaluator);
- }
-
- public void unbindConditionEvaluator(ServiceReference<ConditionEvaluator>
conditionEvaluatorServiceReference) {
- if (conditionEvaluatorServiceReference == null) {
- return;
- }
-
conditionEvaluatorDispatcher.removeEvaluator(conditionEvaluatorServiceReference.getProperty("conditionEvaluatorId").toString());
- }
-
public void
bindConditionESQueryBuilder(ServiceReference<ConditionESQueryBuilder>
conditionESQueryBuilderServiceReference) {
ConditionESQueryBuilder conditionESQueryBuilder =
bundleContext.getService(conditionESQueryBuilderServiceReference);
conditionESQueryBuilderDispatcher.addQueryBuilder(conditionESQueryBuilderServiceReference.getProperty("queryBuilderId").toString(),
diff --git
a/persistence-elasticsearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
b/persistence-elasticsearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index e5e9ee0ad..b94416a6a 100644
---
a/persistence-elasticsearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++
b/persistence-elasticsearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -75,7 +75,8 @@
<reference id="metricsService"
interface="org.apache.unomi.metrics.MetricsService"/>
<reference id="scriptExecutor"
interface="org.apache.unomi.scripting.ScriptExecutor"/>
- <reference id="conditionEvaluatorDispatcherService"
interface="org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher"/>
+ <reference id="conditionEvaluatorDispatcherService"
+
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher"/>
<service id="elasticSearchPersistenceService"
ref="elasticSearchPersistenceServiceImpl">
<interfaces>
@@ -148,15 +149,6 @@
<property name="logLevelRestClient" value="${es.logLevelRestClient}"/>
</bean>
- <!-- We use a listener here because using the list directly for listening
to proxies coming from the same bundle didn't seem to work -->
- <reference-list id="conditionEvaluators"
-
interface="org.apache.unomi.persistence.spi.conditions.ConditionEvaluator"
- availability="optional">
- <reference-listener
- bind-method="bindConditionEvaluator"
unbind-method="unbindConditionEvaluator"
- ref="elasticSearchPersistenceServiceImpl"/>
- </reference-list>
-
<reference-list id="conditionESQueryBuilders"
interface="org.apache.unomi.persistence.elasticsearch.ConditionESQueryBuilder"
availability="optional">
diff --git a/persistence-spi/pom.xml b/persistence-spi/pom.xml
index f33e06665..7ec747761 100644
--- a/persistence-spi/pom.xml
+++ b/persistence-spi/pom.xml
@@ -57,6 +57,11 @@
<artifactId>unomi-metrics</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
@@ -121,9 +126,9 @@
<extensions>true</extensions>
<configuration>
<instructions>
+ <_dsannotations>*</_dsannotations>
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
<Import-Package>
-
*
</Import-Package>
</instructions>
diff --git
a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/ConditionEvaluator.java
b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/ConditionEvaluator.java
similarity index 94%
rename from
persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/ConditionEvaluator.java
rename to
persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/ConditionEvaluator.java
index 97af4ed97..fe2cf0451 100644
---
a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/ConditionEvaluator.java
+++
b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/ConditionEvaluator.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.unomi.persistence.spi.conditions;
+package org.apache.unomi.persistence.spi.conditions.evaluator;
import org.apache.unomi.api.Item;
import org.apache.unomi.api.conditions.Condition;
diff --git
a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/ConditionEvaluatorDispatcher.java
b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/ConditionEvaluatorDispatcher.java
similarity index 87%
rename from
persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/ConditionEvaluatorDispatcher.java
rename to
persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/ConditionEvaluatorDispatcher.java
index 0c6f438b4..458a06c96 100644
---
a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/ConditionEvaluatorDispatcher.java
+++
b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/ConditionEvaluatorDispatcher.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.unomi.persistence.spi.conditions;
+package org.apache.unomi.persistence.spi.conditions.evaluator;
import org.apache.unomi.api.Item;
import org.apache.unomi.api.conditions.Condition;
@@ -23,10 +23,6 @@ import java.util.Map;
public interface ConditionEvaluatorDispatcher {
- void addEvaluator(String name, ConditionEvaluator evaluator);
-
- void removeEvaluator(String name);
-
boolean eval(Condition condition, Item item);
boolean eval(Condition condition, Item item, Map<String, Object> context);
diff --git
a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/ConditionEvaluatorDispatcherImpl.java
b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/impl/ConditionEvaluatorDispatcherImpl.java
similarity index 71%
rename from
persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/ConditionEvaluatorDispatcherImpl.java
rename to
persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/impl/ConditionEvaluatorDispatcherImpl.java
index 5a7f4cfc3..caacbac67 100644
---
a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/ConditionEvaluatorDispatcherImpl.java
+++
b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/impl/ConditionEvaluatorDispatcherImpl.java
@@ -15,13 +15,21 @@
* limitations under the License.
*/
-package org.apache.unomi.persistence.spi.conditions;
+package org.apache.unomi.persistence.spi.conditions.evaluator.impl;
import org.apache.unomi.api.Item;
import org.apache.unomi.api.conditions.Condition;
import org.apache.unomi.metrics.MetricAdapter;
import org.apache.unomi.metrics.MetricsService;
+import org.apache.unomi.persistence.spi.conditions.ConditionContextHelper;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
import org.apache.unomi.scripting.ScriptExecutor;
+import org.osgi.annotation.bundle.Requirement;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,33 +40,37 @@ import java.util.concurrent.ConcurrentHashMap;
/**
* Entry point for condition evaluation. Will dispatch to all evaluators.
*/
-//TODO change to delarative services remove blueprint
-public class ConditionEvaluatorDispatcherImpl implements
ConditionEvaluatorDispatcher {
- private static final Logger LOGGER =
LoggerFactory.getLogger(ConditionEvaluatorDispatcher.class.getName());
+
+@Component(service = ConditionEvaluatorDispatcher.class)
+public class ConditionEvaluatorDispatcherImpl
+ implements ConditionEvaluatorDispatcher {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(ConditionEvaluatorDispatcherImpl.class.getName());
private Map<String, ConditionEvaluator> evaluators = new
ConcurrentHashMap<>();
private MetricsService metricsService;
private ScriptExecutor scriptExecutor;
- public ConditionEvaluatorDispatcherImpl() {}
+ public ConditionEvaluatorDispatcherImpl() {
+ }
+ @Reference
public void setMetricsService(MetricsService metricsService) {
this.metricsService = metricsService;
}
+ @Reference
public void setScriptExecutor(ScriptExecutor scriptExecutor) {
this.scriptExecutor = scriptExecutor;
}
- @Override
- public void addEvaluator(String name, ConditionEvaluator evaluator) {
- evaluators.put(name, evaluator);
+ @Reference(service = ConditionEvaluator.class, cardinality =
ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC)
+ public void bindEvaluator(ConditionEvaluator evaluator, Map<String,
Object> props) {
+ evaluators.put((String) props.get("conditionEvaluatorId"), evaluator);
}
- @Override
- public void removeEvaluator(String name) {
- evaluators.remove(name);
+ public void unbindEvaluator(ConditionEvaluator evaluator, Map<String,
Object> props) {
+ evaluators.remove((String) props.get("conditionEvaluatorId"));
}
@Override
@@ -83,8 +95,7 @@ public class ConditionEvaluatorDispatcherImpl implements
ConditionEvaluatorDispa
final ConditionEvaluatorDispatcher dispatcher = this;
try {
return new MetricAdapter<Boolean>(metricsService,
this.getClass().getName() + ".conditions." + conditionEvaluatorKey) {
- @Override
- public Boolean execute(Object... args) throws Exception {
+ @Override public Boolean execute(Object... args) throws
Exception {
Condition contextualCondition =
ConditionContextHelper.getContextualCondition(condition, context,
scriptExecutor);
if (contextualCondition != null) {
return evaluator.eval(contextualCondition, item,
context, dispatcher);
diff --git
a/persistence-spi/src/main/resources/OSGI-INF/blueprint/blueprint.xml
b/persistence-spi/src/main/resources/OSGI-INF/blueprint/blueprint.xml
deleted file mode 100644
index 7da5a271f..000000000
--- a/persistence-spi/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ 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.
- -->
-
-<blueprint xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
- xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
- http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0
http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">
-
-
- <reference id="metricsService"
interface="org.apache.unomi.metrics.MetricsService" />
- <reference id="scriptExecutor"
interface="org.apache.unomi.scripting.ScriptExecutor" />
-
- <bean id="conditionEvaluatorDispatcherImpl"
-
class="org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcherImpl">
- <property name="metricsService" ref="metricsService" />
- <property name="scriptExecutor" ref="scriptExecutor" />
- </bean>
-
- <service id="conditionEvaluatorDispatcherService"
ref="conditionEvaluatorDispatcherImpl">
- <interfaces>
-
<value>org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher</value>
- </interfaces>
- </service>
-
-</blueprint>
\ No newline at end of file
diff --git
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionEvaluator.java
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionEvaluator.java
index ade280e6d..4d16d4909 100644
---
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionEvaluator.java
+++
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionEvaluator.java
@@ -19,8 +19,8 @@ package org.apache.unomi.plugins.baseplugin.conditions;
import org.apache.unomi.api.Item;
import org.apache.unomi.api.conditions.Condition;
-import org.apache.unomi.persistence.spi.conditions.ConditionEvaluator;
-import
org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
import java.util.List;
import java.util.Map;
diff --git
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionEvaluator.java
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionEvaluator.java
index b98ce9150..34e45bc21 100644
---
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionEvaluator.java
+++
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionEvaluator.java
@@ -20,8 +20,8 @@ package org.apache.unomi.plugins.baseplugin.conditions;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.unomi.api.Item;
import org.apache.unomi.api.conditions.Condition;
-import org.apache.unomi.persistence.spi.conditions.ConditionEvaluator;
-import
org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
import org.apache.unomi.persistence.spi.conditions.geo.DistanceUnit;
import org.apache.unomi.persistence.spi.conditions.geo.GeoDistance;
import org.slf4j.Logger;
diff --git
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/IdsConditionEvaluator.java
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/IdsConditionEvaluator.java
index 32f5b9468..51bb6fd82 100644
---
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/IdsConditionEvaluator.java
+++
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/IdsConditionEvaluator.java
@@ -18,8 +18,8 @@ package org.apache.unomi.plugins.baseplugin.conditions;
import org.apache.unomi.api.Item;
import org.apache.unomi.api.conditions.Condition;
-import org.apache.unomi.persistence.spi.conditions.ConditionEvaluator;
-import
org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
import java.util.Collection;
import java.util.Map;
diff --git
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/MatchAllConditionEvaluator.java
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/MatchAllConditionEvaluator.java
index cab1c35fe..0c9ea43bf 100644
---
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/MatchAllConditionEvaluator.java
+++
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/MatchAllConditionEvaluator.java
@@ -19,8 +19,8 @@ package org.apache.unomi.plugins.baseplugin.conditions;
import org.apache.unomi.api.Item;
import org.apache.unomi.api.conditions.Condition;
-import org.apache.unomi.persistence.spi.conditions.ConditionEvaluator;
-import
org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
import java.util.Map;
diff --git
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/NestedConditionEvaluator.java
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/NestedConditionEvaluator.java
index 2a6a112b1..154dcc34b 100644
---
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/NestedConditionEvaluator.java
+++
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/NestedConditionEvaluator.java
@@ -22,8 +22,8 @@ import org.apache.unomi.api.Item;
import org.apache.unomi.api.Profile;
import org.apache.unomi.api.Session;
import org.apache.unomi.api.conditions.Condition;
-import org.apache.unomi.persistence.spi.conditions.ConditionEvaluator;
-import
org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/NotConditionEvaluator.java
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/NotConditionEvaluator.java
index 9296214bb..57a305a96 100644
---
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/NotConditionEvaluator.java
+++
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/NotConditionEvaluator.java
@@ -19,8 +19,8 @@ package org.apache.unomi.plugins.baseplugin.conditions;
import org.apache.unomi.api.Item;
import org.apache.unomi.api.conditions.Condition;
-import org.apache.unomi.persistence.spi.conditions.ConditionEvaluator;
-import
org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
import java.util.Map;
diff --git
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PastEventConditionEvaluator.java
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PastEventConditionEvaluator.java
index 6d9ce91e1..74e4cf28f 100644
---
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PastEventConditionEvaluator.java
+++
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PastEventConditionEvaluator.java
@@ -23,9 +23,9 @@ import org.apache.unomi.api.Profile;
import org.apache.unomi.api.conditions.Condition;
import org.apache.unomi.api.services.DefinitionsService;
import org.apache.unomi.persistence.spi.PersistenceService;
-import org.apache.unomi.persistence.spi.conditions.ConditionEvaluator;
-import
org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher;
import
org.apache.unomi.persistence.spi.conditions.PastEventConditionPersistenceQueryBuilder;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
import org.apache.unomi.scripting.ScriptExecutor;
import java.util.ArrayList;
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 0e1ecadc7..e6c391fdf 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
@@ -25,8 +25,8 @@ import org.apache.unomi.api.Item;
import org.apache.unomi.api.conditions.Condition;
import org.apache.unomi.persistence.spi.PropertyHelper;
import org.apache.unomi.persistence.spi.conditions.ConditionContextHelper;
-import org.apache.unomi.persistence.spi.conditions.ConditionEvaluator;
-import
org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
import org.apache.unomi.persistence.spi.conditions.DateUtils;
import org.apache.unomi.persistence.spi.conditions.geo.DistanceUnit;
import
org.apache.unomi.plugins.baseplugin.conditions.accessors.HardcodedPropertyAccessor;
diff --git
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/SourceEventPropertyConditionEvaluator.java
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/SourceEventPropertyConditionEvaluator.java
index 5876cb379..f57562cba 100644
---
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/SourceEventPropertyConditionEvaluator.java
+++
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/SourceEventPropertyConditionEvaluator.java
@@ -22,8 +22,8 @@ import org.apache.unomi.api.Item;
import org.apache.unomi.api.conditions.Condition;
import org.apache.unomi.api.conditions.ConditionType;
import org.apache.unomi.api.services.DefinitionsService;
-import org.apache.unomi.persistence.spi.conditions.ConditionEvaluator;
-import
org.apache.unomi.persistence.spi.conditions.ConditionEvaluatorDispatcher;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator;
+import
org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
import java.util.ArrayList;
import java.util.HashMap;
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 d69f91c78..68adb6d68 100644
--- a/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -53,21 +53,21 @@
<reference id="pastEventConditionPersistenceQueryBuilder"
interface="org.apache.unomi.persistence.spi.conditions.PastEventConditionPersistenceQueryBuilder"/>
<!-- Condition evaluators -->
- <service
interface="org.apache.unomi.persistence.spi.conditions.ConditionEvaluator">
+ <service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator">
<service-properties>
<entry key="conditionEvaluatorId"
value="booleanConditionEvaluator"/>
</service-properties>
<bean
class="org.apache.unomi.plugins.baseplugin.conditions.BooleanConditionEvaluator"/>
</service>
- <service
interface="org.apache.unomi.persistence.spi.conditions.ConditionEvaluator">
+ <service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator">
<service-properties>
<entry key="conditionEvaluatorId" value="idsConditionEvaluator"/>
</service-properties>
<bean
class="org.apache.unomi.plugins.baseplugin.conditions.IdsConditionEvaluator"/>
</service>
- <service
interface="org.apache.unomi.persistence.spi.conditions.ConditionEvaluator">
+ <service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator">
<service-properties>
<entry key="conditionEvaluatorId" value="notConditionEvaluator"/>
</service-properties>
@@ -77,27 +77,27 @@
<bean id="propertyConditionEvaluator"
class="org.apache.unomi.plugins.baseplugin.conditions.PropertyConditionEvaluator">
<property name="usePropertyConditionOptimizations"
value="${base.usePropertyConditionOptimizations}"/>
</bean>
- <service
interface="org.apache.unomi.persistence.spi.conditions.ConditionEvaluator"
ref="propertyConditionEvaluator">
+ <service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator"
ref="propertyConditionEvaluator">
<service-properties>
<entry key="conditionEvaluatorId"
value="propertyConditionEvaluator"/>
</service-properties>
</service>
- <service
interface="org.apache.unomi.persistence.spi.conditions.ConditionEvaluator">
+ <service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator">
<service-properties>
<entry key="conditionEvaluatorId"
value="matchAllConditionEvaluator"/>
</service-properties>
<bean
class="org.apache.unomi.plugins.baseplugin.conditions.MatchAllConditionEvaluator"/>
</service>
- <service
interface="org.apache.unomi.persistence.spi.conditions.ConditionEvaluator">
+ <service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator">
<service-properties>
<entry key="conditionEvaluatorId"
value="geoLocationByPointSessionConditionEvaluator"/>
</service-properties>
<bean
class="org.apache.unomi.plugins.baseplugin.conditions.GeoLocationByPointSessionConditionEvaluator"/>
</service>
- <service
interface="org.apache.unomi.persistence.spi.conditions.ConditionEvaluator">
+ <service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator">
<service-properties>
<entry key="conditionEvaluatorId"
value="sourceEventPropertyConditionEvaluator"/>
</service-properties>
@@ -106,7 +106,7 @@
</bean>
</service>
- <service
interface="org.apache.unomi.persistence.spi.conditions.ConditionEvaluator">
+ <service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator">
<service-properties>
<entry key="conditionEvaluatorId"
value="pastEventConditionEvaluator"/>
</service-properties>
@@ -118,7 +118,7 @@
</bean>
</service>
- <service
interface="org.apache.unomi.persistence.spi.conditions.ConditionEvaluator">
+ <service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator">
<service-properties>
<entry key="conditionEvaluatorId"
value="nestedConditionEvaluator"/>
</service-properties>