Skip to content

Commit 2f99cd0

Browse files
committed
[incubator-kie-issues-1131] v7 migration to code generation
1 parent 4cd44dc commit 2f99cd0

File tree

3 files changed

+78
-35
lines changed

3 files changed

+78
-35
lines changed

jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ActivityTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
import java.util.stream.Collectors;
3232

3333
import org.drools.compiler.rule.builder.PackageBuildContext;
34+
import org.jbpm.bpmn2.activity.DataOutputAssignmentCustomExpressionLangModel;
35+
import org.jbpm.bpmn2.activity.DataOutputAssignmentCustomExpressionLangProcess;
3436
import org.jbpm.bpmn2.activity.ScriptTaskModel;
3537
import org.jbpm.bpmn2.activity.ScriptTaskProcess;
3638
import org.jbpm.bpmn2.activity.ScriptTaskWithIOModel;
@@ -89,6 +91,8 @@
8991
import org.jbpm.bpmn2.subprocess.CallActivityWithBoundaryEventProcess;
9092
import org.jbpm.bpmn2.subprocess.CallActivityWithIOexpressionModel;
9193
import org.jbpm.bpmn2.subprocess.CallActivityWithIOexpressionProcess;
94+
import org.jbpm.bpmn2.subprocess.ErrorsBetweenProcessModel;
95+
import org.jbpm.bpmn2.subprocess.ErrorsBetweenProcessProcess;
9296
import org.jbpm.bpmn2.subprocess.InputMappingUsingValueModel;
9397
import org.jbpm.bpmn2.subprocess.InputMappingUsingValueProcess;
9498
import org.jbpm.bpmn2.subprocess.MainGroupAssignmentModel;
@@ -125,6 +129,7 @@
125129
import org.jbpm.test.util.ProcessCompletedCountDownProcessEventListener;
126130
import org.jbpm.test.utils.EventTrackerProcessListener;
127131
import org.jbpm.test.utils.ProcessTestHelper;
132+
import org.jbpm.workflow.core.WorkflowProcess;
128133
import org.jbpm.workflow.core.impl.DataAssociation;
129134
import org.jbpm.workflow.core.impl.DataDefinition;
130135
import org.jbpm.workflow.core.node.ActionNode;
@@ -168,6 +173,7 @@
168173
import org.kie.kogito.internal.process.runtime.KogitoWorkItem;
169174
import org.kie.kogito.internal.process.runtime.KogitoWorkflowProcessInstance;
170175
import org.kie.kogito.process.ProcessInstance;
176+
import org.kie.kogito.process.impl.AbstractProcess;
171177
import org.kie.kogito.process.workitems.InternalKogitoWorkItem;
172178

173179
import static org.assertj.core.api.Assertions.assertThat;

jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/CompensationTest.java

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import org.jbpm.bpmn2.compensation.BookingModel;
2828
import org.jbpm.bpmn2.compensation.BookingProcess;
2929
import org.jbpm.bpmn2.compensation.CancelResourceProcess;
30+
import org.jbpm.bpmn2.compensation.InSubSubProcessModel;
31+
import org.jbpm.bpmn2.compensation.InSubSubProcessProcess;
3032
import org.jbpm.bpmn2.compensation.IntermediateThrowEventModel;
3133
import org.jbpm.bpmn2.compensation.IntermediateThrowEventProcess;
3234
import org.jbpm.bpmn2.compensation.ParallelOrderedCompensationIntermediateThrowEventModel;
@@ -195,22 +197,36 @@ public void orderedCompensation() {
195197

196198
@Test
197199
public void compensationInSubSubProcesses() throws Exception {
198-
kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/compensation/BPMN2-InSubSubProcess.bpmn2");
200+
Application app = ProcessTestHelper.newApplication();
201+
199202
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
200-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
201-
Map<String, Object> params = new HashMap<>();
202-
params.put("x", "0");
203-
KogitoProcessInstance processInstance = kruntime.startProcess("InSubSubProcess", params);
203+
ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
204204

205-
kruntime.signalEvent("Compensation", "_C-2", processInstance.getStringId());
205+
org.kie.kogito.process.Process<InSubSubProcessModel> definition = InSubSubProcessProcess.newProcess(app);
206+
InSubSubProcessModel model = definition.createModel();
207+
model.setX("0");
206208

207-
kruntime.getKogitoWorkItemManager().completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);
208-
kruntime.getKogitoWorkItemManager().completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);
209-
kruntime.getKogitoWorkItemManager().completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);
209+
ProcessInstance<InSubSubProcessModel> processInstance = definition.createInstance(model);
210+
processInstance.start();
211+
212+
processInstance.send(Sig.of("Compensation", "_C-2"));
213+
214+
processInstance.completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);
215+
processInstance.completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);
216+
processInstance.completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);
217+
218+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
219+
assertThat(processInstance.variables().getX()).isEqualTo("2");
220+
221+
/*the nodes have no connection in the bpmn file,
222+
java.lang.IllegalStateException: Process could not be validated ![Process 'Default Process' [InSubSubProcess]: Node 'Boundary Compensate 3' [_X-1] Event has no outgoing connection
223+
Process 'Default Process' [InSubSubProcess]: Node 'Compensate Handler 3' [_X-2] Action has no incoming connection.,
224+
Process 'Default Process' [InSubSubProcess]: Node 'Boundary Compensate 2' [_Y-1] Event has no outgoing connection,
225+
Process 'Default Process' [InSubSubProcess]: Node 'Compensate Handler 2' [_Y-2] Action has no incoming connection.,
226+
Process 'Default Process' [InSubSubProcess]: Node 'Compensate Handler 3' [_X-2] Has no connection to the start node.,
227+
Process 'Default Process' [InSubSubProcess]: Node 'Compensate Handler 2' [_Y-2] Has no connection to the start node.]*/
228+
*/
210229

