This is an automated email from the ASF dual-hosted git repository.
porcelli 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 561a31b0cb [incubator-kie-issues#1858] Fixed missing data in jobs
associated with User Tasks Part 1 (#3857)
561a31b0cb is described below
commit 561a31b0cb38ad9f0e99e902fd0e702f23fbf993
Author: Deepak Joseph <[email protected]>
AuthorDate: Thu Mar 13 19:57:44 2025 +0530
[incubator-kie-issues#1858] Fixed missing data in jobs associated with User
Tasks Part 1 (#3857)
* Fixed missing data in jobs associated with User Tasks
* Added root fields
* Fixed rootProcessInstanceId and rootProcessId not present for usertasks
with sla
---
.../UserTaskInstanceJobDescription.java | 43 +++++++++++++++++++++-
.../UserTaskInstanceJobDescriptionBuilder.java | 41 +++++++++------------
.../impl/InMemoryUserTaskJobExecutorFactory.java | 2 +-
.../instance/impl/WorkflowProcessInstanceImpl.java | 2 +
.../handler/UserTaskKogitoWorkItemHandler.java | 1 +
.../usertask/impl/DefaultUserTaskInstance.java | 1 +
6 files changed, 64 insertions(+), 26 deletions(-)
diff --git
a/api/kogito-api/src/main/java/org/kie/kogito/jobs/descriptors/UserTaskInstanceJobDescription.java
b/api/kogito-api/src/main/java/org/kie/kogito/jobs/descriptors/UserTaskInstanceJobDescription.java
index 5fbe5f29ed..242e9648b9 100644
---
a/api/kogito-api/src/main/java/org/kie/kogito/jobs/descriptors/UserTaskInstanceJobDescription.java
+++
b/api/kogito-api/src/main/java/org/kie/kogito/jobs/descriptors/UserTaskInstanceJobDescription.java
@@ -27,16 +27,35 @@ public class UserTaskInstanceJobDescription implements
JobDescription {
private ExpirationTime expirationTime;
private Integer priority = ProcessInstanceJobDescription.DEFAULT_PRIORITY;
private String userTaskInstanceId;
+ private String processId;
+ private String processInstanceId;
+ private String nodeInstanceId;
+ private String rootProcessInstanceId;
+ private String rootProcessId;
public UserTaskInstanceJobDescription() {
// do nothing
}
- public UserTaskInstanceJobDescription(String id, ExpirationTime
expirationTime, Integer priority, String userTaskInstanceId) {
+ public UserTaskInstanceJobDescription(
+ String id,
+ ExpirationTime expirationTime,
+ Integer priority,
+ String userTaskInstanceId,
+ String processId,
+ String processInstanceId,
+ String nodeInstanceId,
+ String rootProcessInstanceId,
+ String rootProcessId) {
this.id = id;
this.expirationTime = expirationTime;
this.priority = priority;
this.userTaskInstanceId = userTaskInstanceId;
+ this.processId = processId;
+ this.processInstanceId = processInstanceId;
+ this.nodeInstanceId = nodeInstanceId;
+ this.rootProcessInstanceId = rootProcessInstanceId;
+ this.rootProcessId = rootProcessId;
}
@Override
@@ -59,10 +78,30 @@ public class UserTaskInstanceJobDescription implements
JobDescription {
return null;
}
- public String getUserTaskInstanceId() {
+ public String userTaskInstanceId() {
return userTaskInstanceId;
}
+ public String processId() {
+ return processId;
+ }
+
+ public String processInstanceId() {
+ return processInstanceId;
+ }
+
+ public String nodeInstanceId() {
+ return nodeInstanceId;
+ }
+
+ public String rootProcessInstanceId() {
+ return rootProcessInstanceId;
+ }
+
+ public String rootProcessId() {
+ return rootProcessId;
+ }
+
public static UserTaskInstanceJobDescriptionBuilder
newUserTaskInstanceJobDescriptionBuilder() {
return new UserTaskInstanceJobDescriptionBuilder();
}
diff --git
a/api/kogito-api/src/main/java/org/kie/kogito/jobs/descriptors/UserTaskInstanceJobDescriptionBuilder.java
b/api/kogito-api/src/main/java/org/kie/kogito/jobs/descriptors/UserTaskInstanceJobDescriptionBuilder.java
index ad8a4bfba2..0f94d0a96c 100644
---
a/api/kogito-api/src/main/java/org/kie/kogito/jobs/descriptors/UserTaskInstanceJobDescriptionBuilder.java
+++
b/api/kogito-api/src/main/java/org/kie/kogito/jobs/descriptors/UserTaskInstanceJobDescriptionBuilder.java
@@ -18,37 +18,18 @@
*/
package org.kie.kogito.jobs.descriptors;
+import java.util.Map;
import java.util.UUID;
import org.kie.kogito.jobs.ExpirationTime;
-import org.kie.kogito.jobs.JobDescription;
-public class UserTaskInstanceJobDescriptionBuilder implements JobDescription {
+public class UserTaskInstanceJobDescriptionBuilder {
private String id;
private ExpirationTime expirationTime;
private Integer priority = ProcessInstanceJobDescription.DEFAULT_PRIORITY;
private String userTaskInstanceId;
-
- @Override
- public String id() {
- return id;
- }
-
- @Override
- public ExpirationTime expirationTime() {
- return expirationTime;
- }
-
- @Override
- public Integer priority() {
- return priority;
- }
-
- @Override
- public String path() {
- return null;
- }
+ private Map<String, Object> metadata;
public UserTaskInstanceJobDescriptionBuilder id(String id) {
this.id = id;
@@ -74,7 +55,21 @@ public class UserTaskInstanceJobDescriptionBuilder
implements JobDescription {
return this;
}
+ public UserTaskInstanceJobDescriptionBuilder metadata(Map<String, Object>
metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
public UserTaskInstanceJobDescription build() {
- return new UserTaskInstanceJobDescription(id, expirationTime,
priority, userTaskInstanceId);
+ return new UserTaskInstanceJobDescription(
+ id,
+ expirationTime,
+ priority,
+ userTaskInstanceId,
+ (String) this.metadata.get("ProcessId"),
+ (String) this.metadata.get("ProcessInstanceId"),
+ (String) this.metadata.get("NodeInstanceId"),
+ (String) this.metadata.get("RootProcessInstanceId"),
+ (String) this.metadata.get("RootProcessId"));
}
}
diff --git
a/api/kogito-services/src/main/java/org/kie/kogito/services/jobs/impl/InMemoryUserTaskJobExecutorFactory.java
b/api/kogito-services/src/main/java/org/kie/kogito/services/jobs/impl/InMemoryUserTaskJobExecutorFactory.java
index 1381928eba..57636aa3b9 100644
---
a/api/kogito-services/src/main/java/org/kie/kogito/services/jobs/impl/InMemoryUserTaskJobExecutorFactory.java
+++
b/api/kogito-services/src/main/java/org/kie/kogito/services/jobs/impl/InMemoryUserTaskJobExecutorFactory.java
@@ -94,7 +94,7 @@ class SignalUserTaskInstanceOnExpiredTimer implements
Runnable {
@Override
public void run() {
String jobId = userTaskInstanceJobDescription.id();
- String userTaskInstanceId =
userTaskInstanceJobDescription.getUserTaskInstanceId();
+ String userTaskInstanceId =
userTaskInstanceJobDescription.userTaskInstanceId();
try {
Optional<UserTaskInstance> userTaskInstance =
jobsConfiguration.userTasks().instances().findById(userTaskInstanceId);
if (userTaskInstance.isEmpty()) {
diff --git
a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/impl/WorkflowProcessInstanceImpl.java
b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/impl/WorkflowProcessInstanceImpl.java
index ad63a5c319..905d2f7092 100755
---
a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/impl/WorkflowProcessInstanceImpl.java
+++
b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/impl/WorkflowProcessInstanceImpl.java
@@ -614,6 +614,8 @@ public abstract class WorkflowProcessInstanceImpl extends
ProcessInstanceImpl im
.processInstanceId(getStringId())
.processId(getProcessId())
.nodeInstanceId(nodeInstanceId)
+ .rootProcessId(getRootProcessId())
+ .rootProcessInstanceId(getRootProcessInstanceId())
.build();
JobsService jobsService =
InternalProcessRuntime.asKogitoProcessRuntime(getKnowledgeRuntime().getProcessRuntime()).getJobsService();
jobsService.scheduleJob(description);
diff --git
a/jbpm/jbpm-usertask-workitem/src/main/java/org/kie/kogito/jbpm/usertask/handler/UserTaskKogitoWorkItemHandler.java
b/jbpm/jbpm-usertask-workitem/src/main/java/org/kie/kogito/jbpm/usertask/handler/UserTaskKogitoWorkItemHandler.java
index 02b46ecd56..4dabe08091 100644
---
a/jbpm/jbpm-usertask-workitem/src/main/java/org/kie/kogito/jbpm/usertask/handler/UserTaskKogitoWorkItemHandler.java
+++
b/jbpm/jbpm-usertask-workitem/src/main/java/org/kie/kogito/jbpm/usertask/handler/UserTaskKogitoWorkItemHandler.java
@@ -98,6 +98,7 @@ public class UserTaskKogitoWorkItemHandler extends
DefaultKogitoWorkItemHandler
instance.setMetadata("RootProcessId",
workItem.getProcessInstance().getRootProcessId());
instance.setMetadata("RootProcessInstanceId",
workItem.getProcessInstance().getRootProcessInstanceId());
instance.setMetadata("ParentProcessInstanceId",
workItem.getProcessInstance().getParentProcessInstanceId());
+ instance.setMetadata("NodeInstanceId",
workItem.getNodeInstance().getId());
instance.fireInitialStateChange();
workItem.getParameters().entrySet().stream().filter(e ->
!HumanTaskNode.TASK_PARAMETERS.contains(e.getKey())).forEach(e ->
instance.setInput(e.getKey(), e.getValue()));
diff --git
a/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/DefaultUserTaskInstance.java
b/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/DefaultUserTaskInstance.java
index bf60df7187..84ee337f7f 100644
---
a/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/DefaultUserTaskInstance.java
+++
b/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/DefaultUserTaskInstance.java
@@ -688,6 +688,7 @@ public class DefaultUserTaskInstance implements
UserTaskInstance {
.generateId()
.expirationTime(expirationTime)
.userTaskInstanceId(this.id)
+ .metadata(this.metadata)
.build());
}
return jobs;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]