manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime1 = manager.getRuntimeEngine(EmptyContext.get()); KieSession ksession1 = runtime1.getKieSession(); assertNotNull(ksession1); ProcessInstance processInstance = ksession1.startProcess("intermediate-event-scope"); ProcessInstance processInstance2 = ksession2.startProcess("intermediate-event-scope"); ProcessInstanceLog pi1Log = auditService.findProcessInstance(processInstance.getId()); assertNotNull(pi1Log); assertEquals(ProcessInstance.STATE_COMPLETED, pi1Log.getStatus().intValue()); ProcessInstanceLog pi2Log = auditService.findProcessInstance(processInstance2.getId()); assertNotNull(pi2Log); assertEquals(ProcessInstance.STATE_ACTIVE, pi2Log.getStatus().intValue()); List<? extends NodeInstanceLog> nLogs = auditService.findNodeInstances(processInstance2.getId(), "_527AF0A7-D741-4062-9953-A05E51479C80"); assertNotNull(nLogs); assertEquals(2, nLogs.size()); auditService.dispose(); manager.disposeRuntimeEngine(runtime1);
.get(); manager = RuntimeManagerFactory.Factory.get().newPerRequestRuntimeManager(environment); assertNotNull(manager); ProcessInstance pi1 = ksession.startProcess("ParentProcess"); assertEquals(ProcessInstance.STATE_ACTIVE, pi1.getState()); ksession.getWorkItemManager().completeWorkItem(1, null); AuditService logService = runtime.getAuditService(); List<? extends ProcessInstanceLog> logs = logService.findActiveProcessInstances("ParentProcess"); assertNotNull(logs); assertEquals(0, logs.size()); logs = logService.findActiveProcessInstances("SubProcess"); assertNotNull(logs); assertEquals(0, logs.size()); logs = logService.findProcessInstances("ParentProcess"); assertNotNull(logs); assertEquals(1, logs.size()); logs = logService.findProcessInstances("SubProcess"); assertNotNull(logs); assertEquals(1, logs.size());
final NodeLeftCountDownProcessEventListener countDownListener = new NodeLeftCountDownProcessEventListener("Intermediate Catch Event 1", 1); RuntimeEnvironment environment = createEnvironment(countDownListener); manager = RuntimeManagerFactory.Factory.get().newPerCaseRuntimeManager(environment, "first"); assertNotNull(manager); RuntimeEngine runtime = manager.getRuntimeEngine(CaseContext.get("CASE-001")); KieSession ksession = runtime.getKieSession(); ProcessInstance pi = ksession.startProcess("TimerInitFailure", params); assertEquals(ProcessInstance.STATE_ACTIVE, pi.getState()); manager.disposeRuntimeEngine(runtime); runtime = manager.getRuntimeEngine(CaseContext.get("CASE-001")); runtime.getKieSession(); TaskService taskService = runtime.getTaskService(); AuditService auditService = runtime.getAuditService(); ProcessInstanceLog log = auditService.findProcessInstance(pi.getId()); assertEquals(ProcessInstance.STATE_COMPLETED, log.getStatus().intValue()); auditService.dispose(); manager.disposeRuntimeEngine(runtime);
manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime = manager.getRuntimeEngine(EmptyContext.get()); KieSession ksession = runtime.getKieSession(); assertNotNull(ksession); long sessionId = ksession.getIdentifier(); assertTrue(sessionId == 1); ProcessInstance pi = ksession.createProcessInstance("BPMN2-BusinessRuleTask", null); ksession.insert(pi); ksession.startProcessInstance(pi.getId()); assertNull(ksession.getProcessInstance(pi.getId())); AuditService logService = runtime.getAuditService(); List<? extends ProcessInstanceLog> logs = logService.findActiveProcessInstances("BPMN2-BusinessRuleTask"); assertNotNull(logs); assertEquals(0, logs.size()); logs = logService.findProcessInstances("BPMN2-BusinessRuleTask"); assertNotNull(logs); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime);
@Test public void testNoAsyncServiceAvailableScriptTask() throws Exception { RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder() .userGroupCallback(userGroupCallback) .addAsset(ResourceFactory.newClassPathResource("BPMN2-AsyncScriptTask.bpmn2"), ResourceType.BPMN2) .registerableItemsFactory(new DefaultRegisterableItemsFactory() { @Override public Map<String, WorkItemHandler> getWorkItemHandlers(RuntimeEngine runtime) { Map<String, WorkItemHandler> handlers = super.getWorkItemHandlers(runtime); handlers.put("async", new SystemOutWorkItemHandler()); return handlers; } }) .get(); manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime = manager.getRuntimeEngine(EmptyContext.get()); KieSession ksession = runtime.getKieSession(); assertNotNull(ksession); ProcessInstance processInstance = ksession.startProcess("AsyncScriptTask"); long processInstanceId = processInstance.getId(); processInstance = runtime.getKieSession().getProcessInstance(processInstance.getId()); assertNull(processInstance); List<? extends NodeInstanceLog> logs = runtime.getAuditService().findNodeInstances(processInstanceId); assertNotNull(logs); assertEquals(8, logs.size()); }
@Test public void testEventSignalingBetweenProcessesWithPeristence() { RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get() .newDefaultBuilder() .userGroupCallback(userGroupCallback) .addAsset(ResourceFactory.newClassPathResource("events/throw-an-event.bpmn"), ResourceType.BPMN2) .get(); manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(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"); assertEquals(ProcessInstance.STATE_COMPLETED, catchProcessLogs.get(0).getStatus().intValue()); manager.disposeRuntimeEngine(runtime); manager.close();
manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime = manager.getRuntimeEngine(EmptyContext.get()); KieSession ksession = runtime.getKieSession(); assertNotNull(ksession); long sessionId = ksession.getIdentifier(); assertTrue(sessionId == 1); ksession.addEventListener(new RuleAwareProcessEventLister()); ProcessInstance pi = ksession.startProcess("BPMN2-BusinessRuleTask"); assertNull(ksession.getProcessInstance(pi.getId())); AuditService logService = runtime.getAuditService(); List<? extends ProcessInstanceLog> logs = logService.findActiveProcessInstances("BPMN2-BusinessRuleTask"); assertNotNull(logs); assertEquals(0, logs.size()); logs = logService.findProcessInstances("BPMN2-BusinessRuleTask"); assertNotNull(logs); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime);
.get(); RuntimeEnvironment environment2 = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder() .userGroupCallback(userGroupCallback) .addAsset(ResourceFactory.newClassPathResource("BPMN2-ScriptTask.bpmn2"), ResourceType.BPMN2) .get(); manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment, "version1"); assertNotNull(manager); manager2 = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment2, "version2"); assertNotNull(manager2); ProcessInstance processInstance = ksession.startProcess("ScriptTask"); assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); manager.disposeRuntimeEngine(runtime); MigrationSpec migrationSpec = new MigrationSpec(manager.getIdentifier(), processInstance.getId(), manager2.getIdentifier(), "ScriptTask"); AuditService auditService = runtime.getAuditService(); ProcessInstanceLog log = auditService.findProcessInstance(processInstance.getId()); auditService.dispose();
.get(); ProcessInstance pi1 = ksession.startProcess("ParentProcess"); assertEquals(ProcessInstance.STATE_ACTIVE, pi1.getState()); ksession.abortProcessInstance(pi1.getId()); AuditService logService = runtime.getAuditService(); List<? extends ProcessInstanceLog> logs = logService.findActiveProcessInstances("ParentProcess"); assertNotNull(logs); assertEquals(0, logs.size()); logs = logService.findActiveProcessInstances("SubProcess"); assertNotNull(logs); assertEquals(1, logs.size()); logs = logService.findProcessInstances("ParentProcess"); assertNotNull(logs); assertEquals(1, logs.size()); assertEquals(ProcessInstance.STATE_ABORTED, (int)logs.get(0).getStatus()); logs = logService.findProcessInstances("SubProcess"); assertNotNull(logs); assertEquals(1, logs.size()); assertEquals(ProcessInstance.STATE_ACTIVE, (int)logs.get(0).getStatus());
RuntimeEngine engine = firstManager.getRuntimeEngine(runtimeManagerContext); ProcessInstance instance = engine.getKieSession().startProcess(ADDTASKAFTERACTIVE_ID_V1); assertNotNull(instance); long processInstanceId = instance.getId(); assertNotNull(processInstanceId); org.kie.api.runtime.manager.audit.ProcessInstanceLog log = engine.getAuditService().findProcessInstance(processInstanceId); assertEquals(ProcessInstance.STATE_ACTIVE, log.getStatus().intValue()); assertEquals(ADDTASKAFTERACTIVE_ID_V1, log.getProcessId()); MigrationSpec migrationSpec = new MigrationSpec(firstManager.getIdentifier(), processInstanceId, secondManager.getIdentifier(), ADDTASKAFTERACTIVE_ID_V2); MigrationManager migrationManager = new MigrationManager(migrationSpec); assertTrue(report.isSuccessful()); log = engine.getAuditService().findProcessInstance(processInstanceId); assertEquals(ProcessInstance.STATE_ACTIVE, log.getStatus().intValue()); assertEquals(ADDTASKAFTERACTIVE_ID_V2, log.getProcessId());
final Set<Long> ksessionUsed = new HashSet<Long>(); RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get() .newDefaultBuilder() .userGroupCallback(userGroupCallback) .addAsset(ResourceFactory.newClassPathResource("events/throw-an-event.bpmn"), ResourceType.BPMN2) .get(); manager = RuntimeManagerFactory.Factory.get().newPerCaseRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime = manager.getRuntimeEngine(CaseContext.get("Case-1")); KieSession ksession = runtime.getKieSession(); long ksession1Id = ksession.getIdentifier(); 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"); assertEquals(ksession1Id, ksessionUsed.iterator().next().longValue()); manager.disposeRuntimeEngine(runtime); manager.close();
private void testProcessStartOnManager(RuntimeManager manager, Context<?> context) { assertNotNull(manager); RuntimeEngine runtime = manager.getRuntimeEngine(context); assertNotNull(runtime); KieSession ksession = runtime.getKieSession(); assertNotNull(ksession); ProcessInstance processInstance = ksession.startProcess("UserTask"); assertNotNull(processInstance); AuditService logService = runtime.getAuditService(); List<? extends ProcessInstanceLog> logs = logService.findActiveProcessInstances("UserTask"); assertNotNull(logs); assertEquals(1, logs.size()); assertEquals(manager.getIdentifier(), externalId); runtime.getTaskService().start(tasks.get(0).getId(), "john"); runtime.getTaskService().complete(tasks.get(0).getId(), "john", null); processInstance = ksession.getProcessInstance(processInstance.getId()); assertNull(processInstance);
manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime1 = manager.getRuntimeEngine(EmptyContext.get()); KieSession ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); List<? extends ProcessInstanceLog> logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); runtime1 = manager.getRuntimeEngine(EmptyContext.get()); ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(2, logs.size()); manager.disposeRuntimeEngine(runtime1);
@SuppressWarnings("unchecked") public List<ChecklistItem> getTasks(long processInstanceId) { RuntimeEngine runtime = getRuntime(); KieSession ksession = runtime.getKieSession(); ProcessInstance processInstance = ksession.getProcessInstance(processInstanceId); Map<String, ChecklistItem> orderingIds = new HashMap<String, ChecklistItem>(); if (processInstance != null) { WorkflowProcess process = (WorkflowProcess) ksession.getKieBase().getProcess(processInstance.getProcessId()); Collection<ChecklistItem> result = ChecklistItemFactory.getPendingChecklistItems(process); result.addAll(ChecklistItemFactory.getLoggedChecklistItems(process, (List<NodeInstanceLog>) runtime.getAuditService().findNodeInstances(processInstance.getId()))); for (ChecklistItem item: result) { if (item.getOrderingNb() != null && item.getOrderingNb().trim().length() > 0) { TaskService taskService = runtime.getTaskService(); List<Long> taskIds = taskService.getTasksByProcessInstanceId(processInstanceId); List<ChecklistItem> result = new ArrayList<ChecklistItem>(); manager.disposeRuntimeEngine(runtime); return result;
manager = RuntimeManagerFactory.Factory.get().newPerRequestRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime1 = manager.getRuntimeEngine(EmptyContext.get()); KieSession ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); List<? extends ProcessInstanceLog> logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); runtime1 = manager.getRuntimeEngine(EmptyContext.get()); ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(2, logs.size()); manager.disposeRuntimeEngine(runtime1);
manager = RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime1 = manager.getRuntimeEngine(ProcessInstanceIdContext.get()); KieSession ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); List<? extends ProcessInstanceLog> logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); runtime1 = manager.getRuntimeEngine(ProcessInstanceIdContext.get()); ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(2, logs.size()); manager.disposeRuntimeEngine(runtime1);
manager = RuntimeManagerFactory.Factory.get().newPerCaseRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime1 = manager.getRuntimeEngine(CaseContext.get("Case-1")); KieSession ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); List<? extends ProcessInstanceLog> logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); runtime1 = manager.getRuntimeEngine(CaseContext.get("Case-1")); ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); ksession1 = runtime1.getKieSession(); ksession1.signalEvent("SampleEvent", null); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(2, logs.size()); manager.disposeRuntimeEngine(runtime1);
@Test public void testAuditLogFromRuntimeEngine() throws Exception { KieSession ksession = getKieSession(); final ProcessInstance processInstance = ksession.startProcess(SAMPLE_HELLO_PROCESS_ID); RuntimeManager manager = getManager(); RuntimeEngine engine = getEngine(); AuditService logService = engine.getAuditService(); org.kie.api.runtime.manager.audit.ProcessInstanceLog instanceLog = logService.findProcessInstance(processInstance.getId()); assertNotNull(instanceLog); assertEquals(ProcessInstance.STATE_ACTIVE, instanceLog.getStatus().intValue()); ksession.abortProcessInstance(processInstance.getId()); instanceLog = logService.findProcessInstance(processInstance.getId()); assertNotNull(instanceLog); assertEquals(ProcessInstance.STATE_ABORTED, instanceLog.getStatus().intValue()); manager.disposeRuntimeEngine(engine); }
.get(); manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime1 = manager.getRuntimeEngine(EmptyContext.get()); List<? extends ProcessInstanceLog> logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); countDownListener.waitTillCompleted(2000); runtime1 = manager.getRuntimeEngine(EmptyContext.get()); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); runtime1 = manager.getRuntimeEngine(EmptyContext.get()); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(2, logs.size()); manager.disposeRuntimeEngine(runtime1);
.get(); manager = RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(environment); assertNotNull(manager); RuntimeEngine runtime1 = manager.getRuntimeEngine(ProcessInstanceIdContext.get()); List<? extends ProcessInstanceLog> logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); countDownListener.waitTillCompleted(2000); runtime1 = manager.getRuntimeEngine(ProcessInstanceIdContext.get()); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(1, logs.size()); manager.disposeRuntimeEngine(runtime1); runtime1 = manager.getRuntimeEngine(ProcessInstanceIdContext.get()); logs = runtime1.getAuditService().findProcessInstances(); assertEquals(2, logs.size()); manager.disposeRuntimeEngine(runtime1);