use of org.kie.api.event.process.ProcessEventListener in project jbpm by kiegroup.
the class TimerMigrationManagerTest method createRuntimeManagers.
protected void createRuntimeManagers(String processV1, String processV2, ProcessEventListener... eventListeners) {
RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder().entityManagerFactory(emf).userGroupCallback(userGroupCallback).addAsset(ResourceFactory.newClassPathResource(processV1), ResourceType.BPMN2).registerableItemsFactory(new DefaultRegisterableItemsFactory() {
@Override
public List<ProcessEventListener> getProcessEventListeners(RuntimeEngine runtime) {
List<ProcessEventListener> listeners = super.getProcessEventListeners(runtime);
for (ProcessEventListener lister : eventListeners) {
listeners.add(lister);
}
return listeners;
}
@Override
public Map<String, WorkItemHandler> getWorkItemHandlers(RuntimeEngine runtime) {
Map<String, WorkItemHandler> handlers = super.getWorkItemHandlers(runtime);
handlers.put("MyTask", new DoNothingWorkItemHandler());
return handlers;
}
}).get();
RuntimeEnvironment environment2 = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder().entityManagerFactory(emf).userGroupCallback(userGroupCallback).addAsset(ResourceFactory.newClassPathResource(processV2), ResourceType.BPMN2).registerableItemsFactory(new DefaultRegisterableItemsFactory() {
@Override
public List<ProcessEventListener> getProcessEventListeners(RuntimeEngine runtime) {
List<ProcessEventListener> listeners = super.getProcessEventListeners(runtime);
for (ProcessEventListener lister : eventListeners) {
listeners.add(lister);
}
return listeners;
}
@Override
public Map<String, WorkItemHandler> getWorkItemHandlers(RuntimeEngine runtime) {
Map<String, WorkItemHandler> handlers = super.getWorkItemHandlers(runtime);
handlers.put("MyTask", new DoNothingWorkItemHandler());
return handlers;
}
}).get();
createRuntimeManager(environment, environment2);
}
use of org.kie.api.event.process.ProcessEventListener in project jbpm by kiegroup.
the class SingletonRuntimeManagerTest method testTimerStartWithDeactivate.
@Test(timeout = 10000)
public void testTimerStartWithDeactivate() {
final NodeLeftCountDownProcessEventListener countDownListener = new NodeLeftCountDownProcessEventListener("Hello", 1);
RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder().userGroupCallback(userGroupCallback).addAsset(ResourceFactory.newClassPathResource("BPMN2-TimerStart.bpmn2"), ResourceType.BPMN2).registerableItemsFactory(new DefaultRegisterableItemsFactory() {
@Override
public List<ProcessEventListener> getProcessEventListeners(RuntimeEngine runtime) {
List<ProcessEventListener> listeners = super.getProcessEventListeners(runtime);
listeners.add(countDownListener);
return listeners;
}
}).get();
manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment);
assertNotNull(manager);
countDownListener.waitTillCompleted();
RuntimeEngine runtime1 = manager.getRuntimeEngine(EmptyContext.get());
List<? extends ProcessInstanceLog> logs = runtime1.getAuditService().findProcessInstances();
assertEquals(1, logs.size());
manager.disposeRuntimeEngine(runtime1);
((InternalRuntimeManager) manager).deactivate();
countDownListener.reset(1);
countDownListener.waitTillCompleted(2000);
runtime1 = manager.getRuntimeEngine(EmptyContext.get());
logs = runtime1.getAuditService().findProcessInstances();
assertEquals(1, logs.size());
manager.disposeRuntimeEngine(runtime1);
((InternalRuntimeManager) manager).activate();
countDownListener.reset(1);
countDownListener.waitTillCompleted();
runtime1 = manager.getRuntimeEngine(EmptyContext.get());
logs = runtime1.getAuditService().findProcessInstances();
assertEquals(2, logs.size());
manager.disposeRuntimeEngine(runtime1);
}
use of org.kie.api.event.process.ProcessEventListener in project jbpm by kiegroup.
the class DefaultRegisterableItemsFactoryTest method testJmsAuditCacheInstance.
@Test
public void testJmsAuditCacheInstance() throws Exception {
KieServices ks = KieServices.Factory.get();
ReleaseId releaseId = ks.newReleaseId("org.jbpm.test.jms", "kjar-jms-audit", "1.0.0");
DeploymentDescriptor customDescriptor = new DeploymentDescriptorImpl("org.jbpm.persistence.jpa");
customDescriptor.getBuilder().auditMode(AuditMode.JMS);
Map<String, String> resources = new HashMap<String, String>();
resources.put("src/main/resources/" + DeploymentDescriptor.META_INF_LOCATION, customDescriptor.toXml());
InternalKieModule kJar1 = createKieJar(ks, releaseId, resources);
installKjar(releaseId, kJar1);
RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder(releaseId).classLoader(this.getClass().getClassLoader()).get();
manager = RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(environment);
assertNotNull(manager);
RuntimeEngine engine = manager.getRuntimeEngine(ProcessInstanceIdContext.get());
assertNotNull(engine);
AsyncAuditLogProducer asyncAuditLogProducer = null;
KieSession kieSession = engine.getKieSession();
for (ProcessEventListener listener : kieSession.getProcessEventListeners()) {
if (listener instanceof AsyncAuditLogProducer) {
asyncAuditLogProducer = (AsyncAuditLogProducer) listener;
break;
}
}
assertNotNull(asyncAuditLogProducer);
manager.close();
manager = RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(environment);
assertNotNull(manager);
RuntimeEngine engine2 = manager.getRuntimeEngine(ProcessInstanceIdContext.get());
KieSession kieSession2 = engine2.getKieSession();
AsyncAuditLogProducer asyncAuditLogProducer2 = null;
for (ProcessEventListener listener : kieSession2.getProcessEventListeners()) {
if (listener instanceof AsyncAuditLogProducer) {
asyncAuditLogProducer2 = (AsyncAuditLogProducer) listener;
break;
}
}
assertNotNull(asyncAuditLogProducer2);
// check if the instance is the same (cached)
assertEquals(asyncAuditLogProducer, asyncAuditLogProducer2);
}
Aggregations