@@ -1342,127 +1342,6 @@ public void testMigrateParallelMultiInstanceTaskWithLocalVariables() {
1342
1342
assertProcessEnded (processInstance .getId ());
1343
1343
}
1344
1344
1345
- @ Test
1346
- public void testMigrateParallelMultiInstanceTaskWithLocalVariablesWithMigrationMapping () {
1347
- ProcessDefinition startProcessDefinition = deployProcessDefinition ("my deploy" ,
1348
- "org/flowable/engine/test/api/runtime/migration/parallel-multi-instance-task-local-variable.bpmn20.xml" );
1349
-
1350
- // Start the processInstance
1351
- Map <String , Object > variableMap = new HashMap <>();
1352
- ArrayNode collectionArray = processEngineConfiguration .getObjectMapper ().createArrayNode ();
1353
- ObjectNode element1Node = collectionArray .addObject ();
1354
- element1Node .put ("name" , "John Doe" );
1355
- element1Node .put ("age" , 30 );
1356
- ObjectNode element2Node = collectionArray .addObject ();
1357
- element2Node .put ("name" , "Jane Doe" );
1358
- element2Node .put ("age" , 29 );
1359
- variableMap .put ("myCollection" , collectionArray );
1360
- ProcessInstance processInstance = runtimeService .startProcessInstanceById (startProcessDefinition .getId (), variableMap );
1361
-
1362
- // Progress to the MI subProcess
1363
- Task task = taskService .createTaskQuery ().processInstanceId (processInstance .getId ()).singleResult ();
1364
- assertThat (task ).extracting (Task ::getTaskDefinitionKey ).isEqualTo ("beforeMultiInstance" );
1365
- completeTask (task );
1366
-
1367
- // Confirm the state to migrate
1368
- List <Execution > executions = runtimeService .createExecutionQuery ().processInstanceId (processInstance .getId ()).onlyChildExecutions ().list ();
1369
- // MI subProcess root execution, actual subProcess and 1 task
1370
- assertThat (executions )
1371
- .extracting (Execution ::getActivityId )
1372
- .containsExactly ("task" , "task" , "task" );
1373
- assertThat (executions )
1374
- .extracting ("processDefinitionId" )
1375
- .containsOnly (startProcessDefinition .getId ());
1376
- Execution miRoot = executions .stream ().filter (e -> ((ExecutionEntity ) e ).isMultiInstanceRoot ()).findFirst ().get ();
1377
- Map <String , Object > miRootVars = runtimeService .getVariables (miRoot .getId ());
1378
- assertThat (miRootVars )
1379
- .extracting ("nrOfActiveInstances" , "nrOfCompletedInstances" )
1380
- .containsExactly (2 , 0 );
1381
- List <Task > tasks = taskService .createTaskQuery ().processInstanceId (processInstance .getId ()).list ();
1382
- assertThat (tasks )
1383
- .extracting (Task ::getTaskDefinitionKey )
1384
- .containsOnly ("task" );
1385
- assertThat (tasks )
1386
- .extracting (Task ::getProcessDefinitionId )
1387
- .containsOnly (startProcessDefinition .getId ());
1388
- assertThat (tasks )
1389
- .extracting (Task ::getAssignee )
1390
- .containsOnly ("kermit" );
1391
- List <Integer > loopCounters = tasks .stream ().map (aTask -> taskService .getVariable (aTask .getId (), "loopCounter" , Integer .class ))
1392
- .collect (Collectors .toList ());
1393
- assertThat (loopCounters ).containsExactlyInAnyOrder (0 , 1 );
1394
-
1395
- for (Task miTask : tasks ) {
1396
- Execution execution = runtimeService .createExecutionQuery ().executionId (miTask .getExecutionId ()).singleResult ();
1397
- runtimeService .setVariableLocal (execution .getId (), "localVar" , "test" );
1398
- taskService .setAssignee (miTask .getId (), "othervalue" );
1399
- }
1400
-
1401
- tasks = taskService .createTaskQuery ().processInstanceId (processInstance .getId ()).list ();
1402
- assertThat (tasks )
1403
- .extracting (Task ::getAssignee )
1404
- .containsOnly ("othervalue" );
1405
-
1406
- ProcessDefinition migrateToProcessDefinition = deployProcessDefinition ("my deploy" ,
1407
- "org/flowable/engine/test/api/runtime/migration/parallel-multi-instance-task-local-variable.bpmn20.xml" );
1408
-
1409
- // Prepare and action the migration
1410
- ProcessInstanceMigrationBuilder processInstanceMigrationBuilder = processMigrationService .createProcessInstanceMigrationBuilder ()
1411
- .migrateToProcessDefinition (migrateToProcessDefinition .getId ())
1412
- .addActivityMigrationMapping (ActivityMigrationMapping .createMappingFor ("task" , "task" ));
1413
- ProcessInstanceMigrationValidationResult processInstanceMigrationValidationResult = processInstanceMigrationBuilder
1414
- .validateMigration (processInstance .getId ());
1415
- assertThat (processInstanceMigrationValidationResult .isMigrationValid ()).isTrue ();
1416
- processInstanceMigrationBuilder .migrate (processInstance .getId ());
1417
-
1418
- //Confirm
1419
- executions = runtimeService .createExecutionQuery ().processInstanceId (processInstance .getId ()).onlyChildExecutions ().list ();
1420
- assertThat (executions ).hasSize (3 );
1421
- assertThat (executions )
1422
- .extracting (Execution ::getActivityId )
1423
- .containsExactly ("task" , "task" , "task" );
1424
- assertThat (executions )
1425
- .extracting ("processDefinitionId" )
1426
- .containsOnly (migrateToProcessDefinition .getId ());
1427
-
1428
- tasks = taskService .createTaskQuery ().processInstanceId (processInstance .getId ()).list ();
1429
- assertThat (tasks ).hasSize (2 );
1430
- assertThat (tasks )
1431
- .extracting (Task ::getTaskDefinitionKey )
1432
- .containsOnly ("task" );
1433
- assertThat (tasks )
1434
- .extracting (Task ::getProcessDefinitionId )
1435
- .containsOnly (migrateToProcessDefinition .getId ());
1436
- assertThat (tasks )
1437
- .extracting (Task ::getAssignee )
1438
- .containsOnly ("kermit" );
1439
- loopCounters = tasks .stream ().map (aTask -> taskService .getVariable (aTask .getId (), "loopCounter" , Integer .class ))
1440
- .collect (Collectors .toList ());
1441
- assertThat (loopCounters ).containsExactlyInAnyOrder (0 , 1 );
1442
-
1443
- for (Task miTask : tasks ) {
1444
- Execution execution = runtimeService .createExecutionQuery ().executionId (miTask .getExecutionId ()).singleResult ();
1445
- assertThat (runtimeService .getVariableLocal (execution .getId (), "localVar" )).isEqualTo ("test" );
1446
- }
1447
-
1448
- if (HistoryTestHelper .isHistoryLevelAtLeast (HistoryLevel .ACTIVITY , processEngineConfiguration )) {
1449
- checkActivityInstances (migrateToProcessDefinition , processInstance , "userTask" , "beforeMultiInstance" , "task" , "task" );
1450
-
1451
- checkTaskInstance (migrateToProcessDefinition , processInstance , "beforeMultiInstance" , "task" , "task" , "task" , "task" );
1452
- }
1453
-
1454
- // Complete the process
1455
- completeProcessInstanceTasks (processInstance .getId ());
1456
-
1457
- if (HistoryTestHelper .isHistoryLevelAtLeast (HistoryLevel .ACTIVITY , processEngineConfiguration )) {
1458
- checkActivityInstances (migrateToProcessDefinition , processInstance , "userTask" , "beforeMultiInstance" , "task" , "task" , "afterMultiInstance" );
1459
-
1460
- checkTaskInstance (migrateToProcessDefinition , processInstance , "beforeMultiInstance" , "task" , "task" , "task" , "task" , "afterMultiInstance" );
1461
- }
1462
-
1463
- assertProcessEnded (processInstance .getId ());
1464
- }
1465
-
1466
1345
@ Test
1467
1346
public void testMigrateParallelMultiInstanceSubProcessWithLocalVariables () {
1468
1347
ProcessDefinition startProcessDefinition = deployProcessDefinition ("my deploy" ,
@@ -1571,115 +1450,6 @@ public void testMigrateParallelMultiInstanceSubProcessWithLocalVariables() {
1571
1450
assertProcessEnded (processInstance .getId ());
1572
1451
}
1573
1452
1574
- @ Test
1575
- public void testMigrateParallelMultiInstanceSubProcessWithLocalVariablesWithMigrationMapping () {
1576
- ProcessDefinition startProcessDefinition = deployProcessDefinition ("my deploy" ,
1577
- "org/flowable/engine/test/api/runtime/migration/parallel-multi-instance-subprocess-local-variable.bpmn20.xml" );
1578
-
1579
- // Start the processInstance
1580
- Map <String , Object > variableMap = new HashMap <>();
1581
- ArrayNode collectionArray = processEngineConfiguration .getObjectMapper ().createArrayNode ();
1582
- ObjectNode element1Node = collectionArray .addObject ();
1583
- element1Node .put ("name" , "John Doe" );
1584
- element1Node .put ("age" , 30 );
1585
- ObjectNode element2Node = collectionArray .addObject ();
1586
- element2Node .put ("name" , "Jane Doe" );
1587
- element2Node .put ("age" , 29 );
1588
- variableMap .put ("myCollection" , collectionArray );
1589
- ProcessInstance processInstance = runtimeService .startProcessInstanceById (startProcessDefinition .getId (), variableMap );
1590
-
1591
- // Progress to the MI subProcess
1592
- Task task = taskService .createTaskQuery ().processInstanceId (processInstance .getId ()).singleResult ();
1593
- assertThat (task ).extracting (Task ::getTaskDefinitionKey ).isEqualTo ("beforeMultiInstance" );
1594
- completeTask (task );
1595
-
1596
- // Confirm the state to migrate
1597
- List <Execution > executions = runtimeService .createExecutionQuery ().processInstanceId (processInstance .getId ()).onlyChildExecutions ().list ();
1598
- // MI subProcess root execution, actual subProcess and 1 task
1599
- assertThat (executions )
1600
- .extracting (Execution ::getActivityId )
1601
- .containsExactly ("parallelMISubProcess" , "parallelMISubProcess" , "parallelMISubProcess" , "subTask1" , "subTask1" );
1602
- assertThat (executions )
1603
- .extracting ("processDefinitionId" )
1604
- .containsOnly (startProcessDefinition .getId ());
1605
- Execution miRoot = executions .stream ().filter (e -> ((ExecutionEntity ) e ).isMultiInstanceRoot ()).findFirst ().get ();
1606
- Map <String , Object > miRootVars = runtimeService .getVariables (miRoot .getId ());
1607
- assertThat (miRootVars )
1608
- .extracting ("nrOfActiveInstances" , "nrOfCompletedInstances" )
1609
- .containsExactly (2 , 0 );
1610
- List <Task > tasks = taskService .createTaskQuery ().processInstanceId (processInstance .getId ()).list ();
1611
- assertThat (tasks )
1612
- .extracting (Task ::getTaskDefinitionKey )
1613
- .containsOnly ("subTask1" );
1614
- assertThat (tasks )
1615
- .extracting (Task ::getProcessDefinitionId )
1616
- .containsOnly (startProcessDefinition .getId ());
1617
- List <Integer > loopCounters = tasks .stream ().map (aTask -> taskService .getVariable (aTask .getId (), "loopCounter" , Integer .class ))
1618
- .collect (Collectors .toList ());
1619
- assertThat (loopCounters ).containsExactlyInAnyOrder (0 , 1 );
1620
-
1621
- for (Task miTask : tasks ) {
1622
- Execution execution = runtimeService .createExecutionQuery ().executionId (miTask .getExecutionId ()).singleResult ();
1623
- runtimeService .setVariableLocal (execution .getId (), "localVar" , "test" );
1624
- }
1625
-
1626
- ProcessDefinition migrateToProcessDefinition = deployProcessDefinition ("my deploy" ,
1627
- "org/flowable/engine/test/api/runtime/migration/parallel-multi-instance-subprocess-local-variable.bpmn20.xml" );
1628
-
1629
- // Prepare and action the migration
1630
- ProcessInstanceMigrationBuilder processInstanceMigrationBuilder = processMigrationService .createProcessInstanceMigrationBuilder ()
1631
- .migrateToProcessDefinition (migrateToProcessDefinition .getId ())
1632
- .addActivityMigrationMapping (ActivityMigrationMapping .createMappingFor ("subTask1" , "subTask1" ));
1633
- ProcessInstanceMigrationValidationResult processInstanceMigrationValidationResult = processInstanceMigrationBuilder
1634
- .validateMigration (processInstance .getId ());
1635
- assertThat (processInstanceMigrationValidationResult .isMigrationValid ()).isTrue ();
1636
- processInstanceMigrationBuilder .migrate (processInstance .getId ());
1637
-
1638
- //Confirm
1639
- executions = runtimeService .createExecutionQuery ().processInstanceId (processInstance .getId ()).onlyChildExecutions ().list ();
1640
- assertThat (executions ).hasSize (5 );
1641
- assertThat (executions )
1642
- .extracting (Execution ::getActivityId )
1643
- .containsExactly ("parallelMISubProcess" , "parallelMISubProcess" , "parallelMISubProcess" , "subTask1" , "subTask1" );
1644
- assertThat (executions )
1645
- .extracting ("processDefinitionId" )
1646
- .containsOnly (migrateToProcessDefinition .getId ());
1647
-
1648
- tasks = taskService .createTaskQuery ().processInstanceId (processInstance .getId ()).list ();
1649
- assertThat (tasks ).hasSize (2 );
1650
- assertThat (tasks )
1651
- .extracting (Task ::getTaskDefinitionKey )
1652
- .containsOnly ("subTask1" );
1653
- assertThat (tasks )
1654
- .extracting (Task ::getProcessDefinitionId )
1655
- .containsOnly (migrateToProcessDefinition .getId ());
1656
- loopCounters = tasks .stream ().map (aTask -> taskService .getVariable (aTask .getId (), "loopCounter" , Integer .class ))
1657
- .collect (Collectors .toList ());
1658
- assertThat (loopCounters ).containsExactlyInAnyOrder (0 , 1 );
1659
-
1660
- for (Task miTask : tasks ) {
1661
- Execution execution = runtimeService .createExecutionQuery ().executionId (miTask .getExecutionId ()).singleResult ();
1662
- assertThat (runtimeService .getVariableLocal (execution .getId (), "localVar" )).isEqualTo ("test" );
1663
- }
1664
-
1665
- if (HistoryTestHelper .isHistoryLevelAtLeast (HistoryLevel .ACTIVITY , processEngineConfiguration )) {
1666
- checkActivityInstances (migrateToProcessDefinition , processInstance , "userTask" , "beforeMultiInstance" , "subTask1" , "subTask1" , "subTask1" , "subTask1" );
1667
-
1668
- checkTaskInstance (migrateToProcessDefinition , processInstance , "beforeMultiInstance" , "subTask1" , "subTask1" , "subTask1" , "subTask1" );
1669
- }
1670
-
1671
- // Complete the process
1672
- completeProcessInstanceTasks (processInstance .getId ());
1673
-
1674
- if (HistoryTestHelper .isHistoryLevelAtLeast (HistoryLevel .ACTIVITY , processEngineConfiguration )) {
1675
- checkActivityInstances (migrateToProcessDefinition , processInstance , "userTask" , "beforeMultiInstance" , "subTask1" , "subTask1" , "subTask1" , "subTask1" , "afterMultiInstance" );
1676
-
1677
- checkTaskInstance (migrateToProcessDefinition , processInstance , "beforeMultiInstance" , "subTask1" , "subTask1" , "subTask1" , "subTask1" , "afterMultiInstance" );
1678
- }
1679
-
1680
- assertProcessEnded (processInstance .getId ());
1681
- }
1682
-
1683
1453
@ Test
1684
1454
public void testMigrateParallelMultiInstanceServiceTaskWithLocalVariables () {
1685
1455
ProcessDefinition startProcessDefinition = deployProcessDefinition ("my deploy" ,
0 commit comments