public boolean isExecutingScopeLeafActivity() { return isActive && getActivity() != null && getActivity().isScope() && activityInstanceId != null && !(getActivity().getActivityBehavior() instanceof CompositeActivityBehavior); }
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(); }
public boolean isExecutingScopeLeafActivity() { return isActive && getActivity() != null && getActivity().isScope() && activityInstanceId != null && !(getActivity().getActivityBehavior() instanceof CompositeActivityBehavior); }
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 boolean isDetached() { return resolveRepresentativeExecution().getActivity() == null; }
@Override public boolean isDetached() { return resolveRepresentativeExecution().getActivity() == null; }
protected void determineEndState(ExecutionEntity executionEntity, HistoricProcessInstanceEventEntity evt) { //determine state if (executionEntity.getActivity() != null) { evt.setState(HistoricProcessInstance.STATE_COMPLETED); } else if (executionEntity.getActivity() == null && executionEntity.isExternallyTerminated()) { evt.setState(HistoricProcessInstance.STATE_EXTERNALLY_TERMINATED); } else if (executionEntity.getActivity() == null && !executionEntity.isExternallyTerminated()) { evt.setState(HistoricProcessInstance.STATE_INTERNALLY_TERMINATED); } }
protected void determineEndState(ExecutionEntity executionEntity, HistoricProcessInstanceEventEntity evt) { //determine state if (executionEntity.getActivity() != null) { evt.setState(HistoricProcessInstance.STATE_COMPLETED); } else if (executionEntity.getActivity() == null && executionEntity.isExternallyTerminated()) { evt.setState(HistoricProcessInstance.STATE_EXTERNALLY_TERMINATED); } else if (executionEntity.getActivity() == null && !executionEntity.isExternallyTerminated()) { evt.setState(HistoricProcessInstance.STATE_INTERNALLY_TERMINATED); } }
@Override public void visit(ExecutionEntity obj) { if (!obj.getEventSubscriptions().isEmpty() && (obj.isInState(ActivityInstanceState.DEFAULT) || (!obj.getActivity().isScope()))) { // state is default or tree is compacted execs.add(obj); } } }).walkUntil();
@Override public void visit(ExecutionEntity obj) { if (!obj.getEventSubscriptions().isEmpty() && (obj.isInState(ActivityInstanceState.DEFAULT) || (!obj.getActivity().isScope()))) { // state is default or tree is compacted execs.add(obj); } } }).walkUntil();
@Override public ProcessInstanceStartContext getProcessInstanceStartContext() { if (isProcessInstanceExecution()) { if (startContext == null) { ActivityImpl activity = getActivity(); startContext = new ProcessInstanceStartContext(activity); } } return super.getProcessInstanceStartContext(); }
@Override public ProcessInstanceStartContext getProcessInstanceStartContext() { if (isProcessInstanceExecution()) { if (startContext == null) { ActivityImpl activity = getActivity(); startContext = new ProcessInstanceStartContext(activity); } } return super.getProcessInstanceStartContext(); }
protected boolean isAutoFireHistoryEvents() { // as long as the process instance is starting (i.e. before activity instance // of the selected initial (start event) is created), the variable scope should // not automatic fire history events for variable updates. // firing the events is triggered by the processInstanceStart context after // the initial activity has been initialized. The effect is that the activity instance id of the // historic variable instances will be the activity instance id of the start event. // if a variable is updated while the process instance is starting then the // update history event is lost and the updated value is handled as initial value. ActivityImpl currentActivity = getActivity(); return (startContext == null || !startContext.isDelayFireHistoricVariableEvents()) && (currentActivity == null || isActivityNoStartEvent(currentActivity) || isStartEventInValidStateOrNotAsync(currentActivity)); }
protected boolean isAutoFireHistoryEvents() { // as long as the process instance is starting (i.e. before activity instance // of the selected initial (start event) is created), the variable scope should // not automatic fire history events for variable updates. // firing the events is triggered by the processInstanceStart context after // the initial activity has been initialized. The effect is that the activity instance id of the // historic variable instances will be the activity instance id of the start event. // if a variable is updated while the process instance is starting then the // update history event is lost and the updated value is handled as initial value. ActivityImpl currentActivity = getActivity(); return (startContext == null || !startContext.isDelayFireHistoricVariableEvents()) && (currentActivity == null || isActivityNoStartEvent(currentActivity) || isStartEventInValidStateOrNotAsync(currentActivity)); }
public EventSubscriptionEntity(ExecutionEntity executionEntity, EventType eventType) { this(eventType); setExecution(executionEntity); setActivity(execution.getActivity()); this.processInstanceId = executionEntity.getProcessInstanceId(); this.tenantId = executionEntity.getTenantId(); }
public EventSubscriptionEntity(ExecutionEntity executionEntity, EventType eventType) { this(eventType); setExecution(executionEntity); setActivity(execution.getActivity()); this.processInstanceId = executionEntity.getProcessInstanceId(); this.tenantId = executionEntity.getTenantId(); }
/** * 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 execute(AsyncContinuationConfiguration configuration, ExecutionEntity execution, CommandContext commandContext, String tenantId) { LegacyBehavior.repairMultiInstanceAsyncJob(execution); PvmAtomicOperation atomicOperation = findMatchingAtomicOperation(configuration.getAtomicOperation()); ensureNotNull("Cannot process job with configuration " + configuration, "atomicOperation", atomicOperation); // reset transition id. String transitionId = configuration.getTransitionId(); if (transitionId != null) { PvmActivity activity = execution.getActivity(); TransitionImpl transition = (TransitionImpl) activity.findOutgoingTransition(transitionId); execution.setTransition(transition); } Context.getCommandInvocationContext() .performOperation(atomicOperation, execution); }
@Override public void execute(AsyncContinuationConfiguration configuration, ExecutionEntity execution, CommandContext commandContext, String tenantId) { LegacyBehavior.repairMultiInstanceAsyncJob(execution); PvmAtomicOperation atomicOperation = findMatchingAtomicOperation(configuration.getAtomicOperation()); ensureNotNull("Cannot process job with configuration " + configuration, "atomicOperation", atomicOperation); // reset transition id. String transitionId = configuration.getTransitionId(); if (transitionId != null) { PvmActivity activity = execution.getActivity(); TransitionImpl transition = (TransitionImpl) activity.findOutgoingTransition(transitionId); execution.setTransition(transition); } Context.getCommandInvocationContext() .performOperation(atomicOperation, execution); }