![JAR search and dependency download from the Maven repository](/logo.png)
org.camunda.bpm.scenario.impl.waitstate.ServiceTaskExecutable Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of camunda-bpm-assert-scenario Show documentation
Show all versions of camunda-bpm-assert-scenario Show documentation
Camunda BPM Assert Scenario allows you to specify the actions
needed at process wait states before you start the process instances
executing your test scenario. As a consequence, writing such tests is
easier and faster than ever before. And refactoring and changing large
process models and their test suites can almost be done in the blink
of an eye: ;-) Done! Check it out and judge yourself!
package org.camunda.bpm.scenario.impl.waitstate;
import org.camunda.bpm.engine.externaltask.ExternalTask;
import org.camunda.bpm.engine.history.HistoricActivityInstance;
import org.camunda.bpm.scenario.ProcessScenario;
import org.camunda.bpm.scenario.act.Action;
import org.camunda.bpm.scenario.impl.ProcessRunnerImpl;
import org.camunda.bpm.scenario.impl.delegate.AbstractExternalTaskDelegate;
import java.util.Map;
/**
* @author Martin Schimak
*/
public class ServiceTaskExecutable extends AbstractExternalTaskDelegate {
private static final String WORKER_ID = "workerId";
public ServiceTaskExecutable(ProcessRunnerImpl runner, HistoricActivityInstance instance) {
super(runner, instance);
}
@Override
protected ExternalTask getDelegate() {
return getExternalTaskService().createExternalTaskQuery().executionId(getExecutionId()).singleResult();
}
@Override
protected Action action(ProcessScenario scenario) {
return scenario.waitsAtServiceTask(getActivityId());
}
protected void fetchAndLock() {
getExternalTaskService().fetchAndLock(Integer.MAX_VALUE, WORKER_ID).topic(getDelegate().getTopicName(), Long.MAX_VALUE).execute();
}
@Override
public void complete() {
fetchAndLock();
getExternalTaskService().complete(getDelegate().getId(), WORKER_ID);
}
@Override
public void complete(Map variables) {
fetchAndLock();
getExternalTaskService().complete(getDelegate().getId(), WORKER_ID, variables);
}
@Override
public void handleBpmnError(String errorCode) {
fetchAndLock();
getExternalTaskService().handleBpmnError(getDelegate().getId(), WORKER_ID, errorCode);
}
@Override
public String getProcessDefinitionVersionTag() {
return getRepositoryService().getProcessDefinition(getProcessDefinitionId()).getVersionTag();
}
@Override
public String getBusinessKey() {
return getProcessInstance().getBusinessKey();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy