I just upgraded to Drools 4.0 and changed my assertObject calls to insert.
I also switched from WorkingMemory to StatefulSession. The rules seem to be
fine, but I am not able to retrieve any inserted objects from the working
memory for some reason. Here is what I'm doing. I'd appreciate any
suggestions...
StatefulSession *workingMemory* = getActiveWorkingMemories(id);
*workingMemory*.fireAllRules();
// Here is the rule that fires:
*
rule* "RecognizeBenefitsProgramEvent" *
** when* $edit: BenefitsProgramModelEdit()
* then*
* insert* (*new* *BenefitsProgramEvent*("BenefitsProgramEvent",
$edit.getValidFrom(), "AnnualEnrollmentEvent")); *
** System*.out.println("Rule RecognizeBenefitsProgramEvent fired "); *
**end*
I see the print statement in the console but the inserted object is not
actually in the working memory. I look using this:
Iterator events = *workingMemory*.iterateObjects(new ClassObjectFilter(
BenefitsProgramEvent.class));
This iterator is empty. I also debug and look at the assetMap inside
workingMemory and it never changes.
Thanks,
Michael