Java源码示例:org.activiti.engine.impl.RuntimeServiceImpl
示例1
@Deployment(resources={"org/activiti5/engine/test/concurrency/CompetingSignalsTest.testCompetingSignals.bpmn20.xml"})
public void testCompetingSignalsWithRetry() throws Exception {
RuntimeServiceImpl runtimeServiceImpl = (RuntimeServiceImpl)runtimeService;
CommandExecutorImpl before = (CommandExecutorImpl) runtimeServiceImpl.getCommandExecutor();
try {
CommandInterceptor retryInterceptor = new RetryInterceptor();
retryInterceptor.setNext(before.getFirst());
runtimeServiceImpl.setCommandExecutor(new CommandExecutorImpl(before.getDefaultConfig(), retryInterceptor));
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("CompetingSignalsProcess");
String processInstanceId = processInstance.getId();
log.debug("test thread starts thread one");
SignalThread threadOne = new SignalThread(processInstanceId);
threadOne.startAndWaitUntilControlIsReturned();
log.debug("test thread continues to start thread two");
SignalThread threadTwo = new SignalThread(processInstanceId);
threadTwo.startAndWaitUntilControlIsReturned();
log.debug("test thread notifies thread 1");
threadOne.proceedAndWaitTillDone();
assertNull(threadOne.exception);
log.debug("test thread notifies thread 2");
threadTwo.proceedAndWaitTillDone();
assertNull(threadTwo.exception);
} finally {
// restore the command executor
runtimeServiceImpl.setCommandExecutor(before);
}
}
示例2
public ProcessInstanceBuilderImpl(RuntimeServiceImpl runtimeService) {
this.runtimeService = runtimeService;
}
示例3
public ProcessInstanceBuilderImpl(RuntimeServiceImpl runtimeService) {
this.runtimeService = runtimeService;
}
示例4
private void executeCommand(Command<java.lang.Void> command)
{
((RuntimeServiceImpl) _processEngine.getRuntimeService()).getCommandExecutor().execute(command);
}