The following line of code straight from the documentation
ksession.addEventListener(new DebugWorkingMemoryEventListener());
prompts the following error in eclipse
The method addEventListener(WorkingMemoryEventListener) in the type WorkingMemoryEventManager is not applicable for the arguments (DebugWorkingMemoryEventListener)
You probably import org.drools.event.DebugWorkingMemoryEventListener
instead of org.drools.event.rule.DebugWorkingMemoryEventListener
.
In our case, the following code works just fine:
import org.drools.event.rule.DebugWorkingMemoryEventListener;
import org.drools.event.rule.ObjectInsertedEvent;
import org.drools.event.rule.ObjectRetractedEvent;
import org.drools.event.rule.ObjectUpdatedEvent;
...
StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
ksession.addEventListener(new DebugWorkingMemoryEventListener() {
@Override
public void objectInserted(ObjectInsertedEvent event) {
System.out.println(event);
}
@Override
public void objectRetracted(ObjectRetractedEvent event) {
System.out.println(event);
}
@Override
public void objectUpdated(ObjectUpdatedEvent event) {
System.out.println(event);
}
});