@Override protected void applySortBy(ProcessDefinitionQuery query, String sortBy, Map<String, Object> parameters, ProcessEngine engine) { if (sortBy.equals(SORT_BY_CATEGORY_VALUE)) { query.orderByProcessDefinitionCategory(); } else if (sortBy.equals(SORT_BY_KEY_VALUE)) { query.orderByProcessDefinitionKey(); } else if (sortBy.equals(SORT_BY_ID_VALUE)) { query.orderByProcessDefinitionId(); } else if (sortBy.equals(SORT_BY_VERSION_VALUE)) { query.orderByProcessDefinitionVersion(); } else if (sortBy.equals(SORT_BY_NAME_VALUE)) { query.orderByProcessDefinitionName(); } else if (sortBy.equals(SORT_BY_DEPLOYMENT_ID_VALUE)) { query.orderByDeploymentId(); } else if (sortBy.equals(SORT_BY_TENANT_ID)) { query.orderByTenantId(); } else if (sortBy.equals(SORT_BY_VERSION_TAG)) { query.orderByVersionTag(); } } }
@Override protected void applySortBy(ProcessDefinitionQuery query, String sortBy, Map<String, Object> parameters, ProcessEngine engine) { if (sortBy.equals(SORT_BY_CATEGORY_VALUE)) { query.orderByProcessDefinitionCategory(); } else if (sortBy.equals(SORT_BY_KEY_VALUE)) { query.orderByProcessDefinitionKey(); } else if (sortBy.equals(SORT_BY_ID_VALUE)) { query.orderByProcessDefinitionId(); } else if (sortBy.equals(SORT_BY_VERSION_VALUE)) { query.orderByProcessDefinitionVersion(); } else if (sortBy.equals(SORT_BY_NAME_VALUE)) { query.orderByProcessDefinitionName(); } else if (sortBy.equals(SORT_BY_DEPLOYMENT_ID_VALUE)) { query.orderByDeploymentId(); } else if (sortBy.equals(SORT_BY_TENANT_ID)) { query.orderByTenantId(); } else if (sortBy.equals(SORT_BY_VERSION_TAG)) { query.orderByVersionTag(); } } }
public void testVersioning() throws InterruptedException { deployOnTwoConcurrentThreads( createDeploymentBuilder(), createDeploymentBuilder() ); // ensure that although both transactions were run concurrently, the process definitions have different versions List<ProcessDefinition> processDefinitions = repositoryService .createProcessDefinitionQuery() .orderByProcessDefinitionVersion() .asc() .list(); assertThat(processDefinitions.size(), is(2)); assertThat(processDefinitions.get(0).getVersion(), is(1)); assertThat(processDefinitions.get(1).getVersion(), is(2)); }
inOrder.verify(mockedQuery).orderByProcessDefinitionVersion(); inOrder.verify(mockedQuery).desc();
@Test public void processDefinitionVersionWithTenantId() { createDeploymentBuilder() .tenantId(TENANT_ONE) .deploy(); createDeploymentBuilder() .tenantId(TENANT_ONE) .deploy(); createDeploymentBuilder() .tenantId(TENANT_TWO) .deploy(); List<ProcessDefinition> processDefinitions = repositoryService .createProcessDefinitionQuery() .orderByTenantId() .asc() .orderByProcessDefinitionVersion() .asc() .list(); assertThat(processDefinitions.size(), is(3)); // process definition was deployed twice for tenant one assertThat(processDefinitions.get(0).getVersion(), is(1)); assertThat(processDefinitions.get(1).getVersion(), is(2)); // process definition version of tenant two have to be independent from tenant one assertThat(processDefinitions.get(2).getVersion(), is(1)); }
public void testDeployIdenticalProcessDefinitions() { List<String> deploymentIds = new ArrayList<String>(); deploymentIds.add(deployProcessString(("<definitions " + NAMESPACE + " " + TARGET_NAMESPACE + ">" + " <process id='IDR' name='Insurance Damage Report' isExecutable='true' />" + "</definitions>"))); deploymentIds.add(deployProcessString(("<definitions " + NAMESPACE + " " + TARGET_NAMESPACE + ">" + " <process id='IDR' name='Insurance Damage Report' isExecutable='true' />" + "</definitions>"))); List<ProcessDefinition> processDefinitions = repositoryService .createProcessDefinitionQuery() .orderByProcessDefinitionKey().asc() .orderByProcessDefinitionVersion().desc() .list(); assertNotNull(processDefinitions); assertEquals(2, processDefinitions.size()); ProcessDefinition processDefinition = processDefinitions.get(0); assertEquals("IDR", processDefinition.getKey()); assertEquals("Insurance Damage Report", processDefinition.getName()); assertTrue(processDefinition.getId().startsWith("IDR:2")); assertEquals(2, processDefinition.getVersion()); processDefinition = processDefinitions.get(1); assertEquals("IDR", processDefinition.getKey()); assertEquals("Insurance Damage Report", processDefinition.getName()); assertTrue(processDefinition.getId().startsWith("IDR:1")); assertEquals(1, processDefinition.getVersion()); deleteDeployments(deploymentIds); }
.createProcessDefinitionQuery() .orderByProcessDefinitionKey().asc() .orderByProcessDefinitionVersion().desc() .list();
public void testQuerySorting() { // asc ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionId().asc(); verifyQueryResults(query, 4); query = repositoryService.createProcessDefinitionQuery().orderByDeploymentId().asc(); verifyQueryResults(query, 4); query = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionKey().asc(); verifyQueryResults(query, 4); query = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc(); verifyQueryResults(query, 4); // desc query = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionId().desc(); verifyQueryResults(query, 4); query = repositoryService.createProcessDefinitionQuery().orderByDeploymentId().desc(); verifyQueryResults(query, 4); query = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionKey().desc(); verifyQueryResults(query, 4); query = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().desc(); verifyQueryResults(query, 4); // Typical use case query = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionKey().asc().orderByProcessDefinitionVersion().desc(); List<ProcessDefinition> processDefinitions = query.list(); assertEquals(4, processDefinitions.size()); assertEquals("one", processDefinitions.get(0).getKey()); assertEquals(2, processDefinitions.get(0).getVersion()); assertEquals("one", processDefinitions.get(1).getKey()); assertEquals(1, processDefinitions.get(1).getVersion()); assertEquals("two", processDefinitions.get(2).getKey()); assertEquals(1, processDefinitions.get(2).getVersion()); }
public void testProcessApplicationDeploymentResumePreviousVersionsDifferentKeys() { // create initial deployment ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .addClasspathResource("org/camunda/bpm/engine/test/api/repository/version1.bpmn20.xml") .deploy(); assertThatOneProcessIsDeployed(); // deploy update with changes: ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .resumePreviousVersions() .addClasspathResource("org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml") .deploy(); List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list(); // now there are 2 process definitions deployed assertEquals(1, processDefinitions.get(0).getVersion()); assertEquals(1, processDefinitions.get(1).getVersion()); // and the old deployment was not resumed ProcessApplicationRegistration registration = deployment2.getProcessApplicationRegistration(); Set<String> deploymentIds = registration.getDeploymentIds(); assertEquals(1, deploymentIds.size()); assertEquals(deployment2.getId(), deploymentIds.iterator().next()); assertEquals(processEngine.getName(), registration.getProcessEngineName()); deleteDeployments(deployment1, deployment2); }
public void testProcessApplicationDeploymentResumePreviousVersionsByDeploymentNameNoResume(){ BpmnModelInstance process1 = Bpmn.createExecutableProcess("process1").done(); ProcessApplicationDeployment deployment = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .addModelInstance("process1.bpmn", process1) .deploy(); assertThatOneProcessIsDeployed(); ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.getReference()) .name("anotherDeployment") .resumePreviousVersions() .resumePreviousVersionsBy(ResumePreviousBy.RESUME_BY_DEPLOYMENT_NAME) .addModelInstance("process2.bpmn", process1) .deploy(); List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list(); // there is a new version of the process assertEquals(1, processDefinitions.get(0).getVersion()); assertEquals(2, processDefinitions.get(1).getVersion()); // but the old deployment was not resumed ProcessApplicationRegistration registration = deployment2.getProcessApplicationRegistration(); Set<String> deploymentIds = registration.getDeploymentIds(); assertEquals(1, deploymentIds.size()); assertEquals(deployment2.getId(), deploymentIds.iterator().next()); assertEquals(processEngine.getName(), registration.getProcessEngineName()); deleteDeployments(deployment, deployment2); }
public void testProcessDefinitionProperties() { List<ProcessDefinition> processDefinitions = repositoryService .createProcessDefinitionQuery() .orderByProcessDefinitionName().asc() .orderByProcessDefinitionVersion().asc() .orderByProcessDefinitionCategory().asc() .list(); ProcessDefinition processDefinition = processDefinitions.get(0); assertEquals("one", processDefinition.getKey()); assertEquals("One", processDefinition.getName()); assertEquals("Desc one", processDefinition.getDescription()); assertTrue(processDefinition.getId().startsWith("one:1")); assertEquals("Examples", processDefinition.getCategory()); processDefinition = processDefinitions.get(1); assertEquals("one", processDefinition.getKey()); assertEquals("One", processDefinition.getName()); assertEquals("Desc one", processDefinition.getDescription()); assertTrue(processDefinition.getId().startsWith("one:2")); assertEquals("Examples", processDefinition.getCategory()); processDefinition = processDefinitions.get(2); assertEquals("two", processDefinition.getKey()); assertEquals("Two", processDefinition.getName()); assertNull(processDefinition.getDescription()); assertTrue(processDefinition.getId().startsWith("two:1")); assertEquals("Examples2", processDefinition.getCategory()); }
public void testProcessApplicationDeploymentNoResume() { // create initial deployment ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .addClasspathResource("org/camunda/bpm/engine/test/api/repository/version1.bpmn20.xml") .deploy(); assertThatOneProcessIsDeployed(); // deploy update with changes: ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .enableDuplicateFiltering(false) .addClasspathResource("org/camunda/bpm/engine/test/api/repository/version2.bpmn20.xml") .deploy(); List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list(); // now there are 2 process definitions deployed assertEquals(1, processDefinitions.get(0).getVersion()); assertEquals(2, processDefinitions.get(1).getVersion()); // old deployment was NOT resumed ProcessApplicationRegistration registration = deployment2.getProcessApplicationRegistration(); Set<String> deploymentIds = registration.getDeploymentIds(); assertEquals(1, deploymentIds.size()); assertEquals(processEngine.getName(), registration.getProcessEngineName()); deleteDeployments(deployment1, deployment2); }
public void testProcessApplicationDeploymentResumePreviousVersions() { // create initial deployment ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .addClasspathResource("org/camunda/bpm/engine/test/api/repository/version1.bpmn20.xml") .deploy(); assertThatOneProcessIsDeployed(); // deploy update with changes: ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .enableDuplicateFiltering(false) .resumePreviousVersions() .addClasspathResource("org/camunda/bpm/engine/test/api/repository/version2.bpmn20.xml") .deploy(); List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list(); // now there are 2 process definitions deployed assertEquals(1, processDefinitions.get(0).getVersion()); assertEquals(2, processDefinitions.get(1).getVersion()); // old deployment was resumed ProcessApplicationRegistration registration = deployment2.getProcessApplicationRegistration(); Set<String> deploymentIds = registration.getDeploymentIds(); assertEquals(2, deploymentIds.size()); assertEquals(processEngine.getName(), registration.getProcessEngineName()); deleteDeployments(deployment1, deployment2); }
.createProcessDefinitionQuery() .processDefinitionKey("process1") .orderByProcessDefinitionVersion().asc().list(); .createProcessDefinitionQuery() .processDefinitionKey("process1") .orderByProcessDefinitionVersion().asc().list();
public void testProcessApplicationDeploymentResumePreviousVersionsByDeploymentName() { // create initial deployment ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .addClasspathResource("org/camunda/bpm/engine/test/api/repository/version1.bpmn20.xml") .deploy(); assertThatOneProcessIsDeployed(); // deploy update with changes: ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .enableDuplicateFiltering(false) .resumePreviousVersions() .resumePreviousVersionsBy(ResumePreviousBy.RESUME_BY_DEPLOYMENT_NAME) .addClasspathResource("org/camunda/bpm/engine/test/api/repository/version2.bpmn20.xml") .deploy(); List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list(); // now there are 2 process definitions deployed assertEquals(1, processDefinitions.get(0).getVersion()); assertEquals(2, processDefinitions.get(1).getVersion()); // old deployment was resumed ProcessApplicationRegistration registration = deployment2.getProcessApplicationRegistration(); Set<String> deploymentIds = registration.getDeploymentIds(); assertEquals(2, deploymentIds.size()); assertEquals(processEngine.getName(), registration.getProcessEngineName()); deleteDeployments(deployment1, deployment2); }
public void testProcessApplicationDeploymentResumePreviousVersionsByDeploymentNameDeployDifferentProcesses(){ BpmnModelInstance process1 = Bpmn.createExecutableProcess("process1").done(); BpmnModelInstance process2 = Bpmn.createExecutableProcess("process2").done(); ProcessApplicationDeployment deployment = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .addModelInstance("process1.bpmn", process1) .deploy(); assertThatOneProcessIsDeployed(); ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .resumePreviousVersions() .resumePreviousVersionsBy(ResumePreviousBy.RESUME_BY_DEPLOYMENT_NAME) .addModelInstance("process2.bpmn", process2) .deploy(); List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list(); // now there are 2 process definitions deployed but both with version 1 assertEquals(1, processDefinitions.get(0).getVersion()); assertEquals(1, processDefinitions.get(1).getVersion()); // old deployment was resumed ProcessApplicationRegistration registration = deployment2.getProcessApplicationRegistration(); Set<String> deploymentIds = registration.getDeploymentIds(); assertEquals(2, deploymentIds.size()); assertEquals(processEngine.getName(), registration.getProcessEngineName()); deleteDeployments(deployment, deployment2); }
public void testProcessDefinitionQuery() { String deployment1Id = repositoryService .createDeployment() .addClasspathResource("org/camunda/bpm/engine/test/api/repository/processOne.bpmn20.xml") .addClasspathResource("org/camunda/bpm/engine/test/api/repository/processTwo.bpmn20.xml") .deploy() .getId(); List<ProcessDefinition> processDefinitions = repositoryService .createProcessDefinitionQuery() .orderByProcessDefinitionName().asc().orderByProcessDefinitionVersion().asc() .list(); assertEquals(2, processDefinitions.size()); String deployment2Id = repositoryService .createDeployment() .addClasspathResource("org/camunda/bpm/engine/test/api/repository/processOne.bpmn20.xml") .addClasspathResource("org/camunda/bpm/engine/test/api/repository/processTwo.bpmn20.xml") .deploy() .getId(); assertEquals(4, repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionName().asc().count()); assertEquals(2, repositoryService.createProcessDefinitionQuery().latestVersion().orderByProcessDefinitionName().asc().count()); deleteDeployments(Arrays.asList(deployment1Id, deployment2Id)); }
@Override protected void applySortBy(ProcessDefinitionQuery query, String sortBy, Map<String, Object> parameters, ProcessEngine engine) { if (sortBy.equals(SORT_BY_CATEGORY_VALUE)) { query.orderByProcessDefinitionCategory(); } else if (sortBy.equals(SORT_BY_KEY_VALUE)) { query.orderByProcessDefinitionKey(); } else if (sortBy.equals(SORT_BY_ID_VALUE)) { query.orderByProcessDefinitionId(); } else if (sortBy.equals(SORT_BY_VERSION_VALUE)) { query.orderByProcessDefinitionVersion(); } else if (sortBy.equals(SORT_BY_NAME_VALUE)) { query.orderByProcessDefinitionName(); } else if (sortBy.equals(SORT_BY_DEPLOYMENT_ID_VALUE)) { query.orderByDeploymentId(); } else if (sortBy.equals(SORT_BY_TENANT_ID)) { query.orderByTenantId(); } else if (sortBy.equals(SORT_BY_VERSION_TAG)) { query.orderByVersionTag(); } } }
.createProcessDefinitionQuery() .processDefinitionKey("process2") .orderByProcessDefinitionVersion().asc().list();
public void testVersioning() throws InterruptedException { deployOnTwoConcurrentThreads( createDeploymentBuilder(), createDeploymentBuilder() ); // ensure that although both transactions were run concurrently, the process definitions have different versions List<ProcessDefinition> processDefinitions = repositoryService .createProcessDefinitionQuery() .orderByProcessDefinitionVersion() .asc() .list(); assertThat(processDefinitions.size(), is(2)); assertThat(processDefinitions.get(0).getVersion(), is(1)); assertThat(processDefinitions.get(1).getVersion(), is(2)); }