Skip to content

Commit 62f8a52

Browse files
committed
Merge remote-tracking branch
'origin/issue/438_DSF_1.x_Process_Instances_Fail_to_Continue_on_DSF_2.x' into develop
2 parents 44e621e + 060aaf6 commit 62f8a52

1 file changed

Lines changed: 22 additions & 8 deletions

File tree

  • dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/variables

dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/variables/VariablesImpl.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.List;
2121
import java.util.Objects;
2222
import java.util.Optional;
23+
import java.util.function.Supplier;
2324
import java.util.stream.Stream;
2425

2526
import org.hl7.fhir.r4.model.QuestionnaireResponse;
@@ -42,7 +43,9 @@ public class VariablesImpl implements Variables, ListenerVariables
4243
private static final Logger logger = LoggerFactory.getLogger(VariablesImpl.class);
4344

4445
private static final String TASKS_PREFIX = VariablesImpl.class.getName() + ".tasks.";
46+
private static final String TASKS_PREFIX_DSF_1 = "dev.dsf.bpe.variables.VariablesImpl.tasks.";
4547
private static final String START_TASK = VariablesImpl.class.getName() + ".startTask";
48+
private static final String START_TASK_DSF_1 = "dev.dsf.bpe.variables.VariablesImpl.startTask";
4649

4750
private static final class DistinctTask
4851
{
@@ -170,10 +173,10 @@ public <R extends Resource> List<R> getResourceList(String variableName)
170173
return list != null ? list.getResourcesAndCast() : null;
171174
}
172175

173-
private <R extends Resource> List<R> getResourceListOrDefault(String variableName, List<R> defaultList)
176+
private <R extends Resource> List<R> getResourceListOrDefault(String variableName, Supplier<List<R>> defaultList)
174177
{
175178
List<R> list = getResourceList(variableName);
176-
return list != null ? list : defaultList;
179+
return list != null ? list : defaultList.get();
177180
}
178181

179182
@Override
@@ -197,7 +200,12 @@ public Task getStartTask()
197200
logger.trace("getStartTask - parentActivityInstanceId: {}, parentId: {}",
198201
execution.getParentActivityInstanceId(), execution.getParentId());
199202

200-
return getResource(START_TASK);
203+
Task task = getResource(START_TASK);
204+
205+
if (task == null)
206+
task = getResource(START_TASK_DSF_1);
207+
208+
return task;
201209
}
202210

203211
@Override
@@ -218,7 +226,8 @@ public List<Task> getTasks()
218226

219227
List<Task> tasks = Stream
220228
.concat(Stream.of(getStartTask()),
221-
execution.getVariables().keySet().stream().filter(k -> k.startsWith(TASKS_PREFIX))
229+
execution.getVariables().keySet().stream()
230+
.filter(k -> k.startsWith(TASKS_PREFIX) || k.startsWith(TASKS_PREFIX_DSF_1))
222231
.map(this::getResourceList).flatMap(List::stream).filter(r -> r instanceof Task)
223232
.map(r -> (Task) r))
224233
.filter(t -> t != null).map(DistinctTask::new).distinct().map(DistinctTask::getTask).toList();
@@ -234,7 +243,9 @@ public List<Task> getCurrentTasks()
234243

235244
Stream<Task> start = execution.getParentId() == null ? Stream.of(getStartTask()) : Stream.empty();
236245
Stream<Task> current = getResourceListOrDefault(TASKS_PREFIX + execution.getParentActivityInstanceId(),
237-
List.<Task> of()).stream();
246+
() -> getResourceListOrDefault(TASKS_PREFIX_DSF_1 + execution.getParentActivityInstanceId(),
247+
List::<Task> of))
248+
.stream();
238249

239250
return Collections.unmodifiableList(Stream.concat(start, current).toList());
240251
}
@@ -252,7 +263,8 @@ public void updateTask(Task task)
252263
else
253264
{
254265
String instanceId = execution.getParentActivityInstanceId();
255-
List<Task> tasks = getResourceListOrDefault(TASKS_PREFIX + instanceId, List.of());
266+
List<Task> tasks = getResourceListOrDefault(TASKS_PREFIX + instanceId,
267+
() -> getResourceListOrDefault(TASKS_PREFIX_DSF_1 + instanceId, List::of));
256268

257269
if (tasks.stream().anyMatch(t -> t.getIdElement().getIdPart().equals(task.getIdElement().getIdPart())))
258270
setResourceList(TASKS_PREFIX + instanceId, tasks);
@@ -307,7 +319,8 @@ public void onContinue(Task task)
307319
{
308320
String instanceId = execution.getParentActivityInstanceId();
309321

310-
List<Task> tasks = new ArrayList<>(getResourceListOrDefault(TASKS_PREFIX + instanceId, List.of()));
322+
List<Task> tasks = new ArrayList<>(getResourceListOrDefault(TASKS_PREFIX + instanceId,
323+
() -> getResourceListOrDefault(TASKS_PREFIX_DSF_1 + instanceId, List::of)));
311324
tasks.add(task);
312325

313326
setResourceList(TASKS_PREFIX + instanceId, tasks);
@@ -322,7 +335,8 @@ public void onEnd()
322335
logger.trace("onEnd");
323336

324337
String instanceId = execution.getParentActivityInstanceId();
325-
List<Task> tasks = new ArrayList<>(getResourceListOrDefault(TASKS_PREFIX + instanceId, List.of()));
338+
List<Task> tasks = new ArrayList<>(getResourceListOrDefault(TASKS_PREFIX + instanceId,
339+
() -> getResourceListOrDefault(TASKS_PREFIX_DSF_1 + instanceId, List::of)));
326340
tasks.removeAll(getCurrentTasks());
327341
setResourceList(TASKS_PREFIX + instanceId, tasks);
328342
}

0 commit comments

Comments
 (0)