LOGGER.debug("retrieved rulebase: {} from source {}", rb, rulemanager);
final StatefulKnowledgeSession session = rb.newStatefulKnowledgeSession();
LOGGER.debug("session started");
populateGlobals(session);
LOGGER.debug("globals have been set");
session.addEventListener(new DefaultProcessEventListener() {
@Override
public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) {
for (AuditingDomain ac : auditingConnectors) {
ProcessInstance instance = event.getProcessInstance();
ac.onNodeStart(instance.getProcessName(), instance.getId(), event.getNodeInstance().getNodeName());
}
}
@Override
public void afterNodeLeft(ProcessNodeLeftEvent event) {
for (AuditingDomain ac : auditingConnectors) {
ProcessInstance instance = event.getProcessInstance();
ac.onNodeFinish(instance.getProcessName(), instance.getId(), event.getNodeInstance().getNodeName());
}
}
@Override
public void afterProcessCompleted(ProcessCompletedEvent event) {
synchronized (session) {
session.notifyAll();
}
}
});
session.addEventListener(new DefaultProcessEventListener() {
@Override
public void afterProcessStarted(ProcessStartedEvent event) {
String processId2 = event.getProcessInstance().getProcessId();
long id = event.getProcessInstance().getId();
LOGGER.info("started process \"{}\". instance-ID: {}", processId2, id);