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 testProcessApplicationDeploymentNoChanges() { // create initial deployment ProcessApplicationDeployment deployment = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .addClasspathResource("org/camunda/bpm/engine/test/api/repository/version1.bpmn20.xml") .deploy(); assertThatOneProcessIsDeployed(); // deploy update with no changes: deployment = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .enableDuplicateFiltering(false) .addClasspathResource("org/camunda/bpm/engine/test/api/repository/version1.bpmn20.xml") .deploy(); // no changes assertThatOneProcessIsDeployed(); ProcessApplicationRegistration registration = deployment.getProcessApplicationRegistration(); Set<String> deploymentIds = registration.getDeploymentIds(); assertEquals(1, deploymentIds.size()); assertEquals(processEngine.getName(), registration.getProcessEngineName()); deleteDeployments(deployment); }
public void testPartialChangesResumePreviousVersion() { BpmnModelInstance model1 = Bpmn.createExecutableProcess("process1").done(); BpmnModelInstance model2 = Bpmn.createExecutableProcess("process2").done(); // create initial deployment ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .addModelInstance("process1.bpmn20.xml", model1) .deploy(); ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .enableDuplicateFiltering(true) .resumePreviousVersions() .addModelInstance("process1.bpmn20.xml", model1) .addModelInstance("process2.bpmn20.xml", model2) .deploy(); ProcessApplicationRegistration registration = deployment2.getProcessApplicationRegistration(); assertEquals(2, registration.getDeploymentIds().size()); deleteDeployments(deployment1, deployment2); }
public void testSimpleProcessApplicationDeployment() { // given EmbeddedProcessApplication processApplication = new EmbeddedProcessApplication(); BpmnModelInstance model = createProcessWithServiceTask(PROCESS_KEY); ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.getReference()) .name(DEPLOYMENT_NAME) .addModelInstance(RESOURCE_NAME, model) .enableDuplicateFiltering(true) .deploy(); Resource resource1 = getResourceByName(deployment1.getId(), RESOURCE_NAME); // when ProcessApplicationDeployment deployment2 = repositoryService .createDeployment(processApplication.getReference()) .name(DEPLOYMENT_NAME) .addDeploymentResourceById(deployment1.getId(), resource1.getId()) .deploy(); // then // registration was performed: ProcessApplicationRegistration registration = deployment2.getProcessApplicationRegistration(); Set<String> deploymentIds = registration.getDeploymentIds(); assertEquals(1, deploymentIds.size()); assertTrue(deploymentIds.contains(deployment2.getId())); 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); }
@Test public void registrationFoundFromLatestDeployment() { // given ProcessApplicationReference reference1 = processApplication.getReference(); Deployment deployment1 = repositoryService .createDeployment(reference1) .name(DEPLOYMENT_NAME) .addClasspathResource(resource1) .deploy(); // when ProcessApplicationReference reference2 = processApplication.getReference(); Deployment deployment2 = repositoryService .createDeployment(reference2) .name(DEPLOYMENT_NAME) .addDeploymentResources(deployment1.getId()) .deploy(); String definitionId = getLatestDefinitionIdByKey(definitionKey1); // then assertEquals(reference2, getProcessApplicationForDefinition(definitionId)); assertEquals(reference2, getProcessApplicationForDeployment(deployment2.getId())); }
@Test public void registrationFoundByDeploymentId() { // given ProcessApplicationReference reference1 = processApplication.getReference(); Deployment deployment1 = repositoryService .createDeployment(reference1) .name(DEPLOYMENT_NAME) .addClasspathResource(resource1) .deploy(); assertEquals(reference1, getProcessApplicationForDeployment(deployment1.getId())); // when ProcessApplicationReference reference2 = processApplication.getReference(); Deployment deployment2 = repositoryService .createDeployment(reference2) .name(DEPLOYMENT_NAME) .addDeploymentResources(deployment1.getId()) .deploy(); // then assertEquals(reference2, getProcessApplicationForDeployment(deployment2.getId())); }
public void testPartialChangesResumePreviousVersionByDeploymentName() { BpmnModelInstance model1 = Bpmn.createExecutableProcess("process1").done(); BpmnModelInstance model2 = Bpmn.createExecutableProcess("process2").done(); // create initial deployment ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .addModelInstance("process1.bpmn20.xml", model1) .deploy(); ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.getReference()) .name("deployment") .enableDuplicateFiltering(true) .resumePreviousVersions() .resumePreviousVersionsBy(ResumePreviousBy.RESUME_BY_DEPLOYMENT_NAME) .addModelInstance("process1.bpmn20.xml", model1) .addModelInstance("process2.bpmn20.xml", model2) .deploy(); ProcessApplicationRegistration registration = deployment2.getProcessApplicationRegistration(); assertEquals(2, registration.getDeploymentIds().size()); deleteDeployments(deployment1, deployment2); }
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); }
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 testDefaultDeploymentSource() { String key = "process"; BpmnModelInstance model = Bpmn.createExecutableProcess(key).done(); DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery(); Deployment deployment = repositoryService .createDeployment(processApplication.getReference()) .name("first-deployment-with-a-source") .addModelInstance("process.bpmn", model) .deploy(); assertEquals(ProcessApplicationDeployment.PROCESS_APPLICATION_DEPLOYMENT_SOURCE, deploymentQuery.deploymentName("first-deployment-with-a-source").singleResult().getSource()); deleteDeployments(deployment); }
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 testOverwriteDeploymentSource() { String key = "process"; BpmnModelInstance model = Bpmn.createExecutableProcess(key).done(); DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery(); Deployment deployment = repositoryService .createDeployment(processApplication.getReference()) .name("first-deployment-with-a-source") .source("my-source") .addModelInstance("process.bpmn", model) .deploy(); assertEquals("my-source", deploymentQuery.deploymentName("first-deployment-with-a-source").singleResult().getSource()); deleteDeployments(deployment); }
@Test public void registrationNotFoundByDeploymentId() { // given ProcessApplicationReference reference = processApplication.getReference(); Deployment deployment1 = repositoryService .createDeployment(reference) .name(DEPLOYMENT_NAME) .addClasspathResource(resource1) .deploy(); assertEquals(reference, getProcessApplicationForDeployment(deployment1.getId())); // when Deployment deployment2 = repositoryService .createDeployment() .name(DEPLOYMENT_NAME) .addDeploymentResources(deployment1.getId()) .deploy(); // then assertNull(getProcessApplicationForDeployment(deployment2.getId())); }
@Test public void registrationFoundFromPreviousDefinition() { // given ProcessApplicationReference reference = processApplication.getReference(); Deployment deployment1 = repositoryService .createDeployment(reference) .name(DEPLOYMENT_NAME) .addClasspathResource(resource1) .deploy(); // when Deployment deployment2 = repositoryService .createDeployment() .name(DEPLOYMENT_NAME) .addDeploymentResources(deployment1.getId()) .deploy(); String definitionId = getLatestDefinitionIdByKey(definitionKey1); // then assertEquals(reference, getProcessApplicationForDefinition(definitionId)); // and the reference is not cached assertNull(getProcessApplicationForDeployment(deployment2.getId())); }
@Test public void definitionOnePreviousDeploymentWithPA() { // given MyEmbeddedProcessApplication application = new MyEmbeddedProcessApplication(); // first deployment Deployment deployment1 = repositoryService .createDeployment(application.getReference()) .name(DEPLOYMENT_NAME) .addClasspathResource(resource1) .deploy(); // second deployment Deployment deployment2 = repositoryService .createDeployment() .name(DEPLOYMENT_NAME) .addDeploymentResources(deployment1.getId()) .deploy(); assertEquals(2, testProvider.countDefinitionsByKey(definitionKey1)); // when testProvider.createInstanceByDefinitionKey(definitionKey1); // then assertTrue(application.isCalled()); deleteDeployments(deployment1, deployment2); }
public void testDeploymentSourceShouldBeNull() { String key = "process"; BpmnModelInstance model = Bpmn.createExecutableProcess(key).done(); DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery(); Deployment deployment1 = repositoryService .createDeployment() .name("first-deployment-without-a-source") .addModelInstance("process.bpmn", model) .deploy(); assertNull(deploymentQuery.deploymentName("first-deployment-without-a-source").singleResult().getSource()); Deployment deployment2 = repositoryService .createDeployment(processApplication.getReference()) .name("second-deployment-with-a-source") .source(null) .addModelInstance("process.bpmn", model) .deploy(); assertNull(deploymentQuery.deploymentName("second-deployment-with-a-source").singleResult().getSource()); deleteDeployments(deployment1, deployment2); }
public void testDeploymentSourceShouldNotBeNull() { String key = "process"; BpmnModelInstance model = Bpmn.createExecutableProcess(key).done(); DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery(); Deployment deployment1 = repositoryService .createDeployment() .name("first-deployment-without-a-source") .source("my-first-deployment-source") .addModelInstance("process.bpmn", model) .deploy(); assertEquals("my-first-deployment-source", deploymentQuery.deploymentName("first-deployment-without-a-source").singleResult().getSource()); Deployment deployment2 = repositoryService .createDeployment(processApplication.getReference()) .name("second-deployment-with-a-source") .source("my-second-deployment-source") .addModelInstance("process.bpmn", model) .deploy(); assertEquals("my-second-deployment-source", deploymentQuery.deploymentName("second-deployment-with-a-source").singleResult().getSource()); deleteDeployments(deployment1, deployment2); }
public void testCreateDeploymentPa() { // given EmbeddedProcessApplication application = new EmbeddedProcessApplication(); // when Deployment deployment = repositoryService .createDeployment(application.getReference()) .name(DEPLOYMENT_NAME) .addModelInstance(RESOURCE_NAME, createProcessWithServiceTask(PROCESS_KEY)) .deploy(); // then UserOperationLogEntry userOperationLogEntry = historyService.createUserOperationLogQuery().singleResult(); assertNotNull(userOperationLogEntry); assertEquals(EntityTypes.DEPLOYMENT, userOperationLogEntry.getEntityType()); assertEquals(deployment.getId(), userOperationLogEntry.getDeploymentId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_CREATE, userOperationLogEntry.getOperationType()); assertEquals("duplicateFilterEnabled", userOperationLogEntry.getProperty()); assertNull(userOperationLogEntry.getOrgValue()); assertFalse(Boolean.valueOf(userOperationLogEntry.getNewValue())); assertEquals(USER_ID, userOperationLogEntry.getUserId()); assertNull(userOperationLogEntry.getJobDefinitionId()); assertNull(userOperationLogEntry.getProcessInstanceId()); assertNull(userOperationLogEntry.getProcessDefinitionId()); assertNull(userOperationLogEntry.getProcessDefinitionKey()); assertNull(userOperationLogEntry.getCaseInstanceId()); assertNull(userOperationLogEntry.getCaseDefinitionId()); }