/** * Deploy a process model, which contains an external task. The topic is * given via parameter so the test cases are independent. * * @param engine the engine which is used to deploy the instance * @param topicName the topic name for the external task */ public static void deploy(ProcessEngine engine, String topicName) { BpmnModelInstance instance = Bpmn.createExecutableProcess(PROCESS_DEF_KEY) .startEvent() .serviceTask(EXTERNAL_TASK) .camundaType(EXTERNAL_TASK_TYPE) .camundaTopic(topicName) .endEvent() .done(); engine.getRepositoryService().createDeployment() .addModelInstance(ProcessWithExternalTaskScenario.class.getSimpleName() + ".startProcessWithFetch.bpmn20.xml", instance) .deploy(); }
public BpmnModelInstance build() { return ProcessModels.newModel(processKey) .startEvent() .serviceTask(externalTaskName) .camundaType(externalTaskType) .camundaTopic(topic) .camundaTaskPriority(priority.toString()) .endEvent() .done(); }
public void testPropagateTenantIdToExternalTask() { deploymentForTenant(TENANT_ID, Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .serviceTask() .camundaType("external") .camundaTopic("test") .endEvent() .done()); startProcessInstance(PROCESS_DEFINITION_KEY); ExternalTask externalTask = externalTaskService.createExternalTaskQuery().singleResult(); assertThat(externalTask, is(notNullValue())); // inherit the tenant id from execution assertThat(externalTask.getTenantId(), is(TENANT_ID)); List<LockedExternalTask> externalTasks = externalTaskService.fetchAndLock(1, "test").topic("test", 1000).execute(); assertThat(externalTasks.size(), is(1)); assertThat(externalTasks.get(0).getTenantId(), is(TENANT_ID)); }
public void testPropagateTenantIdToFailedExternalTaskIncident() { deploymentForTenant(TENANT_ID, Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .serviceTask() .camundaType("external") .camundaTopic("test") .endEvent() .done()); startProcessInstance(PROCESS_DEFINITION_KEY); // fetch the external task and mark it as failed which create an incident List<LockedExternalTask> tasks = externalTaskService.fetchAndLock(1, "test-worker").topic("test", 1000).execute(); externalTaskService.handleFailure(tasks.get(0).getId(), "test-worker", "expected", 0, 0); Incident incident = runtimeService.createIncidentQuery().singleResult(); assertThat(incident, is(notNullValue())); // inherit the tenant id from execution assertThat(incident.getTenantId(), is(TENANT_ID)); }
@Override protected void setUp() { BpmnModelInstance process = Bpmn.createExecutableProcess() .startEvent() .serviceTask() .camundaType("external") .camundaTopic("test") .endEvent() .done(); deploymentForTenant(TENANT_ONE, process); deploymentForTenant(TENANT_TWO, process); startProcessInstance(TENANT_ONE); startProcessInstance(TENANT_TWO); }
.startEvent("startEvent") .serviceTask("externalTask") .camundaType("external") .camundaTopic(TOPIC_NAME) .endEvent("endEvent")
public void testCompleteWithNonLocalVariables() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("Process").startEvent().serviceTask("externalTask") .camundaType("external").camundaTopic("foo").camundaTaskPriority("100") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_END, ReadLocalVariableListenerImpl.class) .userTask("user").endEvent().done(); deployment(instance); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("Process"); List<LockedExternalTask> lockedTasks = externalTaskService.fetchAndLock(1, WORKER_ID).topic("foo", 1L).execute(); // when externalTaskService.complete(lockedTasks.get(0).getId(), WORKER_ID, Variables.createVariables().putValue("abc", "bar"), null); // then VariableInstance variableInstance = runtimeService.createVariableInstanceQuery() .processInstanceIdIn(processInstance.getId()).singleResult(); assertNotNull(variableInstance); assertEquals("bar", variableInstance.getValue()); assertEquals("abc", variableInstance.getName()); }
public void testCompleteWithLocalVariables() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("Process").startEvent().serviceTask("externalTask") .camundaType("external").camundaTopic("foo").camundaTaskPriority("100") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_END, ReadLocalVariableListenerImpl.class) .userTask("user").endEvent().done(); deployment(instance); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("Process"); List<LockedExternalTask> lockedTasks = externalTaskService.fetchAndLock(1, WORKER_ID).topic("foo", 1L).execute(); // when externalTaskService.complete(lockedTasks.get(0).getId(), WORKER_ID, null, Variables.createVariables().putValue("abc", "bar")); // then VariableInstance variableInstance = runtimeService.createVariableInstanceQuery() .processInstanceIdIn(processInstance.getId()).singleResult(); assertNull(variableInstance); if (processEngineConfiguration.getHistoryLevel() == HistoryLevel.HISTORY_LEVEL_AUDIT || processEngineConfiguration.getHistoryLevel() == HistoryLevel.HISTORY_LEVEL_FULL) { HistoricVariableInstance historicVariableInstance = historyService.createHistoricVariableInstanceQuery() .activityInstanceIdIn(lockedTasks.get(0).getActivityInstanceId()).singleResult(); assertNotNull(historicVariableInstance); assertEquals("abc", historicVariableInstance.getName()); assertEquals("bar", historicVariableInstance.getValue()); } }
/** * Deploy a process model, which contains an external task. The topic is * given via parameter so the test cases are independent. * * @param engine the engine which is used to deploy the instance * @param topicName the topic name for the external task */ public static void deploy(ProcessEngine engine, String topicName) { BpmnModelInstance instance = Bpmn.createExecutableProcess(PROCESS_DEF_KEY) .startEvent() .serviceTask(EXTERNAL_TASK) .camundaType(EXTERNAL_TASK_TYPE) .camundaTopic(topicName) .endEvent() .done(); engine.getRepositoryService().createDeployment() .addModelInstance(ProcessWithExternalTaskScenario.class.getSimpleName() + ".startProcessWithFetch.bpmn20.xml", instance) .deploy(); }
public BpmnModelInstance build() { return ProcessModels.newModel(processKey) .startEvent() .serviceTask(externalTaskName) .camundaType(externalTaskType) .camundaTopic(topic) .camundaTaskPriority(priority.toString()) .endEvent() .done(); }
public void testPropagateTenantIdToExternalTask() { deploymentForTenant(TENANT_ID, Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .serviceTask() .camundaType("external") .camundaTopic("test") .endEvent() .done()); startProcessInstance(PROCESS_DEFINITION_KEY); ExternalTask externalTask = externalTaskService.createExternalTaskQuery().singleResult(); assertThat(externalTask, is(notNullValue())); // inherit the tenant id from execution assertThat(externalTask.getTenantId(), is(TENANT_ID)); List<LockedExternalTask> externalTasks = externalTaskService.fetchAndLock(1, "test").topic("test", 1000).execute(); assertThat(externalTasks.size(), is(1)); assertThat(externalTasks.get(0).getTenantId(), is(TENANT_ID)); }
.parallelGateway("parallel") .serviceTask("external") .camundaType("external") .camundaTopic("external") .boundaryEvent()
public void testPropagateTenantIdToFailedExternalTaskIncident() { deploymentForTenant(TENANT_ID, Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .serviceTask() .camundaType("external") .camundaTopic("test") .endEvent() .done()); startProcessInstance(PROCESS_DEFINITION_KEY); // fetch the external task and mark it as failed which create an incident List<LockedExternalTask> tasks = externalTaskService.fetchAndLock(1, "test-worker").topic("test", 1000).execute(); externalTaskService.handleFailure(tasks.get(0).getId(), "test-worker", "expected", 0, 0); Incident incident = runtimeService.createIncidentQuery().singleResult(); assertThat(incident, is(notNullValue())); // inherit the tenant id from execution assertThat(incident.getTenantId(), is(TENANT_ID)); }
@Override protected void setUp() { BpmnModelInstance process = Bpmn.createExecutableProcess() .startEvent() .serviceTask() .camundaType("external") .camundaTopic("test") .endEvent() .done(); deploymentForTenant(TENANT_ONE, process); deploymentForTenant(TENANT_TWO, process); startProcessInstance(TENANT_ONE); startProcessInstance(TENANT_TWO); }
.startEvent("startEvent") .serviceTask("externalTask") .camundaType("external") .camundaTopic(TOPIC_NAME) .endEvent("endEvent")
public void testCompleteWithNonLocalVariables() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("Process").startEvent().serviceTask("externalTask") .camundaType("external").camundaTopic("foo").camundaTaskPriority("100") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_END, ReadLocalVariableListenerImpl.class) .userTask("user").endEvent().done(); deployment(instance); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("Process"); List<LockedExternalTask> lockedTasks = externalTaskService.fetchAndLock(1, WORKER_ID).topic("foo", 1L).execute(); // when externalTaskService.complete(lockedTasks.get(0).getId(), WORKER_ID, Variables.createVariables().putValue("abc", "bar"), null); // then VariableInstance variableInstance = runtimeService.createVariableInstanceQuery() .processInstanceIdIn(processInstance.getId()).singleResult(); assertNotNull(variableInstance); assertEquals("bar", variableInstance.getValue()); assertEquals("abc", variableInstance.getName()); }
public void testCompleteWithLocalVariables() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("Process").startEvent().serviceTask("externalTask") .camundaType("external").camundaTopic("foo").camundaTaskPriority("100") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_END, ReadLocalVariableListenerImpl.class) .userTask("user").endEvent().done(); deployment(instance); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("Process"); List<LockedExternalTask> lockedTasks = externalTaskService.fetchAndLock(1, WORKER_ID).topic("foo", 1L).execute(); // when externalTaskService.complete(lockedTasks.get(0).getId(), WORKER_ID, null, Variables.createVariables().putValue("abc", "bar")); // then VariableInstance variableInstance = runtimeService.createVariableInstanceQuery() .processInstanceIdIn(processInstance.getId()).singleResult(); assertNull(variableInstance); if (processEngineConfiguration.getHistoryLevel() == HistoryLevel.HISTORY_LEVEL_AUDIT || processEngineConfiguration.getHistoryLevel() == HistoryLevel.HISTORY_LEVEL_FULL) { HistoricVariableInstance historicVariableInstance = historyService.createHistoricVariableInstanceQuery() .activityInstanceIdIn(lockedTasks.get(0).getActivityInstanceId()).singleResult(); assertNotNull(historicVariableInstance); assertEquals("abc", historicVariableInstance.getName()); assertEquals("bar", historicVariableInstance.getValue()); } }
.parallelGateway("parallel") .serviceTask("external") .camundaType("external") .camundaTopic("external") .boundaryEvent()