org.camunda.bpm.engine.impl.migration
Class MigrateProcessInstanceCmd

java.lang.Object
  extended by org.camunda.bpm.engine.impl.migration.AbstractMigrationCmd<Void>
      extended by org.camunda.bpm.engine.impl.migration.MigrateProcessInstanceCmd
All Implemented Interfaces:
Command<Void>

public class MigrateProcessInstanceCmd
extends AbstractMigrationCmd<Void>

How migration works:

  1. Validate migration instructions.
  2. Delete activity instances that are not going to be migrated, invoking execution listeners and io mappings. This is performed in a bottom-up fashion in the activity instance tree and ensures that the "upstream" tree is always consistent with respect to the old process definition.
  3. Migrate and create activity instances. Creation invokes execution listeners and io mappings. This is performed in a top-down fashion in the activity instance tree and ensures that the "upstream" tree is always consistent with respect to the new process definition.

Author:
Thorben Lindhauer

Field Summary
protected static MigrationLogger LOGGER
           
protected  boolean writeOperationLog
           
 
Fields inherited from class org.camunda.bpm.engine.impl.migration.AbstractMigrationCmd
executionBuilder
 
Constructor Summary
MigrateProcessInstanceCmd(MigrationPlanExecutionBuilderImpl migrationPlanExecutionBuilder, boolean writeOperationLog)
           
 
Method Summary
protected  Set<MigratingScopeInstance> collectLeafInstances(MigratingProcessInstance migratingProcessInstance)
           
protected  void deleteUnmappedActivityInstances(MigratingProcessInstance migratingProcessInstance)
          delete unmapped instances in a bottom-up fashion (similar to deleteCascade and regular BPMN execution)
protected  void ensureOperationAllowed(CommandContext commandContext, ExecutionEntity processInstance, ProcessDefinitionEntity targetProcessDefinition)
           
protected  void ensureProcessInstanceExist(String processInstanceId, ExecutionEntity processInstance)
           
protected  void ensureSameProcessDefinition(ExecutionEntity processInstance, String processDefinitionId)
           
 Void execute(CommandContext commandContext)
           
protected
<T> void
executeInContext(Runnable runnable, ProcessDefinitionEntity contextDefinition)
           
 Void migrateProcessInstance(CommandContext commandContext, String processInstanceId, MigrationPlan migrationPlan, ProcessDefinitionEntity targetProcessDefinition)
           
protected  void migrateProcessInstance(MigratingProcessInstance migratingProcessInstance)
          Migrate activity instances to their new activities and process definition.
protected  MigratingActivityInstanceValidationReportImpl validateActivityInstance(MigratingActivityInstance migratingActivityInstance, MigratingProcessInstance migratingProcessInstance, List<MigratingActivityInstanceValidator> migratingActivityInstanceValidators)
           
protected  void validateCompensateSubscriptionInstance(MigratingCompensationEventSubscriptionInstance eventSubscriptionInstance, MigratingProcessInstance migratingProcessInstance, List<MigratingCompensationInstanceValidator> migratingTransitionInstanceValidators, MigratingActivityInstanceValidationReportImpl instanceReport)
           
protected  void validateEventScopeInstance(MigratingEventScopeInstance eventScopeInstance, MigratingProcessInstance migratingProcessInstance, List<MigratingCompensationInstanceValidator> migratingTransitionInstanceValidators, MigratingActivityInstanceValidationReportImpl instanceReport)
           
protected  void validateInstructions(CommandContext commandContext, MigratingProcessInstance migratingProcessInstance, MigratingProcessInstanceValidationReportImpl processInstanceReport)
           
protected  MigratingTransitionInstanceValidationReportImpl validateTransitionInstance(MigratingTransitionInstance migratingTransitionInstance, MigratingProcessInstance migratingProcessInstance, List<MigratingTransitionInstanceValidator> migratingTransitionInstanceValidators)
           
 
Methods inherited from class org.camunda.bpm.engine.impl.migration.AbstractMigrationCmd
checkAuthorizations, collectProcessInstanceIds, getProcessDefinition, resolveSourceProcessDefinition, resolveTargetProcessDefinition, writeUserOperationLog
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOGGER

protected static final MigrationLogger LOGGER

writeOperationLog

protected boolean writeOperationLog
Constructor Detail

MigrateProcessInstanceCmd

public MigrateProcessInstanceCmd(MigrationPlanExecutionBuilderImpl migrationPlanExecutionBuilder,
                                 boolean writeOperationLog)
Method Detail

execute

public Void execute(CommandContext commandContext)

migrateProcessInstance

public Void migrateProcessInstance(CommandContext commandContext,
                                   String processInstanceId,
                                   MigrationPlan migrationPlan,
                                   ProcessDefinitionEntity targetProcessDefinition)

executeInContext

protected <T> void executeInContext(Runnable runnable,
                                    ProcessDefinitionEntity contextDefinition)

deleteUnmappedActivityInstances

protected void deleteUnmappedActivityInstances(MigratingProcessInstance migratingProcessInstance)
delete unmapped instances in a bottom-up fashion (similar to deleteCascade and regular BPMN execution)


collectLeafInstances

protected Set<MigratingScopeInstance> collectLeafInstances(MigratingProcessInstance migratingProcessInstance)

validateInstructions

protected void validateInstructions(CommandContext commandContext,
                                    MigratingProcessInstance migratingProcessInstance,
                                    MigratingProcessInstanceValidationReportImpl processInstanceReport)

validateActivityInstance

protected MigratingActivityInstanceValidationReportImpl validateActivityInstance(MigratingActivityInstance migratingActivityInstance,
                                                                                 MigratingProcessInstance migratingProcessInstance,
                                                                                 List<MigratingActivityInstanceValidator> migratingActivityInstanceValidators)

validateTransitionInstance

protected MigratingTransitionInstanceValidationReportImpl validateTransitionInstance(MigratingTransitionInstance migratingTransitionInstance,
                                                                                     MigratingProcessInstance migratingProcessInstance,
                                                                                     List<MigratingTransitionInstanceValidator> migratingTransitionInstanceValidators)

validateEventScopeInstance

protected void validateEventScopeInstance(MigratingEventScopeInstance eventScopeInstance,
                                          MigratingProcessInstance migratingProcessInstance,
                                          List<MigratingCompensationInstanceValidator> migratingTransitionInstanceValidators,
                                          MigratingActivityInstanceValidationReportImpl instanceReport)

validateCompensateSubscriptionInstance

protected void validateCompensateSubscriptionInstance(MigratingCompensationEventSubscriptionInstance eventSubscriptionInstance,
                                                      MigratingProcessInstance migratingProcessInstance,
                                                      List<MigratingCompensationInstanceValidator> migratingTransitionInstanceValidators,
                                                      MigratingActivityInstanceValidationReportImpl instanceReport)

migrateProcessInstance

protected void migrateProcessInstance(MigratingProcessInstance migratingProcessInstance)
Migrate activity instances to their new activities and process definition. Creates new scope instances as necessary.


ensureProcessInstanceExist

protected void ensureProcessInstanceExist(String processInstanceId,
                                          ExecutionEntity processInstance)

ensureSameProcessDefinition

protected void ensureSameProcessDefinition(ExecutionEntity processInstance,
                                           String processDefinitionId)

ensureOperationAllowed

protected void ensureOperationAllowed(CommandContext commandContext,
                                      ExecutionEntity processInstance,
                                      ProcessDefinitionEntity targetProcessDefinition)


Copyright © 2017 camunda services GmbH. All rights reserved.