From b7b571e85c19a81964e0f5532d101ab8f2345a5c Mon Sep 17 00:00:00 2001 From: Serge Huber Date: Tue, 12 Sep 2023 18:35:19 +0200 Subject: [PATCH] ACADEMY-997 Improve rule documentation - Simplify rule examples by using more DSL - Fix typos - Export rule global service objects --- rules-samples/pom.xml | 6 ++++++ .../main/java/org/foo/modules/rules/Service1.java | 2 -- .../main/java/org/foo/modules/rules/TestRules.java | 3 +-- .../src/main/resources/META-INF/rules.drl | 14 ++++++++------ .../src/main/resources/META-INF/rules.dsl | 2 ++ 5 files changed, 17 insertions(+), 10 deletions(-) create mode 100644 rules-samples/src/main/resources/META-INF/rules.dsl diff --git a/rules-samples/pom.xml b/rules-samples/pom.xml index f12b188..a0bf059 100644 --- a/rules-samples/pom.xml +++ b/rules-samples/pom.xml @@ -17,6 +17,12 @@ Jahia Rules samples This is a module with Rules samples + + + + org.foo.modules.rules + + scm:git:git@github.com:Jahia/OSGi-modules-samples.git scm:git:git@github.com:Jahia/OSGi-modules-samples.git diff --git a/rules-samples/src/main/java/org/foo/modules/rules/Service1.java b/rules-samples/src/main/java/org/foo/modules/rules/Service1.java index c8da4b4..3466b73 100644 --- a/rules-samples/src/main/java/org/foo/modules/rules/Service1.java +++ b/rules-samples/src/main/java/org/foo/modules/rules/Service1.java @@ -10,9 +10,7 @@ @Component(service=Service1.class) public class Service1 { private static Logger logger = LoggerFactory.getLogger(Service1.class); - public void hello(AddedNodeFact node) throws RepositoryException { logger.info("Hello 1 " + node.getName()); } - } diff --git a/rules-samples/src/main/java/org/foo/modules/rules/TestRules.java b/rules-samples/src/main/java/org/foo/modules/rules/TestRules.java index 6f1af87..c78e7b1 100644 --- a/rules-samples/src/main/java/org/foo/modules/rules/TestRules.java +++ b/rules-samples/src/main/java/org/foo/modules/rules/TestRules.java @@ -6,9 +6,8 @@ import org.osgi.service.component.annotations.Reference; /** - * Simple Background Job declared with OSGi + * Module global rules object to register custom OSGi services * - * @author dgaillard */ @Component(service = ModuleGlobalObject.class) public class TestRules extends ModuleGlobalObject { diff --git a/rules-samples/src/main/resources/META-INF/rules.drl b/rules-samples/src/main/resources/META-INF/rules.drl index 10db988..ba5e895 100644 --- a/rules-samples/src/main/resources/META-INF/rules.drl +++ b/rules-samples/src/main/resources/META-INF/rules.drl @@ -1,9 +1,8 @@ package org.foo.modules.rules -// list any import classes here. +// list any import classes here. This is needed for OSGi to calculate the proper dependencies import org.jahia.services.content.rules.* import org.jahia.services.content.JCRContentUtils -import org.jahia.services.content.JCRValueWrapper import org.slf4j.Logger global User user @@ -14,15 +13,18 @@ global Service1 service1 global Service2 service2 rule "Hello bigText" + salience 100 when -> node: AddedNodeFact ( types contains "jnt:bigText" ) + A new node is created + - the node has the type jnt:bigText then -> service1.hello(node); + Say hello to node using service1 end rule "Hello contentList" when -> node: AddedNodeFact (types contains "jnt:contentList") + A new node is created + - the node has the type jnt:contentList then -> service2.hello(node); + Say hello to node using service2 end diff --git a/rules-samples/src/main/resources/META-INF/rules.dsl b/rules-samples/src/main/resources/META-INF/rules.dsl new file mode 100644 index 0000000..6cd783a --- /dev/null +++ b/rules-samples/src/main/resources/META-INF/rules.dsl @@ -0,0 +1,2 @@ +[consequence][]Say hello to {node} using service1=service1.hello({node}); +[consequence][]Say hello to {node} using service2=service2.hello({node});