This is an automated email from the ASF dual-hosted git repository.
fjtiradosarti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-kogito-apps.git
The following commit(s) were added to refs/heads/main by this push:
new a777dabb5 [Fix apache/incubator-kie-issues#2143] Add function args
(#2288)
a777dabb5 is described below
commit a777dabb52af249e34193da60b5d07730f814940
Author: Francisco Javier Tirado Sarti
<[email protected]>
AuthorDate: Fri Jan 9 16:48:24 2026 +0100
[Fix apache/incubator-kie-issues#2143] Add function args (#2288)
Signed-off-by: fjtirado <[email protected]>
---
.../AbstractProcessDataIndexPostgreSqlIT.java | 2 +-
.../java/org/kie/kogito/index/json/JsonUtils.java | 3 ++-
.../main/resources/graphql/basic.schema.graphqls | 2 ++
.../main/resources/graphql/json.schema.graphqls | 5 ++++
.../mutations/OutputGraphQLMutationProvider.java | 7 +++++-
.../org/kie/kogito/index/model/NodeInstance.java | 20 +++++++++++++++
.../kie/kogito/index/model/ProcessInstance.java | 8 +++---
.../merger/ProcessInstanceNodeDataEventMerger.java | 7 ++++++
.../jpa/mapper/ProcessDefinitionEntityMapper.java | 2 +-
.../kogito/index/jpa/model/NodeInstanceEntity.java | 29 ++++++++++++++++++++++
.../index/jpa/model/ProcessDefinitionEntity.java | 8 +++---
.../index/jpa/model/ProcessInstanceEntity.java | 8 +++---
.../jpa/storage/ProcessInstanceEntityStorage.java | 7 ++++++
.../postgresql/hibernate/JsonBinaryConverter.java | 10 ++++----
.../storage/AbstractProcessInstanceStorageIT.java | 4 +--
.../kie/kogito/index/jdbc/JsonBinaryConverter.java | 10 ++++----
.../ansi/V1.47.0__add_input_output_args.sql | 21 ++++++++++++++++
.../index/mongodb/model/ProcessInstanceEntity.java | 20 +++++++++++++++
.../mongodb/model/ProcessInstanceEntityMapper.java | 4 +++
.../postgresql/V1.47.0__add_input_output_args.sql | 21 ++++++++++++++++
20 files changed, 170 insertions(+), 28 deletions(-)
diff --git
a/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-quarkus/src/test/java/org/kie/kogito/index/postgresql/AbstractProcessDataIndexPostgreSqlIT.java
b/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-quarkus/src/test/java/org/kie/kogito/index/postgresql/AbstractProcessDataIndexPostgreSqlIT.java
index 003df6326..844edd663 100644
---
a/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-quarkus/src/test/java/org/kie/kogito/index/postgresql/AbstractProcessDataIndexPostgreSqlIT.java
+++
b/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-quarkus/src/test/java/org/kie/kogito/index/postgresql/AbstractProcessDataIndexPostgreSqlIT.java
@@ -56,7 +56,7 @@ public abstract class AbstractProcessDataIndexPostgreSqlIT
extends AbstractProce
await().atMost(TIMEOUT).untilAsserted(() ->
given().spec(dataIndexSpec())
.contentType(ContentType.JSON)
- .body("{ \"query\": \"{ ProcessInstances(where: { id: { equal:
\\\"" + pId + "\\\" } }) { id variables state } }\" }")
+ .body("{ \"query\": \"{ ProcessInstances(where: { id: { equal:
\\\"" + pId + "\\\" } }) { id variables state nodes {inputArgs outputArgs}} }\"
}")
.when().post("/graphql")
.then().statusCode(200)
.body("data.ProcessInstances[0].id", containsString(pId))
diff --git
a/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonUtils.java
b/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonUtils.java
index e8a7a6d30..5e66fed48 100644
---
a/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonUtils.java
+++
b/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonUtils.java
@@ -24,6 +24,7 @@ import org.kie.kogito.jackson.utils.ObjectMapperFactory;
import org.kie.kogito.persistence.api.query.AttributeFilter;
import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -44,7 +45,7 @@ public final class JsonUtils {
return
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,
false).registerModule(JsonFormat.getCloudEventJacksonModule()).findAndRegisterModules();
}
- public static ObjectNode mergeVariable(String variableName, Object
variableValue, ObjectNode variables) {
+ public static ObjectNode mergeVariable(String variableName, Object
variableValue, JsonNode variables) {
return (ObjectNode) MergeUtils.merge(createObjectNode(variableName,
variableValue), variables);
}
diff --git
a/data-index/data-index-graphql/src/main/resources/graphql/basic.schema.graphqls
b/data-index/data-index-graphql/src/main/resources/graphql/basic.schema.graphqls
index 438eab5d6..c2519d25c 100644
---
a/data-index/data-index-graphql/src/main/resources/graphql/basic.schema.graphqls
+++
b/data-index/data-index-graphql/src/main/resources/graphql/basic.schema.graphqls
@@ -160,6 +160,8 @@ type NodeInstance {
retrigger: Boolean
errorMessage: String
cancelType: CancelType
+ inputArgs: JSON
+ outputArgs: JSON
}
enum CancelType {
diff --git
a/data-index/data-index-graphql/src/main/resources/graphql/json.schema.graphqls
b/data-index/data-index-graphql/src/main/resources/graphql/json.schema.graphqls
index ddd1d2d16..22b63e684 100644
---
a/data-index/data-index-graphql/src/main/resources/graphql/json.schema.graphqls
+++
b/data-index/data-index-graphql/src/main/resources/graphql/json.schema.graphqls
@@ -4,4 +4,9 @@ extend input ProcessInstanceArgument {
extend input ProcessDefinitionArgument {
metadata: JSON
+}
+
+extend input NodeInstanceArgument {
+ inputArgs: JSON
+ outputArgs: JSON
}
\ No newline at end of file
diff --git
a/data-index/data-index-mutations/data-index-shared-output-mutation/src/main/java/org/kie/kogito/index/mutations/OutputGraphQLMutationProvider.java
b/data-index/data-index-mutations/data-index-shared-output-mutation/src/main/java/org/kie/kogito/index/mutations/OutputGraphQLMutationProvider.java
index b4299853c..7ade88b26 100644
---
a/data-index/data-index-mutations/data-index-shared-output-mutation/src/main/java/org/kie/kogito/index/mutations/OutputGraphQLMutationProvider.java
+++
b/data-index/data-index-mutations/data-index-shared-output-mutation/src/main/java/org/kie/kogito/index/mutations/OutputGraphQLMutationProvider.java
@@ -36,6 +36,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
@@ -63,7 +64,11 @@ public class OutputGraphQLMutationProvider implements
GraphQLMutationsProvider {
if (completedInstanceId != null) {
ProcessInstance processInstance =
cacheService.getProcessInstanceStorage().get(completedInstanceId);
if (processInstance != null) {
- input = MergeUtils.merge(input,
processInstance.getVariables().remove(env.getArgumentOrDefault("excludeProperties",
Set.of("workflowdatainput"))));
+ JsonNode variables = processInstance.getVariables();
+ if (variables instanceof ObjectNode objectNode) {
+
objectNode.remove(env.getArgumentOrDefault("excludeProperties",
Set.of("workflowdatainput")));
+ }
+ input = MergeUtils.merge(input, variables);
} else {
logger.warn("Completed Instance Id {} cannot be found, using
user input as it is", completedInstanceId);
}
diff --git
a/data-index/data-index-storage/data-index-storage-api/src/main/java/org/kie/kogito/index/model/NodeInstance.java
b/data-index/data-index-storage/data-index-storage-api/src/main/java/org/kie/kogito/index/model/NodeInstance.java
index 85b258573..086a12590 100644
---
a/data-index/data-index-storage/data-index-storage-api/src/main/java/org/kie/kogito/index/model/NodeInstance.java
+++
b/data-index/data-index-storage/data-index-storage-api/src/main/java/org/kie/kogito/index/model/NodeInstance.java
@@ -21,6 +21,7 @@ package org.kie.kogito.index.model;
import java.time.ZonedDateTime;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.JsonNode;
public class NodeInstance {
@@ -46,6 +47,9 @@ public class NodeInstance {
private CancelType cancelType;
+ private JsonNode inputArgs;
+ private JsonNode outputArgs;
+
public Boolean isRetrigger() {
return retrigger;
}
@@ -137,6 +141,22 @@ public class NodeInstance {
this.cancelType = cancelType;
}
+ public JsonNode getInputArgs() {
+ return inputArgs;
+ }
+
+ public void setInputArgs(JsonNode jsonNode) {
+ this.inputArgs = jsonNode;
+ }
+
+ public JsonNode getOutputArgs() {
+ return outputArgs;
+ }
+
+ public void setOutputArgs(JsonNode outputArgs) {
+ this.outputArgs = outputArgs;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
diff --git
a/data-index/data-index-storage/data-index-storage-api/src/main/java/org/kie/kogito/index/model/ProcessInstance.java
b/data-index/data-index-storage/data-index-storage-api/src/main/java/org/kie/kogito/index/model/ProcessInstance.java
index 82618f0ed..374b57093 100644
---
a/data-index/data-index-storage/data-index-storage-api/src/main/java/org/kie/kogito/index/model/ProcessInstance.java
+++
b/data-index/data-index-storage/data-index-storage-api/src/main/java/org/kie/kogito/index/model/ProcessInstance.java
@@ -22,11 +22,11 @@ import java.util.List;
import java.util.Set;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.fasterxml.jackson.databind.JsonNode;
public class ProcessInstance extends ProcessInstanceMeta {
- private ObjectNode variables;
+ private JsonNode variables;
@JsonProperty("nodeInstances")
private List<NodeInstance> nodes;
private List<Milestone> milestones;
@@ -35,11 +35,11 @@ public class ProcessInstance extends ProcessInstanceMeta {
private ProcessInstanceError error;
private ProcessDefinition definition;
- public ObjectNode getVariables() {
+ public JsonNode getVariables() {
return variables;
}
- public void setVariables(ObjectNode variables) {
+ public void setVariables(JsonNode variables) {
this.variables = variables;
}
diff --git
a/data-index/data-index-storage/data-index-storage-common/src/main/java/org/kie/kogito/index/storage/merger/ProcessInstanceNodeDataEventMerger.java
b/data-index/data-index-storage/data-index-storage-common/src/main/java/org/kie/kogito/index/storage/merger/ProcessInstanceNodeDataEventMerger.java
index 5ac329df7..f7c5987af 100644
---
a/data-index/data-index-storage/data-index-storage-common/src/main/java/org/kie/kogito/index/storage/merger/ProcessInstanceNodeDataEventMerger.java
+++
b/data-index/data-index-storage/data-index-storage-common/src/main/java/org/kie/kogito/index/storage/merger/ProcessInstanceNodeDataEventMerger.java
@@ -32,6 +32,7 @@ import org.kie.kogito.index.model.MilestoneStatus;
import org.kie.kogito.index.model.Node;
import org.kie.kogito.index.model.NodeInstance;
import org.kie.kogito.index.model.ProcessInstance;
+import org.kie.kogito.jackson.utils.JsonObjectUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -67,6 +68,12 @@ public class ProcessInstanceNodeDataEventMerger extends
ProcessInstanceEventMerg
if (body.isRetrigger() != null) {
nodeInstance.setRetrigger(body.isRetrigger());
}
+ if (body.getInputParameters() != null) {
+
nodeInstance.setInputArgs(JsonObjectUtils.fromValue(body.getInputParameters()));
+ }
+ if (body.getOutputParameters() != null) {
+
nodeInstance.setOutputArgs(JsonObjectUtils.fromValue(body.getOutputParameters()));
+ }
ZonedDateTime eventDate = toZonedDateTime(body.getEventDate());
switch (body.getEventType()) {
case EVENT_TYPE_ENTER:
diff --git
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/mapper/ProcessDefinitionEntityMapper.java
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/mapper/ProcessDefinitionEntityMapper.java
index 780255afd..b252a09d3 100644
---
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/mapper/ProcessDefinitionEntityMapper.java
+++
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/mapper/ProcessDefinitionEntityMapper.java
@@ -55,7 +55,7 @@ public interface ProcessDefinitionEntityMapper {
return entity == null || !entity.isObject() ? null : (ObjectNode)
entity;
}
- default Map<String, Object> map(ObjectNode entity) {
+ default Map<String, Object> map(JsonNode entity) {
return (Map<String, Object>) JsonObjectUtils.convertValue(entity,
Map.class);
}
diff --git
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/NodeInstanceEntity.java
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/NodeInstanceEntity.java
index 5ba538fb6..f19011fc2 100644
---
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/NodeInstanceEntity.java
+++
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/NodeInstanceEntity.java
@@ -24,8 +24,13 @@ import java.util.Objects;
import org.hibernate.annotations.OnDelete;
import org.hibernate.annotations.OnDeleteAction;
import org.kie.kogito.index.model.CancelType;
+import org.kie.kogito.persistence.postgresql.hibernate.JsonBinaryConverter;
+
+import com.fasterxml.jackson.databind.JsonNode;
import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Convert;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
@@ -58,6 +63,14 @@ public class NodeInstanceEntity extends AbstractEntity {
@JoinColumn(name = "processInstanceId", foreignKey = @ForeignKey(name =
"fk_nodes_process"))
private ProcessInstanceEntity processInstance;
+ @Convert(converter = JsonBinaryConverter.class)
+ @Column(columnDefinition = "jsonb")
+ private JsonNode inputArgs;
+
+ @Convert(converter = JsonBinaryConverter.class)
+ @Column(columnDefinition = "jsonb")
+ private JsonNode outputArgs;
+
public Boolean isRetrigger() {
return retrigger;
}
@@ -155,6 +168,22 @@ public class NodeInstanceEntity extends AbstractEntity {
this.processInstance = processInstance;
}
+ public JsonNode getInputArgs() {
+ return inputArgs;
+ }
+
+ public void setInputArgs(JsonNode inputArgs) {
+ this.inputArgs = inputArgs;
+ }
+
+ public JsonNode getOutputArgs() {
+ return outputArgs;
+ }
+
+ public void setOutputArgs(JsonNode outputArgs) {
+ this.outputArgs = outputArgs;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
diff --git
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/ProcessDefinitionEntity.java
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/ProcessDefinitionEntity.java
index 2b70331c1..6dda01443 100644
---
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/ProcessDefinitionEntity.java
+++
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/ProcessDefinitionEntity.java
@@ -25,7 +25,7 @@ import java.util.Set;
import org.kie.kogito.index.model.ProcessDefinitionKey;
import org.kie.kogito.persistence.postgresql.hibernate.JsonBinaryConverter;
-import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.fasterxml.jackson.databind.JsonNode;
import jakarta.persistence.CascadeType;
import jakarta.persistence.CollectionTable;
@@ -78,7 +78,7 @@ public class ProcessDefinitionEntity extends AbstractEntity {
private Set<String> annotations;
@Convert(converter = JsonBinaryConverter.class)
@Column(columnDefinition = "jsonb")
- private ObjectNode metadata;
+ private JsonNode metadata;
@Override
public String getId() {
@@ -169,11 +169,11 @@ public class ProcessDefinitionEntity extends
AbstractEntity {
this.annotations = annotations;
}
- public ObjectNode getMetadata() {
+ public JsonNode getMetadata() {
return metadata;
}
- public void setMetadata(ObjectNode metadata) {
+ public void setMetadata(JsonNode metadata) {
this.metadata = metadata;
}
diff --git
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/ProcessInstanceEntity.java
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/ProcessInstanceEntity.java
index f6a05a608..ec60aaab6 100644
---
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/ProcessInstanceEntity.java
+++
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/model/ProcessInstanceEntity.java
@@ -25,7 +25,7 @@ import java.util.Set;
import org.kie.kogito.persistence.postgresql.hibernate.JsonBinaryConverter;
-import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.fasterxml.jackson.databind.JsonNode;
import jakarta.persistence.CascadeType;
import jakarta.persistence.CollectionTable;
@@ -76,7 +76,7 @@ public class ProcessInstanceEntity extends AbstractEntity {
@Convert(converter = JsonBinaryConverter.class)
@Column(columnDefinition = "jsonb")
- private ObjectNode variables;
+ private JsonNode variables;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "processInstance")
private List<NodeInstanceEntity> nodes;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "processInstance")
@@ -225,11 +225,11 @@ public class ProcessInstanceEntity extends AbstractEntity
{
this.slaDueDate = slaDueDate;
}
- public ObjectNode getVariables() {
+ public JsonNode getVariables() {
return variables;
}
- public void setVariables(ObjectNode variables) {
+ public void setVariables(JsonNode variables) {
this.variables = variables;
}
diff --git
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/storage/ProcessInstanceEntityStorage.java
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/storage/ProcessInstanceEntityStorage.java
index 77b5947e5..c615e0e6e 100644
---
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/storage/ProcessInstanceEntityStorage.java
+++
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/index/jpa/storage/ProcessInstanceEntityStorage.java
@@ -50,6 +50,7 @@ import org.kie.kogito.index.model.CancelType;
import org.kie.kogito.index.model.MilestoneStatus;
import org.kie.kogito.index.model.ProcessInstance;
import org.kie.kogito.index.storage.ProcessInstanceStorage;
+import org.kie.kogito.jackson.utils.JsonObjectUtils;
import org.kie.kogito.persistence.api.StorageServiceCapability;
import org.kie.kogito.persistence.api.StorageServiceCapabilityProvider;
@@ -217,6 +218,12 @@ public class ProcessInstanceEntityStorage extends
AbstractJPAStorageFetcher<Stri
if (body.isRetrigger() != null) {
nodeInstance.setRetrigger(body.isRetrigger());
}
+ if (body.getInputParameters() != null) {
+
nodeInstance.setInputArgs(JsonObjectUtils.fromValue(body.getInputParameters()));
+ }
+ if (body.getOutputParameters() != null) {
+
nodeInstance.setOutputArgs(JsonObjectUtils.fromValue(body.getOutputParameters()));
+ }
ZonedDateTime eventDate = toZonedDateTime(body.getEventDate());
switch (body.getEventType()) {
case EVENT_TYPE_ABORTED:
diff --git
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/persistence/postgresql/hibernate/JsonBinaryConverter.java
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/persistence/postgresql/hibernate/JsonBinaryConverter.java
index c82578e18..ae034415d 100644
---
a/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/persistence/postgresql/hibernate/JsonBinaryConverter.java
+++
b/data-index/data-index-storage/data-index-storage-jpa-common/src/main/java/org/kie/kogito/persistence/postgresql/hibernate/JsonBinaryConverter.java
@@ -23,14 +23,14 @@ import java.io.UncheckedIOException;
import org.kie.kogito.jackson.utils.ObjectMapperFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.fasterxml.jackson.databind.JsonNode;
import jakarta.persistence.AttributeConverter;
-public class JsonBinaryConverter implements AttributeConverter<ObjectNode,
String> {
+public class JsonBinaryConverter implements AttributeConverter<JsonNode,
String> {
@Override
- public String convertToDatabaseColumn(ObjectNode attribute) {
+ public String convertToDatabaseColumn(JsonNode attribute) {
try {
return attribute == null ? null :
ObjectMapperFactory.get().writeValueAsString(attribute);
} catch (IOException e) {
@@ -39,9 +39,9 @@ public class JsonBinaryConverter implements
AttributeConverter<ObjectNode, Strin
}
@Override
- public ObjectNode convertToEntityAttribute(String dbData) {
+ public JsonNode convertToEntityAttribute(String dbData) {
try {
- return dbData == null ? null :
ObjectMapperFactory.get().readValue(dbData, ObjectNode.class);
+ return dbData == null ? null :
ObjectMapperFactory.get().readValue(dbData, JsonNode.class);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
diff --git
a/data-index/data-index-storage/data-index-storage-jpa-common/src/test/java/org/kie/kogito/index/jpa/storage/AbstractProcessInstanceStorageIT.java
b/data-index/data-index-storage/data-index-storage-jpa-common/src/test/java/org/kie/kogito/index/jpa/storage/AbstractProcessInstanceStorageIT.java
index e5e4475c9..4f6cbb835 100644
---
a/data-index/data-index-storage/data-index-storage-jpa-common/src/test/java/org/kie/kogito/index/jpa/storage/AbstractProcessInstanceStorageIT.java
+++
b/data-index/data-index-storage/data-index-storage-jpa-common/src/test/java/org/kie/kogito/index/jpa/storage/AbstractProcessInstanceStorageIT.java
@@ -109,7 +109,7 @@ public abstract class AbstractProcessInstanceStorageIT {
.hasSize(1);
Assertions.assertThat(processInstance.getNodes().get(0))
- .hasNoNullFieldsOrPropertiesExcept("exit", "slaDueDate",
"errorMessage", "retrigger", "cancelType")
+ .hasNoNullFieldsOrPropertiesExcept("exit", "slaDueDate",
"errorMessage", "retrigger", "cancelType", "inputArgs", "outputArgs")
.hasFieldOrPropertyWithValue("name", "nodeName")
.hasFieldOrPropertyWithValue("type", "BoundaryEventNode")
.hasFieldOrPropertyWithValue("definitionId", nodeDefinitionId)
@@ -125,7 +125,7 @@ public abstract class AbstractProcessInstanceStorageIT {
.hasSize(1);
Assertions.assertThat(processInstance.getNodes().get(0))
- .hasNoNullFieldsOrPropertiesExcept("slaDueDate",
"errorMessage", "retrigger", "cancelType")
+ .hasNoNullFieldsOrPropertiesExcept("slaDueDate",
"errorMessage", "retrigger", "cancelType", "inputArgs", "outputArgs")
.hasFieldOrPropertyWithValue("name", "nodeName")
.hasFieldOrPropertyWithValue("type", "BoundaryEventNode")
.hasFieldOrPropertyWithValue("definitionId", nodeDefinitionId)
diff --git
a/data-index/data-index-storage/data-index-storage-jpa/src/main/java/org/kie/kogito/index/jdbc/JsonBinaryConverter.java
b/data-index/data-index-storage/data-index-storage-jpa/src/main/java/org/kie/kogito/index/jdbc/JsonBinaryConverter.java
index 586f60ed1..bb7434a84 100644
---
a/data-index/data-index-storage/data-index-storage-jpa/src/main/java/org/kie/kogito/index/jdbc/JsonBinaryConverter.java
+++
b/data-index/data-index-storage/data-index-storage-jpa/src/main/java/org/kie/kogito/index/jdbc/JsonBinaryConverter.java
@@ -23,14 +23,14 @@ import java.io.UncheckedIOException;
import org.kie.kogito.jackson.utils.ObjectMapperFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.fasterxml.jackson.databind.JsonNode;
import jakarta.persistence.AttributeConverter;
-public class JsonBinaryConverter implements AttributeConverter<ObjectNode,
byte[]> {
+public class JsonBinaryConverter implements AttributeConverter<JsonNode,
byte[]> {
@Override
- public byte[] convertToDatabaseColumn(ObjectNode attribute) {
+ public byte[] convertToDatabaseColumn(JsonNode attribute) {
try {
return attribute == null ? null :
ObjectMapperFactory.get().writeValueAsBytes(attribute);
} catch (IOException e) {
@@ -39,9 +39,9 @@ public class JsonBinaryConverter implements
AttributeConverter<ObjectNode, byte[
}
@Override
- public ObjectNode convertToEntityAttribute(byte[] dbData) {
+ public JsonNode convertToEntityAttribute(byte[] dbData) {
try {
- return dbData == null ? null :
ObjectMapperFactory.get().readValue(dbData, ObjectNode.class);
+ return dbData == null ? null :
ObjectMapperFactory.get().readValue(dbData, JsonNode.class);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
diff --git
a/data-index/data-index-storage/data-index-storage-jpa/src/main/resources/kie-flyway/db/data-index/ansi/V1.47.0__add_input_output_args.sql
b/data-index/data-index-storage/data-index-storage-jpa/src/main/resources/kie-flyway/db/data-index/ansi/V1.47.0__add_input_output_args.sql
new file mode 100644
index 000000000..742a1bed6
--- /dev/null
+++
b/data-index/data-index-storage/data-index-storage-jpa/src/main/resources/kie-flyway/db/data-index/ansi/V1.47.0__add_input_output_args.sql
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+ALTER TABLE nodes ADD COLUMN input_args varchar(max);
+ALTER TABLE nodes ADD COLUMN output_args varchar(max);
\ No newline at end of file
diff --git
a/data-index/data-index-storage/data-index-storage-mongodb/src/main/java/org/kie/kogito/index/mongodb/model/ProcessInstanceEntity.java
b/data-index/data-index-storage/data-index-storage-mongodb/src/main/java/org/kie/kogito/index/mongodb/model/ProcessInstanceEntity.java
index dc00ab014..34763fe15 100644
---
a/data-index/data-index-storage/data-index-storage-mongodb/src/main/java/org/kie/kogito/index/mongodb/model/ProcessInstanceEntity.java
+++
b/data-index/data-index-storage/data-index-storage-mongodb/src/main/java/org/kie/kogito/index/mongodb/model/ProcessInstanceEntity.java
@@ -310,6 +310,10 @@ public class ProcessInstanceEntity {
private String errorMessage;
+ private Document inputArgs;
+
+ private Document outputArgs;
+
public String getId() {
return id;
}
@@ -382,6 +386,22 @@ public class ProcessInstanceEntity {
this.cancelType = cancelType;
}
+ public Document getInputArgs() {
+ return inputArgs;
+ }
+
+ public void setInputArgs(Document inputArgs) {
+ this.inputArgs = inputArgs;
+ }
+
+ public Document getOutputArgs() {
+ return outputArgs;
+ }
+
+ public void setOutputArgs(Document outputArgs) {
+ this.outputArgs = outputArgs;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
diff --git
a/data-index/data-index-storage/data-index-storage-mongodb/src/main/java/org/kie/kogito/index/mongodb/model/ProcessInstanceEntityMapper.java
b/data-index/data-index-storage/data-index-storage-mongodb/src/main/java/org/kie/kogito/index/mongodb/model/ProcessInstanceEntityMapper.java
index 46ca131a8..954b25602 100644
---
a/data-index/data-index-storage/data-index-storage-mongodb/src/main/java/org/kie/kogito/index/mongodb/model/ProcessInstanceEntityMapper.java
+++
b/data-index/data-index-storage/data-index-storage-mongodb/src/main/java/org/kie/kogito/index/mongodb/model/ProcessInstanceEntityMapper.java
@@ -156,6 +156,8 @@ public class ProcessInstanceEntityMapper implements
MongoEntityMapper<ProcessIns
instance.setRetrigger(entity.isRetrigger());
instance.setErrorMessage(entity.getErrorMessage());
instance.setCancelType(entity.getCancelType());
+ instance.setInputArgs(documentToJsonNode(entity.getInputArgs()));
+ instance.setOutputArgs(documentToJsonNode(entity.getOutputArgs()));
return instance;
}
@@ -176,6 +178,8 @@ public class ProcessInstanceEntityMapper implements
MongoEntityMapper<ProcessIns
entity.setRetrigger(instance.isRetrigger());
entity.setErrorMessage(instance.getErrorMessage());
entity.setCancelType(instance.getCancelType());
+ entity.setInputArgs(jsonNodeToDocument(instance.getInputArgs()));
+ entity.setOutputArgs(jsonNodeToDocument(instance.getOutputArgs()));
return entity;
}
diff --git
a/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/kie-flyway/db/data-index/postgresql/V1.47.0__add_input_output_args.sql
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/kie-flyway/db/data-index/postgresql/V1.47.0__add_input_output_args.sql
new file mode 100644
index 000000000..e7c7cdbab
--- /dev/null
+++
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/resources/kie-flyway/db/data-index/postgresql/V1.47.0__add_input_output_args.sql
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+ALTER TABLE nodes ADD COLUMN input_args jsonb;
+ALTER TABLE nodes ADD COLUMN output_args jsonb;
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]