/** must be called before the activity member field or getActivity() is called */ protected void ensureActivityInitialized() { if ((activity == null) && (activityId != null)) { setActivity(getProcessDefinition().findActivity(activityId)); } }
@Override public void attachState() { representativeExecution = getParent().createAttachableExecution(); representativeExecution.setActivity((PvmActivity) sourceScope); representativeExecution.setActivityInstanceId(activityInstance.getId()); representativeExecution.setActive(activeState); }
@Override public void attachState() { representativeExecution = getParent().createAttachableExecution(); representativeExecution.setActivity((PvmActivity) sourceScope); representativeExecution.setActivityInstanceId(activityInstance.getId()); representativeExecution.setActive(activeState); }
/** must be called before the activity member field or getActivity() is called */ protected void ensureActivityInitialized() { if ((activity == null) && (activityId != null)) { setActivity(getProcessDefinition().findActivity(activityId)); } }
protected void becomeNonScope() { for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.detachState(); } ExecutionEntity parentExecution = representativeExecution.getParent(); parentExecution.setActivity(representativeExecution.getActivity()); parentExecution.setActivityInstanceId(representativeExecution.getActivityInstanceId()); representativeExecution.remove(); representativeExecution = parentExecution; for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.attachState(MigratingActivityInstance.this); } instanceBehavior = new MigratingNonScopeActivityInstanceBehavior(); }
@Override public void migrateState() { ExecutionEntity representativeExecution = resolveRepresentativeExecution(); representativeExecution.setProcessDefinition(targetScope.getProcessDefinition()); representativeExecution.setActivity((PvmActivity) targetScope); }
protected void becomeNonScope() { for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.detachState(); } ExecutionEntity parentExecution = representativeExecution.getParent(); parentExecution.setActivity(representativeExecution.getActivity()); parentExecution.setActivityInstanceId(representativeExecution.getActivityInstanceId()); representativeExecution.remove(); representativeExecution = parentExecution; for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.attachState(MigratingActivityInstance.this); } instanceBehavior = new MigratingNonScopeActivityInstanceBehavior(); }
@Override public void migrateState() { migratingEventSubscription.migrateState(); eventScopeExecution.setActivity((ActivityImpl) targetScope); eventScopeExecution.setProcessDefinition(targetScope.getProcessDefinition()); currentScope = targetScope; }
@Override public void remove(boolean skipCustomListeners, boolean skipIoMappings) { ExecutionEntity currentExecution = resolveRepresentativeExecution(); ExecutionEntity parentExecution = currentExecution.getParent(); currentExecution.setActivity((PvmActivity) sourceScope); currentExecution.setActivityInstanceId(activityInstance.getId()); currentExecution.deleteCascade("migration", skipCustomListeners, skipIoMappings); getParent().destroyAttachableExecution(parentExecution); setParent(null); for (MigratingTransitionInstance child : childTransitionInstances) { child.setParent(null); } for (MigratingActivityInstance child : childActivityInstances) { child.setParent(null); } for (MigratingEventScopeInstance child : childCompensationInstances) { child.setParent(null); } }
@Override public void migrateState() { migratingEventSubscription.migrateState(); eventScopeExecution.setActivity((ActivityImpl) targetScope); eventScopeExecution.setProcessDefinition(targetScope.getProcessDefinition()); currentScope = targetScope; }
@Override public void remove(boolean skipCustomListeners, boolean skipIoMappings) { ExecutionEntity currentExecution = resolveRepresentativeExecution(); ExecutionEntity parentExecution = currentExecution.getParent(); currentExecution.setActivity((PvmActivity) sourceScope); currentExecution.setActivityInstanceId(activityInstance.getId()); currentExecution.deleteCascade("migration", skipCustomListeners, skipIoMappings); getParent().destroyAttachableExecution(parentExecution); setParent(null); for (MigratingTransitionInstance child : childTransitionInstances) { child.setParent(null); } for (MigratingActivityInstance child : childActivityInstances) { child.setParent(null); } for (MigratingEventScopeInstance child : childCompensationInstances) { child.setParent(null); } }
@Override public void migrateState() { ExecutionEntity representativeExecution = resolveRepresentativeExecution(); representativeExecution.setProcessDefinition(targetScope.getProcessDefinition()); representativeExecution.setActivity((PvmActivity) targetScope); }
/** * When executing an async job for an activity wrapped in an miBody, set the execution to the * miBody except the wrapped activity is marked as async. * * Background: in <= 7.2 async jobs were created for the inner activity, although the * semantics are that they are executed before the miBody is entered */ public static void repairMultiInstanceAsyncJob(ExecutionEntity execution) { ActivityImpl activity = execution.getActivity(); if (!isAsync(activity) && isActivityWrappedInMultiInstanceBody(activity)) { execution.setActivity((ActivityImpl) activity.getFlowScope()); } }
/** * When executing an async job for an activity wrapped in an miBody, set the execution to the * miBody except the wrapped activity is marked as async. * * Background: in <= 7.2 async jobs were created for the inner activity, although the * semantics are that they are executed before the miBody is entered */ public static void repairMultiInstanceAsyncJob(ExecutionEntity execution) { ActivityImpl activity = execution.getActivity(); if (!isAsync(activity) && isActivityWrappedInMultiInstanceBody(activity)) { execution.setActivity((ActivityImpl) activity.getFlowScope()); } }
@Override public void detachState() { ExecutionEntity currentExecution = resolveRepresentativeExecution(); currentExecution.setActivity(null); currentExecution.leaveActivityInstance(); currentExecution.setActive(false); getParent().destroyAttachableExecution(currentExecution); }
@Override public void detachState() { ExecutionEntity currentExecution = resolveRepresentativeExecution(); currentExecution.setActivity(null); currentExecution.leaveActivityInstance(); currentExecution.setActive(false); getParent().destroyAttachableExecution(currentExecution); }
@Override public void migrateState() { ExecutionEntity currentExecution = resolveRepresentativeExecution(); currentExecution.setProcessDefinition(targetScope.getProcessDefinition()); currentExecution.setActivity((PvmActivity) targetScope); currentScope = targetScope; if (targetScope.isScope()) { becomeScope(); } migrateHistory(currentExecution); }
@Override public void migrateState() { ExecutionEntity currentExecution = resolveRepresentativeExecution(); currentExecution.setProcessDefinition(targetScope.getProcessDefinition()); currentExecution.setActivity((PvmActivity) targetScope); currentScope = targetScope; if (targetScope.isScope()) { becomeScope(); } migrateHistory(currentExecution); }
protected void becomeScope() { for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.detachState(); } ExecutionEntity currentExecution = resolveRepresentativeExecution(); currentExecution = currentExecution.createExecution(); ExecutionEntity parent = currentExecution.getParent(); parent.setActivity(null); if (!parent.isConcurrent()) { parent.leaveActivityInstance(); } representativeExecution = currentExecution; for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.attachState(MigratingActivityInstance.this); } instanceBehavior = new MigratingScopeActivityInstanceBehavior(); }
protected void becomeScope() { for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.detachState(); } ExecutionEntity currentExecution = resolveRepresentativeExecution(); currentExecution = currentExecution.createExecution(); ExecutionEntity parent = currentExecution.getParent(); parent.setActivity(null); if (!parent.isConcurrent()) { parent.leaveActivityInstance(); } representativeExecution = currentExecution; for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.attachState(MigratingActivityInstance.this); } instanceBehavior = new MigratingScopeActivityInstanceBehavior(); }