@Test public void testEvaluationProcess3() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-EvaluationProcess3.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); ksession.getWorkItemManager().registerWorkItemHandler("RegisterRequest", new SystemOutWorkItemHandler()); Map<String, Object> params = new HashMap<String, Object>(); params.put("employee", "john2"); ProcessInstance processInstance = ksession.startProcess("Evaluation", params); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); }
@Test public void compensationInvokingSubProcess() throws Exception { KieSession ksession = createKnowledgeSession("compensation/BPMN2-UserTaskCompensation.bpmn2"); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); Map<String, Object> params = new HashMap<String, Object>(); params.put("compensation", "True"); ProcessInstance processInstance = ksession.startProcess("UserTaskCompensation", params); assertProcessInstanceCompleted(processInstance.getId(), ksession); assertProcessVarValue(processInstance, "compensation", "compensation"); }
KieBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventSignalWithSLAOnEvent.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ksession.addEventListener(listener); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent"); assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE); ksession.signalEvent("MyMessage", null, processInstance.getId()); assertEquals(ProcessInstance.SLA_NA, slaCompliance); slaCompliance = getSLAComplianceForNodeInstance(processInstance.getId(), (org.jbpm.workflow.instance.NodeInstance) eventNode, NodeInstanceLog.TYPE_EXIT); assertEquals(ProcessInstance.SLA_MET, slaCompliance);
KieBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventSignal.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); ProcessInstance processInstance = ksession.startProcess(processId); assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE); Object result = ksession.execute(cmd); assertNotNull( "Command result is empty!", result ); assertTrue( result instanceof List ); assertEquals( "Log list size is incorrect.", 1, logList.size() ); ProcessInstanceLog log = logList.get(0); assertEquals(log.getProcessInstanceId().longValue(), processInstance.getId()); assertEquals(log.getProcessId(), processInstance.getProcessId());
@Test public void testIntermediateCatchEventSameSignalOnTwoKsessions() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventSignal.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent"); KieBase kbase2 = createKnowledgeBase("BPMN2-IntermediateCatchEventSignal2.bpmn2"); KieSession ksession2 = createKnowledgeSession(kbase2); ksession2.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); ProcessInstance processInstance2 = ksession2.startProcess("IntermediateCatchEvent2"); assertProcessInstanceActive(processInstance); assertProcessInstanceActive(processInstance2); ksession = restoreSession(ksession, true); ksession2 = restoreSession(ksession2, true); // now signal process instance ksession.signalEvent("MyMessage", "SomeValue"); assertProcessInstanceFinished(processInstance, ksession); assertProcessInstanceActive(processInstance2); // now signal the other one ksession2.signalEvent("MyMessage", "SomeValue"); assertProcessInstanceFinished(processInstance2, ksession2); ksession2.dispose(); }
@Test public void testSignalEndWithData() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-IntermediateThrowEventSignalWithData.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); Map<String, Object> params = new HashMap<String, Object>(); ProcessInstance processInstance = ksession.startProcess("testThrowingSignalEvent", params); assertProcessInstanceActive(processInstance); ksession.signalEvent("mysignal", null, processInstance.getId()); assertProcessInstanceCompleted(processInstance); }
@Test(timeout=10000) public void testIntegrationWithEventManager() throws Exception { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(new ClassPathResource("WorkItemsProcess.rf"), ResourceType.DRF); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages(kbuilder.getKnowledgePackages()); StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession(kbase, null, env); ksession.getWorkItemManager().registerWorkItemHandler("MyWork", new SystemOutWorkItemHandler()); ProcessInstance processInstance = ksession.startProcess("org.drools.test.TestProcess"); ksession.insert("TestString"); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); while (responseCollector.isEmpty()) { Thread.sleep(100); } assertNotNull(responseCollector); assertEquals(1, responseCollector.size()); } }
public KieSession createSession(KieBase kbase, Environment env) { KieSession session = createKieSession(kbase, env); session.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); return session; }
@Test public void testEvaluationProcess() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-EvaluationProcess.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); ksession.getWorkItemManager().registerWorkItemHandler( "RegisterRequest", new SystemOutWorkItemHandler()); Map<String, Object> params = new HashMap<String, Object>(); params.put("employee", "UserId-12345"); ProcessInstance processInstance = ksession.startProcess("Evaluation", params); assertProcessInstanceCompleted(processInstance); }
@Override public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { assertEquals("SimpleService", workItem.getParameter("Interface")); assertEquals("hello", workItem.getParameter("Operation")); assertEquals("java.lang.String", workItem.getParameter("ParameterType")); assertEquals("##WebService", workItem.getParameter("implementation")); assertEquals("hello", workItem.getParameter("operationImplementationRef")); assertEquals("SimpleService", workItem.getParameter("interfaceImplementationRef")); super.executeWorkItem(workItem, manager); }
@Test public void testExclusiveSplitPriority() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-ExclusiveSplitPriority.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Email", new SystemOutWorkItemHandler()); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "First"); params.put("y", "Second"); ProcessInstance processInstance = ksession.startProcess( "com.sample.test", params); assertProcessInstanceCompleted(processInstance); }
KieBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventSignalWithSLAOnEvent.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ksession.addEventListener(listener); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent"); assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE); processInstance = ksession.getProcessInstance(processInstance.getId()); assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE);
@Test public void testSignalEndWithData() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-IntermediateThrowEventSignalWithData.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); Map<String, Object> params = new HashMap<String, Object>(); ProcessInstance processInstance = ksession.startProcess("testThrowingSignalEvent", params); assertProcessInstanceActive(processInstance); ksession.signalEvent("mysignal", null, processInstance.getId()); assertProcessInstanceCompleted(processInstance); }
@Test public void testPersistenceWorkItems3() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( new ClassPathResource( "WorkItemsProcess.rf" ), ResourceType.DRF ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages( kbuilder.getKnowledgePackages() ); StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env ); ksession.getWorkItemManager().registerWorkItemHandler("MyWork", new SystemOutWorkItemHandler()); ProcessInstance processInstance = ksession.startProcess( "org.drools.test.TestProcess" ); ksession.insert( "TestString" ); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); }
@Before public void setUp() throws Exception { // persistence context = setupWithPoolingDataSource(JBPM_PERSISTENCE_UNIT_NAME); // create a new session Environment env = createEnvironment(context); KieBase kbase = createKnowledgeBase(); ksession = createKieSession(kbase, env); new JPAWorkingMemoryDbLogger(ksession); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); // log service auditLogService = new JPAAuditLogService(env); }
@Test public void testEvaluationProcess3() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-EvaluationProcess3.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); ksession.getWorkItemManager().registerWorkItemHandler( "RegisterRequest", new SystemOutWorkItemHandler()); Map<String, Object> params = new HashMap<String, Object>(); params.put("employee", "john2"); ProcessInstance processInstance = ksession.startProcess("Evaluation", params); assertProcessInstanceCompleted(processInstance); }
@Override public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { assertEquals("SimpleService", workItem.getParameter("Interface")); assertEquals("hello", workItem.getParameter("Operation")); assertEquals("java.lang.String", workItem.getParameter("ParameterType")); assertEquals("##WebService", workItem.getParameter("implementation")); assertEquals("hello", workItem.getParameter("operationImplementationRef")); assertEquals("SimpleService", workItem.getParameter("interfaceImplementationRef")); super.executeWorkItem(workItem, manager); }
@Test public void testEvaluationProcess() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-EvaluationProcess.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); ksession.getWorkItemManager().registerWorkItemHandler("RegisterRequest", new SystemOutWorkItemHandler()); Map<String, Object> params = new HashMap<String, Object>(); params.put("employee", "UserId-12345"); ProcessInstance processInstance = ksession.startProcess("Evaluation", params); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); }
@Test public void testExclusiveSplitDefault() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-ExclusiveSplitDefault.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Email", new SystemOutWorkItemHandler()); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "NotFirst"); params.put("y", "Second"); ProcessInstance processInstance = ksession.startProcess( "com.sample.test", params); assertProcessInstanceCompleted(processInstance); }
@Test public void testIntegrationWithEventManager3() { // Because of MapBasedPersistenceTest we have to be sure that we register TX sync on the right transaction manager ((TestTransactionalPersistenceEventManager) EventManagerProvider.getInstance().get()).resetTransactionManager(); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( new ClassPathResource( "WorkItemsProcess.rf" ), ResourceType.DRF ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages( kbuilder.getKnowledgePackages() ); StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env ); ksession.getWorkItemManager().registerWorkItemHandler("MyWork", new SystemOutWorkItemHandler()); ProcessInstance processInstance = ksession.startProcess( "org.drools.test.TestProcess" ); ksession.insert( "TestString" ); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); List<InstanceView<?>> events = TestEventEmitter.getEvents(); assertNotNull(events); assertEquals(1, events.size()); } }