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]

Reply via email to