This commit is contained in:
Nicolas Héron 2016-04-29 09:41:35 +02:00
commit ce0f351c9d
28 changed files with 276 additions and 288 deletions

View file

@ -13,23 +13,22 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.drools:drools-compiler:5.6.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.drools:drools-core:5.6.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.mvel:mvel2:2.1.8.Final" level="project" />
<orderEntry type="library" name="Maven: org.drools:knowledge-api:5.6.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.6.4" level="project" />
<orderEntry type="library" name="Maven: org.drools:knowledge-internal-api:5.6.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.antlr:antlr-runtime:3.3" level="project" />
<orderEntry type="library" name="Maven: org.antlr:antlr:3.3" level="project" />
<orderEntry type="library" name="Maven: org.antlr:stringtemplate:3.2.1" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jdt.core.compiler:ecj:3.5.1" level="project" />
<orderEntry type="library" name="Maven: org.mvel:mvel2:2.1.8.Final" level="project" />
<orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.4.1" 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: org.slf4j:slf4j-api:1.6.4" 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:5.5.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.jbpm:jbpm-flow-builder:5.5.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.jbpm:jbpm-flow:5.5.0.Final" level="project" />
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:2.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.5" level="project" />
</component>
</module>
</module>

View file

@ -59,19 +59,19 @@ public class KnowledgeSessionHelper {
String drlFile) {
StatefulKnowledgeSession session = getStatefulKnowledgeSession(drlFile);
session.addEventListener(new WorkingMemoryEventListener() {
@Override
//@Override
public void objectUpdated(ObjectUpdatedEvent arg0) {
System.out.println("Object mise à jour \n"
+ "Nouvelles valeurs \n" + arg0.getObject().toString());
}
@Override
//@Override
public void objectRetracted(ObjectRetractedEvent arg0) {
System.out.println("Object retiré \n"
+ arg0.getOldObject().toString());
}
@Override
//@Override
public void objectInserted(ObjectInsertedEvent arg0) {
System.out.println("Object inséré \n"
+ arg0.getObject().toString());

View file

@ -30,19 +30,19 @@ public class PremierEssai {
sessionStatefull = KnowledgeSessionHelper
.getStatefulKnowledgeSession("SimpleSample.drl");
sessionStatefull.addEventListener(new WorkingMemoryEventListener() {
@Override
//@Override
public void objectUpdated(ObjectUpdatedEvent arg0) {
System.out.println("Object mise à jour \n"
+ "Nouvelles valeurs \n" + arg0.getObject().toString());
}
@Override
//@Override
public void objectRetracted(ObjectRetractedEvent arg0) {
System.out.println("Object retiré \n"
+ arg0.getOldObject().toString());
}
@Override
//Override
public void objectInserted(ObjectInsertedEvent arg0) {
System.out.println("Object inséré \n"
+ arg0.getObject().toString());

View file

@ -58,7 +58,9 @@ public class TestRuleFlow {
sessionStatefull.insert(a);
AccountingPeriod period = new AccountingPeriod();
sessionStatefull.insert(period);
sessionStatefull.fireAllRules();
}
}

View file

@ -61,19 +61,19 @@ public class TestUnFait {
sessionStatefull = KnowledgeSessionHelper
.getStatefulKnowledgeSession("demo.drl");
sessionStatefull.addEventListener(new WorkingMemoryEventListener() {
@Override
//@Override
public void objectUpdated(ObjectUpdatedEvent arg0) {
System.out.println("Object mise à jour \n"
+ "Nouvelles valeurs \n" + arg0.getObject().toString());
}
@Override
//@Override
public void objectRetracted(ObjectRetractedEvent arg0) {
System.out.println("Object retiré \n"
+ arg0.getOldObject().toString());
}
@Override
//@Override
public void objectInserted(ObjectInsertedEvent arg0) {
System.out.println("Object inséré \n"
+ arg0.getObject().toString());
@ -115,17 +115,17 @@ public class TestUnFait {
sessionStatefull.setGlobal("result", display);
sessionStatefull.addEventListener(new WorkingMemoryEventListener() {
@Override
//@Override
public void objectUpdated(ObjectUpdatedEvent arg0) {
System.out.println("Object mise à jour \n"
+ "Nouvelles valeurs \n" + arg0.getObject().toString());
}
@Override
//@Override
public void objectRetracted(ObjectRetractedEvent arg0) {
System.out.println("Object retiré \n"
+ arg0.getOldObject().toString());
}
@Override
//@Override
public void objectInserted(ObjectInsertedEvent arg0) {
System.out.println("Object inséré \n"
+ arg0.getObject().toString());

View file

@ -1,19 +1,12 @@
package droolscours;
import droolscours.service.CustomerService;
import junit.framework.Assert;
import org.drools.audit.WorkingMemoryFileLogger;
import org.drools.event.rule.ObjectInsertedEvent;
import org.drools.event.rule.ObjectRetractedEvent;
import org.drools.event.rule.ObjectUpdatedEvent;
import org.drools.event.rule.WorkingMemoryEventListener;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.rule.FactHandle;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import droolscours.service.CustomerService;
import util.DateHelper;
import util.KnowledgeSessionHelper;
import util.OutputDisplay;
@ -197,12 +190,17 @@ public class Testlanguage {
cash2.setMvtDate(DateHelper.getDate("2010-02-15"));
cash2.setType(CashFlow.DEBIT);
sessionStatefull.insert(cash2);
Account a2 = new Account();
a2.setAccountno(2);
a2.setBalance(0);
sessionStatefull.insert(a2);
CashFlow cash3 = new CashFlow();
cash3.setAccountNo(1);
cash3.setAccountNo(2);
cash3.setAmount(1000);
cash3.setMvtDate(DateHelper.getDate("2010-04-15"));
cash3.setType(CashFlow.CREDIT);
sessionStatefull.insert(cash3);
sessionStatefull.fireAllRules();
}
@Test
@ -239,10 +237,12 @@ public class Testlanguage {
OutputDisplay display = new OutputDisplay();
sessionStatefull.setGlobal("result", display);
sessionStatefull.insert(new Account(1,0));
sessionStatefull.insert(new CashFlow(DateHelper.getDate("2010-01-15"),1000,CashFlow.CREDIT,1));
FactHandle fa = sessionStatefull.insert(new CashFlow(DateHelper.getDate("2010-01-15"), 1000, CashFlow.CREDIT, 1));
sessionStatefull.insert(new CashFlow(DateHelper.getDate("2010-02-15"),500,CashFlow.DEBIT,1));
sessionStatefull.insert(new CashFlow(DateHelper.getDate("2010-04-15"),1000,CashFlow.CREDIT,1));
sessionStatefull.insert(new AccountingPeriod(DateHelper.getDate("2010-01-01"),DateHelper.getDate("2010-31-31")));
sessionStatefull.insert(new AccountingPeriod(DateHelper.getDate("2010-01-01"),DateHelper.getDate("2010-12-31")));
sessionStatefull.fireAllRules();
sessionStatefull.retract(fa);
sessionStatefull.fireAllRules();
}
}

View file

@ -6,7 +6,7 @@ rule "Hello World"
when
m : Message( status == Message.HELLO, myMessage : message )
then
System.out.println( myMessage );
System.out.println( m.getMessage() );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
update( m );

View file

@ -4,7 +4,6 @@ import com.sample.DroolsTest.Message;
import droolscours.Account;
import droolscours.AccountingPeriod;
import droolscours.CashFlow;
import DateHelper;
rule "Credit Rule"
when

View file

@ -8,6 +8,7 @@ import droolscours.CashFlow;
import util.OutputDisplay;
global OutputDisplay result;
rule "Credit rule"
when

View file

@ -14,10 +14,19 @@ global OutputDisplay result;
rule "ForAll"
when
$acc : Account()
forall ( Account( this==$acc, $no : accountno )
forall ( Account( $no : accountno )
CashFlow( accountNo == $no)
)
then
result.showText("All mouvements concerns account no " + $acc.getAccountno());
result.showText("All mouvements concerns all account ");
end
rule "ForAll2"
when
Account( $no : accountno )
CashFlow( accountNo == $no)
then
result.showText("All mouvements concerns only one account ");
end

View file

@ -23,6 +23,11 @@ rule "More then 2 CashFlow Line"
then
result.showText("Found more than 2 CashFlow Lines");
result.showText("<<<<<<<<<<");
for (Object ff : $number){
result.showText(ff.toString());
}
result.showText(">>>>>>>>>>>>>>>>");
end
rule "Numbers of CashFlow Line"

View file

@ -20,11 +20,4 @@ rule "Your First Rule revisited"
end
rule "Your Second Rule"
//#include attributes such as "salience" here...
when
//#conditions
then
//#actions
end

View file

@ -15,7 +15,7 @@ global OutputDisplay result;
rule "start process"
when
then
kcontext.getKnowledgeRuntime().startProcess("RF2");
kcontext.getKnowledgeRuntime().startProcess("RF3");
end
rule "Account group1"