Work
This commit is contained in:
parent
543772616c
commit
48a27afb3d
35 changed files with 98 additions and 869 deletions
6
AccountProject/drools-lesson4/drools-lesson2 (6).iml
Normal file
6
AccountProject/drools-lesson4/drools-lesson2 (6).iml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="false">
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
34
AccountProject/drools-lesson4/drools-lesson4.iml
Normal file
34
AccountProject/drools-lesson4/drools-lesson4.iml
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
|
||||
<output url="file://$MODULE_DIR$/../drools-lesson8/target/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/../drools-lesson8/target/test-classes" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="Maven: org.drools:drools-compiler:6.4.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.drools:drools-core:6.4.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-internal:6.4.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.antlr:antlr-runtime:3.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mvel:mvel2:2.2.8.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.4.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: xmlpull:xmlpull:1.1.3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.4c" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:2.6.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.eclipse.jdt.core.compiler:ecj:3.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jbpm:jbpm-bpmn2:6.4.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jbpm:jbpm-flow-builder:6.4.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jbpm:jbpm-flow:6.4.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: joda-time:joda-time:2.2" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-api:6.4.0.Final" level="project" />
|
||||
<orderEntry type="module" module-name="drools-lesson-pojo" />
|
||||
</component>
|
||||
</module>
|
||||
6
AccountProject/drools-lesson4/drools-lesson8.iml
Normal file
6
AccountProject/drools-lesson4/drools-lesson8.iml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="false">
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
43
AccountProject/drools-lesson4/pom.xml
Normal file
43
AccountProject/drools-lesson4/pom.xml
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>AccountProject</artifactId>
|
||||
<groupId>com.pymma-software.droolscourse</groupId>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>drools-lesson8</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.drools</groupId>
|
||||
<artifactId>drools-compiler</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jdt.core.compiler</groupId>
|
||||
<artifactId>ecj</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jbpm</groupId>
|
||||
<artifactId>jbpm-bpmn2</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.kie</groupId>
|
||||
<artifactId>kie-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pymma-software.droolscourse</groupId>
|
||||
<artifactId>drools-lesson-pojo</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
||||
|
||||
<kbase name="lesson4" packages="lesson4">
|
||||
<ksession name="lesson4-session"/>
|
||||
</kbase>
|
||||
<kbase name="lesson4a" packages="lesson4a">
|
||||
<ksession name="lesson4a-session"/>
|
||||
</kbase>
|
||||
</kmodule>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<process xmlns="http://drools.org/drools-5.0/process"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xs:schemaLocation="http://drools.org/drools-5.0/process drools-processes-5.0.xsd"
|
||||
type="RuleFlow" name="RuleFlow1" id="RF1" package-name="cours" >
|
||||
|
||||
<header>
|
||||
</header>
|
||||
|
||||
<nodes>
|
||||
<start id="1" name="Start" x="62" y="79" width="80" height="40" />
|
||||
<ruleSet id="2" name="Verify" x="162" y="77" width="80" height="40" ruleFlowGroup="Group1" />
|
||||
<ruleSet id="3" name="Calculation" x="267" y="77" width="80" height="40" ruleFlowGroup="Group2" />
|
||||
<end id="4" name="End" x="372" y="77" width="80" height="40" />
|
||||
</nodes>
|
||||
|
||||
<connections>
|
||||
<connection from="1" to="2" />
|
||||
<connection from="2" to="3" />
|
||||
<connection from="3" to="4" />
|
||||
</connections>
|
||||
|
||||
</process>
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
//#created on: 30 oct. 2010
|
||||
package cours
|
||||
|
||||
//#list any import classes here.
|
||||
import droolscours.Account;
|
||||
import droolscours.AccountingPeriod;
|
||||
import droolscours.CashFlow;
|
||||
import droolscours.util.OutputDisplay;
|
||||
|
||||
//#declare any global variables here
|
||||
|
||||
|
||||
global OutputDisplay showResult;
|
||||
|
||||
|
||||
rule "Account group1"
|
||||
ruleflow-group "Group1"
|
||||
when
|
||||
Account( )
|
||||
then
|
||||
showResult.showText("Account in Group1");
|
||||
|
||||
end
|
||||
rule "Account group2"
|
||||
ruleflow-group "Group2"
|
||||
when
|
||||
Account( )
|
||||
then
|
||||
showResult.showText("Account in Group2");
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<process xmlns="http://drools.org/drools-5.0/process"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xs:schemaLocation="http://drools.org/drools-5.0/process drools-processes-5.0.xsd"
|
||||
type="RuleFlow" name="RuleFlow3" id="RF3" package-name="cours" >
|
||||
|
||||
<header>
|
||||
<imports>
|
||||
<import name="droolscours.Account" />
|
||||
</imports>
|
||||
</header>
|
||||
|
||||
<nodes>
|
||||
<start id="1" name="Start" x="27" y="78" width="80" height="40" />
|
||||
<ruleSet id="2" name="Calculate2" x="264" y="135" width="80" height="40" ruleFlowGroup="Group2" />
|
||||
<ruleSet id="3" name="Calculate1" x="266" y="28" width="80" height="40" ruleFlowGroup="Group1" />
|
||||
<end id="4" name="End" x="487" y="85" width="80" height="40" />
|
||||
<join id="6" name="Join" x="357" y="91" width="80" height="40" type="2" />
|
||||
<split id="7" name="Split" x="131" y="93" width="80" height="40" type="3" >
|
||||
<constraints>
|
||||
<constraint toNodeId="2" toType="DROOLS_DEFAULT" name="constraint" priority="1" type="rule" dialect="mvel" >Account(balance <= 1000 )</constraint>
|
||||
<constraint toNodeId="3" toType="DROOLS_DEFAULT" name="constraint" priority="1" type="rule" dialect="mvel" >Account(balance > 1000 )</constraint>
|
||||
</constraints>
|
||||
</split>
|
||||
</nodes>
|
||||
|
||||
<connections>
|
||||
<connection from="7" to="2" />
|
||||
<connection from="7" to="3" />
|
||||
<connection from="6" to="4" />
|
||||
<connection from="3" to="6" />
|
||||
<connection from="2" to="6" />
|
||||
<connection from="1" to="7" />
|
||||
</connections>
|
||||
|
||||
</process>
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
//#created on: 30 oct. 2010
|
||||
package cours
|
||||
|
||||
//#list any import classes here.
|
||||
import droolscours.Account;
|
||||
import droolscours.AccountingPeriod;
|
||||
import droolscours.CashFlow;
|
||||
import droolscours.util.OutputDisplay;
|
||||
|
||||
//#declare any global variables here
|
||||
|
||||
|
||||
global OutputDisplay showResult;
|
||||
|
||||
rule "start process"
|
||||
when
|
||||
then
|
||||
kcontext.getKieRuntime().startProcess("RF3");
|
||||
end
|
||||
|
||||
rule "Account group1"
|
||||
ruleflow-group "Group1"
|
||||
when
|
||||
Account(balance > 0 )
|
||||
then
|
||||
showResult.showText("Account in Group1 > 1000 ");
|
||||
|
||||
end
|
||||
rule "Account group2"
|
||||
ruleflow-group "Group2"
|
||||
when
|
||||
Account( )
|
||||
then
|
||||
showResult.showText("Account in Group2 < 1000");
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
package droolscours;
|
||||
|
||||
import droolscours.util.OutputDisplay;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.kie.api.runtime.KieContainer;
|
||||
import org.kie.api.runtime.KieSession;
|
||||
import util.KnowledgeSessionHelper;
|
||||
|
||||
|
||||
public class Testlesson4 {
|
||||
static KieContainer kieContainer;
|
||||
KieSession sessionStatefull = null;
|
||||
|
||||
@BeforeClass
|
||||
public static void beforeClass() {
|
||||
kieContainer = KnowledgeSessionHelper.createRuleBase();
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
System.out.println("------------Before------------");
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() throws Exception {
|
||||
System.out.println("------------Après ------------");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRuleFlow1() {
|
||||
sessionStatefull = KnowledgeSessionHelper
|
||||
.getStatefulKnowledgeSessionForJBPM(kieContainer, "ksession-lesson4");
|
||||
OutputDisplay display = new OutputDisplay();
|
||||
sessionStatefull.setGlobal("showResult", display);
|
||||
Account a = new Account();
|
||||
sessionStatefull.insert(a);
|
||||
sessionStatefull.startProcess("RF1");
|
||||
sessionStatefull.fireAllRules();
|
||||
}
|
||||
@Test
|
||||
public void testRuleFlow2() {
|
||||
sessionStatefull = KnowledgeSessionHelper
|
||||
.getStatefulKnowledgeSessionForJBPM(kieContainer, "ksession-lesson4");
|
||||
OutputDisplay display = new OutputDisplay();
|
||||
sessionStatefull.setGlobal("showResult", display);
|
||||
Account a = new Account();
|
||||
sessionStatefull.insert(a);
|
||||
sessionStatefull.fireAllRules();
|
||||
}
|
||||
@Test
|
||||
public void testRuleFlow3() {
|
||||
sessionStatefull = KnowledgeSessionHelper
|
||||
.getStatefulKnowledgeSession(kieContainer, "lesson4a-session");
|
||||
OutputDisplay display = new OutputDisplay();
|
||||
sessionStatefull.setGlobal("showResult", display);
|
||||
Account a = new Account();
|
||||
a.setBalance(500);
|
||||
sessionStatefull.insert(a);
|
||||
AccountingPeriod period = new AccountingPeriod();
|
||||
sessionStatefull.insert(period);
|
||||
|
||||
sessionStatefull.fireAllRules();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
editor.link_modal.header
Reference in a new issue