protected void assertMigratedProcessInstance(String processId, long processInstanceId, int status) { ProcessInstanceLog instance = auditService.findProcessInstance(processInstanceId); assertNotNull(instance); assertEquals(processId, instance.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, instance.getExternalId()); assertEquals(status, instance.getStatus().intValue()); }
public void testMultiInstanceCallactivityCompleteAtTheSameTime(Context<?> startContext) { // start first process instance with first manager RuntimeEngine runtime1 = manager.getRuntimeEngine(startContext); KieSession ksession1 = runtime1.getKieSession(); assertNotNull(ksession1); List<String> items = new ArrayList<String>(); for (int i = 0; i < numberOfChildProcesses; i++) { items.add(i + ""); } Map<String, Object> params = new HashMap<String, Object>(); params.put("items", items); ProcessInstance processInstance = ksession1.startProcess("test.Parent", params); manager.disposeRuntimeEngine(runtime1); countDownListener.waitTillCompleted(); JPAAuditLogService auditService = new JPAAuditLogService(emf); // process instance 1 should be completed by signal ProcessInstanceLog pi1Log = auditService.findProcessInstance(processInstance.getId()); assertNotNull(pi1Log); assertEquals(ProcessInstance.STATE_COMPLETED, pi1Log.getStatus().intValue()); auditService.dispose(); // close manager which will close session maintained by the manager manager.close(); }
@Test public void testErrorThrowOfChildProcessOnParent() { RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get() .newDefaultBuilder() .userGroupCallback(userGroupCallback) .addAsset(ResourceFactory.newClassPathResource("reusable-subprocess/ParentError.bpmn2"), ResourceType.BPMN2) .addAsset(ResourceFactory.newClassPathResource("reusable-subprocess/ChildError.bpmn2"), ResourceType.BPMN2) .get(); manager = RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime = manager.getRuntimeEngine(EmptyContext.get()); KieSession ksession = runtime.getKieSession(); assertNotNull(ksession); ksession.startProcess("ParentError"); List<? extends ProcessInstanceLog> processInstanceLogs = runtime.getAuditService().findProcessInstances(); assertEquals(2, processInstanceLogs.size()); for (ProcessInstanceLog log : processInstanceLogs) { if (log.getProcessId().equals("ParentError")) { assertEquals(ProcessInstance.STATE_COMPLETED, log.getStatus().intValue()); } else if(log.getProcessId().equals("ChildError")) { assertEquals(ProcessInstance.STATE_ABORTED, log.getStatus().intValue()); } } manager.disposeRuntimeEngine(runtime); manager.close(); } @Test
@Test public void testEventSignalingBetweenProcessesWithPeristence() { RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get() .newDefaultBuilder() .userGroupCallback(userGroupCallback) .addAsset(ResourceFactory.newClassPathResource("events/throw-an-event.bpmn"), ResourceType.BPMN2) .addAsset(ResourceFactory.newClassPathResource("events/start-on-event.bpmn"), ResourceType.BPMN2) .get(); manager = RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime = manager.getRuntimeEngine(EmptyContext.get()); KieSession ksession = runtime.getKieSession(); assertNotNull(ksession); ksession.startProcess("com.sample.bpmn.hello"); AuditService auditService = runtime.getAuditService(); List<? extends ProcessInstanceLog> throwProcessLogs = auditService.findProcessInstances("com.sample.bpmn.hello"); List<? extends ProcessInstanceLog> catchProcessLogs = auditService.findProcessInstances("com.sample.bpmn.Second"); assertNotNull(throwProcessLogs); assertEquals(1, throwProcessLogs.size()); assertEquals(ProcessInstance.STATE_COMPLETED, throwProcessLogs.get(0).getStatus().intValue()); assertNotNull(catchProcessLogs); assertEquals(1, catchProcessLogs.size()); assertEquals(ProcessInstance.STATE_COMPLETED, catchProcessLogs.get(0).getStatus().intValue()); manager.disposeRuntimeEngine(runtime); manager.close(); }
assertEquals(ProcessInstance.STATE_COMPLETED, pi1Log.getStatus().intValue()); assertEquals(ProcessInstance.STATE_ACTIVE, pi2Log.getStatus().intValue()); pi2Log = auditService.findProcessInstance(processInstance2.getId()); assertNotNull(pi2Log); assertEquals(ProcessInstance.STATE_COMPLETED, pi2Log.getStatus().intValue());
assertEquals(ProcessInstance.STATE_COMPLETED, log.getStatus().intValue());
private void testAdHocSubprocess() { RuntimeEngine runtime1 = manager.getRuntimeEngine(ProcessInstanceIdContext.get()); KieSession ksession1 = runtime1.getKieSession(); assertNotNull(ksession1); ProcessInstance processInstance = ksession1.startProcess("jbpm-abort-ht-issue.ad-hoc-abort-ht"); manager.disposeRuntimeEngine(runtime1); // then signal via first manager, should only signal instances owned by that manager runtime1 = manager.getRuntimeEngine(ProcessInstanceIdContext.get(processInstance.getId())); ksession1 = runtime1.getKieSession(); ksession1.addEventListener(new TaskCleanUpProcessEventListener(runtime1.getTaskService())); ksession1.signalEvent("Milestone", null, processInstance.getId()); manager.disposeRuntimeEngine(runtime1); JPAAuditLogService auditService = new JPAAuditLogService(emf); // process instance 1 should be completed by signal ProcessInstanceLog pi1Log = auditService.findProcessInstance(processInstance.getId()); assertNotNull(pi1Log); assertEquals(ProcessInstance.STATE_COMPLETED, pi1Log.getStatus().intValue()); auditService.dispose(); // close manager which will close session maintained by the manager manager.close(); }
assertEquals(CYCLE_TIMER_ID_V2, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, log.getExternalId()); assertEquals(ProcessInstance.STATE_ACTIVE, log.getStatus().intValue()); assertEquals(CYCLE_TIMER_ID_V2, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, log.getExternalId()); assertEquals(ProcessInstance.STATE_COMPLETED, log.getStatus().intValue());
assertEquals(CYCLE_TIMER_ID_V2, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, log.getExternalId()); assertEquals(ProcessInstance.STATE_ACTIVE, log.getStatus().intValue()); assertEquals(CYCLE_TIMER_ID_V2, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, log.getExternalId()); assertEquals(ProcessInstance.STATE_COMPLETED, log.getStatus().intValue());
assertEquals(TIMER_ID_V1, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V1, log.getExternalId()); assertEquals(ProcessInstance.STATE_ACTIVE, log.getStatus().intValue()); assertEquals(TIMER_ID_V1, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V1, log.getExternalId()); assertEquals(ProcessInstance.STATE_COMPLETED, log.getStatus().intValue());
assertEquals(EVENT_SUBPROCESS_TIMER_ID_V2, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, log.getExternalId()); assertEquals(ProcessInstance.STATE_ACTIVE, log.getStatus().intValue()); assertEquals(EVENT_SUBPROCESS_TIMER_ID_V2, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, log.getExternalId()); assertEquals(ProcessInstance.STATE_ABORTED, log.getStatus().intValue());
assertEquals(TIMER_ID_V2, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, log.getExternalId()); assertEquals(ProcessInstance.STATE_ACTIVE, log.getStatus().intValue()); assertEquals(TIMER_ID_V2, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, log.getExternalId()); assertEquals(ProcessInstance.STATE_COMPLETED, log.getStatus().intValue());
assertEquals(BOUNDARY_TIMER_ID_V2, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, log.getExternalId()); assertEquals(ProcessInstance.STATE_ACTIVE, log.getStatus().intValue()); assertEquals(BOUNDARY_TIMER_ID_V2, log.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, log.getExternalId()); assertEquals(ProcessInstance.STATE_COMPLETED, log.getStatus().intValue());