public static MigrationPlan toMigrationPlan(ProcessEngine processEngine, MigrationPlanDto migrationPlanDto) { MigrationPlanBuilder migrationPlanBuilder = processEngine.getRuntimeService().createMigrationPlan(migrationPlanDto.getSourceProcessDefinitionId(), migrationPlanDto.getTargetProcessDefinitionId()); if (migrationPlanDto.getInstructions() != null) { for (MigrationInstructionDto migrationInstructionDto : migrationPlanDto.getInstructions()) { MigrationInstructionBuilder migrationInstructionBuilder = migrationPlanBuilder.mapActivities(migrationInstructionDto.getSourceActivityIds().get(0), migrationInstructionDto.getTargetActivityIds().get(0)); if (Boolean.TRUE.equals(migrationInstructionDto.isUpdateEventTrigger())) { migrationInstructionBuilder = migrationInstructionBuilder.updateEventTrigger(); } migrationPlanBuilder = migrationInstructionBuilder; } } return migrationPlanBuilder.build(); }
public static MigrationPlan toMigrationPlan(ProcessEngine processEngine, MigrationPlanDto migrationPlanDto) { MigrationPlanBuilder migrationPlanBuilder = processEngine.getRuntimeService().createMigrationPlan(migrationPlanDto.getSourceProcessDefinitionId(), migrationPlanDto.getTargetProcessDefinitionId()); if (migrationPlanDto.getInstructions() != null) { for (MigrationInstructionDto migrationInstructionDto : migrationPlanDto.getInstructions()) { MigrationInstructionBuilder migrationInstructionBuilder = migrationPlanBuilder.mapActivities(migrationInstructionDto.getSourceActivityIds().get(0), migrationInstructionDto.getTargetActivityIds().get(0)); if (Boolean.TRUE.equals(migrationInstructionDto.isUpdateEventTrigger())) { migrationInstructionBuilder = migrationInstructionBuilder.updateEventTrigger(); } migrationPlanBuilder = migrationInstructionBuilder; } } return migrationPlanBuilder.build(); }
@Before public void deployProcessesAndCreateMigrationPlan() { ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); migrationPlan = engineRule .getRuntimeService() .createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .build(); }
@Before public void deployProcessesAndCreateMigrationPlan() { ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); migrationPlan = engineRule .getRuntimeService() .createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .build(); }
@Before public void deployProcessesAndCreateMigrationPlan() { ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); migrationPlan = engineRule .getRuntimeService() .createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .build(); }
@Test public void testCannotMigrateUnmappedTransitionInstance() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(AsyncProcessModels.ASYNC_BEFORE_USER_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(AsyncProcessModels.ASYNC_BEFORE_USER_TASK_PROCESS); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .build(); // when try { testHelper.createProcessInstanceAndMigrate(migrationPlan); Assert.fail("should fail"); } catch (MigratingProcessInstanceValidationException e) { // then assertThat(e.getValidationReport()) .hasTransitionInstanceFailures("userTask", "There is no migration instruction for this instance's activity" ); } }
@Test public void testCannotMigrateUnmappedTransitionInstanceAtNonLeafActivity() { // given BpmnModelInstance model = modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaAsyncBefore(true) .done(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(model); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(model); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .build(); // when try { testHelper.createProcessInstanceAndMigrate(migrationPlan); Assert.fail("should fail"); } catch (MigratingProcessInstanceValidationException e) { // then assertThat(e.getValidationReport()) .hasTransitionInstanceFailures("subProcess", "There is no migration instruction for this instance's activity" ); } }
@Test public void testCannotMigrateUnmappedTransitionInstanceWithIncident() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(AsyncProcessModels.ASYNC_BEFORE_USER_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(AsyncProcessModels.ASYNC_BEFORE_USER_TASK_PROCESS); // the user task is not mapped in the migration plan, i.e. there is no instruction to migrate the job // and the incident MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .build(); ProcessInstance processInstance = rule.getRuntimeService().startProcessInstanceById(migrationPlan.getSourceProcessDefinitionId()); Job job = rule.getManagementService().createJobQuery().singleResult(); rule.getManagementService().setJobRetries(job.getId(), 0); // when try { testHelper.migrateProcessInstance(migrationPlan, processInstance); Assert.fail("should fail"); } catch (MigratingProcessInstanceValidationException e) { // then assertThat(e.getValidationReport()) .hasTransitionInstanceFailures("userTask", "There is no migration instruction for this instance's activity" ); } }
public static MigrationPlan toMigrationPlan(ProcessEngine processEngine, MigrationPlanDto migrationPlanDto) { MigrationPlanBuilder migrationPlanBuilder = processEngine.getRuntimeService().createMigrationPlan(migrationPlanDto.getSourceProcessDefinitionId(), migrationPlanDto.getTargetProcessDefinitionId()); if (migrationPlanDto.getInstructions() != null) { for (MigrationInstructionDto migrationInstructionDto : migrationPlanDto.getInstructions()) { MigrationInstructionBuilder migrationInstructionBuilder = migrationPlanBuilder.mapActivities(migrationInstructionDto.getSourceActivityIds().get(0), migrationInstructionDto.getTargetActivityIds().get(0)); if (Boolean.TRUE.equals(migrationInstructionDto.isUpdateEventTrigger())) { migrationInstructionBuilder = migrationInstructionBuilder.updateEventTrigger(); } migrationPlanBuilder = migrationInstructionBuilder; } } return migrationPlanBuilder.build(); }
@Before public void deployProcessesAndCreateMigrationPlan() { ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); migrationPlan = engineRule .getRuntimeService() .createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .build(); }
@Before public void deployProcessesAndCreateMigrationPlan() { ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); migrationPlan = engineRule .getRuntimeService() .createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .build(); }
@Before public void deployProcessesAndCreateMigrationPlan() { ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); migrationPlan = engineRule .getRuntimeService() .createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .build(); }
@Test public void testCannotMigrateUnmappedTransitionInstance() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(AsyncProcessModels.ASYNC_BEFORE_USER_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(AsyncProcessModels.ASYNC_BEFORE_USER_TASK_PROCESS); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .build(); // when try { testHelper.createProcessInstanceAndMigrate(migrationPlan); Assert.fail("should fail"); } catch (MigratingProcessInstanceValidationException e) { // then assertThat(e.getValidationReport()) .hasTransitionInstanceFailures("userTask", "There is no migration instruction for this instance's activity" ); } }
@Test public void testCannotMigrateUnmappedTransitionInstanceAtNonLeafActivity() { // given BpmnModelInstance model = modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaAsyncBefore(true) .done(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(model); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(model); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .build(); // when try { testHelper.createProcessInstanceAndMigrate(migrationPlan); Assert.fail("should fail"); } catch (MigratingProcessInstanceValidationException e) { // then assertThat(e.getValidationReport()) .hasTransitionInstanceFailures("subProcess", "There is no migration instruction for this instance's activity" ); } }
@Test public void testCannotMigrateUnmappedTransitionInstanceWithIncident() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(AsyncProcessModels.ASYNC_BEFORE_USER_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(AsyncProcessModels.ASYNC_BEFORE_USER_TASK_PROCESS); // the user task is not mapped in the migration plan, i.e. there is no instruction to migrate the job // and the incident MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .build(); ProcessInstance processInstance = rule.getRuntimeService().startProcessInstanceById(migrationPlan.getSourceProcessDefinitionId()); Job job = rule.getManagementService().createJobQuery().singleResult(); rule.getManagementService().setJobRetries(job.getId(), 0); // when try { testHelper.migrateProcessInstance(migrationPlan, processInstance); Assert.fail("should fail"); } catch (MigratingProcessInstanceValidationException e) { // then assertThat(e.getValidationReport()) .hasTransitionInstanceFailures("userTask", "There is no migration instruction for this instance's activity" ); } }