@Override public void setUp() throws Exception { BpmnModelInstance emptyProcess = Bpmn.createExecutableProcess().done(); deployment(emptyProcess); deploymentForTenant(TENANT_ONE, emptyProcess); deploymentForTenant(TENANT_TWO, emptyProcess); }
@Deployment public static WebArchive createProcessApplication() { return initWebArchiveDeployment() .addAsResource(new StringAsset(Bpmn.convertToString(Bpmn.createExecutableProcess(TEST_PROCESS).done())), "testProcess.bpmn20.xml"); }
public void testPropagateTenantIdToProcessDefinition() { deploymentForTenant(TENANT_ID, Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY).done()); ProcessDefinition processDefinition = repositoryService .createProcessDefinitionQuery() .singleResult(); assertNotNull(processDefinition); // inherit the tenant id from deployment assertEquals(TENANT_ID, processDefinition.getTenantId()); }
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 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 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 testUnregisterProcessApplicationOnDeploymentDeletion() { // given a deployment with a process application registration Deployment deployment = repositoryService .createDeployment() .addModelInstance("process.bpmn", Bpmn.createExecutableProcess("foo").done()) .deploy(); // and a process application registration managementService.registerProcessApplication(deployment.getId(), processApplication.getReference()); // when deleting the deploymen repositoryService.deleteDeployment(deployment.getId(), true); // then the registration is removed assertNull(managementService.getProcessApplicationForDeployment(deployment.getId())); }
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 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 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 restartProcessInstanceWithNotMatchingProcessDefinition() { // given ProcessDefinition processDefinition = testRule.deployAndGetDefinition(ProcessModels.TWO_TASKS_PROCESS); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("Process"); runtimeService.deleteProcessInstance(processInstance.getId(), null); BpmnModelInstance instance2 = Bpmn.createExecutableProcess().done(); ProcessDefinition processDefinition2 = testRule.deployAndGetDefinition(instance2); // when Batch batch = runtimeService.restartProcessInstances(processDefinition2.getId()) .startBeforeActivity("userTask1") .processInstanceIds(processInstance.getId()) .executeAsync(); try { helper.completeBatch(batch); fail("exception expected"); } catch (ProcessEngineException e) { // then Assert.assertThat(e.getMessage(), containsString("Its process definition '" + processDefinition.getId() + "' does not match given process definition '" + processDefinition2.getId() +"'" )); } }
public void testPartialChangesDeployAll() { BpmnModelInstance model1 = Bpmn.createExecutableProcess("process1").done(); BpmnModelInstance model2 = Bpmn.createExecutableProcess("process2").done(); org.camunda.bpm.engine.repository.Deployment deployment1 = repositoryService.createDeployment() .enableDuplicateFiltering() .addModelInstance("process1.bpmn20.xml", model1) .addModelInstance("process2.bpmn20.xml", model2) .name("twice") .deploy(); List<String> deploymentResources = repositoryService.getDeploymentResourceNames(deployment1.getId()); assertEquals(2, deploymentResources.size()); BpmnModelInstance changedModel2 = Bpmn.createExecutableProcess("process2").startEvent().done(); org.camunda.bpm.engine.repository.Deployment deployment2 = repositoryService.createDeployment() .enableDuplicateFiltering() .addModelInstance("process1.bpmn20.xml", model1) .addModelInstance("process2.bpmn20.xml", changedModel2) .name("twice") .deploy(); List<org.camunda.bpm.engine.repository.Deployment> deploymentList = repositoryService.createDeploymentQuery().list(); assertEquals(2, deploymentList.size()); // there should be new versions of both processes assertEquals(2, repositoryService.createProcessDefinitionQuery().processDefinitionKey("process1").count()); assertEquals(2, repositoryService.createProcessDefinitionQuery().processDefinitionKey("process2").count()); repositoryService.deleteDeployment(deployment1.getId()); repositoryService.deleteDeployment(deployment2.getId()); }
@Test public void testRedeploy() { // given RepositoryService repositoryService = engineRule.getRepositoryService(); BpmnModelInstance model1 = Bpmn.createExecutableProcess("process1").done(); BpmnModelInstance model2 = Bpmn.createExecutableProcess("process2").done(); // first deployment Deployment deployment1 = repositoryService .createDeployment() .addModelInstance("process1.bpmn", model1) .addModelInstance("process2.bpmn", model2) .deploy(); // when authRule .init(scenario) .withUser("userId") .bindResource("deploymentId", deployment1.getId()) .start(); Deployment deployment2 = repositoryService .createDeployment() .addDeploymentResources(deployment1.getId()) .deploy(); // then if (authRule.assertScenario(scenario)) { Assert.assertEquals(2, repositoryService.createDeploymentQuery().count()); deleteDeployments(deployment2); deleteAuthorizations(); } deleteDeployments(deployment1); }
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 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 testPartialChangesRedeployOldVersion() { // deployment 1 deploys process version 1 BpmnModelInstance model1 = Bpmn.createExecutableProcess("process1").done(); org.camunda.bpm.engine.repository.Deployment deployment1 = repositoryService.createDeployment() .addModelInstance("process1.bpmn20.xml", model1) .name("deployment") .deploy(); // deployment 2 deploys process version 2 BpmnModelInstance changedModel1 = Bpmn.createExecutableProcess("process1").startEvent().done(); org.camunda.bpm.engine.repository.Deployment deployment2 = repositoryService.createDeployment() .enableDuplicateFiltering(true) .addModelInstance("process1.bpmn20.xml", changedModel1) .name("deployment") .deploy(); // deployment 3 deploys process version 1 again org.camunda.bpm.engine.repository.Deployment deployment3 = repositoryService.createDeployment() .enableDuplicateFiltering(true) .addModelInstance("process1.bpmn20.xml", model1) .name("deployment") .deploy(); // should result in three process definitions assertEquals(3, repositoryService.createProcessDefinitionQuery().processDefinitionKey("process1").count()); repositoryService.deleteDeployment(deployment1.getId()); repositoryService.deleteDeployment(deployment2.getId()); repositoryService.deleteDeployment(deployment3.getId()); }
String name = "my-deployment"; BpmnModelInstance model = Bpmn.createExecutableProcess(key).done();
String name = "my-deployment"; BpmnModelInstance model = Bpmn.createExecutableProcess(key).done();
String name = "my-deployment"; BpmnModelInstance model = Bpmn.createExecutableProcess(key).done();
String name = "my-deployment"; BpmnModelInstance model = Bpmn.createExecutableProcess(key).done();