use of org.camunda.bpm.engine.impl.interceptor.CommandExecutor in project camunda-bpm-platform by camunda.
the class SetProcessDefinitionVersionCmdTest method testSetProcessDefinitionVersionAttachedTimer.
@Deployment(resources = TEST_PROCESS_ATTACHED_TIMER)
public void testSetProcessDefinitionVersionAttachedTimer() {
// given a process instance
ProcessInstance instance = runtimeService.startProcessInstanceByKey("attachedTimer");
// and a second deployment of the process
org.camunda.bpm.engine.repository.Deployment deployment = repositoryService.createDeployment().addClasspathResource(TEST_PROCESS_ATTACHED_TIMER).deploy();
ProcessDefinition newDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult();
assertNotNull(newDefinition);
// when the process instance is migrated
CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutorTxRequired();
commandExecutor.execute(new SetProcessDefinitionVersionCmd(instance.getId(), 2));
Job job = managementService.createJobQuery().singleResult();
assertNotNull(job);
assertEquals(newDefinition.getId(), job.getProcessDefinitionId());
repositoryService.deleteDeployment(deployment.getId(), true);
}
use of org.camunda.bpm.engine.impl.interceptor.CommandExecutor in project camunda-bpm-platform by camunda.
the class BpmnParseTest method testParseNamespaceInConditionExpressionType.
@Deployment
public void testParseNamespaceInConditionExpressionType() {
CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutorTxRequired();
ProcessDefinitionEntity processDefinitionEntity = commandExecutor.execute(new Command<ProcessDefinitionEntity>() {
@Override
public ProcessDefinitionEntity execute(CommandContext commandContext) {
return Context.getProcessEngineConfiguration().getDeploymentCache().findDeployedLatestProcessDefinitionByKey("resolvableNamespacesProcess");
}
});
// Test that the process definition has been deployed
assertNotNull(processDefinitionEntity);
PvmActivity activity = processDefinitionEntity.findActivity("ExclusiveGateway_1");
assertNotNull(activity);
// Test that the conditions has been resolved
for (PvmTransition transition : activity.getOutgoingTransitions()) {
if (transition.getDestination().getId().equals("Task_2")) {
assertTrue(transition.getProperty("conditionText").equals("#{approved}"));
} else if (transition.getDestination().getId().equals("Task_3")) {
assertTrue(transition.getProperty("conditionText").equals("#{!approved}"));
} else {
fail("Something went wrong");
}
}
}
use of org.camunda.bpm.engine.impl.interceptor.CommandExecutor in project camunda-bpm-platform by camunda.
the class BpmnParseTest method testParseDiagramInterchangeElements.
@Deployment
public void testParseDiagramInterchangeElements() {
// Graphical information is not yet exposed publicly, so we need to do some
// plumbing
CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutorTxRequired();
ProcessDefinitionEntity processDefinitionEntity = commandExecutor.execute(new Command<ProcessDefinitionEntity>() {
@Override
public ProcessDefinitionEntity execute(CommandContext commandContext) {
return Context.getProcessEngineConfiguration().getDeploymentCache().findDeployedLatestProcessDefinitionByKey("myProcess");
}
});
assertNotNull(processDefinitionEntity);
assertEquals(7, processDefinitionEntity.getActivities().size());
// Check if diagram has been created based on Diagram Interchange when it's
// not a headless instance
List<String> resourceNames = repositoryService.getDeploymentResourceNames(processDefinitionEntity.getDeploymentId());
if (processEngineConfiguration.isCreateDiagramOnDeploy()) {
assertEquals(2, resourceNames.size());
} else {
assertEquals(1, resourceNames.size());
}
for (ActivityImpl activity : processDefinitionEntity.getActivities()) {
if (activity.getId().equals("theStart")) {
assertActivityBounds(activity, 70, 255, 30, 30);
} else if (activity.getId().equals("task1")) {
assertActivityBounds(activity, 176, 230, 100, 80);
} else if (activity.getId().equals("gateway1")) {
assertActivityBounds(activity, 340, 250, 40, 40);
} else if (activity.getId().equals("task2")) {
assertActivityBounds(activity, 445, 138, 100, 80);
} else if (activity.getId().equals("gateway2")) {
assertActivityBounds(activity, 620, 250, 40, 40);
} else if (activity.getId().equals("task3")) {
assertActivityBounds(activity, 453, 304, 100, 80);
} else if (activity.getId().equals("theEnd")) {
assertActivityBounds(activity, 713, 256, 28, 28);
}
for (PvmTransition sequenceFlow : activity.getOutgoingTransitions()) {
assertTrue(((TransitionImpl) sequenceFlow).getWaypoints().size() >= 4);
TransitionImpl transitionImpl = (TransitionImpl) sequenceFlow;
if (transitionImpl.getId().equals("flowStartToTask1")) {
assertSequenceFlowWayPoints(transitionImpl, 100, 270, 176, 270);
} else if (transitionImpl.getId().equals("flowTask1ToGateway1")) {
assertSequenceFlowWayPoints(transitionImpl, 276, 270, 340, 270);
} else if (transitionImpl.getId().equals("flowGateway1ToTask2")) {
assertSequenceFlowWayPoints(transitionImpl, 360, 250, 360, 178, 445, 178);
} else if (transitionImpl.getId().equals("flowGateway1ToTask3")) {
assertSequenceFlowWayPoints(transitionImpl, 360, 290, 360, 344, 453, 344);
} else if (transitionImpl.getId().equals("flowTask2ToGateway2")) {
assertSequenceFlowWayPoints(transitionImpl, 545, 178, 640, 178, 640, 250);
} else if (transitionImpl.getId().equals("flowTask3ToGateway2")) {
assertSequenceFlowWayPoints(transitionImpl, 553, 344, 640, 344, 640, 290);
} else if (transitionImpl.getId().equals("flowGateway2ToEnd")) {
assertSequenceFlowWayPoints(transitionImpl, 660, 270, 713, 270);
}
}
}
}
use of org.camunda.bpm.engine.impl.interceptor.CommandExecutor in project camunda-bpm-platform by camunda.
the class ExecuteJobsRunnable method run.
public void run() {
final JobExecutorContext jobExecutorContext = new JobExecutorContext();
final List<String> currentProcessorJobQueue = jobExecutorContext.getCurrentProcessorJobQueue();
CommandExecutor commandExecutor = processEngine.getProcessEngineConfiguration().getCommandExecutorTxRequired();
currentProcessorJobQueue.addAll(jobIds);
Context.setJobExecutorContext(jobExecutorContext);
try {
while (!currentProcessorJobQueue.isEmpty()) {
String nextJobId = currentProcessorJobQueue.remove(0);
if (jobExecutor.isActive()) {
try {
executeJob(nextJobId, commandExecutor);
} catch (Throwable t) {
LOG.exceptionWhileExecutingJob(nextJobId, t);
}
} else {
try {
unlockJob(nextJobId, commandExecutor);
} catch (Throwable t) {
LOG.exceptionWhileUnlockingJob(nextJobId, t);
}
}
}
// if there were only exclusive jobs then the job executor
// does a backoff. In order to avoid too much waiting time
// we need to tell him to check once more if there were any jobs added.
jobExecutor.jobWasAdded();
} finally {
Context.removeJobExecutorContext();
}
}
use of org.camunda.bpm.engine.impl.interceptor.CommandExecutor in project camunda-bpm-platform by camunda.
the class HistoricJobLogAuthorizationTest method tearDown.
@Override
public void tearDown() {
super.tearDown();
CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutorTxRequired();
commandExecutor.execute(new Command<Object>() {
public Object execute(CommandContext commandContext) {
commandContext.getHistoricJobLogManager().deleteHistoricJobLogsByHandlerType(TimerSuspendProcessDefinitionHandler.TYPE);
return null;
}
});
deleteDeployment(deploymentId);
}
Aggregations