This is an automated email from the ASF dual-hosted git repository.
egonzalez pushed a commit to branch main
in repository
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git
The following commit(s) were added to refs/heads/main by this push:
new 3585edf4b7 [incubator-kie-issues-1303] BoundaryEvents v7 support
(#3549)
3585edf4b7 is described below
commit 3585edf4b75c7223fe8d3a616441845001a49069
Author: Enrique <[email protected]>
AuthorDate: Thu Jun 20 08:39:59 2024 +0200
[incubator-kie-issues-1303] BoundaryEvents v7 support (#3549)
---
.../jbpm/compiler/canonical/ProcessVisitor.java | 1 +
.../NodeLeftCountDownProcessEventListener.java | 19 +----
...java => NodeTriggeredProcessEventListener.java} | 19 +++--
.../instance/node/HumanTaskNodeInstance.java | 2 -
.../BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 | 4 +-
...ltHandlerWithoutErrorCodeWithStructureRef.bpmn2 | 2 +-
...andlerWithoutErrorCodeWithoutStructureRef.bpmn2 | 2 +-
...ndaryErrorEventSubProcessExceptionMapping.bpmn2 | 2 +-
.../BPMN2-BoundarySignalWithNameEventOnTask.bpmn} | 2 +-
.../bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2} | 4 +-
.../BPMN2-BoundaryTimerCycleISOVariable.bpmn2} | 2 +-
.../bpmn2/flow}/BPMN2-BooleanStructureRef.bpmn2 | 2 +-
.../bpmn2/flow}/BPMN2-BrokenStructureRef.bpmn2 | 2 +-
.../org/jbpm/bpmn2/BrokenStructureRefTest.java | 2 +-
.../test/java/org/jbpm/bpmn2/ErrorEventTest.java | 92 ++++++++++++++++------
.../java/org/jbpm/bpmn2/IntermediateEventTest.java | 54 +++++++++++--
.../jbpm/bpmn2/structureref/StructureRefTest.java | 80 ++++++++-----------
...ltHandlerWithoutErrorCodeWithStructureRef.bpmn2 | 2 +-
...andlerWithoutErrorCodeWithoutStructureRef.bpmn2 | 2 +-
...daryErrorEventSubProcessExceptionMapping.bpmn2} | 2 +-
.../BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 | 0
21 files changed, 176 insertions(+), 121 deletions(-)
diff --git
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java
index ee0ac4e086..39605eafc5 100644
---
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java
+++
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java
@@ -310,6 +310,7 @@ public class ProcessVisitor extends AbstractVisitor {
new StringLiteralExpr(signalName),
faultCode != null ? new StringLiteralExpr(faultCode) :
new NullLiteralExpr(),
faultVariable.<Expression>
map(StringLiteralExpr::new).orElse(new NullLiteralExpr())));
+
});
}
}
diff --git
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeLeftCountDownProcessEventListener.java
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeLeftCountDownProcessEventListener.java
index f2eb0bae10..92e5fb4a53 100644
---
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeLeftCountDownProcessEventListener.java
+++
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeLeftCountDownProcessEventListener.java
@@ -20,21 +20,17 @@ package org.jbpm.test.util;
import org.kie.api.event.process.ProcessNodeLeftEvent;
-public class NodeLeftCountDownProcessEventListener extends
NodeCountDownProcessEventListener {
+public class NodeLeftCountDownProcessEventListener extends
DefaultCountDownProcessEventListener {
- private boolean reactOnBeforeNodeLeft = false;
+ private String nodeName;
public NodeLeftCountDownProcessEventListener() {
}
public NodeLeftCountDownProcessEventListener(String nodeName, int threads)
{
- super(nodeName, threads);
- }
-
- public NodeLeftCountDownProcessEventListener(String nodeName, int threads,
boolean reactOnBeforeNodeLeft) {
- super(nodeName, threads);
- this.reactOnBeforeNodeLeft = reactOnBeforeNodeLeft;
+ super(threads);
+ this.nodeName = nodeName;
}
@Override
@@ -43,11 +39,4 @@ public class NodeLeftCountDownProcessEventListener extends
NodeCountDownProcessE
countDown();
}
}
-
- @Override
- public void beforeNodeLeft(ProcessNodeLeftEvent event) {
- if (reactOnBeforeNodeLeft &&
nodeName.equals(event.getNodeInstance().getNodeName())) {
- countDown();
- }
- }
}
\ No newline at end of file
diff --git
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeCountDownProcessEventListener.java
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeTriggeredProcessEventListener.java
similarity index 69%
rename from
jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeCountDownProcessEventListener.java
rename to
jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeTriggeredProcessEventListener.java
index 5b9aa106d2..5de91c0eec 100644
---
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeCountDownProcessEventListener.java
+++
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeTriggeredProcessEventListener.java
@@ -18,23 +18,26 @@
*/
package org.jbpm.test.util;
-import java.util.concurrent.CountDownLatch;
+import org.kie.api.event.process.ProcessNodeTriggeredEvent;
-public class NodeCountDownProcessEventListener extends
DefaultCountDownProcessEventListener {
+public class NodeTriggeredProcessEventListener extends
DefaultCountDownProcessEventListener {
protected String nodeName;
- public NodeCountDownProcessEventListener() {
+ public NodeTriggeredProcessEventListener() {
}
- public NodeCountDownProcessEventListener(String nodeName, int threads) {
- super(threads);
- this.nodeName = nodeName;
+ @Override
+ public void afterNodeTriggered(ProcessNodeTriggeredEvent event) {
+ if (nodeName.equals(event.getNodeInstance().getNodeName())) {
+ countDown();
+ }
}
- public void reset(String nodeName, int threads) {
+ public NodeTriggeredProcessEventListener(String nodeName, int threads) {
+ super(threads);
this.nodeName = nodeName;
- this.latch = new CountDownLatch(threads);
}
+
}
\ No newline at end of file
diff --git
a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/HumanTaskNodeInstance.java
b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/HumanTaskNodeInstance.java
index e9738f7f4a..3c1bc2a341 100755
---
a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/HumanTaskNodeInstance.java
+++
b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/HumanTaskNodeInstance.java
@@ -215,14 +215,12 @@ public class HumanTaskNodeInstance extends
WorkItemNodeInstance {
@Override
protected void addWorkItemListener() {
super.addWorkItemListener();
- getProcessInstance().addEventListener(TIMER_TRIGGERED_EVENT, this,
false);
getProcessInstance().addEventListener(WORK_ITEM_TRANSITION, this,
false);
}
@Override
protected void removeWorkItemListener() {
super.removeWorkItemListener();
- getProcessInstance().removeEventListener(TIMER_TRIGGERED_EVENT, this,
false);
getProcessInstance().removeEventListener(WORK_ITEM_TRANSITION, this,
false);
}
diff --git
a/jbpm/jbpm-tests/src/test/resources/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2
similarity index 97%
copy from
jbpm/jbpm-tests/src/test/resources/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2
copy to
jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2
index 68d9d161fe..4d6825d15c 100755
---
a/jbpm/jbpm-tests/src/test/resources/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2
@@ -19,7 +19,7 @@
-->
<definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:_1="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:tns="http://www.jboss.org/drools"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL [...]
- <error id="Error_1"
errorCode="org.jbpm.bpmn2.handler.WorkItemHandlerRuntimeException"/>
+ <error id="Error_1" errorCode="java.lang.RuntimeException"/>
<itemDefinition id="_sItem" structureRef="String"/>
<itemDefinition id="_2_InMessageType" structureRef="java.lang.String"/>
<message id="_2_InMessage" itemRef="_2_InMessageType" name="_2_InMessage"/>
@@ -28,7 +28,7 @@
<inMessageRef>_2_InMessage</inMessageRef>
</operation>
</interface>
- <process id="BPMN2-ErrorBoundaryEventOnServiceTask" tns:version="1"
tns:packageName="defaultPackage" tns:adHoc="false" name="Default Process"
isExecutable="true">
+ <process id="ErrorBoundaryEventOnServiceTask" tns:version="1"
tns:packageName="org.jbpm.bpmn2.error" tns:adHoc="false" name="Default Process"
isExecutable="true">
<property id="s" itemSubjectRef="_sItem"/>
<startEvent id="StartEvent_1" name="start">
<outgoing>SequenceFlow_4</outgoing>
diff --git
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
similarity index 98%
copy from
jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
copy to
jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
index 5f18c6cfeb..877c96ebe2 100755
---
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
@@ -26,7 +26,7 @@
<bpmn2:itemDefinition id="ItemDefinition_2" structureRef="Boolean"/>
<bpmn2:itemDefinition id="ItemDefinition_3"
structureRef="java.lang.Exception"/>
<bpmn2:error id="Error_1" name="Error_1" structureRef="ItemDefinition_3"/>
- <bpmn2:process id="com.sample.bpmn.hello" tns:version="1"
tns:packageName="defaultPackage" tns:adHoc="false" name="Hello World"
isExecutable="true" processType="Private">
+ <bpmn2:process
id="BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef"
tns:version="1" tns:packageName="org.jbpm.bpmn2.event" tns:adHoc="false"
name="Hello World" isExecutable="true" processType="Private">
<bpmn2:extensionElements>
<tns:import name="java.lang.IllegalArgumentException"/>
</bpmn2:extensionElements>
diff --git
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
similarity index 98%
copy from
jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
copy to
jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
index 0d29ebbcaa..470d99feab 100755
---
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
@@ -26,7 +26,7 @@
<bpmn2:itemDefinition id="ItemDefinition_2" structureRef="Boolean"/>
<bpmn2:itemDefinition id="ItemDefinition_3"
structureRef="java.lang.Exception"/>
<bpmn2:error id="Error_1" name="Error_1"/>
- <bpmn2:process id="com.sample.bpmn.hello" tns:version="1"
tns:packageName="defaultPackage" tns:adHoc="false" name="Hello World"
isExecutable="true" processType="Private">
+ <bpmn2:process
id="BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef"
tns:version="1" tns:packageName="org.jbpm.bpmn2.event" tns:adHoc="false"
name="Hello World" isExecutable="true" processType="Private">
<bpmn2:extensionElements>
<tns:import name="java.lang.IllegalArgumentException"/>
</bpmn2:extensionElements>
diff --git
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2
similarity index 98%
rename from
jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2
rename to
jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2
index 0d29ebbcaa..5c77c5460d 100755
---
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2
@@ -26,7 +26,7 @@
<bpmn2:itemDefinition id="ItemDefinition_2" structureRef="Boolean"/>
<bpmn2:itemDefinition id="ItemDefinition_3"
structureRef="java.lang.Exception"/>
<bpmn2:error id="Error_1" name="Error_1"/>
- <bpmn2:process id="com.sample.bpmn.hello" tns:version="1"
tns:packageName="defaultPackage" tns:adHoc="false" name="Hello World"
isExecutable="true" processType="Private">
+ <bpmn2:process id="BoundaryErrorEventSubProcessExceptionMapping"
tns:version="1" tns:packageName="org.jbpm.bpmn2.event" tns:adHoc="false"
name="Hello World" isExecutable="true" processType="Private">
<bpmn2:extensionElements>
<tns:import name="java.lang.IllegalArgumentException"/>
</bpmn2:extensionElements>
diff --git
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTask.bpmn
similarity index 98%
rename from
jbpm/jbpm-tests/src/test/resources/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn
rename to
jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTask.bpmn
index dda36a9bac..f459e7f296 100755
---
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTask.bpmn
@@ -21,7 +21,7 @@
<definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:tns="http://www.jboss.org/drools"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
id="Definition" expressionLanguage="http://www.mvel.org/2.0"
typeLanguage="http://www.java.com/javaTypes">
<signal id="_521345a9-fb57-3f52-917f-27be6e0673ee" name="MySignal"/>
<itemDefinition id="_xItem" structureRef="String" />
- <process id="BoundarySignalOnTask" tns:packageName="defaultPackage"
name="BoundarySignalOnTask" isExecutable="true" processType="Private">
+ <process id="BoundarySignalWithNameEventOnTask"
tns:packageName="org.jbpm.bpmn2.event" name="BoundarySignalOnTask"
isExecutable="true" processType="Private">
<property id="x" itemSubjectRef="_xItem"/>
<startEvent id="_1" name="StartProcess">
<outgoing>SequenceFlow_1</outgoing>
diff --git
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCron.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2
similarity index 97%
rename from
jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCron.bpmn2
rename to
jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2
index ae50cb8a52..6ad7b85484 100755
--- a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCron.bpmn2
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2
@@ -21,7 +21,7 @@
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.omg.org/bpmn20"
xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:bpsim="http://www.bpsim.org/schemas/1.0"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:drools="http://www.jboss.org/drools" id="_erIygJZ7EeSDh8PHobjSSA"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/201 [...]
<bpmn2:itemDefinition id="_cronStrItem" structureRef="String"/>
<bpmn2:itemDefinition id="_completeItem" structureRef="String"/>
- <bpmn2:process id="boundaryTimerCycleCron" drools:packageName="org.jbpm"
drools:version="1.0" name="Test_Cron" isExecutable="true">
+ <bpmn2:process id="BoundaryTimerCycleISO"
drools:packageName="org.jbpm.bpmn2.event" drools:version="1.0" name="Test_Cron"
isExecutable="true">
<bpmn2:property id="cronStr" itemSubjectRef="_cronStrItem"/>
<bpmn2:property id="complete" itemSubjectRef="_completeItem"/>
<bpmn2:startEvent id="processStartEvent" drools:bgcolor="#9acd32"
drools:selectable="true" name="">
@@ -69,7 +69,7 @@
<bpmn2:boundaryEvent id="_8B5EE6E3-73EE-477D-8CC5-96F7C01DA7F0"
drools:bgcolor="#f5deb3" drools:selectable="true" drools:bordercolor="#a0522d"
drools:boundaryca="false" name="Send Update Timer"
attachedToRef="_77A94B54-8B7C-4F8A-84EE-C1D310A343A6" cancelActivity="false">
<bpmn2:outgoing>_1206D165-6704-439E-99E6-7A02989A8C3C</bpmn2:outgoing>
<bpmn2:timerEventDefinition id="_erIyiJZ7EeSDh8PHobjSSA">
- <bpmn2:timeCycle xsi:type="bpmn2:tFormalExpression"
id="_erIyiZZ7EeSDh8PHobjSSA" language="cron">0/1 * * * * ?</bpmn2:timeCycle>
+ <bpmn2:timeCycle xsi:type="bpmn2:tFormalExpression"
id="_erIyiZZ7EeSDh8PHobjSSA">R3/PT0.1S</bpmn2:timeCycle>
</bpmn2:timerEventDefinition>
</bpmn2:boundaryEvent>
</bpmn2:process>
diff --git
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCronVariable.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISOVariable.bpmn2
similarity index 99%
rename from
jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCronVariable.bpmn2
rename to
jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISOVariable.bpmn2
index a82655cc6d..7b63f6cdcc 100755
---
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCronVariable.bpmn2
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISOVariable.bpmn2
@@ -21,7 +21,7 @@
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.omg.org/bpmn20"
xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:bpsim="http://www.bpsim.org/schemas/1.0"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:drools="http://www.jboss.org/drools" id="_erIygJZ7EeSDh8PHobjSSA"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/201 [...]
<bpmn2:itemDefinition id="_cronStrItem" structureRef="String"/>
<bpmn2:itemDefinition id="_completeItem" structureRef="String"/>
- <bpmn2:process id="boundaryTimerCycleCron" drools:packageName="org.jbpm"
drools:version="1.0" name="Test_Cron" isExecutable="true">
+ <bpmn2:process id="BoundaryTimerCycleISOVariable"
drools:packageName="org.jbpm.bpmn2.event" drools:version="1.0" name="Test_Cron"
isExecutable="true">
<bpmn2:property id="cronStr" itemSubjectRef="_cronStrItem"/>
<bpmn2:property id="complete" itemSubjectRef="_completeItem"/>
<bpmn2:startEvent id="processStartEvent" drools:bgcolor="#9acd32"
drools:selectable="true" name="">
diff --git a/jbpm/jbpm-tests/src/test/resources/BPMN2-BooleanStructureRef.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BooleanStructureRef.bpmn2
similarity index 96%
rename from jbpm/jbpm-tests/src/test/resources/BPMN2-BooleanStructureRef.bpmn2
rename to
jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BooleanStructureRef.bpmn2
index efd2d260d9..f0c429f79d 100755
--- a/jbpm/jbpm-tests/src/test/resources/BPMN2-BooleanStructureRef.bpmn2
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BooleanStructureRef.bpmn2
@@ -32,7 +32,7 @@
<itemDefinition id="_testItem" structureRef="Boolean" />
- <process processType="Private" isExecutable="true" id="StructureRef"
name="StructureRef" tns:packageName="defaultPackage" >
+ <process processType="Private" isExecutable="true" id="BooleanStructureRef"
name="StructureRef" tns:packageName="org.jbpm.bpmn2.flow" >
<!-- process variables -->
<property id="test" itemSubjectRef="_testItem"/>
diff --git a/jbpm/jbpm-tests/src/test/resources/BPMN2-BrokenStructureRef.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BrokenStructureRef.bpmn2
similarity index 98%
rename from jbpm/jbpm-tests/src/test/resources/BPMN2-BrokenStructureRef.bpmn2
rename to
jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BrokenStructureRef.bpmn2
index 14605f2e86..b96b93bb7a 100755
--- a/jbpm/jbpm-tests/src/test/resources/BPMN2-BrokenStructureRef.bpmn2
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BrokenStructureRef.bpmn2
@@ -32,7 +32,7 @@
<itemDefinition id="_testItem" structureRef="org.jbpm.bpmn2.objects.Person"
/>
- <process processType="Private" isExecutable="true" id="BrokenStructureRef"
name="BrokenStructureRef" tns:packageName="defaultPackage" >
+ <process processType="Private" isExecutable="true" id="BrokenStructureRef"
name="BrokenStructureRef" tns:packageName="org.jbpm.bpmn2.flow" >
<!-- process variables -->
<property id="test" itemSubjectRef="_testItem"/>
diff --git
a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/BrokenStructureRefTest.java
b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/BrokenStructureRefTest.java
index cb3ac9e3a3..3207102510 100755
--- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/BrokenStructureRefTest.java
+++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/BrokenStructureRefTest.java
@@ -31,7 +31,7 @@ public class BrokenStructureRefTest {
@Test
public void testProcessWithBrokenItemDefinitionUri() throws Exception {
- String inputBpmn =
getClass().getResource("/BPMN2-BrokenStructureRef.bpmn2").getPath();
+ String inputBpmn =
getClass().getResource("/org/jbpm/bpmn2/flow/BPMN2-BrokenStructureRef.bpmn2").getPath();
XmlProcessDumper dumper =
XmlProcessDumperFactory.getXmlProcessDumperFactoryService().newXmlProcessDumper();
assertThat(dumper).isNotNull();
String processXml = new
String(Files.readAllBytes(Paths.get(inputBpmn)));
diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java
b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java
index 6930c8557b..48374b5bd7 100755
--- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java
+++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java
@@ -19,15 +19,23 @@
package org.jbpm.bpmn2;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jbpm.bpmn2.error.EndErrorModel;
import org.jbpm.bpmn2.error.EndErrorProcess;
+import org.jbpm.bpmn2.error.ErrorBoundaryEventOnServiceTaskModel;
+import org.jbpm.bpmn2.error.ErrorBoundaryEventOnServiceTaskProcess;
import org.jbpm.bpmn2.error.ErrorVariableModel;
import org.jbpm.bpmn2.error.ErrorVariableProcess;
-import org.jbpm.bpmn2.handler.ServiceTaskHandler;
+import
org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefModel;
+import
org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefProcess;
+import
org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefModel;
+import
org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefProcess;
+import org.jbpm.bpmn2.event.BoundaryErrorEventSubProcessExceptionMappingModel;
+import
org.jbpm.bpmn2.event.BoundaryErrorEventSubProcessExceptionMappingProcess;
import org.jbpm.bpmn2.handler.SignallingTaskHandlerDecorator;
import org.jbpm.bpmn2.objects.ExceptionOnPurposeHandler;
import org.jbpm.bpmn2.objects.MyError;
@@ -44,6 +52,7 @@ import org.junit.jupiter.api.Test;
import org.kie.api.event.process.ProcessNodeLeftEvent;
import org.kie.kogito.Application;
import
org.kie.kogito.handlers.AlwaysThrowingComponent_throwException__8DA0CD88_0714_43C1_B492_A70FADE42361_Handler;
+import
org.kie.kogito.handlers.HelloService_helloException_ServiceTask_2_Handler;
import
org.kie.kogito.handlers.LoggingComponent_logException__E5B0E78B_0112_42F4_89FF_0DCC4FCB6BCD_Handler;
import org.kie.kogito.internal.process.event.DefaultKogitoProcessEventListener;
import org.kie.kogito.internal.process.event.KogitoProcessEventListener;
@@ -220,24 +229,36 @@ public class ErrorEventTest extends JbpmBpmn2TestCase {
@Test
public void testErrorBoundaryEventOnServiceTask() throws Exception {
- kruntime =
createKogitoProcessRuntime("BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2");
+ Application app = ProcessTestHelper.newApplication();
+ EventTrackerProcessListener listener = new
EventTrackerProcessListener();
+ ProcessTestHelper.registerProcessEventListener(app, listener);
TestWorkItemHandler handler = new TestWorkItemHandler();
+ ProcessTestHelper.registerHandler(app, "Human Task", handler);
+ ProcessTestHelper.registerHandler(app,
"org.jbpm.bpmn2.objects.HelloService_helloException_ServiceTask_2_Handler", new
HelloService_helloException_ServiceTask_2_Handler());
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task", handler);
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Service
Task", new ServiceTaskHandler());
- Map<String, Object> params = new HashMap<>();
- params.put("s", "test");
- KogitoProcessInstance processInstance =
kruntime.startProcess("BPMN2-ErrorBoundaryEventOnServiceTask", params);
+ org.kie.kogito.process.Process<ErrorBoundaryEventOnServiceTaskModel>
definition = ErrorBoundaryEventOnServiceTaskProcess.newProcess(app);
+
+ ErrorBoundaryEventOnServiceTaskModel model = definition.createModel();
+ model.setS("test");
+
org.kie.kogito.process.ProcessInstance<ErrorBoundaryEventOnServiceTaskModel>
instance = definition.createInstance(model);
+ instance.start();
List<KogitoWorkItem> workItems = handler.getWorkItems();
assertThat(workItems).hasSize(1);
-
kruntime.getKogitoWorkItemManager().completeWorkItem(workItems.get(0).getStringId(),
null);
+ ProcessTestHelper.completeWorkItem(instance, "john",
Collections.emptyMap());
- assertProcessInstanceFinished(processInstance, kruntime);
- assertNodeTriggered(processInstance.getStringId(), "start", "split",
"User Task", "Service task error attached", "end0",
- "Script Task", "error2");
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
+
+ assertThat(listener.tracked())
+ .anyMatch(ProcessTestHelper.triggered("start"))
+ .anyMatch(ProcessTestHelper.triggered("split"))
+ .anyMatch(ProcessTestHelper.triggered("User Task"))
+ .anyMatch(ProcessTestHelper.triggered("Service task error
attached"))
+ .anyMatch(ProcessTestHelper.triggered("end0"))
+ .anyMatch(ProcessTestHelper.triggered("Script Task"))
+ .anyMatch(ProcessTestHelper.triggered("error2"))
+ .noneMatch(ProcessTestHelper.triggered("end"));
- assertNotNodeTriggered(processInstance.getStringId(), "end");
}
@Test
@@ -394,35 +415,56 @@ public class ErrorEventTest extends JbpmBpmn2TestCase {
@Test
public void
testBoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef() throws
Exception {
- kruntime =
createKogitoProcessRuntime("BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2");
+ Application app = ProcessTestHelper.newApplication();
+ EventTrackerProcessListener listener = new
EventTrackerProcessListener();
ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task", handler);
+ ProcessTestHelper.registerHandler(app, "Human Task", handler);
+ ProcessTestHelper.registerProcessEventListener(app, listener);
+
org.kie.kogito.process.Process<BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefModel>
definition =
+
BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefProcess.newProcess(app);
+
org.kie.kogito.process.ProcessInstance<BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefModel>
instance = definition.createInstance(definition.createModel());
+ instance.start();
- KogitoProcessInstance processInstance =
kruntime.startProcess("com.sample.bpmn.hello");
+ assertThat(listener.tracked())
+ .anyMatch(ProcessTestHelper.triggered("Start"))
+ .anyMatch(ProcessTestHelper.triggered("User Task"))
+ .anyMatch(ProcessTestHelper.left("MyBoundaryErrorEvent"));
- assertNodeTriggered(processInstance.getStringId(), "Start", "User
Task", "MyBoundaryErrorEvent");
}
@Test
public void
testBoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef()
throws Exception {
- kruntime =
createKogitoProcessRuntime("BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2");
- ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task", handler);
- KogitoProcessInstance processInstance =
kruntime.startProcess("com.sample.bpmn.hello");
+ Application app = ProcessTestHelper.newApplication();
+ EventTrackerProcessListener listener = new
EventTrackerProcessListener();
+ ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler();
+ ProcessTestHelper.registerHandler(app, "Human Task", handler);
+ ProcessTestHelper.registerProcessEventListener(app, listener);
+
org.kie.kogito.process.Process<BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefModel>
definition =
+
BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefProcess.newProcess(app);
+
org.kie.kogito.process.ProcessInstance<BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefModel>
instance = definition.createInstance(definition.createModel());
+ instance.start();
- assertNodeTriggered(processInstance.getStringId(), "Start", "User
Task", "MyBoundaryErrorEvent");
+ assertThat(listener.tracked())
+ .anyMatch(ProcessTestHelper.triggered("Start"))
+ .anyMatch(ProcessTestHelper.triggered("User Task"))
+ .anyMatch(ProcessTestHelper.left("MyBoundaryErrorEvent"));
}
@Test
public void testBoundaryErrorEventSubProcessExceptionMapping() throws
Exception {
- kruntime =
createKogitoProcessRuntime("BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2");
+ Application app = ProcessTestHelper.newApplication();
ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task", handler);
+ ProcessTestHelper.registerHandler(app, "Human Task", handler);
+
org.kie.kogito.process.Process<BoundaryErrorEventSubProcessExceptionMappingModel>
definition =
+
BoundaryErrorEventSubProcessExceptionMappingProcess.newProcess(app);
+
org.kie.kogito.process.ProcessInstance<BoundaryErrorEventSubProcessExceptionMappingModel>
instance = definition.createInstance(definition.createModel());
+ instance.start();
- KogitoProcessInstance processInstance =
kruntime.startProcess("com.sample.bpmn.hello");
+ assertThat(instance.variables().getVar1())
+ .isNotNull()
+ .isInstanceOf(RuntimeException.class);
- assertThat(getProcessVarValue(processInstance,
"var1")).isEqualTo("java.lang.RuntimeException");
}
@Test
diff --git
a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java
b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java
index 0276694491..3ea81f5e6f 100755
--- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java
+++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java
@@ -21,6 +21,7 @@ package org.jbpm.bpmn2;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -32,6 +33,12 @@ import java.util.concurrent.atomic.AtomicBoolean;
import
org.jbpm.bpmn2.activity.BoundarySignalEventOnTaskWithTransformationModel;
import
org.jbpm.bpmn2.activity.BoundarySignalEventOnTaskWithTransformationProcess;
+import org.jbpm.bpmn2.event.BoundarySignalWithNameEventOnTaskModel;
+import org.jbpm.bpmn2.event.BoundarySignalWithNameEventOnTaskProcess;
+import org.jbpm.bpmn2.event.BoundaryTimerCycleISOModel;
+import org.jbpm.bpmn2.event.BoundaryTimerCycleISOProcess;
+import org.jbpm.bpmn2.event.BoundaryTimerCycleISOVariableModel;
+import org.jbpm.bpmn2.event.BoundaryTimerCycleISOVariableProcess;
import org.jbpm.bpmn2.handler.ReceiveTaskHandler;
import org.jbpm.bpmn2.handler.SendTaskHandler;
import org.jbpm.bpmn2.intermediate.EventSubprocessErrorSignalEmbeddedModel;
@@ -128,6 +135,34 @@ public class IntermediateEventTest extends
JbpmBpmn2TestCase {
* TESTS!
*/
+ @Test
+ public void testBoundaryTimerCycleISO() {
+ Application app = ProcessTestHelper.newApplication();
+ NodeLeftCountDownProcessEventListener listener = new
NodeLeftCountDownProcessEventListener("Send Update Timer", 3);
+ ProcessTestHelper.registerProcessEventListener(app, listener);
+ org.kie.kogito.process.Process<BoundaryTimerCycleISOModel> definition
= BoundaryTimerCycleISOProcess.newProcess(app);
+ org.kie.kogito.process.ProcessInstance<BoundaryTimerCycleISOModel>
instance = definition.createInstance(definition.createModel());
+ instance.start();
+ listener.waitTillCompleted();
+ ProcessTestHelper.completeWorkItem(instance, "john",
Collections.emptyMap());
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
+ }
+
+ @Test
+ public void testBoundaryTimerCycleISOVariable() {
+ Application app = ProcessTestHelper.newApplication();
+ NodeLeftCountDownProcessEventListener listener = new
NodeLeftCountDownProcessEventListener("Send Update Timer", 3);
+ ProcessTestHelper.registerProcessEventListener(app, listener);
+ org.kie.kogito.process.Process<BoundaryTimerCycleISOVariableModel>
definition = BoundaryTimerCycleISOVariableProcess.newProcess(app);
+ BoundaryTimerCycleISOVariableModel model = definition.createModel();
+ model.setCronStr("R3/PT0.1S");
+
org.kie.kogito.process.ProcessInstance<BoundaryTimerCycleISOVariableModel>
instance = definition.createInstance(model);
+ instance.start();
+ listener.waitTillCompleted();
+ ProcessTestHelper.completeWorkItem(instance, "john",
Collections.emptyMap());
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
+ }
+
@Test
public void testSignalBoundaryEvent() throws Exception {
kruntime = createKogitoProcessRuntime(
@@ -239,15 +274,18 @@ public class IntermediateEventTest extends
JbpmBpmn2TestCase {
@Test
public void testSignalBoundaryEventOnTaskWithSignalName() throws Exception
{
- kruntime =
createKogitoProcessRuntime("BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn");
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- new TestWorkItemHandler());
-
kruntime.getProcessEventManager().addEventListener(LOGGING_EVENT_LISTENER);
- KogitoProcessInstance processInstance = kruntime
- .startProcess("BoundarySignalOnTask");
- kruntime.signalEvent("MySignal", "value");
- assertProcessInstanceFinished(processInstance, kruntime);
+ Application app = ProcessTestHelper.newApplication();
+
+ ProcessTestHelper.registerHandler(app, "Human Task", new
TestWorkItemHandler());
+ ProcessTestHelper.registerProcessEventListener(app,
LOGGING_EVENT_LISTENER);
+ org.kie.kogito.process.Process<BoundarySignalWithNameEventOnTaskModel>
definition =
+ BoundarySignalWithNameEventOnTaskProcess.newProcess(app);
+
org.kie.kogito.process.ProcessInstance<BoundarySignalWithNameEventOnTaskModel>
instance = definition.createInstance(definition.createModel());
+ instance.start();
+
+ instance.send(Sig.of("MySignal", "value"));
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
}
diff --git
a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java
b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java
index fad2e7fd61..8042b5f97a 100755
---
a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java
+++
b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java
@@ -24,6 +24,8 @@ import java.util.HashMap;
import java.util.Map;
import org.jbpm.bpmn2.JbpmBpmn2TestCase;
+import org.jbpm.bpmn2.flow.BooleanStructureRefModel;
+import org.jbpm.bpmn2.flow.BooleanStructureRefProcess;
import org.jbpm.bpmn2.flow.DefaultObjectStructureRefModel;
import org.jbpm.bpmn2.flow.DefaultObjectStructureRefProcess;
import org.jbpm.bpmn2.flow.FloatStructureRefModel;
@@ -34,12 +36,12 @@ import org.jbpm.bpmn2.flow.ObjectStructureRefModel;
import org.jbpm.bpmn2.flow.ObjectStructureRefProcess;
import org.jbpm.bpmn2.objects.Person;
import org.jbpm.bpmn2.objects.TestWorkItemHandler;
-import org.jbpm.process.core.context.variable.VariableScope;
import org.jbpm.process.core.datatype.impl.coverter.TypeConverterRegistry;
import org.jbpm.test.utils.ProcessTestHelper;
import org.junit.jupiter.api.Test;
import org.kie.kogito.Application;
import org.kie.kogito.internal.process.runtime.KogitoProcessInstance;
+import org.kie.kogito.process.bpmn2.BpmnVariables;
import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
@@ -70,20 +72,19 @@ public class StructureRefTest extends JbpmBpmn2TestCase {
@Test
public void testBooleanStructureRef() throws Exception {
- kruntime =
createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2");
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
- KogitoProcessInstance processInstance =
kruntime.startProcess("StructureRef");
-
assertThat(processInstance.getState()).isEqualTo(KogitoProcessInstance.STATE_ACTIVE);
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<BooleanStructureRefModel> definition =
BooleanStructureRefProcess.newProcess(app);
- Map<String, Object> res = new HashMap<>();
- res.put("testHT", "true");
- kruntime.getKogitoWorkItemManager().completeWorkItem(
- workItemHandler.getWorkItem().getStringId(), res);
+ org.kie.kogito.process.ProcessInstance<BooleanStructureRefModel>
instance = definition.createInstance(definition.createModel());
+ instance.start();
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ACTIVE);
- assertProcessInstanceCompleted(processInstance.getStringId(),
kruntime);
+ ProcessTestHelper.completeWorkItem(instance, "john",
Collections.singletonMap("testHT", "true"));
+
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
}
@Test
@@ -182,29 +183,29 @@ public class StructureRefTest extends JbpmBpmn2TestCase {
@Test
public void testNotExistingVarBooleanStructureRefOnStart() throws
Exception {
- kruntime =
createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2");
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
-
- Map<String, Object> params = new HashMap<>();
- params.put("not existing", "invalid boolean");
-
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() ->
kruntime.startProcess("StructureRef", params));
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<BooleanStructureRefModel> definition =
BooleanStructureRefProcess.newProcess(app);
+ org.kie.kogito.Model model =
BpmnVariables.create(Collections.singletonMap("not existing", "invalid
boolean"));
+ org.kie.kogito.process.ProcessInstance<? extends org.kie.kogito.Model>
instance = definition.createInstance(model);
+ assertThat(instance.variables().toMap()).doesNotContainKey("non
existing");
}
@Test
public void testInvalidBooleanStructureRefOnStart() throws Exception {
- kruntime =
createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2");
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<BooleanStructureRefModel> definition =
BooleanStructureRefProcess.newProcess(app);
+ org.kie.kogito.Model model =
BpmnVariables.create(Collections.singletonMap("test", "invalid boolean"));
- Map<String, Object> params = new HashMap<>();
- params.put("test", "invalid boolean");
-
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() ->
kruntime.startProcess("StructureRef", params));
+
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> {
+ org.kie.kogito.process.ProcessInstance<? extends
org.kie.kogito.Model> instance = definition.createInstance(model);
+ });
}
@Test
@@ -234,38 +235,21 @@ public class StructureRefTest extends JbpmBpmn2TestCase {
@Test
public void testInvalidBooleanStructureRefOnStartVerifyErrorMsg() throws
Exception {
- kruntime =
createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2");
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<BooleanStructureRefModel> definition =
BooleanStructureRefProcess.newProcess(app);
+ org.kie.kogito.Model model =
BpmnVariables.create(Collections.singletonMap("test", "invalid boolean"));
+
try {
- Map<String, Object> params = new HashMap<>();
- params.put("test", "invalid boolean");
- kruntime.startProcess("StructureRef", params);
+ definition.createInstance(model);
} catch (IllegalArgumentException e) {
- assertThat(e.getMessage()).isEqualTo("Variable 'test' has
incorrect data type expected:java.lang.Boolean actual:java.lang.String");
+ assertThat(e.getMessage()).isEqualTo("Can not set
java.lang.Boolean field org.jbpm.bpmn2.flow.BooleanStructureRefModel.test to
java.lang.String");
}
}
- @Test
- public void testInvalidBooleanStructureRefOnStartWithDisabledCheck()
throws Exception {
- // Temporarily disable check for variables strict that is enabled by
default for tests
- VariableScope.setVariableStrictOption(false);
- kruntime =
createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2");
-
- TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
-
- Map<String, Object> params = new HashMap<>();
- params.put("test", "invalid boolean");
- kruntime.startProcess("StructureRef", params);
- // enable it back for other tests
- VariableScope.setVariableStrictOption(true);
- }
-
@Test
public void testNotExistingBooleanStructureRefOnWIComplete() throws
Exception {
String wrongDataOutput = "not existing";
diff --git
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
similarity index 98%
rename from
jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
rename to
jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
index 5f18c6cfeb..877c96ebe2 100755
---
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
+++
b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2
@@ -26,7 +26,7 @@
<bpmn2:itemDefinition id="ItemDefinition_2" structureRef="Boolean"/>
<bpmn2:itemDefinition id="ItemDefinition_3"
structureRef="java.lang.Exception"/>
<bpmn2:error id="Error_1" name="Error_1" structureRef="ItemDefinition_3"/>
- <bpmn2:process id="com.sample.bpmn.hello" tns:version="1"
tns:packageName="defaultPackage" tns:adHoc="false" name="Hello World"
isExecutable="true" processType="Private">
+ <bpmn2:process
id="BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef"
tns:version="1" tns:packageName="org.jbpm.bpmn2.event" tns:adHoc="false"
name="Hello World" isExecutable="true" processType="Private">
<bpmn2:extensionElements>
<tns:import name="java.lang.IllegalArgumentException"/>
</bpmn2:extensionElements>
diff --git
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
similarity index 98%
copy from
jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
copy to
jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
index 0d29ebbcaa..470d99feab 100755
---
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
+++
b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
@@ -26,7 +26,7 @@
<bpmn2:itemDefinition id="ItemDefinition_2" structureRef="Boolean"/>
<bpmn2:itemDefinition id="ItemDefinition_3"
structureRef="java.lang.Exception"/>
<bpmn2:error id="Error_1" name="Error_1"/>
- <bpmn2:process id="com.sample.bpmn.hello" tns:version="1"
tns:packageName="defaultPackage" tns:adHoc="false" name="Hello World"
isExecutable="true" processType="Private">
+ <bpmn2:process
id="BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef"
tns:version="1" tns:packageName="org.jbpm.bpmn2.event" tns:adHoc="false"
name="Hello World" isExecutable="true" processType="Private">
<bpmn2:extensionElements>
<tns:import name="java.lang.IllegalArgumentException"/>
</bpmn2:extensionElements>
diff --git
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2
similarity index 98%
rename from
jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
rename to
jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2
index 0d29ebbcaa..5c77c5460d 100755
---
a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2
+++
b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2
@@ -26,7 +26,7 @@
<bpmn2:itemDefinition id="ItemDefinition_2" structureRef="Boolean"/>
<bpmn2:itemDefinition id="ItemDefinition_3"
structureRef="java.lang.Exception"/>
<bpmn2:error id="Error_1" name="Error_1"/>
- <bpmn2:process id="com.sample.bpmn.hello" tns:version="1"
tns:packageName="defaultPackage" tns:adHoc="false" name="Hello World"
isExecutable="true" processType="Private">
+ <bpmn2:process id="BoundaryErrorEventSubProcessExceptionMapping"
tns:version="1" tns:packageName="org.jbpm.bpmn2.event" tns:adHoc="false"
name="Hello World" isExecutable="true" processType="Private">
<bpmn2:extensionElements>
<tns:import name="java.lang.IllegalArgumentException"/>
</bpmn2:extensionElements>
diff --git
a/jbpm/jbpm-tests/src/test/resources/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2
b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2
similarity index 100%
rename from
jbpm/jbpm-tests/src/test/resources/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2
rename to
jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]