diff --git a/distribution/src/main/feature/feature.xml b/distribution/src/main/feature/feature.xml
index 1285be9d4..390ab3fd4 100644
--- a/distribution/src/main/feature/feature.xml
+++ b/distribution/src/main/feature/feature.xml
@@ -34,6 +34,7 @@
unomi-cxs-geonames-extension
unomi-cxs-privacy-extension
unomi-elasticsearch-conditions
+ unomi-plugins-advanced-conditions
unomi-plugins-base
unomi-plugins-request
unomi-plugins-mail
@@ -59,6 +60,7 @@
unomi-cxs-geonames-extension
unomi-cxs-privacy-extension
unomi-elasticsearch-conditions
+ unomi-plugins-advanced-conditions
unomi-plugins-base
unomi-plugins-request
unomi-plugins-mail
@@ -85,6 +87,7 @@
unomi-cxs-geonames-extension
unomi-cxs-privacy-extension
unomi-opensearch-conditions
+ unomi-plugins-advanced-conditions
unomi-plugins-base
unomi-plugins-request
unomi-plugins-mail
@@ -110,6 +113,7 @@
unomi-cxs-geonames-extension
unomi-cxs-privacy-extension
unomi-opensearch-conditions
+ unomi-plugins-advanced-conditions
unomi-plugins-base
unomi-plugins-request
unomi-plugins-mail
diff --git a/kar/src/main/feature/feature.xml b/kar/src/main/feature/feature.xml
index 3cbe47b6b..2a764410f 100644
--- a/kar/src/main/feature/feature.xml
+++ b/kar/src/main/feature/feature.xml
@@ -177,6 +177,12 @@
mvn:org.apache.unomi/unomi-plugins-base/${project.version}
+
+ unomi-plugins-base
+ unomi.persistence.conditions
+ mvn:org.apache.unomi/unomi-plugins-advanced-conditions/${project.version}
+
+
unomi-services
mvn:org.apache.unomi/unomi-plugins-request/${project.version}/cfg/requestcfg
diff --git a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/PastEventConditionPersistenceQueryBuilder.java b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/PastEventConditionPersistenceQueryBuilder.java
index c3ca0eb4d..3adffc589 100644
--- a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/PastEventConditionPersistenceQueryBuilder.java
+++ b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/PastEventConditionPersistenceQueryBuilder.java
@@ -38,7 +38,7 @@
*
* - Implementations are provided by persistence modules and injected where needed.
* -
- * In {@code org.apache.unomi.plugins.baseplugin.conditions.PastEventConditionEvaluator}, evaluation follows two paths:
+ * In {@code org.apache.unomi.plugins.advancedconditions.conditions.PastEventConditionEvaluator}, evaluation follows two paths:
*
* - If the condition has a {@code generatedPropertyKey}, the evaluator reads a precomputed count from the
* {@link org.apache.unomi.api.Profile} system properties (no persistence query).
@@ -51,7 +51,7 @@
* the result means "events occurred within bounds" or "no events occurred".
*
*
- * @see org.apache.unomi.plugins.baseplugin.conditions.PastEventConditionEvaluator
+ * @see org.apache.unomi.plugins.advancedconditions.conditions.PastEventConditionEvaluator
*/
public interface PastEventConditionPersistenceQueryBuilder {
diff --git a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/ConditionEvaluatorDispatcher.java b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/ConditionEvaluatorDispatcher.java
index 950d766bd..8259311cb 100644
--- a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/ConditionEvaluatorDispatcher.java
+++ b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/conditions/evaluator/ConditionEvaluatorDispatcher.java
@@ -42,7 +42,7 @@
* {@code PastEventConditionEvaluator} for a typical evaluator.
*
* @see org.apache.unomi.persistence.spi.conditions.evaluator.impl.ConditionEvaluatorDispatcherImpl
- * @see org.apache.unomi.plugins.baseplugin.conditions.PastEventConditionEvaluator
+ * @see org.apache.unomi.plugins.advancedconditions.conditions.PastEventConditionEvaluator
*/
public interface ConditionEvaluatorDispatcher {
diff --git a/plugins/past-event/pom.xml b/plugins/advanced-conditions/pom.xml
similarity index 87%
rename from plugins/past-event/pom.xml
rename to plugins/advanced-conditions/pom.xml
index 14d73e115..f236c08a0 100644
--- a/plugins/past-event/pom.xml
+++ b/plugins/advanced-conditions/pom.xml
@@ -43,7 +43,7 @@
org.apache.unomi
- unomi-persistence-elasticsearch-core
+ unomi-api
provided
@@ -51,6 +51,16 @@
unomi-persistence-spi
provided
+
+ org.apache.unomi
+ unomi-scripting
+ provided
+
+
+ org.osgi
+ org.osgi.service.component.annotations
+ provided
+
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PastEventConditionEvaluator.java b/plugins/advanced-conditions/src/main/java/org/apache/unomi/plugins/advancedconditions/conditions/PastEventConditionEvaluator.java
similarity index 93%
rename from plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PastEventConditionEvaluator.java
rename to plugins/advanced-conditions/src/main/java/org/apache/unomi/plugins/advancedconditions/conditions/PastEventConditionEvaluator.java
index 9566d1bee..f9aa27449 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PastEventConditionEvaluator.java
+++ b/plugins/advanced-conditions/src/main/java/org/apache/unomi/plugins/advancedconditions/conditions/PastEventConditionEvaluator.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.unomi.plugins.baseplugin.conditions;
+package org.apache.unomi.plugins.advancedconditions.conditions;
import org.apache.unomi.api.Event;
import org.apache.unomi.api.Item;
@@ -28,11 +28,14 @@
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.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+@Component(service = ConditionEvaluator.class, property = {"conditionEvaluatorId=pastEventConditionEvaluator"})
public class PastEventConditionEvaluator implements ConditionEvaluator {
private PersistenceService persistenceService;
@@ -40,18 +43,22 @@ public class PastEventConditionEvaluator implements ConditionEvaluator {
private ScriptExecutor scriptExecutor;
private PastEventConditionPersistenceQueryBuilder pastEventConditionPersistenceQueryBuilder;
+ @Reference
public void setPersistenceService(PersistenceService persistenceService) {
this.persistenceService = persistenceService;
}
+ @Reference
public void setDefinitionsService(DefinitionsService definitionsService) {
this.definitionsService = definitionsService;
}
+ @Reference
public void setPastEventConditionPersistenceQueryBuilder(PastEventConditionPersistenceQueryBuilder pastEventConditionPersistenceQueryBuilder) {
this.pastEventConditionPersistenceQueryBuilder = pastEventConditionPersistenceQueryBuilder;
}
+ @Reference
public void setScriptExecutor(ScriptExecutor scriptExecutor) {
this.scriptExecutor = scriptExecutor;
}
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/SourceEventPropertyConditionEvaluator.java b/plugins/advanced-conditions/src/main/java/org/apache/unomi/plugins/advancedconditions/conditions/SourceEventPropertyConditionEvaluator.java
similarity index 92%
rename from plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/SourceEventPropertyConditionEvaluator.java
rename to plugins/advanced-conditions/src/main/java/org/apache/unomi/plugins/advancedconditions/conditions/SourceEventPropertyConditionEvaluator.java
index aeeebb78c..56618dc89 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/SourceEventPropertyConditionEvaluator.java
+++ b/plugins/advanced-conditions/src/main/java/org/apache/unomi/plugins/advancedconditions/conditions/SourceEventPropertyConditionEvaluator.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.unomi.plugins.baseplugin.conditions;
+package org.apache.unomi.plugins.advancedconditions.conditions;
import org.apache.unomi.api.Event;
import org.apache.unomi.api.Item;
@@ -24,12 +24,15 @@
import org.apache.unomi.api.services.DefinitionsService;
import org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator;
import org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluatorDispatcher;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+@Component(service = ConditionEvaluator.class, property = {"conditionEvaluatorId=sourceEventPropertyConditionEvaluator"})
public class SourceEventPropertyConditionEvaluator implements ConditionEvaluator {
private static final Map MAPPED_PROPERTIES;
static {
@@ -82,11 +85,8 @@ public boolean eval(Condition condition, Item item, Map context,
}
}
- public DefinitionsService getDefinitionsService() {
- return definitionsService;
- }
-
+ @Reference
public void setDefinitionsService(DefinitionsService definitionsService) {
this.definitionsService = definitionsService;
}
-}
+}
\ No newline at end of file
diff --git a/plugins/baseplugin/src/main/resources/META-INF/cxs/conditions/sourceEventPropertyCondition.json b/plugins/advanced-conditions/src/main/resources/META-INF/cxs/conditions/sourceEventPropertyCondition.json
similarity index 99%
rename from plugins/baseplugin/src/main/resources/META-INF/cxs/conditions/sourceEventPropertyCondition.json
rename to plugins/advanced-conditions/src/main/resources/META-INF/cxs/conditions/sourceEventPropertyCondition.json
index ed52b8e77..2924e974a 100644
--- a/plugins/baseplugin/src/main/resources/META-INF/cxs/conditions/sourceEventPropertyCondition.json
+++ b/plugins/advanced-conditions/src/main/resources/META-INF/cxs/conditions/sourceEventPropertyCondition.json
@@ -34,4 +34,4 @@
"multivalued": false
}
]
-}
\ No newline at end of file
+}
diff --git a/plugins/past-event/src/main/resources/messages_en.properties b/plugins/advanced-conditions/src/main/resources/messages_en.properties
similarity index 100%
rename from plugins/past-event/src/main/resources/messages_en.properties
rename to plugins/advanced-conditions/src/main/resources/messages_en.properties
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 c843ca1aa..189131ff2 100644
--- a/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -50,8 +50,6 @@
-
-
@@ -104,27 +102,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/past-event/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/plugins/past-event/src/main/resources/OSGI-INF/blueprint/blueprint.xml
deleted file mode 100644
index e5142bb33..000000000
--- a/plugins/past-event/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/pom.xml b/pom.xml
index 3a27ae309..d8261f819 100644
--- a/pom.xml
+++ b/pom.xml
@@ -414,7 +414,7 @@
plugins
plugins/baseplugin
plugins/hover-event
- plugins/past-event
+ plugins/advanced-conditions
plugins/tracked-event
plugins/kafka-injector
plugins/mail