public MigrationPlanDto generateMigrationPlan(MigrationPlanGenerationDto generationDto) { RuntimeService runtimeService = processEngine.getRuntimeService(); String sourceProcessDefinitionId = generationDto.getSourceProcessDefinitionId(); String targetProcessDefinitionId = generationDto.getTargetProcessDefinitionId(); try { MigrationInstructionsBuilder instructionsBuilder = runtimeService.createMigrationPlan(sourceProcessDefinitionId, targetProcessDefinitionId) .mapEqualActivities(); if (generationDto.isUpdateEventTriggers()) { instructionsBuilder = instructionsBuilder.updateEventTriggers(); } MigrationPlan migrationPlan = instructionsBuilder.build(); return MigrationPlanDto.from(migrationPlan); } catch (BadUserRequestException e) { throw new InvalidRequestException(Status.BAD_REQUEST, e, e.getMessage()); } }
public MigrationPlanDto generateMigrationPlan(MigrationPlanGenerationDto generationDto) { RuntimeService runtimeService = processEngine.getRuntimeService(); String sourceProcessDefinitionId = generationDto.getSourceProcessDefinitionId(); String targetProcessDefinitionId = generationDto.getTargetProcessDefinitionId(); try { MigrationInstructionsBuilder instructionsBuilder = runtimeService.createMigrationPlan(sourceProcessDefinitionId, targetProcessDefinitionId) .mapEqualActivities(); if (generationDto.isUpdateEventTriggers()) { instructionsBuilder = instructionsBuilder.updateEventTriggers(); } MigrationPlan migrationPlan = instructionsBuilder.build(); return MigrationPlanDto.from(migrationPlan); } catch (BadUserRequestException e) { throw new InvalidRequestException(Status.BAD_REQUEST, e, e.getMessage()); } }
protected MigrationPlanAssert assertGeneratedMigrationPlan(BpmnModelInstance sourceProcess, BpmnModelInstance targetProcess, boolean updateEventTriggers) { ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(sourceProcess); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(targetProcess); MigrationInstructionsBuilder migrationInstructionsBuilder = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapEqualActivities(); if (updateEventTriggers) { migrationInstructionsBuilder.updateEventTriggers(); } MigrationPlan migrationPlan = migrationInstructionsBuilder .build(); assertThat(migrationPlan) .hasSourceProcessDefinition(sourceProcessDefinition) .hasTargetProcessDefinition(targetProcessDefinition); return assertThat(migrationPlan); }
@Test public void testUpdateEventTrigger() { // given String newMessageName = "newMessage"; ProcessDefinition sourceProcessDefinition = migrationRule.deployAndGetDefinition(ProcessModels.ONE_RECEIVE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = migrationRule.deployAndGetDefinition(modify(ProcessModels.ONE_RECEIVE_TASK_PROCESS) .renameMessage("Message", newMessageName) ); ProcessInstance processInstance = runtimeService.startProcessInstanceById(sourceProcessDefinition.getId()); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapEqualActivities() .updateEventTriggers() .build(); Batch batch = runtimeService.newMigration(migrationPlan) .processInstanceIds(Collections.singletonList(processInstance.getId())) .executeAsync(); helper.executeSeedJob(batch); // when helper.executeJobs(batch); // then the message event subscription's event name was changed EventSubscription eventSubscription = runtimeService.createEventSubscriptionQuery().singleResult(); assertEquals(newMessageName, eventSubscription.getEventName()); }
public MigrationPlanDto generateMigrationPlan(MigrationPlanGenerationDto generationDto) { RuntimeService runtimeService = processEngine.getRuntimeService(); String sourceProcessDefinitionId = generationDto.getSourceProcessDefinitionId(); String targetProcessDefinitionId = generationDto.getTargetProcessDefinitionId(); try { MigrationInstructionsBuilder instructionsBuilder = runtimeService.createMigrationPlan(sourceProcessDefinitionId, targetProcessDefinitionId) .mapEqualActivities(); if (generationDto.isUpdateEventTriggers()) { instructionsBuilder = instructionsBuilder.updateEventTriggers(); } MigrationPlan migrationPlan = instructionsBuilder.build(); return MigrationPlanDto.from(migrationPlan); } catch (BadUserRequestException e) { throw new InvalidRequestException(Status.BAD_REQUEST, e, e.getMessage()); } }
protected MigrationPlanAssert assertGeneratedMigrationPlan(BpmnModelInstance sourceProcess, BpmnModelInstance targetProcess, boolean updateEventTriggers) { ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(sourceProcess); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(targetProcess); MigrationInstructionsBuilder migrationInstructionsBuilder = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapEqualActivities(); if (updateEventTriggers) { migrationInstructionsBuilder.updateEventTriggers(); } MigrationPlan migrationPlan = migrationInstructionsBuilder .build(); assertThat(migrationPlan) .hasSourceProcessDefinition(sourceProcessDefinition) .hasTargetProcessDefinition(targetProcessDefinition); return assertThat(migrationPlan); }
@Test public void testUpdateEventTrigger() { // given String newMessageName = "newMessage"; ProcessDefinition sourceProcessDefinition = migrationRule.deployAndGetDefinition(ProcessModels.ONE_RECEIVE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = migrationRule.deployAndGetDefinition(modify(ProcessModels.ONE_RECEIVE_TASK_PROCESS) .renameMessage("Message", newMessageName) ); ProcessInstance processInstance = runtimeService.startProcessInstanceById(sourceProcessDefinition.getId()); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapEqualActivities() .updateEventTriggers() .build(); Batch batch = runtimeService.newMigration(migrationPlan) .processInstanceIds(Collections.singletonList(processInstance.getId())) .executeAsync(); helper.executeSeedJob(batch); // when helper.executeJobs(batch); // then the message event subscription's event name was changed EventSubscription eventSubscription = runtimeService.createEventSubscriptionQuery().singleResult(); assertEquals(newMessageName, eventSubscription.getEventName()); }