@Override protected void applyFilters(JobDefinitionQuery query) { if (jobDefinitionId != null) { query.jobDefinitionId(jobDefinitionId); query.activityIdIn(activityIdIn); query.processDefinitionId(processDefinitionId); query.processDefinitionKey(processDefinitionKey); query.jobType(jobType); query.jobConfiguration(jobConfiguration); query.active(); query.suspended(); query.withOverridingJobPriority(); query.tenantIdIn(tenantIds.toArray(new String[tenantIds.size()])); query.withoutTenantId(); query.includeJobDefinitionsWithoutTenantId();
@Test public void suspendProcessDefinitionIncludingJobDefinitionsForNonTenant() { // given activated jobs JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); assertThat(query.active().count(), is(3L)); assertThat(query.suspended().count(), is(0L)); engineRule.getRepositoryService() .updateProcessDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .processDefinitionWithoutTenantId() .suspend(); assertThat(query.active().count(), is(2L)); assertThat(query.suspended().count(), is(1L)); assertThat(query.suspended().withoutTenantId().count(), is(1L)); }
@Test public void testMultipleParameters() { Map<String, String> queryParameters = new HashMap<String, String>(); queryParameters.put("jobDefinitionId", "aJobDefId"); queryParameters.put("processDefinitionId", "aProcDefId"); queryParameters.put("processDefinitionKey", "aProcDefKey"); queryParameters.put("activityIdIn", "aActId,anotherActId"); queryParameters.put("jobType", "aJobType"); queryParameters.put("jobConfiguration", "aJobConfig"); queryParameters.put("suspended", "true"); queryParameters.put("active", "true"); queryParameters.put("withOverridingJobPriority", "true"); given().queryParams(queryParameters) .expect().statusCode(Status.OK.getStatusCode()) .when().get(JOB_DEFINITION_QUERY_URL); verify(mockedQuery).jobDefinitionId(queryParameters.get("jobDefinitionId")); verify(mockedQuery).processDefinitionId(queryParameters.get("processDefinitionId")); verify(mockedQuery).processDefinitionKey(queryParameters.get("processDefinitionKey")); verify(mockedQuery).activityIdIn("aActId", "anotherActId"); verify(mockedQuery).jobType(queryParameters.get("jobType")); verify(mockedQuery).jobConfiguration(queryParameters.get("jobConfiguration")); verify(mockedQuery).active(); verify(mockedQuery).suspended(); verify(mockedQuery).withOverridingJobPriority(); verify(mockedQuery).list(); }
public JobDefinitionDto getJobDefinition() { ManagementService managementService = engine.getManagementService(); JobDefinition jobDefinition = managementService.createJobDefinitionQuery().jobDefinitionId(jobDefinitionId).singleResult(); if (jobDefinition == null) { throw new InvalidRequestException(Status.NOT_FOUND, "Job Definition with id " + jobDefinitionId + " does not exist"); } return JobDefinitionDto.fromJobDefinition(jobDefinition); }
public void testQueryAuthenticatedTenant() { identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE)); JobDefinitionQuery query = managementService.createJobDefinitionQuery(); assertThat(query.count(), is(2L)); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); assertThat(query.tenantIdIn(TENANT_TWO).count(), is(0L)); assertThat(query.tenantIdIn(TENANT_ONE, TENANT_TWO).includeJobDefinitionsWithoutTenantId().count(), is(2L)); }
public JobDefinition getExecutionJobDefinition(Batch batch) { return engineRule.getManagementService().createJobDefinitionQuery() .jobDefinitionId(batch.getBatchJobDefinitionId()) .jobType(Batch.TYPE_HISTORIC_DECISION_INSTANCE_DELETION) .singleResult(); } }
@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(resources = {"org/camunda/bpm/engine/test/api/mgmt/JobDefinitionQueryTest.testBase.bpmn"}) public void testQueryWithOverridingJobPriority() { // given JobDefinition jobDefinition = managementService.createJobDefinitionQuery().listPage(0, 1).get(0); managementService.setOverridingJobPriorityForJobDefinition(jobDefinition.getId(), 42); // when JobDefinition queriedDefinition = managementService.createJobDefinitionQuery().withOverridingJobPriority().singleResult(); // then assertNotNull(queriedDefinition); assertEquals(jobDefinition.getId(), queriedDefinition.getId()); assertEquals(42L, (long) queriedDefinition.getOverridingJobPriority()); // and assertEquals(1, managementService.createJobDefinitionQuery().withOverridingJobPriority().count()); }
private JobDefinitionQuery setUpMockJobDefinitionQuery(List<JobDefinition> mockedJobDefinitions) { JobDefinitionQuery sampleJobDefinitionQuery = mock(JobDefinitionQuery.class); when(sampleJobDefinitionQuery.list()).thenReturn(mockedJobDefinitions); when(sampleJobDefinitionQuery.count()).thenReturn((long) mockedJobDefinitions.size()); if(mockedJobDefinitions.size() == 1) { when(sampleJobDefinitionQuery.singleResult()).thenReturn(mockedJobDefinitions.get(0)); } when(sampleJobDefinitionQuery.jobDefinitionId(MockProvider.EXAMPLE_JOB_DEFINITION_ID)).thenReturn(sampleJobDefinitionQuery); when(processEngine.getManagementService().createJobDefinitionQuery()).thenReturn(sampleJobDefinitionQuery); when(mockManagementService.createJobDefinitionQuery()).thenReturn(sampleJobDefinitionQuery); return sampleJobDefinitionQuery; }
@Test public void suspendProcessDefinitionIncludingJobDefinitionsForAllTenants() { // given activated jobs JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); assertThat(query.active().count(), is(3L)); assertThat(query.suspended().count(), is(0L)); engineRule.getRepositoryService() .updateProcessDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .suspend(); assertThat(query.active().count(), is(0L)); assertThat(query.suspended().count(), is(3L)); }
public void testQuerySortingAsc() { // exclude job definitions without tenant id because of database-specific ordering List<JobDefinition> jobDefinitions = managementService.createJobDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc() .list(); assertThat(jobDefinitions.size(), is(2)); assertThat(jobDefinitions.get(0).getTenantId(), is(TENANT_ONE)); assertThat(jobDefinitions.get(1).getTenantId(), is(TENANT_TWO)); }
public void testQuerySortingDesc() { // exclude job definitions without tenant id because of database-specific ordering List<JobDefinition> jobDefinitions = managementService.createJobDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .desc() .list(); assertThat(jobDefinitions.size(), is(2)); assertThat(jobDefinitions.get(0).getTenantId(), is(TENANT_TWO)); assertThat(jobDefinitions.get(1).getTenantId(), is(TENANT_ONE)); }
@Test public void testSetOverridingJobPriorityWithAuthenticatedTenant() { JobDefinition jobDefinition = managementService.createJobDefinitionQuery().list().get(0); identityService.setAuthentication("aUserId", null, Arrays.asList(TENANT_ONE)); managementService.setOverridingJobPriorityForJobDefinition(jobDefinition.getId(), 1701); // then assertThat(managementService.createJobDefinitionQuery() .jobDefinitionId(jobDefinition.getId()).singleResult() .getOverridingJobPriority(), is(1701L)); }
@Test public void testIncludeJobDefinitionsWithoutTenantIdPostParameter() { List<JobDefinition> jobDefinitions = Arrays.asList( MockProvider.mockJobDefinition().tenantId(null).build(), MockProvider.mockJobDefinition().tenantId(MockProvider.EXAMPLE_TENANT_ID).build()); mockedQuery = setUpMockDefinitionQuery(jobDefinitions); Map<String, Object> queryParameters = new HashMap<String, Object>(); queryParameters.put("tenantIdIn", new String[] { MockProvider.EXAMPLE_TENANT_ID }); queryParameters.put("includeJobDefinitionsWithoutTenantId", true); Response response = given() .contentType(POST_JSON_CONTENT_TYPE) .body(queryParameters) .expect() .statusCode(Status.OK.getStatusCode()) .when() .post(JOB_DEFINITION_QUERY_URL); verify(mockedQuery).tenantIdIn(MockProvider.EXAMPLE_TENANT_ID); verify(mockedQuery).includeJobDefinitionsWithoutTenantId(); verify(mockedQuery).list(); String content = response.asString(); List<String> definitions = from(content).getList(""); assertThat(definitions).hasSize(2); String returnedTenantId1 = from(content).getString("[0].tenantId"); String returnedTenantId2 = from(content).getString("[1].tenantId"); assertThat(returnedTenantId1).isEqualTo(null); assertThat(returnedTenantId2).isEqualTo(MockProvider.EXAMPLE_TENANT_ID); }
public void testQueryAuthenticatedTenants() { identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE, TENANT_TWO)); JobDefinitionQuery query = managementService.createJobDefinitionQuery(); assertThat(query.count(), is(3L)); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); assertThat(query.tenantIdIn(TENANT_TWO).count(), is(1L)); assertThat(query.withoutTenantId().count(), is(1L)); }
private void verifyQueryResults(JobDefinitionQuery query, int countExpected) { assertEquals(countExpected, query.list().size()); assertEquals(countExpected, query.count()); if (countExpected == 1) { assertNotNull(query.singleResult()); } else if (countExpected > 1){ verifySingleResultFails(query); } else if (countExpected == 0) { assertNull(query.singleResult()); } }
@Deployment(resources = {"org/camunda/bpm/engine/test/api/mgmt/JobDefinitionQueryTest.testBase.bpmn"}) public void testQueryBySuspended() { JobDefinitionQuery query = managementService.createJobDefinitionQuery().suspended(); verifyQueryResults(query, 0); // suspend first one JobDefinition jobDefinition = managementService.createJobDefinitionQuery().jobType(AsyncContinuationJobHandler.TYPE).singleResult(); managementService.suspendJobDefinitionById(jobDefinition.getId()); // only one is suspended verifyQueryResults(query, 1); // Suspend second one jobDefinition = managementService.createJobDefinitionQuery().jobType(TimerStartEventJobHandler.TYPE).singleResult(); managementService.suspendJobDefinitionById(jobDefinition.getId()); // only two are suspended verifyQueryResults(query, 2); // suspend third one jobDefinition = managementService.createJobDefinitionQuery().jobType(TimerCatchIntermediateEventJobHandler.TYPE).singleResult(); managementService.suspendJobDefinitionById(jobDefinition.getId()); // only three are suspended verifyQueryResults(query, 3); // suspend fourth one jobDefinition = managementService.createJobDefinitionQuery().jobType(TimerExecuteNestedActivityJobHandler.TYPE).singleResult(); managementService.suspendJobDefinitionById(jobDefinition.getId()); // all are suspended verifyQueryResults(query, 4); }
@Deployment(resources = {"org/camunda/bpm/engine/test/api/mgmt/JobDefinitionQueryTest.testBase.bpmn"}) public void testQueryByActive() { JobDefinitionQuery query = managementService.createJobDefinitionQuery().active(); verifyQueryResults(query, 4); // suspend first one JobDefinition jobDefinition = managementService.createJobDefinitionQuery().jobType(AsyncContinuationJobHandler.TYPE).singleResult(); managementService.suspendJobDefinitionById(jobDefinition.getId()); // only three active job definitions left verifyQueryResults(query, 3); // Suspend second one jobDefinition = managementService.createJobDefinitionQuery().jobType(TimerStartEventJobHandler.TYPE).singleResult(); managementService.suspendJobDefinitionById(jobDefinition.getId()); // only two active job definitions left verifyQueryResults(query, 2); // suspend third one jobDefinition = managementService.createJobDefinitionQuery().jobType(TimerCatchIntermediateEventJobHandler.TYPE).singleResult(); managementService.suspendJobDefinitionById(jobDefinition.getId()); // only two active job definitions left verifyQueryResults(query, 1); // suspend fourth one jobDefinition = managementService.createJobDefinitionQuery().jobType(TimerExecuteNestedActivityJobHandler.TYPE).singleResult(); managementService.suspendJobDefinitionById(jobDefinition.getId()); // no one is active verifyQueryResults(query, 0); }
public void testQueryByTenantIds() { JobDefinitionQuery query = managementService .createJobDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO); assertThat(query.count(), is(2L)); }
.jobConfiguration(MessageJobDeclaration.ASYNC_BEFORE) .processDefinitionId(newDefinition.getId()) .singleResult(); JobDefinition asnycAfterJobDefinition = managementService.createJobDefinitionQuery() .jobConfiguration(MessageJobDeclaration.ASYNC_AFTER) .processDefinitionId(newDefinition.getId()) .singleResult();