Work
This commit is contained in:
parent
ce0f351c9d
commit
c9209dc9a5
105 changed files with 2390 additions and 839 deletions
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
||||
|
||||
<kbase name="lesson1" packages="lesson1">
|
||||
<ksession name="lesson1-session"/>
|
||||
</kbase>
|
||||
|
||||
</kmodule>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
//#created on: 30 oct. 2010
|
||||
package cours
|
||||
|
||||
//list any import classes here.
|
||||
import droolscours.Account;
|
||||
import droolscours.Customer;
|
||||
import droolscours.AccountingPeriod;
|
||||
import droolscours.PrivateAccount;
|
||||
import droolscours.CashFlow;
|
||||
import droolscours.util.OutputDisplay;
|
||||
|
||||
//declare any global variables here
|
||||
|
||||
|
||||
global OutputDisplay showResult;
|
||||
|
||||
rule "Your First Rule"
|
||||
|
||||
when
|
||||
Account( )
|
||||
then
|
||||
System.out.println("The bank account exists");
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
rule "Your First Rule revisited with Global"
|
||||
|
||||
when
|
||||
Customer()
|
||||
then
|
||||
showResult.showText("A customer exists");
|
||||
|
||||
end
|
||||
|
||||
rule "Your First Rule revisited AccountingPeriod"
|
||||
|
||||
when
|
||||
CashFlow( )
|
||||
then
|
||||
showResult.showText("The CashFlow exists, inserting an accounting Period");
|
||||
AccountingPeriod newPeriod = new AccountingPeriod();
|
||||
insert (newPeriod);
|
||||
end
|
||||
|
||||
rule "Rule on AccountingPeriod that are inserting"
|
||||
when
|
||||
AccountingPeriod ()
|
||||
then
|
||||
showResult.showText("Accounting period exists");
|
||||
end
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
package droolscours;
|
||||
|
||||
import droolscours.util.OutputDisplay;
|
||||
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 org.kie.api.runtime.rule.FactHandle;
|
||||
import util.KnowledgeSessionHelper;
|
||||
|
||||
|
||||
public class Testlesson1 {
|
||||
static KieContainer kieContainer;
|
||||
StatelessKieSession sessionStateless = null;
|
||||
KieSession sessionStatefull = null;
|
||||
|
||||
@BeforeClass
|
||||
public static void beforeClass() {
|
||||
kieContainer = KnowledgeSessionHelper.createRuleBase();
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testRuleOneFactWithoutFact() {
|
||||
sessionStatefull = KnowledgeSessionHelper
|
||||
.getStatefulKnowledgeSession(kieContainer, "lesson1-session");
|
||||
sessionStatefull.fireAllRules();
|
||||
System.out.println("Did you see something ?");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRuleOneFactWithFact() {
|
||||
sessionStatefull = KnowledgeSessionHelper
|
||||
.getStatefulKnowledgeSession(kieContainer, "lesson1-session");
|
||||
Account a = new Account();
|
||||
sessionStatefull.insert(a);
|
||||
sessionStatefull.fireAllRules();
|
||||
System.out.println("So you saw something ;)");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRuleOneFactWithFactAndUsageOfGlobal() {
|
||||
sessionStatefull = KnowledgeSessionHelper
|
||||
.getStatefulKnowledgeSession(kieContainer, "lesson1-session");
|
||||
Customer a = new Customer();
|
||||
OutputDisplay display = new OutputDisplay();
|
||||
|
||||
sessionStatefull.setGlobal("showResult", display);
|
||||
sessionStatefull.insert(a);
|
||||
|
||||
sessionStatefull.fireAllRules();
|
||||
System.out.println("So you saw something ;)");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testRuleOneFactWithFactAndUsageOfGlobalAndCallBack() {
|
||||
sessionStatefull = KnowledgeSessionHelper
|
||||
.getStatefulKnowledgeSession(kieContainer, "lesson1-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());
|
||||
}
|
||||
});
|
||||
Customer a = new Customer();
|
||||
a.setName("Heron");
|
||||
FactHandle handlea = sessionStatefull.insert(a);
|
||||
a.setSurname("Nicolas");
|
||||
sessionStatefull.update(handlea, a);
|
||||
sessionStatefull.delete(handlea);
|
||||
sessionStatefull.fireAllRules();
|
||||
System.out.println("So you saw something ;)");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRuleOneFactFireConditionStep1() {
|
||||
sessionStatefull = KnowledgeSessionHelper
|
||||
.getStatefulKnowledgeSession(kieContainer, "lesson1-session");
|
||||
Account a = new Account();
|
||||
FactHandle handlea = sessionStatefull.insert(a);
|
||||
System.out.println("First fireAllRules");
|
||||
sessionStatefull.fireAllRules();
|
||||
System.out.println("Second fireAllRules");
|
||||
sessionStatefull.fireAllRules();
|
||||
System.out.println("Did A rule be fired");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRuleOneFactFireConditionStep2() {
|
||||
sessionStatefull = KnowledgeSessionHelper
|
||||
.getStatefulKnowledgeSession(kieContainer, "lesson1-session");
|
||||
Account a = new Account();
|
||||
FactHandle handlea = sessionStatefull.insert(a);
|
||||
System.out.println("First fireAllRules");
|
||||
sessionStatefull.fireAllRules();
|
||||
System.out.println("Updating fact");
|
||||
sessionStatefull.update(handlea, a);
|
||||
System.out.println("Second fireAllRules");
|
||||
sessionStatefull.fireAllRules();
|
||||
System.out.println("Did A rule be fired");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRuleOneFactThatInsertObject() {
|
||||
sessionStatefull = KnowledgeSessionHelper
|
||||
.getStatefulKnowledgeSession(kieContainer, "lesson1-session");
|
||||
|
||||
OutputDisplay display = new OutputDisplay();
|
||||
sessionStatefull.setGlobal("showResult", display);
|
||||
|
||||
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());
|
||||
}
|
||||
});
|
||||
CashFlow a = new CashFlow();
|
||||
FactHandle handlea = sessionStatefull.insert(a);
|
||||
sessionStatefull.fireAllRules();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRuleOneFactWithFactAndAllCallbacks() {
|
||||
sessionStatefull = KnowledgeSessionHelper
|
||||
.getStatefulKnowledgeSessionWithCallback(kieContainer, "lesson1-session");
|
||||
OutputDisplay display = new OutputDisplay();
|
||||
sessionStatefull.setGlobal("showResult", display);
|
||||
Account a = new Account();
|
||||
sessionStatefull.insert(a);
|
||||
sessionStatefull.fireAllRules();
|
||||
CashFlow b = new CashFlow();
|
||||
FactHandle handlea = sessionStatefull.insert(b);
|
||||
sessionStatefull.fireAllRules();
|
||||
System.out.println("So you saw something ;)");
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
editor.link_modal.header
Reference in a new issue