211-
// compensation activity (assoc. with script task) signaled *after* script task
212-
assertProcessInstanceCompleted(processInstance.getStringId(), kruntime);
213-
assertProcessVarValue(processInstance, "x", "2");
214230
}
215231

216232
@Test

jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/DataTest.java

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
import org.jbpm.bpmn2.core.Association;
3333
import org.jbpm.bpmn2.core.DataStore;
3434
import org.jbpm.bpmn2.core.Definitions;
35+
import org.jbpm.bpmn2.data.AssociationModel;
36+
import org.jbpm.bpmn2.data.AssociationProcess;
37+
import org.jbpm.bpmn2.data.CorrelationKeyModel;
38+
import org.jbpm.bpmn2.data.CorrelationKeyProcess;
3539
import org.jbpm.bpmn2.data.DataInputAssociationsLazyCreatingModel;
3640
import org.jbpm.bpmn2.data.DataInputAssociationsLazyCreatingProcess;
3741
import org.jbpm.bpmn2.data.DataInputAssociationsModel;
@@ -50,6 +54,8 @@
5054
import org.jbpm.bpmn2.data.DataOutputAssociationsProcess;
5155
import org.jbpm.bpmn2.data.DataOutputAssociationsXmlNodeModel;
5256
import org.jbpm.bpmn2.data.DataOutputAssociationsXmlNodeProcess;
57+
import org.jbpm.bpmn2.data.DataStoreModel;
58+
import org.jbpm.bpmn2.data.DataStoreProcess;
5359
import org.jbpm.bpmn2.data.Evaluation2Model;
5460
import org.jbpm.bpmn2.data.Evaluation2Process;
5561
import org.jbpm.bpmn2.data.Evaluation3Model;
@@ -60,7 +66,6 @@
6066
import org.jbpm.bpmn2.data.ImportProcess;
6167
import org.jbpm.bpmn2.flow.DataOutputAssociationsHumanTaskModel;
6268
import org.jbpm.bpmn2.flow.DataOutputAssociationsHumanTaskProcess;
63-
import org.jbpm.bpmn2.xml.ProcessHandler;
6469
import org.jbpm.process.core.datatype.impl.type.ObjectDataType;
6570
import org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler;
6671
import org.jbpm.test.utils.ProcessTestHelper;
@@ -71,7 +76,6 @@
7176
import org.kie.kogito.internal.process.runtime.KogitoWorkItem;
7277
import org.kie.kogito.internal.process.runtime.KogitoWorkItemHandler;
7378
import org.kie.kogito.internal.process.runtime.KogitoWorkItemManager;
74-
import org.kie.kogito.internal.process.runtime.KogitoWorkflowProcessInstance;
7579
import org.kie.kogito.process.ProcessInstance;
7680
import org.w3c.dom.Document;
7781
import org.w3c.dom.Element;
@@ -106,31 +110,46 @@ public void testDataObject() {
106110

107111
@Test
108112
public void testDataStore() throws Exception {
109-
kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/data/BPMN2-DataStore.bpmn2");
110-
KogitoProcessInstance processInstance = kruntime.startProcess("DataStore");
111-
Definitions def = (Definitions) processInstance.getProcess()
112-
.getMetaData().get("Definitions");
113-
assertThat(def.getDataStores()).isNotNull().hasSize(1);
113+
Application app = ProcessTestHelper.newApplication();
114+
115+
org.kie.kogito.process.Process<DataStoreModel> processDefinition = DataStoreProcess.newProcess(app);
116+
DataStoreModel model = processDefinition.createModel();
117+
org.kie.kogito.process.ProcessInstance<DataStoreModel> instance = processDefinition.createInstance(model);
118+
instance.start();
119+
120+
/*
121+
* metaData is not present, I think it is protected and hence cannot import.
122+
* How to get process metadata from the process object(only then we can get the definition metadata)
123+
*/
114124

125+
Definitions def = (Definitions) instance.process().metaData().get("Definitions");
126+
assertThat(def.getDataStores()).isNotNull().hasSize(1);
115127
DataStore dataStore = def.getDataStores().get(0);
116128
assertThat(dataStore.getId()).isEqualTo("employee");
117129
assertThat(dataStore.getName()).isEqualTo("employeeStore");
118130
assertThat(((ObjectDataType) dataStore.getType()).getClassName()).isEqualTo(String.class.getCanonicalName());
119-
120131
}
121132

122133
@Test
123134
public void testAssociation() throws Exception {
124-
kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/data/BPMN2-Association.bpmn2");
125-
KogitoProcessInstance processInstance = kruntime.startProcess("Association");
126-
List<Association> associations = (List<Association>) processInstance.getProcess().getMetaData().get(ProcessHandler.ASSOCIATIONS);
127-
assertThat(associations).isNotNull().hasSize(1);
135+
Application app = ProcessTestHelper.newApplication();
136+
org.kie.kogito.process.Process<AssociationModel> processDefinition = AssociationProcess.newProcess(app);
137+
AssociationModel model = processDefinition.createModel();
138+
org.kie.kogito.process.ProcessInstance<AssociationModel> instance = processDefinition.createInstance(model);
139+
instance.start();
128140

141+
/*
142+
* metaData is not present, I think it is protected and hence cannot import.
143+
* How to get process metadata from the process object(only then we can get the definition metadata)
144+
*/
145+
146+
Definitions def = (Definitions) instance.process().metaData().get("Definitions");
147+
List<Association> associations = def.getAssociations();
148+
assertThat(associations).isNotNull().hasSize(1);
129149
Association assoc = associations.get(0);
130150
assertThat(assoc.getId()).isEqualTo("_1234");
131151
assertThat(assoc.getSourceRef()).isEqualTo("_1");
132152
assertThat(assoc.getTargetRef()).isEqualTo("_2");
133-
134153
}
135154

136155
@Test
@@ -482,17 +501,19 @@ public void executeWorkItem(KogitoWorkItem workItem, KogitoWorkItemManager mgr)
482501
instance.start();
483502
}
484503

