From 4c5795177d6e1107bd56f095a5ab94a2ce92d847 Mon Sep 17 00:00:00 2001 From: tarilabs Date: Mon, 8 Sep 2014 21:39:16 +0200 Subject: [PATCH] Parametrize inclusion of Eclipse-compatibility plugin in pom.xml --- .../META-INF/maven/archetype-metadata.xml | 3 + .../resources/archetype-resources/pom.xml | 5 ++ .../archetype.properties | 1 + .../goal.txt | 0 .../reference/pom.xml | 0 .../src/main/java/it/pkg/Measurement.java | 0 .../src/main/resources/META-INF/kmodule.xml | 0 .../reference/src/main/resources/rules.drl | 0 .../src/test/java/it/pkg/RuleTest.java | 0 .../src/test/resources/log4j.properties | 0 .../archetype.properties | 7 ++ .../integrationtestNoEclipse/goal.txt | 0 .../reference/pom.xml | 72 ++++++++++++++++ .../src/main/java/it/pkg/Measurement.java | 34 ++++++++ .../src/main/resources/META-INF/kmodule.xml | 4 + .../reference/src/main/resources/rules.drl | 18 ++++ .../src/test/java/it/pkg/RuleTest.java | 86 +++++++++++++++++++ .../src/test/resources/log4j.properties | 14 +++ 18 files changed, 244 insertions(+) rename src/test/resources/projects/{integrationtest1 => integrationtestDefaults}/archetype.properties (79%) rename src/test/resources/projects/{integrationtest1 => integrationtestDefaults}/goal.txt (100%) rename src/test/resources/projects/{integrationtest1 => integrationtestDefaults}/reference/pom.xml (100%) rename src/test/resources/projects/{integrationtest1 => integrationtestDefaults}/reference/src/main/java/it/pkg/Measurement.java (100%) rename src/test/resources/projects/{integrationtest1 => integrationtestDefaults}/reference/src/main/resources/META-INF/kmodule.xml (100%) rename src/test/resources/projects/{integrationtest1 => integrationtestDefaults}/reference/src/main/resources/rules.drl (100%) rename src/test/resources/projects/{integrationtest1 => integrationtestDefaults}/reference/src/test/java/it/pkg/RuleTest.java (100%) rename src/test/resources/projects/{integrationtest1 => integrationtestDefaults}/reference/src/test/resources/log4j.properties (100%) create mode 100644 src/test/resources/projects/integrationtestNoEclipse/archetype.properties create mode 100644 src/test/resources/projects/integrationtestNoEclipse/goal.txt create mode 100644 src/test/resources/projects/integrationtestNoEclipse/reference/pom.xml create mode 100644 src/test/resources/projects/integrationtestNoEclipse/reference/src/main/java/it/pkg/Measurement.java create mode 100644 src/test/resources/projects/integrationtestNoEclipse/reference/src/main/resources/META-INF/kmodule.xml create mode 100644 src/test/resources/projects/integrationtestNoEclipse/reference/src/main/resources/rules.drl create mode 100644 src/test/resources/projects/integrationtestNoEclipse/reference/src/test/java/it/pkg/RuleTest.java create mode 100644 src/test/resources/projects/integrationtestNoEclipse/reference/src/test/resources/log4j.properties diff --git a/src/main/resources/META-INF/maven/archetype-metadata.xml b/src/main/resources/META-INF/maven/archetype-metadata.xml index 2ca17f8..9bdc50b 100644 --- a/src/main/resources/META-INF/maven/archetype-metadata.xml +++ b/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -6,6 +6,9 @@ 6.1.0.Final + + true + diff --git a/src/main/resources/archetype-resources/pom.xml b/src/main/resources/archetype-resources/pom.xml index 3b636cb..0ea7687 100644 --- a/src/main/resources/archetype-resources/pom.xml +++ b/src/main/resources/archetype-resources/pom.xml @@ -1,3 +1,6 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) 4.0.0 @@ -68,6 +71,7 @@ +#if( $pomEclipseCompatible == "true" ) @@ -97,5 +101,6 @@ +#end diff --git a/src/test/resources/projects/integrationtest1/archetype.properties b/src/test/resources/projects/integrationtestDefaults/archetype.properties similarity index 79% rename from src/test/resources/projects/integrationtest1/archetype.properties rename to src/test/resources/projects/integrationtestDefaults/archetype.properties index a05f6d4..d5d7d1c 100644 --- a/src/test/resources/projects/integrationtest1/archetype.properties +++ b/src/test/resources/projects/integrationtestDefaults/archetype.properties @@ -4,3 +4,4 @@ version=0.1-SNAPSHOT groupId=archetype.it artifactId=basic droolsVersion=6.1.0.CR2 +pomEclipseCompatible=true diff --git a/src/test/resources/projects/integrationtest1/goal.txt b/src/test/resources/projects/integrationtestDefaults/goal.txt similarity index 100% rename from src/test/resources/projects/integrationtest1/goal.txt rename to src/test/resources/projects/integrationtestDefaults/goal.txt diff --git a/src/test/resources/projects/integrationtest1/reference/pom.xml b/src/test/resources/projects/integrationtestDefaults/reference/pom.xml similarity index 100% rename from src/test/resources/projects/integrationtest1/reference/pom.xml rename to src/test/resources/projects/integrationtestDefaults/reference/pom.xml diff --git a/src/test/resources/projects/integrationtest1/reference/src/main/java/it/pkg/Measurement.java b/src/test/resources/projects/integrationtestDefaults/reference/src/main/java/it/pkg/Measurement.java similarity index 100% rename from src/test/resources/projects/integrationtest1/reference/src/main/java/it/pkg/Measurement.java rename to src/test/resources/projects/integrationtestDefaults/reference/src/main/java/it/pkg/Measurement.java diff --git a/src/test/resources/projects/integrationtest1/reference/src/main/resources/META-INF/kmodule.xml b/src/test/resources/projects/integrationtestDefaults/reference/src/main/resources/META-INF/kmodule.xml similarity index 100% rename from src/test/resources/projects/integrationtest1/reference/src/main/resources/META-INF/kmodule.xml rename to src/test/resources/projects/integrationtestDefaults/reference/src/main/resources/META-INF/kmodule.xml diff --git a/src/test/resources/projects/integrationtest1/reference/src/main/resources/rules.drl b/src/test/resources/projects/integrationtestDefaults/reference/src/main/resources/rules.drl similarity index 100% rename from src/test/resources/projects/integrationtest1/reference/src/main/resources/rules.drl rename to src/test/resources/projects/integrationtestDefaults/reference/src/main/resources/rules.drl diff --git a/src/test/resources/projects/integrationtest1/reference/src/test/java/it/pkg/RuleTest.java b/src/test/resources/projects/integrationtestDefaults/reference/src/test/java/it/pkg/RuleTest.java similarity index 100% rename from src/test/resources/projects/integrationtest1/reference/src/test/java/it/pkg/RuleTest.java rename to src/test/resources/projects/integrationtestDefaults/reference/src/test/java/it/pkg/RuleTest.java diff --git a/src/test/resources/projects/integrationtest1/reference/src/test/resources/log4j.properties b/src/test/resources/projects/integrationtestDefaults/reference/src/test/resources/log4j.properties similarity index 100% rename from src/test/resources/projects/integrationtest1/reference/src/test/resources/log4j.properties rename to src/test/resources/projects/integrationtestDefaults/reference/src/test/resources/log4j.properties diff --git a/src/test/resources/projects/integrationtestNoEclipse/archetype.properties b/src/test/resources/projects/integrationtestNoEclipse/archetype.properties new file mode 100644 index 0000000..385e58f --- /dev/null +++ b/src/test/resources/projects/integrationtestNoEclipse/archetype.properties @@ -0,0 +1,7 @@ +#Sun Sep 07 11:34:37 CEST 2014 +package=it.pkg +version=0.1-SNAPSHOT +groupId=archetype.it +artifactId=basic +droolsVersion=6.1.0.CR2 +pomEclipseCompatible=false diff --git a/src/test/resources/projects/integrationtestNoEclipse/goal.txt b/src/test/resources/projects/integrationtestNoEclipse/goal.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/test/resources/projects/integrationtestNoEclipse/reference/pom.xml b/src/test/resources/projects/integrationtestNoEclipse/reference/pom.xml new file mode 100644 index 0000000..155e325 --- /dev/null +++ b/src/test/resources/projects/integrationtestNoEclipse/reference/pom.xml @@ -0,0 +1,72 @@ + + + 4.0.0 + + archetype.it + basic + 0.1-SNAPSHOT + kjar + + basic + http://drools.org + + + UTF-8 + 6.1.0.CR2 + + + + + + org.drools + drools-bom + pom + ${drools-version} + import + + + + + + + + org.drools + drools-compiler + test + + + + junit + junit + 4.11 + test + + + org.slf4j + slf4j-log4j12 + 1.7.2 + test + + + + + + + maven-compiler-plugin + 3.1 + + 1.6 + 1.6 + + + + org.kie + kie-maven-plugin + ${drools-version} + true + + + + + + diff --git a/src/test/resources/projects/integrationtestNoEclipse/reference/src/main/java/it/pkg/Measurement.java b/src/test/resources/projects/integrationtestNoEclipse/reference/src/main/java/it/pkg/Measurement.java new file mode 100644 index 0000000..8b73bf4 --- /dev/null +++ b/src/test/resources/projects/integrationtestNoEclipse/reference/src/main/java/it/pkg/Measurement.java @@ -0,0 +1,34 @@ +package it.pkg; + +public class Measurement { + private String id; + private String val; + + public Measurement(String id, String val) { + super(); + this.id = id; + this.val = val; + } + + public String getId() { + return id; + } + + public String getVal() { + return val; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("Measurement ["); + if (id != null) + builder.append("id=").append(id).append(", "); + if (val != null) + builder.append("val=").append(val); + builder.append("]"); + return builder.toString(); + } + + +} diff --git a/src/test/resources/projects/integrationtestNoEclipse/reference/src/main/resources/META-INF/kmodule.xml b/src/test/resources/projects/integrationtestNoEclipse/reference/src/main/resources/META-INF/kmodule.xml new file mode 100644 index 0000000..f1eb81b --- /dev/null +++ b/src/test/resources/projects/integrationtestNoEclipse/reference/src/main/resources/META-INF/kmodule.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/test/resources/projects/integrationtestNoEclipse/reference/src/main/resources/rules.drl b/src/test/resources/projects/integrationtestNoEclipse/reference/src/main/resources/rules.drl new file mode 100644 index 0000000..99898cf --- /dev/null +++ b/src/test/resources/projects/integrationtestNoEclipse/reference/src/main/resources/rules.drl @@ -0,0 +1,18 @@ +package it.pkg; + +global java.util.Set assertLast2m; + +declare Measurement + @role(event) +end + +rule "colors seen in the last 2 minutes" +no-loop +when + accumulate ( Measurement( id == "color", $colorVal : val) over window:time(2m); + $mySet : collectSet( $colorVal ) + ) +then + assertLast2m.clear(); + assertLast2m.addAll($mySet); +end \ No newline at end of file diff --git a/src/test/resources/projects/integrationtestNoEclipse/reference/src/test/java/it/pkg/RuleTest.java b/src/test/resources/projects/integrationtestNoEclipse/reference/src/test/java/it/pkg/RuleTest.java new file mode 100644 index 0000000..3f9c720 --- /dev/null +++ b/src/test/resources/projects/integrationtestNoEclipse/reference/src/test/java/it/pkg/RuleTest.java @@ -0,0 +1,86 @@ +package it.pkg; + +import static org.junit.Assert.*; + +import java.util.HashSet; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +import org.drools.core.time.SessionPseudoClock; +import org.junit.Test; +import org.kie.api.KieBase; +import org.kie.api.KieBaseConfiguration; +import org.kie.api.KieServices; +import org.kie.api.builder.Message; +import org.kie.api.builder.Results; +import org.kie.api.conf.EventProcessingOption; +import org.kie.api.definition.KiePackage; +import org.kie.api.definition.rule.Rule; +import org.kie.api.runtime.KieContainer; +import org.kie.api.runtime.KieSession; +import org.kie.api.runtime.KieSessionConfiguration; +import org.kie.api.runtime.conf.ClockTypeOption; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class RuleTest { + static final Logger LOG = LoggerFactory.getLogger(RuleTest.class); + + @Test + public void test() { + KieServices kieServices = KieServices.Factory.get(); + + KieContainer kContainer = kieServices.getKieClasspathContainer(); + Results verifyResults = kContainer.verify(); + for (Message m : verifyResults.getMessages()) { + LOG.info("{}", m); + } + + LOG.info("Creating kieBase with STREAM option"); + KieBaseConfiguration kieBaseConf = kieServices.newKieBaseConfiguration(); + kieBaseConf.setOption( EventProcessingOption.STREAM ); + KieBase kieBase = kContainer.newKieBase(kieBaseConf); + + LOG.info("There should be rules: "); + for ( KiePackage kp : kieBase.getKiePackages() ) { + for (Rule rule : kp.getRules()) { + LOG.info("kp " + kp + " rule " + rule.getName()); + } + } + + LOG.info("Creating kieSession"); + KieSessionConfiguration config = kieServices.newKieSessionConfiguration(); + config.setOption( ClockTypeOption.get("pseudo") ); + KieSession session = kieBase.newKieSession(config, null); + SessionPseudoClock clock = session.getSessionClock(); + + LOG.info("Populating globals"); + Set check = new HashSet(); + session.setGlobal("assertLast2m", check); + + LOG.info("Now running data"); + + clock.advanceTime(1, TimeUnit.MINUTES); + Measurement mRed= new Measurement("color", "red"); + session.insert(mRed); + session.fireAllRules(); + + clock.advanceTime(1, TimeUnit.MINUTES); + Measurement mGreen= new Measurement("color", "green"); + session.insert(mGreen); + session.fireAllRules(); + + clock.advanceTime(1, TimeUnit.MINUTES); + Measurement mBlue= new Measurement("color", "blue"); + session.insert(mBlue); + session.fireAllRules(); + + LOG.info("Final checks"); + + assertEquals("Size of object in Working Memory is 2 for the last 2", 2, session.getObjects().size()); + assertFalse("contains red", check.contains("red")); + assertTrue("contains green", check.contains("green")); + assertTrue("contains blue", check.contains("blue")); + + } +} \ No newline at end of file diff --git a/src/test/resources/projects/integrationtestNoEclipse/reference/src/test/resources/log4j.properties b/src/test/resources/projects/integrationtestNoEclipse/reference/src/test/resources/log4j.properties new file mode 100644 index 0000000..6b73ebd --- /dev/null +++ b/src/test/resources/projects/integrationtestNoEclipse/reference/src/test/resources/log4j.properties @@ -0,0 +1,14 @@ +log4j.rootLogger=INFO, A1 + +log4j.appender.A1=org.apache.log4j.ConsoleAppender +log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout.ConversionPattern=%d %-5p [%c] (%t) %m%n + +log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender +log4j.appender.A2.File=basic.log +log4j.appender.A2.DatePattern='.'yyyy-MM-dd +log4j.appender.A2.layout=org.apache.log4j.PatternLayout +log4j.appender.A2.layout.ConversionPattern=%d %-5p [%c] (%t) %m%n + +# Print only messages of level WARN or above in the package it.pkg. +#log4j.logger.it.pkg=DEBUG \ No newline at end of file