|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.camunda.bpm.engine.impl.pvm.runtime.LegacyBehavior
public class LegacyBehavior
This class encapsulates legacy runtime behavior for the process engine.
Since 7.3 the behavior of certain bpmn elements has changed slightly.
1. Some elements which did not used to be scopes are now scopes:
WARNING: Legacy behavior must not be turned off as a rolling upgrade. All process engines connected to the database need to be shut down and then the legacy behavior needs to be turned off.
| Field Summary | |
|---|---|
protected boolean |
isConcurrentScopeExecutionEnabled
|
protected boolean |
isEventSubprocessScope
|
protected boolean |
isSequentialMiSubprocessScope
|
| Constructor Summary | |
|---|---|
LegacyBehavior(boolean isOn)
|
|
| Method Summary | |
|---|---|
void |
cancelConcurrentScope(PvmExecutionImpl execution,
PvmActivity cancellingActivity)
Cancels an execution which is both concurrent and scope. |
Map<ScopeImpl,PvmExecutionImpl> |
createActivityExecutionMapping(List<PvmExecutionImpl> scopeExecutions,
List<ScopeImpl> scopes)
Creates an activity execution mapping, when the scope hierarchy and the execution hierarchy are out of sync. |
void |
createConcurrentScope(PvmExecutionImpl execution)
Creates a concurrent scope. |
void |
destroyConcurrentScope(PvmExecutionImpl execution)
Destroys a concurrent scope Execution. |
protected void |
ensureConcurrentScope(PvmExecutionImpl execution)
|
boolean |
eventSubprocessComplete(ActivityExecution scopeExecution)
|
boolean |
eventSubprocessConcurrentChildExecutionEnded(ActivityExecution scopeExecution,
ActivityExecution endedExecution)
|
static LegacyBehavior |
get()
|
PvmExecutionImpl |
getScopeExecution(ScopeImpl scope,
Map<ScopeImpl,PvmExecutionImpl> activityExecutionMapping)
In case the process instance was migrated from a previous version, activities which are now parsed as scopes do not have scope executions. |
boolean |
isConcurrentScopeExecutionEnabled()
|
boolean |
isEventSubprocessScope()
|
protected boolean |
isLegacyBehaviorRequired(ActivityExecution scopeExecution,
boolean isLegacyBehaviorTurnedOff)
This method |
boolean |
isSequentialMiSubprocessScope()
|
ScopeImpl |
normalizeSecondNonScope(ScopeImpl scope)
Usually you will find this line after a line which does the exact same thing as the implementation of this method. |
void |
pruneConcurrentScope(PvmExecutionImpl execution)
Prunes a concurrent scope. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected boolean isEventSubprocessScope
protected boolean isSequentialMiSubprocessScope
protected boolean isConcurrentScopeExecutionEnabled
| Constructor Detail |
|---|
public LegacyBehavior(boolean isOn)
| Method Detail |
|---|
public static LegacyBehavior get()
public boolean isEventSubprocessScope()
public boolean isSequentialMiSubprocessScope()
public boolean isConcurrentScopeExecutionEnabled()
public void createConcurrentScope(PvmExecutionImpl execution)
isConcurrentScopeExecutionEnabled()
is (ie. the process engine is configured to perform legacy behavior).
See: javadoc of this class for note about concurrent scopes.
execution - public void pruneConcurrentScope(PvmExecutionImpl execution)
isConcurrentScopeExecutionEnabled()
This is an inverse operation to createConcurrentScope(PvmExecutionImpl).
See: javadoc of this class for note about concurrent scopes.
execution -
public void cancelConcurrentScope(PvmExecutionImpl execution,
PvmActivity cancellingActivity)
isConcurrentScopeExecutionEnabled()
See: javadoc of this class for note about concurrent scopes.
execution - the concurrent scope execution to destroypublic void destroyConcurrentScope(PvmExecutionImpl execution)
isConcurrentScopeExecutionEnabled()
See: javadoc of this class for note about concurrent scopes.
execution - the execution to destroypublic boolean eventSubprocessComplete(ActivityExecution scopeExecution)
public boolean eventSubprocessConcurrentChildExecutionEnded(ActivityExecution scopeExecution,
ActivityExecution endedExecution)
public ScopeImpl normalizeSecondNonScope(ScopeImpl scope)
The line you found above the line from which this method is called will always be necessary as long as we allow non-scope activities. What this method is doing is normalizing the fact that there may be even two non-scope activities executed by the same scope execution.
This can only happen if isEventSubprocessScope() is false or isSequentialMiSubprocessScope()
is false;
protected boolean isLegacyBehaviorRequired(ActivityExecution scopeExecution,
boolean isLegacyBehaviorTurnedOff)
scopeExecution - isLegacyBehaviorTurnedOff -
public PvmExecutionImpl getScopeExecution(ScopeImpl scope,
Map<ScopeImpl,PvmExecutionImpl> activityExecutionMapping)
targetScope - activityExecutionMapping -
protected void ensureConcurrentScope(PvmExecutionImpl execution)
public Map<ScopeImpl,PvmExecutionImpl> createActivityExecutionMapping(List<PvmExecutionImpl> scopeExecutions,
List<ScopeImpl> scopes)
scopeExecutions - scopes -
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||