Work
This commit is contained in:
parent
c9209dc9a5
commit
474d3bf5b1
86 changed files with 675 additions and 529 deletions
6
AccountProject/drools-lesson2/drools-lesson1 (1).iml
Normal file
6
AccountProject/drools-lesson2/drools-lesson1 (1).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>
|
||||||
|
|
@ -1,34 +1,32 @@
|
||||||
//#created on: 30 oct. 2010
|
|
||||||
package cours
|
package cours
|
||||||
|
|
||||||
//#list any import classes here.
|
|
||||||
import droolscours.Account;
|
import droolscours.Account;
|
||||||
import droolscours.AccountingPeriod;
|
import droolscours.AccountingPeriod;
|
||||||
import droolscours.CashFlow;
|
import droolscours.CashFlow;
|
||||||
import droolscours.util.OutputDisplay;
|
import droolscours.util.OutputDisplay;
|
||||||
|
|
||||||
//#declare any global variables here
|
|
||||||
|
|
||||||
|
|
||||||
global OutputDisplay showResult;
|
global OutputDisplay showResult;
|
||||||
|
|
||||||
|
|
||||||
rule "Account and accounting period both exist"
|
|
||||||
|
|
||||||
when
|
|
||||||
Account( )
|
|
||||||
AccountingPeriod( )
|
|
||||||
then
|
|
||||||
showResult.showText("Un compte est un accountingperiod existe");
|
|
||||||
|
|
||||||
end
|
|
||||||
rule "Credit rule"
|
rule "Credit rule"
|
||||||
|
|
||||||
|
when
|
||||||
|
$cash :CashFlow( $aDate : mvtDate, $no : accountNo ,type == CashFlow.CREDIT )
|
||||||
|
$acc : Account(accountno ==$no )
|
||||||
|
$period : AccountingPeriod( startDate <= $aDate && endDate >= $aDate)
|
||||||
|
then
|
||||||
|
$acc.setBalance($acc.getBalance()+$cash.getAmount());
|
||||||
|
showResult.showText("Account no "+$acc.getAccountno()+ " has now a balance of "+$acc.getBalance());
|
||||||
|
end
|
||||||
|
rule "Debit rule"
|
||||||
|
|
||||||
when
|
when
|
||||||
$cash :CashFlow( $no : accountNo ,type == CashFlow.CREDIT )
|
$cash :CashFlow( $aDate : mvtDate, $no : accountNo ,type == CashFlow.DEBIT )
|
||||||
$acc : Account(accountno ==$no )
|
$acc : Account(accountno ==$no )
|
||||||
|
$period : AccountingPeriod( startDate <= $aDate && endDate >= $aDate)
|
||||||
then
|
then
|
||||||
$acc.setBalance($acc.getBalance()+$cash.getAmount());
|
$acc.setBalance($acc.getBalance()-$cash.getAmount());
|
||||||
showResult.showText("le compte no "+$no+ " a maintenant une valeur de "+$acc.getBalance());
|
showResult.showText("Account no "+$acc.getAccountno()+ " has now a balance of "+$acc.getBalance());
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
//#created on: 30 oct. 2010
|
|
||||||
package cours
|
|
||||||
|
|
||||||
//list any import classes here.
|
|
||||||
import droolscours.Account;
|
|
||||||
import droolscours.util.OutputDisplay;
|
|
||||||
|
|
||||||
//#declare any global variables here
|
|
||||||
|
|
||||||
|
|
||||||
global OutputDisplay showResult;
|
|
||||||
|
|
||||||
rule "Your First Rule revisited"
|
|
||||||
|
|
||||||
when
|
|
||||||
Account( )
|
|
||||||
then
|
|
||||||
showResult.showText("Le compte existe donc déjà");
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
package droolscours;
|
|
||||||
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.kie.api.runtime.KieContainer;
|
|
||||||
import org.kie.api.runtime.KieSession;
|
|
||||||
import org.kie.api.runtime.StatelessKieSession;
|
|
||||||
import util.KnowledgeSessionHelper;
|
|
||||||
|
|
||||||
|
|
||||||
public class Testlesson3 {
|
|
||||||
static KieContainer kieContainer;
|
|
||||||
StatelessKieSession sessionStateless = null;
|
|
||||||
KieSession sessionStatefull = null;
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void beforeClass(){
|
|
||||||
kieContainer=KnowledgeSessionHelper.createRuleBase();
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
public void testUnFaitSansFait() {
|
|
||||||
sessionStatefull = KnowledgeSessionHelper
|
|
||||||
.getStatefulKnowledgeSession(kieContainer,"lesson3-session");
|
|
||||||
sessionStatefull.fireAllRules();
|
|
||||||
System.out.println("Did you see something ?");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
6
AccountProject/drools-lesson31/drools-lesson2 (1).iml
Normal file
6
AccountProject/drools-lesson31/drools-lesson2 (1).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>
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>drools-lesson3</artifactId>
|
<artifactId>drools-lesson31</artifactId>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
||||||
|
|
||||||
<kbase name="lesson2" packages="lesson2">
|
<kbase name="lesson31" packages="lesson31">
|
||||||
<ksession name="lesson2-session"/>
|
<ksession name="lesson31-session"/>
|
||||||
</kbase>
|
</kbase>
|
||||||
|
|
||||||
</kmodule>
|
</kmodule>
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
//#created on: 30 oct. 2010
|
||||||
|
package cours
|
||||||
|
|
||||||
|
//#list any import classes here.
|
||||||
|
import droolscours.Account;
|
||||||
|
import droolscours.AccountingPeriod;
|
||||||
|
import droolscours.CashFlow;
|
||||||
|
import droolscours.PrivateAccount;
|
||||||
|
import droolscours.Customer;
|
||||||
|
import droolscours.util.OutputDisplay;
|
||||||
|
//#declare any global variables here
|
||||||
|
global OutputDisplay showResult;
|
||||||
|
|
||||||
|
rule "Le cashFlow est du crédit ou du débit"
|
||||||
|
|
||||||
|
when
|
||||||
|
$cash :CashFlow(type in ( CashFlow.DEBIT,CashFlow.CREDIT) )
|
||||||
|
|
||||||
|
then
|
||||||
|
showResult.showText("Cash Flow est un crédit ou un débit");
|
||||||
|
end
|
||||||
|
rule "Accessor"
|
||||||
|
|
||||||
|
when
|
||||||
|
$cash :PrivateAccount( owner.name =="Héron" )
|
||||||
|
|
||||||
|
then
|
||||||
|
showResult.showText("Account is owned by Héron");
|
||||||
|
end
|
||||||
|
rule "infixAnd"
|
||||||
|
when
|
||||||
|
( $c1 : Customer ( country=="GB") and PrivateAccount( owner==$c1))
|
||||||
|
or
|
||||||
|
( $c1 : Customer (country=="US") and PrivateAccount( owner==$c1))
|
||||||
|
|
||||||
|
|
||||||
|
then
|
||||||
|
showResult.showText("Person lives in GB or US");
|
||||||
|
end
|
||||||
|
rule "no customer"
|
||||||
|
when
|
||||||
|
not Customer( )
|
||||||
|
then
|
||||||
|
showResult.showText("No customer");
|
||||||
|
end
|
||||||
|
rule "Exists"
|
||||||
|
when
|
||||||
|
exists Account( )
|
||||||
|
then
|
||||||
|
showResult.showText("Account exists");
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package droolscours;
|
||||||
|
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.kie.api.runtime.KieContainer;
|
||||||
|
import org.kie.api.runtime.KieSession;
|
||||||
|
import org.kie.api.runtime.StatelessKieSession;
|
||||||
|
import util.KnowledgeSessionHelper;
|
||||||
|
|
||||||
|
|
||||||
|
public class Testlesson31 {
|
||||||
|
static KieContainer kieContainer;
|
||||||
|
StatelessKieSession sessionStateless = null;
|
||||||
|
KieSession sessionStatefull = null;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() {
|
||||||
|
kieContainer = KnowledgeSessionHelper.createRuleBase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUnFaitSansFait() {
|
||||||
|
sessionStatefull = KnowledgeSessionHelper
|
||||||
|
.getStatefulKnowledgeSession(kieContainer, "lesson3-session");
|
||||||
|
sessionStatefull.fireAllRules();
|
||||||
|
System.out.println("Did you see something ?");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
6
AccountProject/drools-lesson32/drools-lesson2 (2).iml
Normal file
6
AccountProject/drools-lesson32/drools-lesson2 (2).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>
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>drools-lesson4</artifactId>
|
<artifactId>drools-lesson32</artifactId>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
||||||
|
|
||||||
<kbase name="lesson3" packages="lesson3">
|
<kbase name="lesson32" packages="lesson32">
|
||||||
<ksession name="lesson3-session"/>
|
<ksession name="lesson32-session"/>
|
||||||
</kbase>
|
</kbase>
|
||||||
|
|
||||||
</kmodule>
|
</kmodule>
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package droolscours;
|
||||||
|
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.kie.api.runtime.KieContainer;
|
||||||
|
import org.kie.api.runtime.KieSession;
|
||||||
|
import org.kie.api.runtime.StatelessKieSession;
|
||||||
|
import util.KnowledgeSessionHelper;
|
||||||
|
|
||||||
|
|
||||||
|
public class Testlesson32 {
|
||||||
|
static KieContainer kieContainer;
|
||||||
|
StatelessKieSession sessionStateless = null;
|
||||||
|
KieSession sessionStatefull = null;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() {
|
||||||
|
kieContainer = KnowledgeSessionHelper.createRuleBase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUnFaitSansFait() {
|
||||||
|
sessionStatefull = KnowledgeSessionHelper
|
||||||
|
.getStatefulKnowledgeSession(kieContainer, "lesson1-session");
|
||||||
|
sessionStatefull.fireAllRules();
|
||||||
|
System.out.println("Did you see something ?");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
6
AccountProject/drools-lesson33/drools-lesson2 (3).iml
Normal file
6
AccountProject/drools-lesson33/drools-lesson2 (3).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-lesson33/drools-lesson5.iml
Normal file
34
AccountProject/drools-lesson33/drools-lesson5.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$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/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>
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>drools-lesson5</artifactId>
|
<artifactId>drools-lesson33</artifactId>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
||||||
|
|
||||||
<kbase name="lesson5" packages="lesson5">
|
<kbase name="lesson33" packages="lesson33">
|
||||||
<ksession name="lesson5-session"/>
|
<ksession name="lesson33-session"/>
|
||||||
</kbase>
|
</kbase>
|
||||||
|
|
||||||
</kmodule>
|
</kmodule>
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package droolscours;
|
||||||
|
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.kie.api.runtime.KieContainer;
|
||||||
|
import org.kie.api.runtime.KieSession;
|
||||||
|
import org.kie.api.runtime.StatelessKieSession;
|
||||||
|
import util.KnowledgeSessionHelper;
|
||||||
|
|
||||||
|
|
||||||
|
public class Testlesson33 {
|
||||||
|
static KieContainer kieContainer;
|
||||||
|
StatelessKieSession sessionStateless = null;
|
||||||
|
KieSession sessionStatefull = null;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() {
|
||||||
|
kieContainer = KnowledgeSessionHelper.createRuleBase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUnFaitSansFait() {
|
||||||
|
sessionStatefull = KnowledgeSessionHelper
|
||||||
|
.getStatefulKnowledgeSession(kieContainer, "lesson1-session");
|
||||||
|
sessionStatefull.fireAllRules();
|
||||||
|
System.out.println("Did you see something ?");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
6
AccountProject/drools-lesson34/drools-lesson2 (4).iml
Normal file
6
AccountProject/drools-lesson34/drools-lesson2 (4).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-lesson34/drools-lesson34.iml
Normal file
34
AccountProject/drools-lesson34/drools-lesson34.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$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/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>
|
||||||
34
AccountProject/drools-lesson34/drools-lesson6.iml
Normal file
34
AccountProject/drools-lesson34/drools-lesson6.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$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/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>
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>drools-lesson6</artifactId>
|
<artifactId>drools-lesson34</artifactId>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
||||||
|
|
||||||
<kbase name="lesson6" packages="lesson6">
|
<kbase name="lesson34" packages="lesson34">
|
||||||
<ksession name="lesson6-session"/>
|
<ksession name="lesson34-session"/>
|
||||||
</kbase>
|
</kbase>
|
||||||
|
|
||||||
</kmodule>
|
</kmodule>
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package droolscours;
|
||||||
|
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.kie.api.runtime.KieContainer;
|
||||||
|
import org.kie.api.runtime.KieSession;
|
||||||
|
import org.kie.api.runtime.StatelessKieSession;
|
||||||
|
import util.KnowledgeSessionHelper;
|
||||||
|
|
||||||
|
|
||||||
|
public class Testlesson34 {
|
||||||
|
static KieContainer kieContainer;
|
||||||
|
StatelessKieSession sessionStateless = null;
|
||||||
|
KieSession sessionStatefull = null;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() {
|
||||||
|
kieContainer = KnowledgeSessionHelper.createRuleBase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUnFaitSansFait() {
|
||||||
|
sessionStatefull = KnowledgeSessionHelper
|
||||||
|
.getStatefulKnowledgeSession(kieContainer, "lesson1-session");
|
||||||
|
sessionStatefull.fireAllRules();
|
||||||
|
System.out.println("Did you see something ?");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
6
AccountProject/drools-lesson35/drools-lesson2 (5).iml
Normal file
6
AccountProject/drools-lesson35/drools-lesson2 (5).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-lesson35/drools-lesson35.iml
Normal file
34
AccountProject/drools-lesson35/drools-lesson35.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$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/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>
|
||||||
34
AccountProject/drools-lesson35/drools-lesson7.iml
Normal file
34
AccountProject/drools-lesson35/drools-lesson7.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$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/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>
|
||||||
43
AccountProject/drools-lesson35/pom.xml
Normal file
43
AccountProject/drools-lesson35/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-lesson35</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,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
||||||
|
|
||||||
|
<kbase name="lesson35" packages="lesson35">
|
||||||
|
<ksession name="lesson35-session"/>
|
||||||
|
</kbase>
|
||||||
|
|
||||||
|
</kmodule>
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
//#created on: 30 oct. 2010
|
||||||
|
package cours
|
||||||
|
|
||||||
|
//#list any import classes here.
|
||||||
|
import droolscours.Account;
|
||||||
|
import droolscours.AccountingPeriod;
|
||||||
|
import droolscours.CashFlow;
|
||||||
|
import droolscours.PrivateAccount;
|
||||||
|
import droolscours.Customer;
|
||||||
|
import droolscours.service.CustomerService;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import droolscours.util.OutputDisplay;
|
||||||
|
//#declare any global variables here
|
||||||
|
global OutputDisplay showResult;
|
||||||
|
global CustomerService serviceCustomer;
|
||||||
|
|
||||||
|
|
||||||
|
rule "Credit and Debit Rule"
|
||||||
|
when
|
||||||
|
$c : Account( $acc : accountno )
|
||||||
|
$p : AccountingPeriod ($sDate : startDate ,$eDate : endDate )
|
||||||
|
$totalCredit : Number( doubleValue > 100 )
|
||||||
|
from accumulate( CashFlow( type ==CashFlow.CREDIT,$value : amount, mvtDate >= $sDate && mvtDate <= $eDate,accountNo == $acc ),
|
||||||
|
init( double total = 0; ),
|
||||||
|
action( total += $value; ),
|
||||||
|
reverse( total -= $value; ),
|
||||||
|
result( total ) )
|
||||||
|
$totalDebit : Number( doubleValue > 100 )
|
||||||
|
from accumulate( CashFlow( type ==CashFlow.DEBIT,$value : amount, mvtDate >= $sDate && mvtDate <= $eDate,accountNo == $acc ),
|
||||||
|
init( double total = 0; ),
|
||||||
|
action( total += $value; ),
|
||||||
|
reverse( total -= $value; ),
|
||||||
|
result( total ) )
|
||||||
|
|
||||||
|
then
|
||||||
|
showResult.showText(" Found "+$totalCredit+" as a credit");
|
||||||
|
showResult.showText(" Found "+$totalDebit+" as a debit");
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package droolscours;
|
||||||
|
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.kie.api.runtime.KieContainer;
|
||||||
|
import org.kie.api.runtime.KieSession;
|
||||||
|
import org.kie.api.runtime.StatelessKieSession;
|
||||||
|
import util.KnowledgeSessionHelper;
|
||||||
|
|
||||||
|
|
||||||
|
public class Testlesson35 {
|
||||||
|
static KieContainer kieContainer;
|
||||||
|
StatelessKieSession sessionStateless = null;
|
||||||
|
KieSession sessionStatefull = null;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() {
|
||||||
|
kieContainer = KnowledgeSessionHelper.createRuleBase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUnFaitSansFait() {
|
||||||
|
sessionStatefull = KnowledgeSessionHelper
|
||||||
|
.getStatefulKnowledgeSession(kieContainer, "lesson1-session");
|
||||||
|
sessionStatefull.fireAllRules();
|
||||||
|
System.out.println("Did you see something ?");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
//#created on: 30 oct. 2010
|
|
||||||
package cours
|
|
||||||
|
|
||||||
//list any import classes here.
|
|
||||||
import droolscours.Account;
|
|
||||||
import droolscours.util.OutputDisplay;
|
|
||||||
|
|
||||||
//#declare any global variables here
|
|
||||||
|
|
||||||
|
|
||||||
global OutputDisplay showResult;
|
|
||||||
|
|
||||||
rule "Your First Rule revisited"
|
|
||||||
|
|
||||||
when
|
|
||||||
Account( )
|
|
||||||
then
|
|
||||||
showResult.showText("Le compte existe donc déjà");
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
package droolscours;
|
|
||||||
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.kie.api.runtime.KieContainer;
|
|
||||||
import org.kie.api.runtime.KieSession;
|
|
||||||
import org.kie.api.runtime.StatelessKieSession;
|
|
||||||
import util.KnowledgeSessionHelper;
|
|
||||||
|
|
||||||
|
|
||||||
public class Testlesson4 {
|
|
||||||
static KieContainer kieContainer;
|
|
||||||
StatelessKieSession sessionStateless = null;
|
|
||||||
KieSession sessionStatefull = null;
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void beforeClass(){
|
|
||||||
kieContainer=KnowledgeSessionHelper.createRuleBase();
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
public void testUnFaitSansFait() {
|
|
||||||
sessionStatefull = KnowledgeSessionHelper
|
|
||||||
.getStatefulKnowledgeSession(kieContainer,"lesson1-session");
|
|
||||||
sessionStatefull.fireAllRules();
|
|
||||||
System.out.println("Did you see something ?");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
//#created on: 30 oct. 2010
|
|
||||||
package cours
|
|
||||||
|
|
||||||
//list any import classes here.
|
|
||||||
import droolscours.Account;
|
|
||||||
import droolscours.util.OutputDisplay;
|
|
||||||
|
|
||||||
//#declare any global variables here
|
|
||||||
|
|
||||||
|
|
||||||
global OutputDisplay showResult;
|
|
||||||
|
|
||||||
rule "Your First Rule revisited"
|
|
||||||
|
|
||||||
when
|
|
||||||
Account( )
|
|
||||||
then
|
|
||||||
showResult.showText("Le compte existe donc déjà");
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
package droolscours;
|
|
||||||
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.kie.api.runtime.KieContainer;
|
|
||||||
import org.kie.api.runtime.KieSession;
|
|
||||||
import org.kie.api.runtime.StatelessKieSession;
|
|
||||||
import util.KnowledgeSessionHelper;
|
|
||||||
|
|
||||||
|
|
||||||
public class Testlesson5 {
|
|
||||||
static KieContainer kieContainer;
|
|
||||||
StatelessKieSession sessionStateless = null;
|
|
||||||
KieSession sessionStatefull = null;
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void beforeClass(){
|
|
||||||
kieContainer=KnowledgeSessionHelper.createRuleBase();
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
public void testUnFaitSansFait() {
|
|
||||||
sessionStatefull = KnowledgeSessionHelper
|
|
||||||
.getStatefulKnowledgeSession(kieContainer,"lesson1-session");
|
|
||||||
sessionStatefull.fireAllRules();
|
|
||||||
System.out.println("Did you see something ?");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
//#created on: 30 oct. 2010
|
|
||||||
package cours
|
|
||||||
|
|
||||||
//list any import classes here.
|
|
||||||
import droolscours.Account;
|
|
||||||
import droolscours.util.OutputDisplay;
|
|
||||||
|
|
||||||
//#declare any global variables here
|
|
||||||
|
|
||||||
|
|
||||||
global OutputDisplay showResult;
|
|
||||||
|
|
||||||
rule "Your First Rule revisited"
|
|
||||||
|
|
||||||
when
|
|
||||||
Account( )
|
|
||||||
then
|
|
||||||
showResult.showText("Le compte existe donc déjà");
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
package droolscours;
|
|
||||||
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.kie.api.runtime.KieContainer;
|
|
||||||
import org.kie.api.runtime.KieSession;
|
|
||||||
import org.kie.api.runtime.StatelessKieSession;
|
|
||||||
import util.KnowledgeSessionHelper;
|
|
||||||
|
|
||||||
|
|
||||||
public class Testlesson6 {
|
|
||||||
static KieContainer kieContainer;
|
|
||||||
StatelessKieSession sessionStateless = null;
|
|
||||||
KieSession sessionStatefull = null;
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void beforeClass(){
|
|
||||||
kieContainer=KnowledgeSessionHelper.createRuleBase();
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
public void testUnFaitSansFait() {
|
|
||||||
sessionStatefull = KnowledgeSessionHelper
|
|
||||||
.getStatefulKnowledgeSession(kieContainer,"lesson1-session");
|
|
||||||
sessionStatefull.fireAllRules();
|
|
||||||
System.out.println("Did you see something ?");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
<?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-lesson7</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>
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
|
||||||
|
|
||||||
<kbase name="lesson7" packages="lesson7">
|
|
||||||
<ksession name="lesson7-session"/>
|
|
||||||
</kbase>
|
|
||||||
|
|
||||||
</kmodule>
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
//#created on: 30 oct. 2010
|
|
||||||
package cours
|
|
||||||
|
|
||||||
//list any import classes here.
|
|
||||||
import droolscours.Account;
|
|
||||||
import droolscours.util.OutputDisplay;
|
|
||||||
|
|
||||||
//#declare any global variables here
|
|
||||||
|
|
||||||
|
|
||||||
global OutputDisplay showResult;
|
|
||||||
|
|
||||||
rule "Your First Rule revisited"
|
|
||||||
|
|
||||||
when
|
|
||||||
Account( )
|
|
||||||
then
|
|
||||||
showResult.showText("Le compte existe donc déjà");
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
package droolscours;
|
|
||||||
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.kie.api.runtime.KieContainer;
|
|
||||||
import org.kie.api.runtime.KieSession;
|
|
||||||
import org.kie.api.runtime.StatelessKieSession;
|
|
||||||
import util.KnowledgeSessionHelper;
|
|
||||||
|
|
||||||
|
|
||||||
public class Testlesson7 {
|
|
||||||
static KieContainer kieContainer;
|
|
||||||
StatelessKieSession sessionStateless = null;
|
|
||||||
KieSession sessionStatefull = null;
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void beforeClass(){
|
|
||||||
kieContainer=KnowledgeSessionHelper.createRuleBase();
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
public void testUnFaitSansFait() {
|
|
||||||
sessionStatefull = KnowledgeSessionHelper
|
|
||||||
.getStatefulKnowledgeSession(kieContainer,"lesson1-session");
|
|
||||||
sessionStatefull.fireAllRules();
|
|
||||||
System.out.println("Did you see something ?");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
6
AccountProject/drools-lesson8/drools-lesson2 (6).iml
Normal file
6
AccountProject/drools-lesson8/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>
|
||||||
|
|
@ -1,8 +1,48 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
||||||
|
<kbase name="sample" packages="sample">
|
||||||
|
<ksession name="sample-session"/>
|
||||||
|
</kbase>
|
||||||
<kbase name="simplesample" packages="simplesample">
|
<kbase name="simplesample" packages="simplesample">
|
||||||
<ksession name="simplesample-session"/>
|
<ksession name="simplesample-session"/>
|
||||||
</kbase>
|
</kbase>
|
||||||
|
<kbase name="part1" packages="part1">
|
||||||
|
<ksession name="part1-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="part2" packages="part2">
|
||||||
|
<ksession name="part2-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="part3" packages="part3">
|
||||||
|
<ksession name="part3-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="part4" packages="part4">
|
||||||
|
<ksession name="part4-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="part5" packages="part5">
|
||||||
|
<ksession name="part5-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="part6" packages="part6">
|
||||||
|
<ksession name="part6-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="part7" packages="part7">
|
||||||
|
<ksession name="part7-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="demo" packages="demo">
|
||||||
|
<ksession name="demo-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="demo-global" packages="demo-global">
|
||||||
|
<ksession name="demo-global-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="demo-insertupdatedelete" packages="demo-insertupdatedelete">
|
||||||
|
<ksession name="demo-insertupdatedelete-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="demo-ruleflow1" packages="demo-ruleflow1">
|
||||||
|
<ksession name="demo-ruleflow1-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="demo-ruleflow2" packages="demo-ruleflow2">
|
||||||
|
<ksession name="demo-ruleflow2-rules"/>
|
||||||
|
</kbase>
|
||||||
|
<kbase name="demo-ruleflow3" packages="demo-ruleflow3">
|
||||||
|
<ksession name="demo-ruleflow3-rules"/>
|
||||||
|
</kbase>
|
||||||
</kmodule>
|
</kmodule>
|
||||||
|
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
package simplesample
|
|
||||||
|
|
||||||
import droolscours.Account;
|
|
||||||
import droolscours.AccountingPeriod;
|
|
||||||
import droolscours.CashFlow;
|
|
||||||
import droolscours.util.OutputDisplay;
|
|
||||||
global OutputDisplay showResults;
|
|
||||||
rule "Credit Rule"
|
|
||||||
when
|
|
||||||
acco: Account( no : accountno )
|
|
||||||
period : AccountingPeriod(s : startDate , e: endDate )
|
|
||||||
act : CashFlow( type == CashFlow.CREDIT ,mvtDate >= s && mvtDate <=e ,accountNo ==no)
|
|
||||||
then
|
|
||||||
acco.setBalance(acco.getBalance()+act.getAmount());
|
|
||||||
showResults.showText("The new balance is now "+acco.getBalance());
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package droolscours;
|
package droolscours;
|
||||||
|
|
||||||
import droolscours.util.OutputDisplay;
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
@ -11,24 +10,25 @@ import org.kie.api.event.rule.RuleRuntimeEventListener;
|
||||||
import org.kie.api.runtime.KieContainer;
|
import org.kie.api.runtime.KieContainer;
|
||||||
import org.kie.api.runtime.KieSession;
|
import org.kie.api.runtime.KieSession;
|
||||||
import org.kie.api.runtime.StatelessKieSession;
|
import org.kie.api.runtime.StatelessKieSession;
|
||||||
import org.omg.CORBA.portable.OutputStream;
|
|
||||||
import util.DateHelper;
|
import util.DateHelper;
|
||||||
import util.KnowledgeSessionHelper;
|
import util.KnowledgeSessionHelper;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class PremierEssai {
|
public class PremierEssai {
|
||||||
StatelessKieSession sessionStateless = null;
|
|
||||||
KieSession sessionStatefull = null;
|
|
||||||
static KieContainer kieContainer;
|
static KieContainer kieContainer;
|
||||||
|
StatelessKieSession sessionStateless = null;
|
||||||
|
KieSession sessionStatefull = null;
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void beforeClass(){
|
public static void beforeClass() {
|
||||||
kieContainer=KnowledgeSessionHelper.createRuleBase();
|
kieContainer = KnowledgeSessionHelper.createRuleBase();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSimple() throws Exception {
|
public void testSimple() throws Exception {
|
||||||
sessionStatefull = KnowledgeSessionHelper
|
sessionStatefull = KnowledgeSessionHelper
|
||||||
.getStatefulKnowledgeSession(kieContainer,"simplesample-session");
|
.getStatefulKnowledgeSession(kieContainer, "simplesample-session");
|
||||||
sessionStatefull.addEventListener(new RuleRuntimeEventListener() {
|
sessionStatefull.addEventListener(new RuleRuntimeEventListener() {
|
||||||
public void objectInserted(ObjectInsertedEvent event) {
|
public void objectInserted(ObjectInsertedEvent event) {
|
||||||
System.out.println("Object inserted \n"
|
System.out.println("Object inserted \n"
|
||||||
|
|
@ -45,8 +45,6 @@ public class PremierEssai {
|
||||||
+ event.getOldObject().toString());
|
+ event.getOldObject().toString());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
OutputDisplay showResult = new OutputDisplay();
|
|
||||||
sessionStatefull.setGlobal("showResults",showResult);
|
|
||||||
Account account = new Account();
|
Account account = new Account();
|
||||||
account.setAccountno(1);
|
account.setAccountno(1);
|
||||||
sessionStatefull.insert(account);
|
sessionStatefull.insert(account);
|
||||||
|
|
|
||||||
|
|
@ -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.PrivateAccount;
|
||||||
|
import droolscours.Customer;
|
||||||
|
import droolscours.util.OutputDisplay;
|
||||||
|
//#declare any global variables here
|
||||||
|
global OutputDisplay showResult;
|
||||||
|
|
||||||
|
|
||||||
|
rule "ForAll"
|
||||||
|
when
|
||||||
|
|
||||||
|
forall ( Account( $no : accountno )
|
||||||
|
CashFlow( accountNo == $no)
|
||||||
|
)
|
||||||
|
then
|
||||||
|
showResult.showText("All mouvements concerns all account ");
|
||||||
|
end
|
||||||
|
rule "ForAll2"
|
||||||
|
when
|
||||||
|
|
||||||
|
Account( $no : accountno )
|
||||||
|
CashFlow( accountNo == $no)
|
||||||
|
|
||||||
|
then
|
||||||
|
showResult.showText("All mouvements concerns only one account ");
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
//#created on: 30 oct. 2010
|
||||||
|
package cours
|
||||||
|
|
||||||
|
//#list any import classes here.
|
||||||
|
import droolscours.Account;
|
||||||
|
import droolscours.AccountingPeriod;
|
||||||
|
import droolscours.CashFlow;
|
||||||
|
import droolscours.PrivateAccount;
|
||||||
|
import droolscours.Customer;
|
||||||
|
import droolscours.service.CustomerService;
|
||||||
|
import droolscours.util.OutputDisplay;
|
||||||
|
//#declare any global variables here
|
||||||
|
global OutputDisplay showResult;
|
||||||
|
global CustomerService serviceCustomer;
|
||||||
|
|
||||||
|
rule "ForAll"
|
||||||
|
when
|
||||||
|
$c : Customer()
|
||||||
|
$cc : Customer(name ==$c.name,surname==$c.surname,country !=$c.country) from serviceCustomer.getListCustomer();
|
||||||
|
then
|
||||||
|
showResult.showText("Found same customer in 2 countries");
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
//#created on: 30 oct. 2010
|
||||||
|
package cours
|
||||||
|
|
||||||
|
//#list any import classes here.
|
||||||
|
import droolscours.Account;
|
||||||
|
import droolscours.AccountingPeriod;
|
||||||
|
import droolscours.CashFlow;
|
||||||
|
import droolscours.PrivateAccount;
|
||||||
|
import droolscours.Customer;
|
||||||
|
import droolscours.service.CustomerService;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import droolscours.util.OutputDisplay;
|
||||||
|
//#declare any global variables here
|
||||||
|
global OutputDisplay showResult;
|
||||||
|
global CustomerService serviceCustomer;
|
||||||
|
|
||||||
|
rule "More then 2 CashFlow Line"
|
||||||
|
when
|
||||||
|
$c : Account( $acc : accountno )
|
||||||
|
$p : AccountingPeriod ($sDate : startDate ,$eDate : endDate )
|
||||||
|
$number : ArrayList(size >= 2 )
|
||||||
|
from collect( CashFlow( mvtDate >= $sDate && mvtDate <= $eDate,accountNo == $acc ) )
|
||||||
|
|
||||||
|
then
|
||||||
|
showResult.showText("Found more than 2 CashFlow Lines");
|
||||||
|
showResult.showText("<<<<<<<<<<");
|
||||||
|
for (Object ff : $number){
|
||||||
|
showResult.showText(ff.toString());
|
||||||
|
}
|
||||||
|
showResult.showText(">>>>>>>>>>>>>>>>");
|
||||||
|
end
|
||||||
|
|
||||||
|
rule "Numbers of CashFlow Line"
|
||||||
|
when
|
||||||
|
$c : Account( $acc : accountno )
|
||||||
|
$p : AccountingPeriod ($sDate : startDate ,$eDate : endDate )
|
||||||
|
$number : ArrayList( )
|
||||||
|
from collect( CashFlow( mvtDate >= $sDate && mvtDate <= $eDate,accountNo == $acc ) )
|
||||||
|
|
||||||
|
then
|
||||||
|
showResult.showText("Found "+$number+" more than 2 CashFlow Lines");
|
||||||
|
end
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
|
||||||
|
|
||||||
<kbase name="simplesample" packages="simplesample">
|
|
||||||
<ksession name="simplesample-session"/>
|
|
||||||
</kbase>
|
|
||||||
|
|
||||||
</kmodule>
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
package simplesample
|
|
||||||
|
|
||||||
import droolscours.Account;
|
|
||||||
import droolscours.AccountingPeriod;
|
|
||||||
import droolscours.CashFlow;
|
|
||||||
import droolscours.util.OutputDisplay;
|
|
||||||
global OutputDisplay showResults;
|
|
||||||
rule "Credit Rule"
|
|
||||||
when
|
|
||||||
acco: Account( no : accountno )
|
|
||||||
period : AccountingPeriod(s : startDate , e: endDate )
|
|
||||||
act : CashFlow( type == CashFlow.CREDIT ,mvtDate >= s && mvtDate <=e ,accountNo ==no)
|
|
||||||
then
|
|
||||||
acco.setBalance(acco.getBalance()+act.getAmount());
|
|
||||||
showResults.showText("The new balance is now "+acco.getBalance());
|
|
||||||
end
|
|
||||||
|
|
||||||
Binary file not shown.
|
|
@ -1,10 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<javadocOptions>
|
|
||||||
<docletArtifacts>
|
|
||||||
<docletArtifact/>
|
|
||||||
</docletArtifacts>
|
|
||||||
<tagletArtifacts>
|
|
||||||
<tagletArtifact/>
|
|
||||||
</tagletArtifacts>
|
|
||||||
<javadocResourcesDirectory>src/main/javadoc</javadocResourcesDirectory>
|
|
||||||
</javadocOptions>
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
#Generated by Maven
|
|
||||||
#Thu May 12 17:05:58 CEST 2016
|
|
||||||
version=2.0-SNAPSHOT
|
|
||||||
groupId=com.pymma-software.droolscourse
|
|
||||||
artifactId=drools-lesson1
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
droolscours/PremierEssai.class
|
|
||||||
droolscours/PremierEssai$1.class
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
/Users/nheron/workspace-chtiJBUG/chtijbug-6.3/droolscourse/AccountProject/drools-lesson1/src/test/java/droolscours/PremierEssai.java
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -13,11 +13,11 @@
|
||||||
<modules>
|
<modules>
|
||||||
<module>drools-lesson1</module>
|
<module>drools-lesson1</module>
|
||||||
<module>drools-lesson2</module>
|
<module>drools-lesson2</module>
|
||||||
<module>drools-lesson3</module>
|
<module>drools-lesson31</module>
|
||||||
<module>drools-lesson4</module>
|
<module>drools-lesson32</module>
|
||||||
<module>drools-lesson5</module>
|
<module>drools-lesson33</module>
|
||||||
<module>drools-lesson6</module>
|
<module>drools-lesson34</module>
|
||||||
<module>drools-lesson7</module>
|
<module>drools-lesson35</module>
|
||||||
<module>drools-lesson8</module>
|
<module>drools-lesson8</module>
|
||||||
<module>drools-lesson-pojo</module>
|
<module>drools-lesson-pojo</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
package util;
|
|
||||||
|
|
||||||
public class OutputDisplay {
|
|
||||||
|
|
||||||
public void showText(String someText) {
|
|
||||||
long time = System.currentTimeMillis();
|
|
||||||
System.out.println("time=" + time + "-" + someText);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
|
||||||
<kbase name="sample" packages="sample">
|
|
||||||
<ksession name="sample-session"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="simplesample" packages="simplesample">
|
|
||||||
<ksession name="simplesample-session"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="part1" packages="part1">
|
|
||||||
<ksession name="part1-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="part2" packages="part2">
|
|
||||||
<ksession name="part2-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="part3" packages="part3">
|
|
||||||
<ksession name="part3-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="part4" packages="part4">
|
|
||||||
<ksession name="part4-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="part5" packages="part5">
|
|
||||||
<ksession name="part5-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="part6" packages="part6">
|
|
||||||
<ksession name="part6-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="part7" packages="part7">
|
|
||||||
<ksession name="part7-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="demo" packages="demo">
|
|
||||||
<ksession name="demo-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="demo-global" packages="demo-global">
|
|
||||||
<ksession name="demo-global-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="demo-insertupdatedelete" packages="demo-insertupdatedelete">
|
|
||||||
<ksession name="demo-insertupdatedelete-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="demo-ruleflow1" packages="demo-ruleflow1">
|
|
||||||
<ksession name="demo-ruleflow1-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="demo-ruleflow2" packages="demo-ruleflow2">
|
|
||||||
<ksession name="demo-ruleflow2-rules"/>
|
|
||||||
</kbase>
|
|
||||||
<kbase name="demo-ruleflow3" packages="demo-ruleflow3">
|
|
||||||
<ksession name="demo-ruleflow3-rules"/>
|
|
||||||
</kbase>
|
|
||||||
</kmodule>
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
package droolscours;
|
|
||||||
|
|
||||||
import org.junit.Assert;
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.kie.api.event.rule.ObjectDeletedEvent;
|
|
||||||
import org.kie.api.event.rule.ObjectInsertedEvent;
|
|
||||||
import org.kie.api.event.rule.ObjectUpdatedEvent;
|
|
||||||
import org.kie.api.event.rule.RuleRuntimeEventListener;
|
|
||||||
import org.kie.api.runtime.KieContainer;
|
|
||||||
import org.kie.api.runtime.KieSession;
|
|
||||||
import org.kie.api.runtime.StatelessKieSession;
|
|
||||||
import util.DateHelper;
|
|
||||||
import util.KnowledgeSessionHelper;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class PremierEssai {
|
|
||||||
static KieContainer kieContainer;
|
|
||||||
StatelessKieSession sessionStateless = null;
|
|
||||||
KieSession sessionStatefull = null;
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void beforeClass() {
|
|
||||||
kieContainer = KnowledgeSessionHelper.createRuleBase();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testSimple() throws Exception {
|
|
||||||
sessionStatefull = KnowledgeSessionHelper
|
|
||||||
.getStatefulKnowledgeSession(kieContainer, "simplesample-session");
|
|
||||||
sessionStatefull.addEventListener(new RuleRuntimeEventListener() {
|
|
||||||
public void objectInserted(ObjectInsertedEvent event) {
|
|
||||||
System.out.println("Object inserted \n"
|
|
||||||
+ event.getObject().toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void objectUpdated(ObjectUpdatedEvent event) {
|
|
||||||
System.out.println("Object was updated \n"
|
|
||||||
+ "new Content \n" + event.getObject().toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void objectDeleted(ObjectDeletedEvent event) {
|
|
||||||
System.out.println("Object retracted \n"
|
|
||||||
+ event.getOldObject().toString());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Account account = new Account();
|
|
||||||
account.setAccountno(1);
|
|
||||||
sessionStatefull.insert(account);
|
|
||||||
AccountingPeriod period = new AccountingPeriod();
|
|
||||||
period.setStartDate(DateHelper.getDate("2010-01-01"));
|
|
||||||
period.setEndDate(DateHelper.getDate("2010-03-31"));
|
|
||||||
sessionStatefull.insert(period);
|
|
||||||
CashFlow action1 = new CashFlow();
|
|
||||||
action1.setAccountNo(1);
|
|
||||||
action1.setAmount(1000);
|
|
||||||
action1.setType(CashFlow.CREDIT);
|
|
||||||
action1.setMvtDate(DateHelper.getDate("2010-01-02"));
|
|
||||||
sessionStatefull.insert(action1);
|
|
||||||
sessionStatefull.fireAllRules();
|
|
||||||
Assert.assertTrue(account.getBalance() == 1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Add table
editor.link_modal.header
Reference in a new issue