From 9326a605a7747d6d9a72bd8fa1c7252cb4e6414d Mon Sep 17 00:00:00 2001 From: Mahmoud Ben Hassine Date: Tue, 16 Jun 2015 09:01:39 +0200 Subject: [PATCH] add tutorial about engine scheduler --- easyrules-samples/pom.xml | 27 +++++++++++++++++++ .../samples/scheduling/Launcher.java | 27 +++++++++++++++++++ .../samples/scheduling/TimeRule.java | 25 +++++++++++++++++ pom.xml | 6 +++++ 4 files changed, 85 insertions(+) create mode 100644 easyrules-samples/src/main/java/org/easyrules/samples/scheduling/Launcher.java create mode 100644 easyrules-samples/src/main/java/org/easyrules/samples/scheduling/TimeRule.java diff --git a/easyrules-samples/pom.xml b/easyrules-samples/pom.xml index e28774e..f50576d 100644 --- a/easyrules-samples/pom.xml +++ b/easyrules-samples/pom.xml @@ -59,6 +59,11 @@ easyrules-jmx + + org.easyrules + easyrules-quartz + + @@ -128,6 +133,28 @@ + + runSchedulerTutorial + + exec:java + + + org.codehaus.mojo + exec-maven-plugin + 1.3 + + org.easyrules.samples.scheduling.Launcher + + + java.util.logging.SimpleFormatter.format + [%1$tc] %4$s: %5$s%n + + + + + + + diff --git a/easyrules-samples/src/main/java/org/easyrules/samples/scheduling/Launcher.java b/easyrules-samples/src/main/java/org/easyrules/samples/scheduling/Launcher.java new file mode 100644 index 0000000..b5dadd4 --- /dev/null +++ b/easyrules-samples/src/main/java/org/easyrules/samples/scheduling/Launcher.java @@ -0,0 +1,27 @@ +package org.easyrules.samples.scheduling; + +import org.easyrules.api.RulesEngine; +import org.easyrules.core.RulesEngineBuilder; +import org.easyrules.quartz.RulesEngineScheduler; + +import java.util.Date; + +/** + * Main class to run the scheduler tutorial. + * + * @author Mahmoud Ben Hassine (mahmoud@benhassine.fr) + */ +public class Launcher { + + public static void main(String[] args) throws Exception { + + RulesEngine rulesEngine = RulesEngineBuilder.aNewRulesEngine().build(); + + rulesEngine.registerRule(new TimeRule()); + + RulesEngineScheduler scheduler = new RulesEngineScheduler(rulesEngine); + scheduler.scheduleAtWithInterval(new Date(), 1); + scheduler.start(); + + } +} diff --git a/easyrules-samples/src/main/java/org/easyrules/samples/scheduling/TimeRule.java b/easyrules-samples/src/main/java/org/easyrules/samples/scheduling/TimeRule.java new file mode 100644 index 0000000..de868dc --- /dev/null +++ b/easyrules-samples/src/main/java/org/easyrules/samples/scheduling/TimeRule.java @@ -0,0 +1,25 @@ +package org.easyrules.samples.scheduling; + +import org.easyrules.annotation.Action; +import org.easyrules.annotation.Condition; +import org.easyrules.annotation.Rule; + +import java.util.Date; + +@Rule(name = "time rule", description = "Print the current time only if when minutes are even") +public class TimeRule { + + private Date now; + + @Condition + public boolean checkTime() { + now = new Date(); + return now.getMinutes() % 2 == 0; + } + + @Action + public void printTime() { + System.out.println(now); + } + +} diff --git a/pom.xml b/pom.xml index 46f46b3..c004d81 100644 --- a/pom.xml +++ b/pom.xml @@ -90,6 +90,12 @@ ${project.version} + + org.easyrules + easyrules-quartz + ${project.version} + + junit junit