Skip to content

Commit

Permalink
Merge branch 'flowable6.x' of github.com:flowable/flowable-engine int…
Browse files Browse the repository at this point in the history
…o flowable-release-6.8.1
  • Loading branch information
tijsrademakers committed Jun 19, 2023
2 parents 80f23ca + 198e5a7 commit 459b86b
Show file tree
Hide file tree
Showing 20 changed files with 1,820 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ protected void doMigrateCaseInstance(CaseInstanceEntity caseInstance, CaseDefini
ChangePlanItemStateBuilderImpl changePlanItemStateBuilder = prepareChangeStateBuilder(caseInstance, caseDefinitionToMigrateTo, document, commandContext);

LOGGER.debug("Updating case definition reference of case root execution with id:'{}' to '{}'", caseInstance.getId(), caseDefinitionToMigrateTo.getId());
String originalCaseDefinitionId = caseInstance.getCaseDefinitionId();
caseInstance.setCaseDefinitionId(caseDefinitionToMigrateTo.getId());
caseInstance.setCaseDefinitionKey(caseDefinitionToMigrateTo.getKey());
caseInstance.setCaseDefinitionName(caseDefinitionToMigrateTo.getName());
Expand All @@ -217,7 +218,7 @@ protected void doMigrateCaseInstance(CaseInstanceEntity caseInstance, CaseDefini
.setRemoveWaitingForRepetitionPlanItemDefinitions(changePlanItemStateBuilder.getRemoveWaitingForRepetitionPlanItemDefinitions())
.setCaseVariables(document.getCaseInstanceVariables())
.setChildInstanceTaskVariables(document.getPlanItemLocalVariables());
doMovePlanItemState(caseInstanceChangeState, commandContext);
doMovePlanItemState(caseInstanceChangeState, originalCaseDefinitionId, commandContext);

LOGGER.debug("Updating case definition reference in plan item instances");
CommandContextUtil.getPlanItemInstanceEntityManager(commandContext).updatePlanItemInstancesCaseDefinitionId(caseInstance.getId(), caseDefinitionToMigrateTo.getId());
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
package org.flowable.cmmn.engine.impl.runtime;

import org.flowable.cmmn.engine.CmmnEngineConfiguration;
import org.flowable.cmmn.engine.impl.persistence.entity.CaseInstanceEntity;
import org.flowable.cmmn.engine.impl.persistence.entity.CaseInstanceEntityManager;
import org.flowable.cmmn.engine.impl.util.CommandContextUtil;
import org.flowable.cmmn.model.PlanItemDefinition;
import org.flowable.common.engine.api.FlowableException;
import org.flowable.common.engine.impl.interceptor.CommandContext;
Expand All @@ -35,6 +38,11 @@ public void movePlanItemInstanceState(ChangePlanItemStateBuilderImpl changePlanI
throw new FlowableException("Could not resolve case instance id");
}

CaseInstanceEntityManager caseInstanceEntityManager = CommandContextUtil.getCaseInstanceEntityManager(commandContext);
CaseInstanceEntity caseInstance = caseInstanceEntityManager.findById(caseInstanceId);

String originalCaseDefinitionId = caseInstance.getCaseDefinitionId();

CaseInstanceChangeState caseInstanceChangeState = new CaseInstanceChangeState()
.setCaseInstanceId(caseInstanceId)
.setActivatePlanItemDefinitions(changePlanItemStateBuilder.getActivatePlanItemDefinitions())
Expand All @@ -45,7 +53,7 @@ public void movePlanItemInstanceState(ChangePlanItemStateBuilderImpl changePlanI
.setCaseVariables(changePlanItemStateBuilder.getCaseVariables())
.setChildInstanceTaskVariables(changePlanItemStateBuilder.getChildInstanceTaskVariables());

doMovePlanItemState(caseInstanceChangeState, commandContext);
doMovePlanItemState(caseInstanceChangeState, originalCaseDefinitionId, commandContext);
}

@Override
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL"
xmlns:flowable="http://flowable.org/cmmn"
targetNamespace="http://flowable.org/cmmn">
<case id="testCase" name="Sentry On Part Test Case" flowable:initiatorVariableName="initiator">
<casePlanModel id="onecaseplanmodel1" name="Case plan model">
<planItem id="planItem1" name="Task 1" definitionRef="humanTask1"/>
<planItem id="planItem2" name="Task 2" definitionRef="humanTask2"/>
<planItem id="planItem3" name="Task 3" definitionRef="humanTask3"/>
<sentry id="sentrycmmnExitSentry_1">
<planItemOnPart id="sentryOnPartcmmnExitSentry_1" sourceRef="planItem1">
<standardEvent>complete</standardEvent>
</planItemOnPart>
<planItemOnPart id="sentryOnPartcmmnExitSentry_2" sourceRef="planItem2">
<standardEvent>complete</standardEvent>
</planItemOnPart>
</sentry>
<humanTask id="humanTask1" name="Task 1" flowable:assignee="${initiator}"/>
<humanTask id="humanTask2" name="Task 2" flowable:assignee="${initiator}"/>
<humanTask id="humanTask3" name="Task 3" flowable:assignee="${initiator}"/>

<exitCriterion id="cmmnExitSentry_1" sentryRef="sentrycmmnExitSentry_1" />
</casePlanModel>
</case>
</definitions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL"
xmlns:flowable="http://flowable.org/cmmn"
targetNamespace="http://flowable.org/cmmn">
<case id="testCase" name="Sentry On Part Test Case" flowable:initiatorVariableName="initiator">
<casePlanModel id="onecaseplanmodel1" name="Case plan model">
<planItem id="planItem1" name="Task 1" definitionRef="humanTask1"/>
<planItem id="planItem2" name="Task 2" definitionRef="humanTask2"/>
<sentry id="sentrycmmnExitSentry_1">
<planItemOnPart id="sentryOnPartcmmnExitSentry_1" sourceRef="planItem1">
<standardEvent>complete</standardEvent>
</planItemOnPart>
<planItemOnPart id="sentryOnPartcmmnExitSentry_2" sourceRef="planItem2">
<standardEvent>complete</standardEvent>
</planItemOnPart>
</sentry>
<humanTask id="humanTask1" name="Task 1" flowable:assignee="${initiator}"/>
<humanTask id="humanTask2" name="Task 2" flowable:assignee="${initiator}"/>

<exitCriterion id="cmmnExitSentry_1" sentryRef="sentrycmmnExitSentry_1" />
</casePlanModel>
</case>
</definitions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL"
xmlns:flowable="http://flowable.org/cmmn"
targetNamespace="http://flowable.org/cmmn">
<case id="testCase" name="Sentry On Part Test Case" flowable:initiatorVariableName="initiator">
<casePlanModel id="onecaseplanmodel1" name="Case plan model">
<planItem id="planItem1" name="Task 1" definitionRef="humanTask1"/>
<planItem id="planItem2" name="Task 2" definitionRef="humanTask2"/>
<sentry id="sentrycmmnExitSentry_1">
<planItemOnPart id="sentryOnPart1cmmnExitSentry_1" sourceRef="planItem1">
<standardEvent>complete</standardEvent>
</planItemOnPart>
<planItemOnPart id="sentryOnPart2cmmnExitSentry_2" sourceRef="planItem2">
<standardEvent>complete</standardEvent>
</planItemOnPart>
</sentry>
<humanTask id="humanTask1" name="Task 1" flowable:assignee="${initiator}"/>
<humanTask id="humanTask2" name="Task 2" flowable:assignee="${initiator}"/>

<exitCriterion id="cmmnExitSentry_1" sentryRef="sentrycmmnExitSentry_1" />
</casePlanModel>
</case>
</definitions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL"
xmlns:flowable="http://flowable.org/cmmn"
targetNamespace="http://flowable.org/cmmn">
<case id="testCase" name="Sentry On Part Test Case" flowable:initiatorVariableName="initiator">
<casePlanModel id="onecaseplanmodel1" name="Case plan model">
<planItem id="planItem1" name="Task 1" definitionRef="humanTask1"/>
<planItem id="planItem2" name="Stage" definitionRef="expandedStage1">
<exitCriterion id="cmmnExitSentry_1" sentryRef="sentrycmmnExitSentry_1" />
</planItem>
<sentry id="sentrycmmnExitSentry_1">
<planItemOnPart id="sentryOnPartcmmnExitSentry_1" sourceRef="stagePlanItem1">
<standardEvent>complete</standardEvent>
</planItemOnPart>
<planItemOnPart id="sentryOnPartcmmnExitSentry_2" sourceRef="stagePlanItem2">
<standardEvent>complete</standardEvent>
</planItemOnPart>
</sentry>
<humanTask id="humanTask1" name="Task 1" flowable:assignee="${initiator}"/>
<stage id="expandedStage1">
<planItem id="stagePlanItem1" name="Stage task 1" definitionRef="stageHumanTask1" />
<planItem id="stagePlanItem2" name="Stage task 2" definitionRef="stageHumanTask2" />
<planItem id="stagePlanItem3" name="Stage task 3" definitionRef="stageHumanTask3" />
<humanTask id="stageHumanTask1" name="Stage task 1" flowable:assignee="${initiator}" />
<humanTask id="stageHumanTask2" name="Stage task 2" flowable:assignee="${initiator}" />
<humanTask id="stageHumanTask3" name="Stage task 3" flowable:assignee="${initiator}" />
</stage>
</casePlanModel>
</case>
</definitions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL"
xmlns:flowable="http://flowable.org/cmmn"
targetNamespace="http://flowable.org/cmmn">
<case id="testCase" name="Sentry On Part Test Case" flowable:initiatorVariableName="initiator">
<casePlanModel id="onecaseplanmodel1" name="Case plan model">
<planItem id="planItem1" name="Task 1" definitionRef="humanTask1"/>
<planItem id="planItem2" name="Stage" definitionRef="expandedStage1">
<exitCriterion id="cmmnExitSentry_1" sentryRef="sentrycmmnExitSentry_1" />
</planItem>
<sentry id="sentrycmmnExitSentry_1">
<planItemOnPart id="sentryOnPartcmmnExitSentry_1" sourceRef="stagePlanItem1">
<standardEvent>complete</standardEvent>
</planItemOnPart>
<planItemOnPart id="sentryOnPartcmmnExitSentry_2" sourceRef="stagePlanItem2">
<standardEvent>complete</standardEvent>
</planItemOnPart>
</sentry>
<humanTask id="humanTask1" name="Task 1" flowable:assignee="${initiator}"/>
<stage id="expandedStage1" name="Stage">
<planItem id="stagePlanItem1" name="Stage task 1" definitionRef="stageHumanTask1" />
<planItem id="stagePlanItem2" name="Stage task 2" definitionRef="stageHumanTask2" />
<humanTask id="stageHumanTask1" name="Stage task 1" flowable:assignee="${initiator}" />
<humanTask id="stageHumanTask2" name="Stage task 2" flowable:assignee="${initiator}" />
</stage>
</casePlanModel>
</case>
</definitions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL"
xmlns:flowable="http://flowable.org/cmmn"
targetNamespace="http://flowable.org/cmmn">
<case id="testCase" name="Sentry If Part Test Case" flowable:initiatorVariableName="initiator">
<casePlanModel id="onecaseplanmodel1" name="Case plan model">
<planItem id="planItem1" name="Task 1" definitionRef="humanTask1"/>
<planItem id="planItem2" name="Task 2" definitionRef="humanTask2">
<entryCriterion id="cmmnEntrySentry_1" sentryRef="sentrycmmnEntrySentry"></entryCriterion>
</planItem>
<planItem id="planItem3" name="Task 3" definitionRef="humanTask3"/>
<sentry id="sentrycmmnEntrySentry">
<ifPart id="ifpart1">
<condition><![CDATA[${vars:equals(var1, 'test')}]]></condition>
</ifPart>
</sentry>
<humanTask id="humanTask1" name="Task 1" flowable:assignee="${initiator}"/>
<humanTask id="humanTask2" name="Task 2" flowable:assignee="${initiator}"/>
<humanTask id="humanTask3" name="Task 3" flowable:assignee="${initiator}"/>
</casePlanModel>
</case>
</definitions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL"
xmlns:flowable="http://flowable.org/cmmn"
targetNamespace="http://flowable.org/cmmn">
<case id="testCase" name="Sentry If Part Test Case" flowable:initiatorVariableName="initiator">
<casePlanModel id="onecaseplanmodel1" name="Case plan model">
<planItem id="planItem1" name="Task 1" definitionRef="humanTask1"/>
<planItem id="planItem2" name="Task 2" definitionRef="humanTask2">
<entryCriterion id="cmmnEntrySentry_1" sentryRef="sentrycmmnEntrySentry"></entryCriterion>
</planItem>
<sentry id="sentrycmmnEntrySentry">
<ifPart id="ifpart1">
<condition><![CDATA[${vars:equals(var1, 'test')}]]></condition>
</ifPart>
</sentry>
<humanTask id="humanTask1" name="Task 1" flowable:assignee="${initiator}"/>
<humanTask id="humanTask2" name="Task 2" flowable:assignee="${initiator}"/>
</casePlanModel>
</case>
</definitions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL"
xmlns:flowable="http://flowable.org/cmmn"
targetNamespace="http://flowable.org/cmmn">
<case id="testCase" name="Sentry If Part Test Case" flowable:initiatorVariableName="initiator">
<casePlanModel id="onecaseplanmodel1" name="Case plan model">
<planItem id="planItem1" name="Task 1" definitionRef="humanTask1"/>
<planItem id="planItem2" name="Task 2" definitionRef="humanTask2">
<entryCriterion id="cmmnEntrySentry_1" sentryRef="sentrycmmnEntrySentry"></entryCriterion>
</planItem>
<sentry id="sentrycmmnEntrySentry">
<planItemOnPart id="sentryOnPartcmmnEntrySentry_2" sourceRef="planItem1">
<standardEvent>complete</standardEvent>
</planItemOnPart>
<ifPart id="ifpart1">
<condition><![CDATA[${vars:equals(var1, 'test2')}]]></condition>
</ifPart>
</sentry>
<humanTask id="humanTask1" name="Task 1" flowable:assignee="${initiator}"/>
<humanTask id="humanTask2" name="Task 2" flowable:assignee="${initiator}"/>
</casePlanModel>
</case>
</definitions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL"
xmlns:flowable="http://flowable.org/cmmn"
targetNamespace="http://flowable.org/cmmn">
<case id="testCase" name="Sentry If Part Test Case" flowable:initiatorVariableName="initiator">
<casePlanModel id="onecaseplanmodel1" name="Case plan model">
<planItem id="planItem1" name="Task 1" definitionRef="humanTask1"/>
<planItem id="planItem2" name="Task 2" definitionRef="humanTask2">
<entryCriterion id="cmmnEntrySentry_1" sentryRef="sentrycmmnEntrySentry"></entryCriterion>
</planItem>
<planItem id="planItem3" name="Task 3" definitionRef="humanTask3"/>
<sentry id="sentrycmmnEntrySentry">
<planItemOnPart id="sentryOnPartcmmnEntrySentry_2" sourceRef="planItem1">
<standardEvent>complete</standardEvent>
</planItemOnPart>
<ifPart id="ifpart2">
<condition><![CDATA[${vars:equals(var1, 'test')}]]></condition>
</ifPart>
</sentry>
<humanTask id="humanTask1" name="Task 1" flowable:assignee="${initiator}"/>
<humanTask id="humanTask2" name="Task 2" flowable:assignee="${initiator}"/>
<humanTask id="humanTask3" name="Task 3" flowable:assignee="${initiator}"/>
</casePlanModel>
</case>
</definitions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL"
xmlns:flowable="http://flowable.org/cmmn"
targetNamespace="http://flowable.org/cmmn">
<case id="testCase" name="Sentry If Part Test Case" flowable:initiatorVariableName="initiator">
<casePlanModel id="onecaseplanmodel1" name="Case plan model">
<planItem id="planItem1" name="Task 1" definitionRef="humanTask1"/>
<planItem id="planItem2" name="Task 2" definitionRef="humanTask2">
<entryCriterion id="cmmnEntrySentry_1" sentryRef="sentrycmmnEntrySentry"></entryCriterion>
</planItem>
<sentry id="sentrycmmnEntrySentry">
<planItemOnPart id="sentryOnPartcmmnEntrySentry_2" sourceRef="planItem1">
<standardEvent>complete</standardEvent>
</planItemOnPart>
<ifPart id="ifpart1">
<condition><![CDATA[${vars:equals(var1, 'test')}]]></condition>
</ifPart>
</sentry>
<humanTask id="humanTask1" name="Task 1" flowable:assignee="${initiator}"/>
<humanTask id="humanTask2" name="Task 2" flowable:assignee="${initiator}"/>
</casePlanModel>
</case>
</definitions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL"
xmlns:flowable="http://flowable.org/cmmn"
targetNamespace="http://flowable.org/cmmn">
<case id="testCase" name="Sentry If Part Test Case" flowable:initiatorVariableName="initiator">
<casePlanModel id="onecaseplanmodel1" name="Case plan model">
<planItem id="planItem1" name="Task 1" definitionRef="humanTask1"/>
<planItem id="planItem2" name="Task 2" definitionRef="humanTask2">
<entryCriterion id="cmmnEntrySentry_1" sentryRef="sentrycmmnEntrySentry"></entryCriterion>
</planItem>
<sentry id="sentrycmmnEntrySentry" flowable:triggerMode="onEvent">
<planItemOnPart id="sentryOnPartcmmnEntrySentry_2" sourceRef="planItem1">
<standardEvent>complete</standardEvent>
</planItemOnPart>
<ifPart id="ifpart1">
<condition><![CDATA[${vars:equals(var1, 'test')}]]></condition>
</ifPart>
</sentry>
<humanTask id="humanTask1" name="Task 1" flowable:assignee="${initiator}"/>
<humanTask id="humanTask2" name="Task 2" flowable:assignee="${initiator}"/>
</casePlanModel>
</case>
</definitions>
Loading

0 comments on commit 459b86b

Please sign in to comment.