From bb825e00c4b5fdcedff8d82ab109ba5adb095959 Mon Sep 17 00:00:00 2001 From: Serge Huber Date: Tue, 16 Jun 2026 22:47:06 +0200 Subject: [PATCH] UNOMI-875: Move past-event evaluators to advanced-conditions plugin Replace the stub past-event module with plugins/advanced-conditions, relocating PastEvent and SourceEventProperty evaluators from baseplugin and wiring the new Karaf feature into distribution builds. --- distribution/src/main/feature/feature.xml | 4 +++ kar/src/main/feature/feature.xml | 6 +++++ ...EventConditionPersistenceQueryBuilder.java | 4 +-- .../ConditionEvaluatorDispatcher.java | 2 +- .../pom.xml | 12 ++++++++- .../PastEventConditionEvaluator.java | 9 ++++++- ...SourceEventPropertyConditionEvaluator.java | 12 ++++----- .../sourceEventPropertyCondition.json | 2 +- .../src/main/resources/messages_en.properties | 0 .../OSGI-INF/blueprint/blueprint.xml | 23 ---------------- .../OSGI-INF/blueprint/blueprint.xml | 26 ------------------- pom.xml | 2 +- 12 files changed, 40 insertions(+), 62 deletions(-) rename plugins/{past-event => advanced-conditions}/pom.xml (87%) rename plugins/{baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin => advanced-conditions/src/main/java/org/apache/unomi/plugins/advancedconditions}/conditions/PastEventConditionEvaluator.java (93%) rename plugins/{baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin => advanced-conditions/src/main/java/org/apache/unomi/plugins/advancedconditions}/conditions/SourceEventPropertyConditionEvaluator.java (92%) rename plugins/{baseplugin => advanced-conditions}/src/main/resources/META-INF/cxs/conditions/sourceEventPropertyCondition.json (99%) rename plugins/{past-event => advanced-conditions}/src/main/resources/messages_en.properties (100%) delete mode 100644 plugins/past-event/src/main/resources/OSGI-INF/blueprint/blueprint.xml diff --git a/distribution/src/main/feature/feature.xml b/distribution/src/main/feature/feature.xml index 1285be9d4e..390ab3fd40 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 3cbe47b6bc..2a764410fc 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 c3ca0eb4dc..3adffc589c 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 @@ * * - * @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 950d766bd4..8259311cbb 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 14d73e115b..f236c08a0f 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 9566d1bee5..f9aa274492 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 aeeebb78c3..56618dc897 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 ed52b8e773..2924e974aa 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 c843ca1aa7..189131ff28 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 e5142bb33f..0000000000 --- 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 3a27ae3097..d8261f819b 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