public virtual void testProcessApplicationDeploymentResumePreviousVersionsByDeploymentNameNoResume() { BpmnModelInstance process1 = Bpmn.createExecutableProcess("process1").done(); ProcessApplicationDeployment deployment = repositoryService.createDeployment(processApplication.Reference).name("deployment").addModelInstance("process1.bpmn", process1).deploy(); assertThatOneProcessIsDeployed(); ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.Reference).name("anotherDeployment").resumePreviousVersions().resumePreviousVersionsBy(ResumePreviousBy.RESUME_BY_DEPLOYMENT_NAME).addModelInstance("process2.bpmn", process1).deploy(); IList <ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list(); // there is a new version of the process assertEquals(1, processDefinitions[0].Version); assertEquals(2, processDefinitions[1].Version); // but the old deployment was not resumed ProcessApplicationRegistration registration = deployment2.ProcessApplicationRegistration; ISet <string> deploymentIds = registration.DeploymentIds; assertEquals(1, deploymentIds.Count); assertEquals(deployment2.Id, deploymentIds.GetEnumerator().next()); assertEquals(processEngine.Name, registration.ProcessEngineName); deleteDeployments(deployment, deployment2); }
public virtual void testProcessApplicationDeploymentResumePreviousVersionsByDeploymentName() { // create initial deployment ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.Reference).name("deployment").addClasspathResource("org/camunda/bpm/engine/test/api/repository/version1.bpmn20.xml").deploy(); assertThatOneProcessIsDeployed(); // deploy update with changes: ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.Reference).name("deployment").enableDuplicateFiltering(false).resumePreviousVersions().resumePreviousVersionsBy(ResumePreviousBy.RESUME_BY_DEPLOYMENT_NAME).addClasspathResource("org/camunda/bpm/engine/test/api/repository/version2.bpmn20.xml").deploy(); IList <ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list(); // now there are 2 process definitions deployed assertEquals(1, processDefinitions[0].Version); assertEquals(2, processDefinitions[1].Version); // old deployment was resumed ProcessApplicationRegistration registration = deployment2.ProcessApplicationRegistration; ISet <string> deploymentIds = registration.DeploymentIds; assertEquals(2, deploymentIds.Count); assertEquals(processEngine.Name, registration.ProcessEngineName); deleteDeployments(deployment1, deployment2); }
public virtual void testProcessApplicationDeploymentResumePreviousVersionsByDeploymentNameDeployDifferentProcesses() { BpmnModelInstance process1 = Bpmn.createExecutableProcess("process1").done(); BpmnModelInstance process2 = Bpmn.createExecutableProcess("process2").done(); ProcessApplicationDeployment deployment = repositoryService.createDeployment(processApplication.Reference).name("deployment").addModelInstance("process1.bpmn", process1).deploy(); assertThatOneProcessIsDeployed(); ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.Reference).name("deployment").resumePreviousVersions().resumePreviousVersionsBy(ResumePreviousBy.RESUME_BY_DEPLOYMENT_NAME).addModelInstance("process2.bpmn", process2).deploy(); IList <ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list(); // now there are 2 process definitions deployed but both with version 1 assertEquals(1, processDefinitions[0].Version); assertEquals(1, processDefinitions[1].Version); // old deployment was resumed ProcessApplicationRegistration registration = deployment2.ProcessApplicationRegistration; ISet <string> deploymentIds = registration.DeploymentIds; assertEquals(2, deploymentIds.Count); assertEquals(processEngine.Name, registration.ProcessEngineName); deleteDeployments(deployment, deployment2); }
public virtual void testProcessApplicationDeploymentResumePreviousVersionsDifferentKeys() { // create initial deployment ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.Reference).name("deployment").addClasspathResource("org/camunda/bpm/engine/test/api/repository/version1.bpmn20.xml").deploy(); assertThatOneProcessIsDeployed(); // deploy update with changes: ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.Reference).name("deployment").resumePreviousVersions().addClasspathResource("org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml").deploy(); IList <ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list(); // now there are 2 process definitions deployed assertEquals(1, processDefinitions[0].Version); assertEquals(1, processDefinitions[1].Version); // and the old deployment was not resumed ProcessApplicationRegistration registration = deployment2.ProcessApplicationRegistration; ISet <string> deploymentIds = registration.DeploymentIds; assertEquals(1, deploymentIds.Count); assertEquals(deployment2.Id, deploymentIds.GetEnumerator().next()); assertEquals(processEngine.Name, registration.ProcessEngineName); deleteDeployments(deployment1, deployment2); }
public DeployedProcessArchive(ProcessApplicationDeployment deployment) { primaryDeploymentId = deployment.Id; ProcessApplicationRegistration registration = deployment.ProcessApplicationRegistration; allDeploymentIds = registration.DeploymentIds; processEngineName = registration.ProcessEngineName; }
/// <summary> /// Test re-deployment of only those resources that have actually changed /// </summary> public virtual void testPartialChangesDeployChangedOnly() { BpmnModelInstance model1 = Bpmn.createExecutableProcess("process1").done(); BpmnModelInstance model2 = Bpmn.createExecutableProcess("process2").done(); // create initial deployment ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.Reference).name("deployment").addModelInstance("process1.bpmn20.xml", model1).addModelInstance("process2.bpmn20.xml", model2).deploy(); BpmnModelInstance changedModel2 = Bpmn.createExecutableProcess("process2").startEvent().done(); // second deployment with partial changes: ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.Reference).name("deployment").enableDuplicateFiltering(true).resumePreviousVersions().addModelInstance("process1.bpmn20.xml", model1).addModelInstance("process2.bpmn20.xml", changedModel2).deploy(); assertEquals(3, repositoryService.createProcessDefinitionQuery().count()); // there is one version of process1 deployed ProcessDefinition processDefinitionModel1 = repositoryService.createProcessDefinitionQuery().processDefinitionKey("process1").singleResult(); assertNotNull(processDefinitionModel1); assertEquals(1, processDefinitionModel1.Version); assertEquals(deployment1.Id, processDefinitionModel1.DeploymentId); // there are two versions of process2 deployed IList <ProcessDefinition> processDefinitionsModel2 = repositoryService.createProcessDefinitionQuery().processDefinitionKey("process2").orderByProcessDefinitionVersion().asc().list(); assertEquals(2, processDefinitionsModel2.Count); assertEquals(1, processDefinitionsModel2[0].Version); assertEquals(2, processDefinitionsModel2[1].Version); // old deployment was resumed ProcessApplicationRegistration registration = deployment2.ProcessApplicationRegistration; ISet <string> deploymentIds = registration.DeploymentIds; assertEquals(2, deploymentIds.Count); BpmnModelInstance anotherChangedModel2 = Bpmn.createExecutableProcess("process2").startEvent().endEvent().done(); // testing with a third deployment to ensure the change check is not only performed against // the last version of the deployment ProcessApplicationDeployment deployment3 = repositoryService.createDeployment(processApplication.Reference).enableDuplicateFiltering(true).resumePreviousVersions().addModelInstance("process1.bpmn20.xml", model1).addModelInstance("process2.bpmn20.xml", anotherChangedModel2).name("deployment").deploy(); // there should still be one version of process 1 assertEquals(1, repositoryService.createProcessDefinitionQuery().processDefinitionKey("process1").count()); // there should be three versions of process 2 assertEquals(3, repositoryService.createProcessDefinitionQuery().processDefinitionKey("process2").count()); // old deployments are resumed registration = deployment3.ProcessApplicationRegistration; deploymentIds = registration.DeploymentIds; assertEquals(3, deploymentIds.Count); deleteDeployments(deployment1, deployment2, deployment3); }
public virtual void testSimpleProcessApplicationDeployment() { ProcessApplicationDeployment deployment = repositoryService.createDeployment(processApplication.Reference).addClasspathResource("org/camunda/bpm/engine/test/api/repository/version1.bpmn20.xml").deploy(); // process is deployed: assertThatOneProcessIsDeployed(); // registration was performed: ProcessApplicationRegistration registration = deployment.ProcessApplicationRegistration; ISet <string> deploymentIds = registration.DeploymentIds; assertEquals(1, deploymentIds.Count); assertEquals(processEngine.Name, registration.ProcessEngineName); deleteDeployments(deployment); }
public virtual void testPartialChangesResumePreviousVersionByDeploymentName() { BpmnModelInstance model1 = Bpmn.createExecutableProcess("process1").done(); BpmnModelInstance model2 = Bpmn.createExecutableProcess("process2").done(); // create initial deployment ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.Reference).name("deployment").addModelInstance("process1.bpmn20.xml", model1).deploy(); ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.Reference).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.ProcessApplicationRegistration; assertEquals(2, registration.DeploymentIds.Count); deleteDeployments(deployment1, deployment2); }
public virtual void testRegisterProcessApplicationAsCamundaAdmin() { // given identityService.setAuthentication(userId, Collections.singletonList(org.camunda.bpm.engine.authorization.Groups_Fields.CAMUNDA_ADMIN)); EmbeddedProcessApplication processApplication = new EmbeddedProcessApplication(); ProcessApplicationReference reference = processApplication.Reference; string deploymentId = createDeployment(null, FIRST_RESOURCE).Id; // when ProcessApplicationRegistration registration = managementService.registerProcessApplication(deploymentId, reference); // then assertNotNull(registration); assertNotNull(getProcessApplicationForDeployment(deploymentId)); deleteDeployment(deploymentId); }
public virtual void testProcessApplicationDeploymentNoChanges() { // create initial deployment ProcessApplicationDeployment deployment = repositoryService.createDeployment(processApplication.Reference).name("deployment").addClasspathResource("org/camunda/bpm/engine/test/api/repository/version1.bpmn20.xml").deploy(); assertThatOneProcessIsDeployed(); // deploy update with no changes: deployment = repositoryService.createDeployment(processApplication.Reference).name("deployment").enableDuplicateFiltering(false).addClasspathResource("org/camunda/bpm/engine/test/api/repository/version1.bpmn20.xml").deploy(); // no changes assertThatOneProcessIsDeployed(); ProcessApplicationRegistration registration = deployment.ProcessApplicationRegistration; ISet <string> deploymentIds = registration.DeploymentIds; assertEquals(1, deploymentIds.Count); assertEquals(processEngine.Name, registration.ProcessEngineName); deleteDeployments(deployment); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: @Override public DeploymentWithDefinitions call() throws Exception public override DeploymentWithDefinitions call() { outerInstance.acquireExclusiveLock(commandContext); DeploymentEntity deployment = outerInstance.initDeployment(); IDictionary <string, ResourceEntity> resourcesToDeploy = outerInstance.resolveResourcesToDeploy(commandContext, deployment); IDictionary <string, ResourceEntity> resourcesToIgnore = new Dictionary <string, ResourceEntity>(deployment.Resources); //JAVA TO C# CONVERTER TODO TASK: There is no .NET equivalent to the java.util.Collection 'removeAll' method: resourcesToIgnore.Keys.removeAll(resourcesToDeploy.Keys); if (resourcesToDeploy.Count > 0) { LOG.debugCreatingNewDeployment(); deployment.Resources = resourcesToDeploy; outerInstance.deploy(deployment); } else { LOG.usingExistingDeployment(); deployment = outerInstance.getExistingDeployment(commandContext, deployment.Name); } outerInstance.scheduleProcessDefinitionActivation(commandContext, deployment); if (outerInstance.deploymentBuilder is ProcessApplicationDeploymentBuilder) { // for process application deployments, job executor registration is managed by // process application manager ISet <string> processesToRegisterFor = outerInstance.retrieveProcessKeysFromResources(resourcesToIgnore); ProcessApplicationRegistration registration = outerInstance.registerProcessApplication(commandContext, deployment, processesToRegisterFor); return(new ProcessApplicationDeploymentImpl(deployment, registration)); } else { outerInstance.registerWithJobExecutor(commandContext, deployment); } return(deployment); }
public virtual void testPartialChangesDeployAll() { BpmnModelInstance model1 = Bpmn.createExecutableProcess("process1").done(); BpmnModelInstance model2 = Bpmn.createExecutableProcess("process2").done(); // create initial deployment ProcessApplicationDeployment deployment1 = repositoryService.createDeployment(processApplication.Reference).name("deployment").addModelInstance("process1.bpmn20.xml", model1).addModelInstance("process2.bpmn20.xml", model2).deploy(); BpmnModelInstance changedModel2 = Bpmn.createExecutableProcess("process2").startEvent().done(); // second deployment with partial changes: ProcessApplicationDeployment deployment2 = repositoryService.createDeployment(processApplication.Reference).name("deployment").enableDuplicateFiltering(false).resumePreviousVersions().addModelInstance("process1.bpmn20.xml", model1).addModelInstance("process2.bpmn20.xml", changedModel2).deploy(); assertEquals(4, repositoryService.createProcessDefinitionQuery().count()); IList <ProcessDefinition> processDefinitionsModel1 = repositoryService.createProcessDefinitionQuery().processDefinitionKey("process1").orderByProcessDefinitionVersion().asc().list(); // now there are two versions of process1 deployed assertEquals(2, processDefinitionsModel1.Count); assertEquals(1, processDefinitionsModel1[0].Version); assertEquals(2, processDefinitionsModel1[1].Version); // now there are two versions of process2 deployed IList <ProcessDefinition> processDefinitionsModel2 = repositoryService.createProcessDefinitionQuery().processDefinitionKey("process1").orderByProcessDefinitionVersion().asc().list(); assertEquals(2, processDefinitionsModel2.Count); assertEquals(1, processDefinitionsModel2[0].Version); assertEquals(2, processDefinitionsModel2[1].Version); // old deployment was resumed ProcessApplicationRegistration registration = deployment2.ProcessApplicationRegistration; ISet <string> deploymentIds = registration.DeploymentIds; assertEquals(2, deploymentIds.Count); assertEquals(processEngine.Name, registration.ProcessEngineName); deleteDeployments(deployment1, deployment2); }
public ProcessApplicationDeploymentImpl(DeploymentWithDefinitions deployment, ProcessApplicationRegistration registration) { this.deployment = deployment; this.registration = registration; }