485-
@Test
486-
public void testDefaultProcessVariableValue() throws Exception {
487-
488-
kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/data/BPMN2-CorrelationKey.bpmn2");
489-
490-
Map<String, Object> parameters = new HashMap<String, Object>();
491-
492-
KogitoWorkflowProcessInstance processInstance = (KogitoWorkflowProcessInstance) kruntime.startProcess("CorrelationKey", parameters);
504+
public void testDefaultProcessVariableValue() {
505+
Application app = ProcessTestHelper.newApplication();
506+
org.kie.kogito.process.Process<CorrelationKeyModel> processDefinition = CorrelationKeyProcess.newProcess(app);
507+
CorrelationKeyModel model = processDefinition.createModel();
508+
org.kie.kogito.process.ProcessInstance<CorrelationKeyModel> instance = processDefinition.createInstance(model);
509+
instance.start();
493510

494-
assertThat(processInstance.getVariable("procVar")).isEqualTo("defaultProc");
495-
assertThat(processInstance.getVariable("intVar")).isEqualTo(1);
511+
/*
512+
* CorrelationKeyModel class does not have methods named getProcVar and getIntVar .
513+
* This is due to acutal variables/methods being different in the CorrelationKeyModel class.
514+
*/
515+
assertThat(model.getProcVar()).isEqualTo("defaultProc");
516+
assertThat(model.getIntVar()).isEqualTo(1);
496517

497518
}
498519

0 commit comments

Comments
 (0)