I'm having some difficulty getting a rule flow with a stateless session to work.
Essentially, it is just executing the first task and then stops. I'm using Drools
5.1.1 and I just built the sample Drools by creating a new Drools Project.
My rule flow is simple: Start-RuleGroup1-RuleGroup2-End
I use the 2 rules from example, putting the "Hello World" in RuleGroup1 and
"Goodbye" in RuleGroup2.
Here's my code to run it:
// load up the knowledge base
KnowledgeBase kbase = readKnowledgeBase();
StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession,
"test");
// start a new process instance
Message message = new Message();
message.setMessage("Hello World");
message.setStatus(Message.HELLO);
ArrayList cmds = new ArrayList();
ArrayList dataList = new ArrayList();
dataList.add(message);
cmds.add(CommandFactory.newInsertElements(dataList));
cmds.add(CommandFactory.newStartProcess("com.sample.ruleflow"));
ksession.execute(CommandFactory.newBatchExecution(cmds));
logger.close();
When I run the rules, all I get is "Hello World" (no "Goodbye cruel
world"). It does work with a Stateful Session using insert, startProcess, and
fireAllRules, but this is a test using the rule flows with CommandFactory functionality,
something we need for an application we are developing.