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
               
     
    Fields inherited from class org.camunda.bpm.engine.impl.migration.AbstractMigrationCmd
    executionBuilder
     
    Constructor Summary
    MigrateProcessInstanceCmd(MigrationPlanExecutionBuilderImpl migrationPlanExecutionBuilder)
               
     
    Method Summary
    protected  Set<MigratingActivityInstance> collectLeafActivityInstances(MigratingProcessInstance migratingProcessInstance)
               
    protected  List<ScopeImpl> collectNonExistingFlowScopes(ScopeImpl scope, MigratingActivityInstanceBranch migratingExecutionBranch)
              Returns a list of flow scopes from the given scope until a scope is reached that is already present in the given MigratingActivityInstanceBranch (exclusive).
    protected  void deleteUnmappedActivityInstances(MigratingProcessInstance migratingProcessInstance)
              delete unmapped instances in a bottom-up fashion (similar to deleteCascade and regular BPMN execution)
    protected  void ensureProcessInstanceExist(String processInstanceId, ExecutionEntity processInstance)
               
    protected  void ensureSameProcessDefinition(ExecutionEntity processInstance, String processDefinitionId)
               
     Void execute(CommandContext commandContext)
               
    protected  void instantiateScopes(MigratingActivityInstance ancestorScopeInstance, MigratingActivityInstanceBranch executionBranch, List<ScopeImpl> scopesToInstantiate)
              Creates scope executions for the given list of scopes; Registers these executions with the migrating execution branch;
    protected  void migrateActivityInstance(MigratingActivityInstanceBranch migratingInstanceBranch, MigratingActivityInstance migratingActivityInstance)
               
    protected  void migrateProcessElementInstance(MigratingProcessElementInstance migratingInstance, MigratingActivityInstanceBranch migratingInstanceBranch)
               
     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  void migrateTransitionInstance(MigratingActivityInstanceBranch migratingInstanceBranch, MigratingTransitionInstance migratingTransitionInstance)
               
    protected  MigratingActivityInstanceValidationReportImpl validateActivityInstance(MigratingActivityInstance migratingActivityInstance, MigratingProcessInstance migratingProcessInstance, List<MigratingActivityInstanceValidator> migratingActivityInstanceValidators)
               
    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, checkRequiredAuthorizations, collectProcessInstanceIds
     
    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
    Constructor Detail

    MigrateProcessInstanceCmd

    public MigrateProcessInstanceCmd(MigrationPlanExecutionBuilderImpl migrationPlanExecutionBuilder)
    Method Detail

    execute

    public Void execute(CommandContext commandContext)

    migrateProcessInstance

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

    deleteUnmappedActivityInstances

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


    collectLeafActivityInstances

    protected Set<MigratingActivityInstance> collectLeafActivityInstances(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)

    migrateProcessInstance

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


    migrateActivityInstance

    protected void migrateActivityInstance(MigratingActivityInstanceBranch migratingInstanceBranch,
                                           MigratingActivityInstance migratingActivityInstance)

    migrateTransitionInstance

    protected void migrateTransitionInstance(MigratingActivityInstanceBranch migratingInstanceBranch,
                                             MigratingTransitionInstance migratingTransitionInstance)

    migrateProcessElementInstance

    protected void migrateProcessElementInstance(MigratingProcessElementInstance migratingInstance,
                                                 MigratingActivityInstanceBranch migratingInstanceBranch)

    collectNonExistingFlowScopes

    protected List<ScopeImpl> collectNonExistingFlowScopes(ScopeImpl scope,
                                                           MigratingActivityInstanceBranch migratingExecutionBranch)
    Returns a list of flow scopes from the given scope until a scope is reached that is already present in the given MigratingActivityInstanceBranch (exclusive). The order of the returned list is top-down, i.e. the highest scope is the first element of the list.


    instantiateScopes

    protected void instantiateScopes(MigratingActivityInstance ancestorScopeInstance,
                                     MigratingActivityInstanceBranch executionBranch,
                                     List<ScopeImpl> scopesToInstantiate)
    Creates scope executions for the given list of scopes; Registers these executions with the migrating execution branch;

    Parameters:
    ancestorScopeInstance - the instance for the scope that the scopes to instantiate are subordinates to
    executionBranch - the migrating execution branch that manages scopes and their executions
    scopesToInstantiate - a list of hierarchical scopes to instantiate, ordered top-down

    ensureProcessInstanceExist

    protected void ensureProcessInstanceExist(String processInstanceId,
                                              ExecutionEntity processInstance)

    ensureSameProcessDefinition

    protected void ensureSameProcessDefinition(ExecutionEntity processInstance,
                                               String processDefinitionId)


    Copyright © 2016 camunda services GmbH. All rights reserved.