protected List<String> getAllJobIds() { ArrayList<String> result = new ArrayList<String>(); for (Job job : managementService.createJobQuery().list()) { if (job.getProcessInstanceId() != null) { result.add(job.getId()); } } return result; }
public Job build() { Job mockJob = mock(Job.class); when(mockJob.getId()).thenReturn(id); when(mockJob.getDuedate()).thenReturn(dueDate); when(mockJob.getExceptionMessage()).thenReturn(exceptionMessage); when(mockJob.getExecutionId()).thenReturn(executionId); when(mockJob.getProcessInstanceId()).thenReturn(processInstanceId); when(mockJob.getProcessDefinitionId()).thenReturn(processDefinitionId); when(mockJob.getProcessDefinitionKey()).thenReturn(processDefinitionKey); when(mockJob.getRetries()).thenReturn(retries); when(mockJob.isSuspended()).thenReturn(suspended); when(mockJob.getPriority()).thenReturn(priority); when(mockJob.getJobDefinitionId()).thenReturn(jobDefinitionId); when(mockJob.getTenantId()).thenReturn(tenantId); when(mockJob.getCreateTime()).thenReturn(createTime); return mockJob; }
protected List<String> getAllJobIds() { ArrayList<String> result = new ArrayList<String>(); for (Job job : managementService.createJobQuery().processDefinitionId(sourceDefinition.getId()).list()) { if (job.getProcessInstanceId() != null) { result.add(job.getId()); } } return result; }
@Deployment(resources = "org/camunda/bpm/engine/test/api/mgmt/jobPrioExpressionProcess.bpmn20.xml") public void testFilterByJobPriorityHigherThanOrEquals() { // given five jobs with priorities from 1 to 5 List<ProcessInstance> instances = new ArrayList<ProcessInstance>(); for (int i = 0; i < 5; i++) { instances.add(runtimeService.startProcessInstanceByKey("jobPrioExpressionProcess", Variables.createVariables().putValue("priority", i))); } // when making a job query and filtering by job priority // then the correct jobs are returned List<Job> jobs = managementService.createJobQuery().priorityHigherThanOrEquals(2L).list(); assertEquals(3, jobs.size()); Set<String> processInstanceIds = new HashSet<String>(); processInstanceIds.add(instances.get(2).getId()); processInstanceIds.add(instances.get(3).getId()); processInstanceIds.add(instances.get(4).getId()); for (Job job : jobs) { assertTrue(job.getPriority() >= 2); assertTrue(processInstanceIds.contains(job.getProcessInstanceId())); } }
@Deployment(resources = "org/camunda/bpm/engine/test/api/mgmt/jobPrioExpressionProcess.bpmn20.xml") public void testFilterByJobPriorityLowerThanOrEquals() { // given five jobs with priorities from 1 to 5 List<ProcessInstance> instances = new ArrayList<ProcessInstance>(); for (int i = 0; i < 5; i++) { instances.add(runtimeService.startProcessInstanceByKey("jobPrioExpressionProcess", Variables.createVariables().putValue("priority", i))); } // when making a job query and filtering by job priority // then the correct jobs are returned List<Job> jobs = managementService.createJobQuery().priorityLowerThanOrEquals(2).list(); assertEquals(3, jobs.size()); Set<String> processInstanceIds = new HashSet<String>(); processInstanceIds.add(instances.get(0).getId()); processInstanceIds.add(instances.get(1).getId()); processInstanceIds.add(instances.get(2).getId()); for (Job job : jobs) { assertTrue(job.getPriority() <= 2); assertTrue(processInstanceIds.contains(job.getProcessInstanceId())); } }
private void verifyFailedJob(JobQuery query, ProcessInstance processInstance) { verifyQueryResults(query, 1); Job failedJob = query.singleResult(); assertNotNull(failedJob); assertEquals(processInstance.getId(), failedJob.getProcessInstanceId()); assertNotNull(failedJob.getExceptionMessage()); assertThat(failedJob.getExceptionMessage(), containsString(EXCEPTION_MESSAGE)); }
public static JobDto fromJob(Job job) { JobDto dto = new JobDto(); dto.id = job.getId(); dto.jobDefinitionId = job.getJobDefinitionId(); dto.processInstanceId = job.getProcessInstanceId(); dto.processDefinitionId = job.getProcessDefinitionId(); dto.processDefinitionKey = job.getProcessDefinitionKey(); dto.executionId = job.getExecutionId(); dto.exceptionMessage = job.getExceptionMessage(); dto.retries = job.getRetries(); dto.dueDate = job.getDuedate(); dto.suspended = job.isSuspended(); dto.priority = job.getPriority(); dto.tenantId = job.getTenantId(); dto.createTime = job.getCreateTime(); return dto; }
@Deployment(resources = "org/camunda/bpm/engine/test/api/mgmt/jobPrioExpressionProcess.bpmn20.xml") public void testFilterByJobPriorityLowerAndHigher() { // given five jobs with priorities from 1 to 5 List<ProcessInstance> instances = new ArrayList<ProcessInstance>(); for (int i = 0; i < 5; i++) { instances.add(runtimeService.startProcessInstanceByKey("jobPrioExpressionProcess", Variables.createVariables().putValue("priority", i))); } // when making a job query and filtering by job priority // then the correct job is returned Job job = managementService.createJobQuery().priorityHigherThanOrEquals(2L) .priorityLowerThanOrEquals(2L).singleResult(); assertNotNull(job); assertEquals(2, job.getPriority()); assertEquals(instances.get(2).getId(), job.getProcessInstanceId()); } }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/HistoricJobLogTest.testAsyncContinuation.bpmn20.xml"}) public void testQueryByProcessInstanceId() { runtimeService.startProcessInstanceByKey("process"); String processInstanceId = managementService.createJobQuery().singleResult().getProcessInstanceId(); HistoricJobLogQuery query = historyService.createHistoricJobLogQuery().processInstanceId(processInstanceId); verifyQueryResults(query, 1); }
public static JobDto fromJob(Job job) { JobDto dto = new JobDto(); dto.id = job.getId(); dto.jobDefinitionId = job.getJobDefinitionId(); dto.processInstanceId = job.getProcessInstanceId(); dto.processDefinitionId = job.getProcessDefinitionId(); dto.processDefinitionKey = job.getProcessDefinitionKey(); dto.executionId = job.getExecutionId(); dto.exceptionMessage = job.getExceptionMessage(); dto.retries = job.getRetries(); dto.dueDate = job.getDuedate(); dto.suspended = job.isSuspended(); dto.priority = job.getPriority(); dto.tenantId = job.getTenantId(); dto.createTime = job.getCreateTime(); return dto; }
public void testStandaloneJobQueryWithoutAuthorization() { // given Date startTime = new Date(); ClockUtil.setCurrentTime(startTime); long oneWeekFromStartTime = startTime.getTime() + (7 * 24 * 60 * 60 * 1000); disableAuthorization(); // creates a new "standalone" job managementService.suspendJobDefinitionByProcessDefinitionKey(TIMER_START_PROCESS_KEY, true, new Date(oneWeekFromStartTime)); enableAuthorization(); // when JobQuery query = managementService.createJobQuery(); // then verifyQueryResults(query, 1); Job job = query.singleResult(); assertNotNull(job); assertNull(job.getProcessInstanceId()); assertNull(job.getProcessDefinitionKey()); deleteJob(job.getId()); }
public void testQueryWithReadInstancePermissionOnTimerStartProcessDefinition() { // given startProcessInstanceByKey(TIMER_BOUNDARY_PROCESS_KEY); createGrantAuthorization(PROCESS_DEFINITION, TIMER_START_PROCESS_KEY, userId, READ_INSTANCE); // when JobQuery query = managementService.createJobQuery(); // then verifyQueryResults(query, 1); Job job = query.singleResult(); assertNull(job.getProcessInstanceId()); assertEquals(TIMER_START_PROCESS_KEY, job.getProcessDefinitionKey()); }
public void testQueryWithReadInstancePermissionOnTimerBoundaryProcessDefinition() { // given String processInstanceId = startProcessInstanceByKey(TIMER_BOUNDARY_PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, TIMER_BOUNDARY_PROCESS_KEY, userId, READ_INSTANCE); // when JobQuery query = managementService.createJobQuery(); // then verifyQueryResults(query, 1); Job job = query.singleResult(); assertEquals(processInstanceId, job.getProcessInstanceId()); assertEquals(TIMER_BOUNDARY_PROCESS_KEY, job.getProcessDefinitionKey()); }
/** * Check if property "DefaultNumberOfRetries" will be used */ @Deployment(resources = { "org/camunda/bpm/engine/test/bpmn/async/FoxJobRetryCmdTest.testFailedTask.bpmn20.xml" }) public void testDefaultNumberOfRetryProperty() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("failedTask"); assertNotNull(pi); Job job = managementService.createJobQuery().processInstanceId(pi.getProcessInstanceId()).singleResult(); assertNotNull(job); assertEquals(pi.getProcessInstanceId(), job.getProcessInstanceId()); assertEquals(2, job.getRetries()); }
@Test public void createDeletionJobsByIds() { // given rule.getProcessEngineConfiguration().setBatchJobsPerSeed(5); Batch batch = historyService.deleteHistoricDecisionInstancesAsync(decisionInstanceIds, null); JobDefinition seedJobDefinition = helper.getSeedJobDefinition(batch); JobDefinition deletionJobDefinition = helper.getExecutionJobDefinition(batch);; // when helper.executeSeedJob(batch); // then List<Job> deletionJobs = helper.getJobsForDefinition(deletionJobDefinition); assertEquals(5, deletionJobs.size()); for (Job deletionJob : deletionJobs) { assertEquals(deletionJobDefinition.getId(), deletionJob.getJobDefinitionId()); assertEquals(currentTime, deletionJob.getDuedate()); assertNull(deletionJob.getProcessDefinitionId()); assertNull(deletionJob.getProcessDefinitionKey()); assertNull(deletionJob.getProcessInstanceId()); assertNull(deletionJob.getExecutionId()); } // and the seed job still exists Job seedJob = helper.getJobForDefinition(seedJobDefinition); assertNotNull(seedJob); }
@Test public void createModificationJobs() { ProcessDefinition processDefinition = testRule.deployAndGetDefinition(instance); rule.getProcessEngineConfiguration().setBatchJobsPerSeed(10); Batch batch = helper.startAfterAsync("process1", 20, "user1", processDefinition.getId()); JobDefinition seedJobDefinition = helper.getSeedJobDefinition(batch); JobDefinition modificationJobDefinition = helper.getExecutionJobDefinition(batch);; helper.executeSeedJob(batch); List<Job> modificationJobs = helper.getJobsForDefinition(modificationJobDefinition); assertEquals(10, modificationJobs.size()); for (Job modificationJob : modificationJobs) { assertEquals(modificationJobDefinition.getId(), modificationJob.getJobDefinitionId()); assertEquals(currentTime, modificationJob.getDuedate()); assertNull(modificationJob.getProcessDefinitionId()); assertNull(modificationJob.getProcessDefinitionKey()); assertNull(modificationJob.getProcessInstanceId()); assertNull(modificationJob.getExecutionId()); } // and the seed job still exists Job seedJob = helper.getJobForDefinition(seedJobDefinition); assertNotNull(seedJob); }
@Deployment(resources = { "org/camunda/bpm/engine/test/bpmn/async/FoxJobRetryCmdTest.testFailedServiceTask.bpmn20.xml" }) public void testOverwritingPropertyWithBpmnExtension() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("failedServiceTask"); assertNotNull(pi); Job job = managementService.createJobQuery().processInstanceId(pi.getProcessInstanceId()).singleResult(); assertNotNull(job); assertEquals(pi.getProcessInstanceId(), job.getProcessInstanceId()); try { managementService.executeJob(job.getId()); fail("Exception expected!"); } catch(Exception e) { // expected } job = managementService.createJobQuery().jobId(job.getId()).singleResult(); assertEquals(4, job.getRetries()); } }
@Test public void createSeedJobByIds() { // when Batch batch = historyService.deleteHistoricDecisionInstancesAsync(decisionInstanceIds, null); // then there exists a seed job definition with the batch id as // configuration JobDefinition seedJobDefinition = helper.getSeedJobDefinition(batch); assertNotNull(seedJobDefinition); assertEquals(batch.getId(), seedJobDefinition.getJobConfiguration()); assertEquals(BatchSeedJobHandler.TYPE, seedJobDefinition.getJobType()); // and there exists a deletion job definition JobDefinition deletionJobDefinition = helper.getExecutionJobDefinition(batch); assertNotNull(deletionJobDefinition); assertEquals(Batch.TYPE_HISTORIC_DECISION_INSTANCE_DELETION, deletionJobDefinition.getJobType()); // and a seed job with no relation to a process or execution etc. Job seedJob = helper.getSeedJob(batch); assertNotNull(seedJob); assertEquals(seedJobDefinition.getId(), seedJob.getJobDefinitionId()); assertEquals(currentTime, seedJob.getDuedate()); assertNull(seedJob.getDeploymentId()); assertNull(seedJob.getProcessDefinitionId()); assertNull(seedJob.getProcessDefinitionKey()); assertNull(seedJob.getProcessInstanceId()); assertNull(seedJob.getExecutionId()); // but no deletion jobs where created List<Job> deletionJobs = helper.getExecutionJobs(batch); assertEquals(0, deletionJobs.size()); }
@Test public void testSeedJobCreation() { ClockUtil.setCurrentTime(TEST_DATE); // when Batch batch = helper.migrateProcessInstancesAsync(10); // then there exists a seed job definition with the batch id as configuration JobDefinition seedJobDefinition = helper.getSeedJobDefinition(batch); assertNotNull(seedJobDefinition); assertEquals(batch.getId(), seedJobDefinition.getJobConfiguration()); assertEquals(BatchSeedJobHandler.TYPE, seedJobDefinition.getJobType()); // and there exists a migration job definition JobDefinition migrationJobDefinition = helper.getExecutionJobDefinition(batch); assertNotNull(migrationJobDefinition); assertEquals(Batch.TYPE_PROCESS_INSTANCE_MIGRATION, migrationJobDefinition.getJobType()); // and a seed job with no relation to a process or execution etc. Job seedJob = helper.getSeedJob(batch); assertNotNull(seedJob); assertEquals(seedJobDefinition.getId(), seedJob.getJobDefinitionId()); assertEquals(currentTime, seedJob.getDuedate()); assertNull(seedJob.getDeploymentId()); assertNull(seedJob.getProcessDefinitionId()); assertNull(seedJob.getProcessDefinitionKey()); assertNull(seedJob.getProcessInstanceId()); assertNull(seedJob.getExecutionId()); // but no migration jobs where created List<Job> migrationJobs = helper.getExecutionJobs(batch); assertEquals(0, migrationJobs.size()); }
@Test @Deployment(resources = { "org/camunda/bpm/engine/test/bpmn/async/FoxJobRetryCmdTest.testFailedServiceTask.bpmn20.xml" }) public void testQueryJobRetryOperationsById() { // given process = runtimeService.startProcessInstanceByKey("failedServiceTask"); Job job = managementService.createJobQuery().processInstanceId(process.getProcessInstanceId()).singleResult(); managementService.setJobRetries(job.getId(), 10); // then assertEquals(1, query().entityType(JOB).operationType(OPERATION_TYPE_SET_JOB_RETRIES).count()); UserOperationLogEntry jobRetryEntry = query() .entityType(JOB) .jobId(job.getId()) .operationType(OPERATION_TYPE_SET_JOB_RETRIES) .singleResult(); assertNotNull(jobRetryEntry); assertEquals(job.getId(), jobRetryEntry.getJobId()); assertEquals("3", jobRetryEntry.getOrgValue()); assertEquals("10", jobRetryEntry.getNewValue()); assertEquals("retries", jobRetryEntry.getProperty()); assertEquals(job.getJobDefinitionId(), jobRetryEntry.getJobDefinitionId()); assertEquals(job.getProcessInstanceId(), jobRetryEntry.getProcessInstanceId()); assertEquals(job.getProcessDefinitionKey(), jobRetryEntry.getProcessDefinitionKey()); assertEquals(job.getProcessDefinitionId(), jobRetryEntry.getProcessDefinitionId()); }