This is an automated email from the ASF dual-hosted git repository.
sergehuber 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 493ad95ab UNOMI-875: Move past-event evaluators to advanced-conditions
plugin (#774)
493ad95ab is described below
commit 493ad95ab2def1972c3eb43dcb1ab20afdd5bea3
Author: Serge Huber <[email protected]>
AuthorDate: Wed Jun 17 07:15:49 2026 +0200
UNOMI-875: Move past-event evaluators to advanced-conditions plugin (#774)
---
distribution/src/main/feature/feature.xml | 4 ++++
kar/src/main/feature/feature.xml | 6 +++++
.../PastEventConditionPersistenceQueryBuilder.java | 4 ++--
.../evaluator/ConditionEvaluatorDispatcher.java | 2 +-
.../{past-event => advanced-conditions}/pom.xml | 12 +++++++++-
.../conditions/PastEventConditionEvaluator.java | 9 +++++++-
.../SourceEventPropertyConditionEvaluator.java | 12 +++++-----
.../conditions/sourceEventPropertyCondition.json | 2 +-
.../src/main/resources/messages_en.properties | 0
.../resources/OSGI-INF/blueprint/blueprint.xml | 23 -------------------
.../resources/OSGI-INF/blueprint/blueprint.xml | 26 ----------------------
pom.xml | 2 +-
12 files changed, 40 insertions(+), 62 deletions(-)
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 @@
<feature dependency="true"
version="${project.version}">unomi-cxs-geonames-extension</feature>
<feature dependency="true"
version="${project.version}">unomi-cxs-privacy-extension</feature>
<feature dependency="true"
version="${project.version}">unomi-elasticsearch-conditions</feature>
+ <feature dependency="true"
version="${project.version}">unomi-plugins-advanced-conditions</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-base</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-request</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-mail</feature>
@@ -59,6 +60,7 @@
<feature dependency="true"
version="${project.version}">unomi-cxs-geonames-extension</feature>
<feature dependency="true"
version="${project.version}">unomi-cxs-privacy-extension</feature>
<feature dependency="true"
version="${project.version}">unomi-elasticsearch-conditions</feature>
+ <feature dependency="true"
version="${project.version}">unomi-plugins-advanced-conditions</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-base</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-request</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-mail</feature>
@@ -85,6 +87,7 @@
<feature dependency="true"
version="${project.version}">unomi-cxs-geonames-extension</feature>
<feature dependency="true"
version="${project.version}">unomi-cxs-privacy-extension</feature>
<feature dependency="true"
version="${project.version}">unomi-opensearch-conditions</feature>
+ <feature dependency="true"
version="${project.version}">unomi-plugins-advanced-conditions</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-base</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-request</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-mail</feature>
@@ -110,6 +113,7 @@
<feature dependency="true"
version="${project.version}">unomi-cxs-geonames-extension</feature>
<feature dependency="true"
version="${project.version}">unomi-cxs-privacy-extension</feature>
<feature dependency="true"
version="${project.version}">unomi-opensearch-conditions</feature>
+ <feature dependency="true"
version="${project.version}">unomi-plugins-advanced-conditions</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-base</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-request</feature>
<feature dependency="true"
version="${project.version}">unomi-plugins-mail</feature>
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 @@
<bundle
start="false">mvn:org.apache.unomi/unomi-plugins-base/${project.version}</bundle>
</feature>
+ <feature name="unomi-plugins-advanced-conditions" description="Apache
Unomi :: Plugins :: Advanced Conditions" version="${project.version}">
+ <feature>unomi-plugins-base</feature>
+ <requirement>unomi.persistence.conditions</requirement>
+ <bundle
start="false">mvn:org.apache.unomi/unomi-plugins-advanced-conditions/${project.version}</bundle>
+ </feature>
+
<feature name="unomi-plugins-request" description="Apache Unomi :: Plugins
:: Request" version="${project.version}">
<feature>unomi-services</feature>
<configfile
finalname="/etc/org.apache.unomi.plugins.request.cfg">mvn:org.apache.unomi/unomi-plugins-request/${project.version}/cfg/requestcfg</configfile>
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 @@ import java.util.Map;
* <ul>
* <li>Implementations are provided by persistence modules and injected
where needed.</li>
* <li>
- * 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:
* <ol>
* <li>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).</li>
@@ -51,7 +51,7 @@ import java.util.Map;
* the result means "events occurred within bounds" or "no events
occurred".</li>
* </ul>
*
- * @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 @@ import java.util.Map;
* {@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 @@
<dependencies>
<dependency>
<groupId>org.apache.unomi</groupId>
- <artifactId>unomi-persistence-elasticsearch-core</artifactId>
+ <artifactId>unomi-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
@@ -51,6 +51,16 @@
<artifactId>unomi-persistence-spi</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.unomi</groupId>
+ <artifactId>unomi-scripting</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<build>
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.PastEventConditionPersistence
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.conditions.ConditionType;
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<String,String> MAPPED_PROPERTIES;
static {
@@ -82,11 +85,8 @@ public class SourceEventPropertyConditionEvaluator
implements ConditionEvaluator
}
}
- 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 @@
<reference id="configSharingService"
interface="org.apache.unomi.api.services.ConfigSharingService"/>
<reference id="scriptExecutor"
interface="org.apache.unomi.scripting.ScriptExecutor"/>
<reference id="topicService"
interface="org.apache.unomi.api.services.TopicService"/>
- <reference id="pastEventConditionPersistenceQueryBuilder"
interface="org.apache.unomi.persistence.spi.conditions.PastEventConditionPersistenceQueryBuilder"/>
-
<reference id="executionContextManager"
interface="org.apache.unomi.api.services.ExecutionContextManager">
<reference-listener ref="mergeProfilesOnPropertyAction"
bind-method="bindExecutionContextManager"
unbind-method="unbindExecutionContextManager" />
</reference>
@@ -104,27 +102,6 @@
<bean
class="org.apache.unomi.plugins.baseplugin.conditions.GeoLocationByPointSessionConditionEvaluator"/>
</service>
- <service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator">
- <service-properties>
- <entry key="conditionEvaluatorId"
value="sourceEventPropertyConditionEvaluator"/>
- </service-properties>
- <bean
class="org.apache.unomi.plugins.baseplugin.conditions.SourceEventPropertyConditionEvaluator">
- <property name="definitionsService" ref="definitionsService"/>
- </bean>
- </service>
-
- <service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator">
- <service-properties>
- <entry key="conditionEvaluatorId"
value="pastEventConditionEvaluator"/>
- </service-properties>
- <bean
class="org.apache.unomi.plugins.baseplugin.conditions.PastEventConditionEvaluator">
- <property name="definitionsService" ref="definitionsService"/>
- <property name="persistenceService" ref="persistenceService"/>
- <property name="pastEventConditionPersistenceQueryBuilder"
ref="pastEventConditionPersistenceQueryBuilder"/>
- <property name="scriptExecutor" ref="scriptExecutor"/>
- </bean>
- </service>
-
<service
interface="org.apache.unomi.persistence.spi.conditions.evaluator.ConditionEvaluator">
<service-properties>
<entry key="conditionEvaluatorId"
value="nestedConditionEvaluator"/>
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 @@
-<?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="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
-
- <reference id="definitionsService"
interface="org.apache.unomi.api.services.DefinitionsService"/>
- <reference id="persistenceService" interface="PersistenceService"/>
-
-
-</blueprint>
diff --git a/pom.xml b/pom.xml
index 3a27ae309..d8261f819 100644
--- a/pom.xml
+++ b/pom.xml
@@ -414,7 +414,7 @@
<module>plugins</module>
<module>plugins/baseplugin</module>
<module>plugins/hover-event</module>
- <module>plugins/past-event</module>
+ <module>plugins/advanced-conditions</module>
<module>plugins/tracked-event</module>
<module>plugins/kafka-injector</module>
<module>plugins/mail</module>