protected void ensureActivityIdInitialized() { if (activityId == null) { JobDefinition jobDefinition = getJobDefinition(); if (jobDefinition != null) { activityId = jobDefinition.getActivityId(); } else { ExecutionEntity execution = getExecution(); if (execution != null) { activityId = execution.getActivityId(); } } } }
protected void ensureActivityIdInitialized() { if (activityId == null) { JobDefinition jobDefinition = getJobDefinition(); if (jobDefinition != null) { activityId = jobDefinition.getActivityId(); } else { ExecutionEntity execution = getExecution(); if (execution != null) { activityId = execution.getActivityId(); } } } }
public JobDefinition getJobDefinitionForActivityIdAndType(String activityId, String jobHandlerType) { List<JobDefinition> collectedDefinitions = new ArrayList<JobDefinition>(); for (JobDefinition jobDefinition : getJobDefinitions()) { if (activityId.equals(jobDefinition.getActivityId()) && jobHandlerType.equals(jobDefinition.getJobType())) { collectedDefinitions.add(jobDefinition); } } if (collectedDefinitions.isEmpty()) { return null; } else if (collectedDefinitions.size() == 1) { return collectedDefinitions.get(0); } else { throw new RuntimeException("There is more than one job definition for activity " + activityId + " and job handler type " + jobHandlerType); } }
public JobDefinition build() { JobDefinition mockJobDefinition = mock(JobDefinition.class); when(mockJobDefinition.getId()).thenReturn(id); when(mockJobDefinition.getActivityId()).thenReturn(activityId); when(mockJobDefinition.getJobConfiguration()).thenReturn(jobConfiguration); when(mockJobDefinition.getOverridingJobPriority()).thenReturn(jobPriority); when(mockJobDefinition.getJobType()).thenReturn(jobType); when(mockJobDefinition.getProcessDefinitionId()).thenReturn(processDefinitionId); when(mockJobDefinition.getProcessDefinitionKey()).thenReturn(processDefinitionKey); when(mockJobDefinition.isSuspended()).thenReturn(suspended); when(mockJobDefinition.getTenantId()).thenReturn(tenantId); return mockJobDefinition; }
public static JobDefinitionDto fromJobDefinition(JobDefinition definition) { JobDefinitionDto dto = new JobDefinitionDto(); dto.id = definition.getId(); dto.processDefinitionId = definition.getProcessDefinitionId(); dto.processDefinitionKey = definition.getProcessDefinitionKey(); dto.jobType = definition.getJobType(); dto.jobConfiguration = definition.getJobConfiguration(); dto.activityId = definition.getActivityId(); dto.suspended = definition.isSuspended(); dto.overridingJobPriority = definition.getOverridingJobPriority(); dto.tenantId = definition.getTenantId(); return dto; }
public static JobDefinitionDto fromJobDefinition(JobDefinition definition) { JobDefinitionDto dto = new JobDefinitionDto(); dto.id = definition.getId(); dto.processDefinitionId = definition.getProcessDefinitionId(); dto.processDefinitionKey = definition.getProcessDefinitionKey(); dto.jobType = definition.getJobType(); dto.jobConfiguration = definition.getJobConfiguration(); dto.activityId = definition.getActivityId(); dto.suspended = definition.isSuspended(); dto.overridingJobPriority = definition.getOverridingJobPriority(); dto.tenantId = definition.getTenantId(); return dto; }
@Test public void testQueryByActivityId(){ JobDefinition jobDefinition = managementService.createJobDefinitionQuery().singleResult(); JobQuery query = managementService.createJobQuery().activityId(jobDefinition.getActivityId()); verifyQueryResults(query, 3); }
@Test public void testCreateJobDefinitionWithParseListener() { //given String modelFileName = "jobCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists a new job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); JobDefinition jobDef = query.singleResult(); assertNotNull(jobDef); assertEquals(jobDef.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(jobDef.getActivityId(), "servicetask1"); }
@Test public void testCreateJobDefinitionWithParseListenerAndAsyncInXml() { //given the asyncBefore is set in the xml String modelFileName = "jobAsyncBeforeCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists only one job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); JobDefinition jobDef = query.singleResult(); assertNotNull(jobDef); assertEquals(jobDef.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(jobDef.getActivityId(), "servicetask1"); } }
@Deployment public void testAsyncParallelGateway() { JobDefinition jobDefinition = managementService.createJobDefinitionQuery().singleResult(); assertNotNull(jobDefinition); assertEquals("parallelJoinEnd", jobDefinition.getActivityId()); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("process"); assertFalse(processInstance.isEnded()); // there are two jobs to continue the gateway: List<Job> list = managementService.createJobQuery().list(); assertEquals(2, list.size()); managementService.executeJob(list.get(0).getId()); managementService.executeJob(list.get(1).getId()); assertNull(runtimeService.createProcessInstanceQuery().singleResult()); }
@Test public void testDeleteNonExistingAndCreateNewJobDefinitionWithParseListener() { //given String modelFileName = "jobCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set to false and the asyncAfter to true in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists one job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); JobDefinition jobDef = query.singleResult(); assertNotNull(jobDef); assertEquals(jobDef.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(jobDef.getActivityId(), "servicetask1"); assertEquals(jobDef.getJobConfiguration(), MessageJobDeclaration.ASYNC_AFTER); }
@Test public void testDeleteJobDefinitionWithParseListenerAndAsyncInXml() { //given the asyncBefore is set in the xml String modelFileName = "jobAsyncBeforeCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set to false and the asyncAfter to true in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists one job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); JobDefinition jobDef = query.singleResult(); assertNotNull(jobDef); assertEquals(jobDef.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(jobDef.getActivityId(), "servicetask1"); assertEquals(jobDef.getJobConfiguration(), MessageJobDeclaration.ASYNC_AFTER); }
@Test public void testDeleteJobDefinitionWithParseListenerAndAsyncBothInXml() { //given the asyncBefore AND asyncAfter is set in the xml String modelFileName = "jobAsyncBothCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set to false and the asyncAfter to true in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists one job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); JobDefinition jobDef = query.singleResult(); assertNotNull(jobDef); assertEquals(jobDef.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(jobDef.getActivityId(), "servicetask1"); assertEquals(jobDef.getJobConfiguration(), MessageJobDeclaration.ASYNC_AFTER); } }
@Deployment public void testTimerBoundaryEvent() { // given ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); JobDefinition jobDefinition = managementService.createJobDefinitionQuery().processDefinitionKey("testProcess").singleResult(); // then assert assertNotNull(jobDefinition); assertEquals(TimerExecuteNestedActivityJobHandler.TYPE, jobDefinition.getJobType()); assertEquals("theBoundaryEvent", jobDefinition.getActivityId()); assertEquals("DATE: 2036-11-14T11:12:22", jobDefinition.getJobConfiguration()); assertEquals(processDefinition.getId(), jobDefinition.getProcessDefinitionId()); }
@Deployment public void testAsyncContinuation() { // given ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); JobDefinition jobDefinition = managementService.createJobDefinitionQuery().processDefinitionKey("testProcess").singleResult(); // then assert assertNotNull(jobDefinition); assertEquals(AsyncContinuationJobHandler.TYPE, jobDefinition.getJobType()); assertEquals("theService", jobDefinition.getActivityId()); assertEquals(MessageJobDeclaration.ASYNC_BEFORE, jobDefinition.getJobConfiguration()); assertEquals(processDefinition.getId(), jobDefinition.getProcessDefinitionId()); }
@Deployment public void testTimerIntermediateEvent() { // given ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); JobDefinition jobDefinition = managementService.createJobDefinitionQuery().processDefinitionKey("testProcess").singleResult(); // then assert assertNotNull(jobDefinition); assertEquals(TimerCatchIntermediateEventJobHandler.TYPE, jobDefinition.getJobType()); assertEquals("timer", jobDefinition.getActivityId()); assertEquals("DURATION: PT5M", jobDefinition.getJobConfiguration()); assertEquals(processDefinition.getId(), jobDefinition.getProcessDefinitionId()); }
@Deployment public void testAsyncContinuationOfMultiInstance() { // given ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); JobDefinition jobDefinition = managementService.createJobDefinitionQuery().processDefinitionKey("testProcess").singleResult(); // then assert assertNotNull(jobDefinition); assertEquals(AsyncContinuationJobHandler.TYPE, jobDefinition.getJobType()); assertEquals("theService" + BpmnParse.MULTI_INSTANCE_BODY_ID_SUFFIX, jobDefinition.getActivityId()); assertEquals(MessageJobDeclaration.ASYNC_AFTER, jobDefinition.getJobConfiguration()); assertEquals(processDefinition.getId(), jobDefinition.getProcessDefinitionId()); }
@Deployment public void testAsyncContinuationOfActivityWrappedInMultiInstance() { // given ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); JobDefinition jobDefinition = managementService.createJobDefinitionQuery().processDefinitionKey("testProcess").singleResult(); // then assert assertNotNull(jobDefinition); assertEquals(AsyncContinuationJobHandler.TYPE, jobDefinition.getJobType()); assertEquals("theService", jobDefinition.getActivityId()); assertEquals(MessageJobDeclaration.ASYNC_AFTER, jobDefinition.getJobConfiguration()); assertEquals(processDefinition.getId(), jobDefinition.getProcessDefinitionId()); }
@Deployment public void testEventBasedGateway() { // given ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); JobDefinitionQuery jobDefinitionQuery = managementService.createJobDefinitionQuery().processDefinitionKey("testProcess"); // then assert assertEquals(2, jobDefinitionQuery.count()); JobDefinition jobDefinition = jobDefinitionQuery.activityIdIn("timer1").singleResult(); assertNotNull(jobDefinition); assertEquals(TimerCatchIntermediateEventJobHandler.TYPE, jobDefinition.getJobType()); assertEquals("timer1", jobDefinition.getActivityId()); assertEquals("DURATION: PT5M", jobDefinition.getJobConfiguration()); assertEquals(processDefinition.getId(), jobDefinition.getProcessDefinitionId()); jobDefinition = jobDefinitionQuery.activityIdIn("timer2").singleResult(); assertNotNull(jobDefinition); assertEquals(TimerCatchIntermediateEventJobHandler.TYPE, jobDefinition.getJobType()); assertEquals("timer2", jobDefinition.getActivityId()); assertEquals("DURATION: PT10M", jobDefinition.getJobConfiguration()); assertEquals(processDefinition.getId(), jobDefinition.getProcessDefinitionId()); }
@Deployment public void testTimerStartEvent() { // given ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); JobDefinition jobDefinition = managementService.createJobDefinitionQuery().processDefinitionKey("testProcess").singleResult(); // then assert assertNotNull(jobDefinition); assertEquals(TimerStartEventJobHandler.TYPE, jobDefinition.getJobType()); assertEquals("theStart", jobDefinition.getActivityId()); assertEquals("DATE: 2036-11-14T11:12:22", jobDefinition.getJobConfiguration()); assertEquals(processDefinition.getId(), jobDefinition.getProcessDefinitionId()); // there exists a job with the correct job definition id: Job timerStartJob = managementService.createJobQuery().singleResult(); assertEquals(jobDefinition.getId(), timerStartJob.getJobDefinitionId()); }