public void testConcurrentExecution() { deploymentForTenant("tenant1", Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .parallelGateway("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .parallelGateway("join") .endEvent() .moveToNode("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .connectTo("join") .done()); AssertingJavaDelegate.addAsserts(hasTenantId("tenant1")); startProcessInstance(PROCESS_DEFINITION_KEY); }
public void testConcurrentServiceTasks() { deployment(Bpmn.createExecutableProcess("testProcess") .startEvent() .parallelGateway("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .parallelGateway("join") .endEvent() .moveToNode("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .connectTo("join") .done()); AssertingJavaDelegate.addAsserts( new DelegateExecutionAsserter() { public void doAssert(DelegateExecution execution) { assertFalse(execution.equals(execution.getProcessInstance())); assertNull(execution.getSuperExecution()); } } ); runtimeService.startProcessInstanceByKey("testProcess"); }
public void testOutputParameterAvailableAfterParallelGateway() { // given BpmnModelInstance processDefinition = Bpmn.createExecutableProcess("process") .startEvent() .serviceTask() .camundaOutputParameter("variable", "A") .camundaExpression("${'this value does not matter'}") .parallelGateway("fork") .endEvent() .moveToNode("fork") .serviceTask().camundaExpression("${variable}") .receiveTask() .endEvent() .done(); // when deployment(processDefinition); runtimeService.startProcessInstanceByKey("process"); // then VariableInstance variableInstance = runtimeService .createVariableInstanceQuery() .variableName("variable") .singleResult(); assertNotNull(variableInstance); }
/** just for visualization, needed on blog post / slide **/ private void createComplexFlow() { engine.getRepositoryService().createDeployment() // .addModelInstance("order.bpmn", Bpmn.createProcess("order").executable() // .startEvent() .serviceTask().name("A") .parallelGateway("fork1") .serviceTask().name("B") .parallelGateway("join2") .moveToNode("fork1") .serviceTask().name("C") .parallelGateway("fork2") .serviceTask().name("D") .parallelGateway("join1") .moveToNode("fork2") .serviceTask().name("E") .connectTo("join1") .connectTo("join2") .endEvent() .done() ).deploy(); } private void createCompensationFlow() {
public void testConcurrentExecution() { deploymentForTenant("tenant1", Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .parallelGateway("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .parallelGateway("join") .endEvent() .moveToNode("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .connectTo("join") .done()); AssertingJavaDelegate.addAsserts(hasTenantId("tenant1")); startProcessInstance(PROCESS_DEFINITION_KEY); }
public void testConcurrentServiceTasks() { deployment(Bpmn.createExecutableProcess("testProcess") .startEvent() .parallelGateway("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .parallelGateway("join") .endEvent() .moveToNode("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .connectTo("join") .done()); AssertingJavaDelegate.addAsserts( new DelegateExecutionAsserter() { public void doAssert(DelegateExecution execution) { assertFalse(execution.equals(execution.getProcessInstance())); assertNull(execution.getSuperExecution()); } } ); runtimeService.startProcessInstanceByKey("testProcess"); }
public void testOutputParameterAvailableAfterParallelGateway() { // given BpmnModelInstance processDefinition = Bpmn.createExecutableProcess("process") .startEvent() .serviceTask() .camundaOutputParameter("variable", "A") .camundaExpression("${'this value does not matter'}") .parallelGateway("fork") .endEvent() .moveToNode("fork") .serviceTask().camundaExpression("${variable}") .receiveTask() .endEvent() .done(); // when deployment(processDefinition); runtimeService.startProcessInstanceByKey("process"); // then VariableInstance variableInstance = runtimeService .createVariableInstanceQuery() .variableName("variable") .singleResult(); assertNotNull(variableInstance); }