This is an automated email from the ASF dual-hosted git repository.

mariofusco pushed a commit to branch q3lts
in repository https://gitbox.apache.org/repos/asf/incubator-kie-kogito-apps.git

commit 47a49371943e5256fd8d7c19765ee365707ba692
Author: Pere Fernández <[email protected]>
AuthorDate: Thu Nov 30 10:30:58 2023 +0100

    - fix patches
---
 .../quarkus-3/patches/0002_hibernate_changes.patch | 509 ++++++++++-----------
 .../quarkus-3/patches/0003_mutiny_changes.patch    |  20 +-
 .../quarkus-3/patches/0004_arc_changes.patch       |  64 ++-
 .../0005_jobs-service-reactive-streams.patch       | 323 +++++++------
 .../patches/0006_data-index-reactive-streams.patch |  64 +--
 ...0010_quarkus_dev_ui_static_content_routes.patch |  21 +-
 6 files changed, 481 insertions(+), 520 deletions(-)

diff --git a/.ci/environments/quarkus-3/patches/0002_hibernate_changes.patch 
b/.ci/environments/quarkus-3/patches/0002_hibernate_changes.patch
index 10f8a4322..edbb393ae 100644
--- a/.ci/environments/quarkus-3/patches/0002_hibernate_changes.patch
+++ b/.ci/environments/quarkus-3/patches/0002_hibernate_changes.patch
@@ -1,17 +1,8 @@
 diff --git 
a/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-common/src/test/java/org/kie/kogito/index/AbstractProcessDataIndexIT.java
 
b/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-common/src/test/java/org/kie/kogito/index/AbstractProcessDataIndexIT.java
-index 2edebf340..a0e91004d 100644
+index 72aebeb09..ee13a5625 100644
 --- 
a/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-common/src/test/java/org/kie/kogito/index/AbstractProcessDataIndexIT.java
 +++ 
b/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-common/src/test/java/org/kie/kogito/index/AbstractProcessDataIndexIT.java
-@@ -108,7 +108,7 @@ public abstract class AbstractProcessDataIndexIT {
-                 .get("/approvals/{processId}/tasks")
-                 .then()
-                 .statusCode(200)
--                .body("$.size()", is(1))
-+                .body("size()", is(1))
-                 .body("[0].name", is("firstLineApproval"))
-                 .body("[0].id", notNullValue())
-                 .extract()
-@@ -201,7 +201,7 @@ public abstract class AbstractProcessDataIndexIT {
+@@ -206,7 +206,7 @@ public abstract class AbstractProcessDataIndexIT {
                  .get("/approvals/{processId}/tasks")
                  .then()
                  .statusCode(200)
@@ -20,37 +11,32 @@ index 2edebf340..a0e91004d 100644
                  .body("[0].name", is("secondLineApproval"))
                  .body("[0].id", notNullValue())
                  .extract()
-@@ -467,7 +467,7 @@ public abstract class AbstractProcessDataIndexIT {
+@@ -473,7 +473,7 @@ public abstract class AbstractProcessDataIndexIT {
                          
.get("/approvals/{id}/firstLineApproval/{taskId}/comments")
                          .then()
                          .statusCode(200)
 -                        .body("$.size()", is(1))
 +                        .body("size()", is(1))
                          .body("[0].content", is(commentContent)));
- 
-         Map<String, String> commentMap = 
given().spec(dataIndexSpec()).contentType(ContentType.JSON)
-@@ -565,7 +565,7 @@ public abstract class AbstractProcessDataIndexIT {
+
+         await()
+@@ -584,7 +584,7 @@ public abstract class AbstractProcessDataIndexIT {
                          
.get("/approvals/{id}/firstLineApproval/{taskId}/attachments")
                          .then()
                          .statusCode(200)
 -                        .body("$.size()", is(1))
 +                        .body("size()", is(1))
                          .body("[0].name", is(attachmentName)));
- 
-         Map<String, String> attachmentMap = 
given().spec(dataIndexSpec()).contentType(ContentType.JSON)
+
+         AtomicReference<Map<String, String>> attachmentMapRef = new 
AtomicReference<>();
 diff --git 
a/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/GraphQLUtils.java
 
b/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/GraphQLUtils.java
-index 5c1275858..83fbb42c3 100644
+index 5109b4e11..a7ec15508 100644
 --- 
a/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/GraphQLUtils.java
 +++ 
b/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/GraphQLUtils.java
-@@ -43,11 +43,28 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
- 
- import static java.lang.String.format;
- import static java.util.stream.Collectors.joining;
--import static org.apache.commons.lang3.ArrayUtils.insert;
- import static org.kie.kogito.index.json.JsonUtils.getObjectMapper;
- 
+@@ -51,8 +51,27 @@ import static 
org.kie.kogito.index.json.JsonUtils.getObjectMapper;
+
  public class GraphQLUtils {
- 
+
 +    private static final String ID = "id";
 +    private static final String VERSION = "version";
 +    private static final String STATE = "state";
@@ -63,6 +49,7 @@ index 5c1275858..83fbb42c3 100644
 +    private static final String ADDON = "addon";
 +    private static final String STATUS = "status";
 +    private static final String BUSSINES_KEY = "bk";
++    private static final String IDENT = "ident";
 +    private static final String ACTUAL_OWNER = "actualOwner";
 +    private static final String STARTED = "started";
 +    private static final String COMPLETED = "completed";
@@ -70,204 +57,209 @@ index 5c1275858..83fbb42c3 100644
 +    private static final String POTENTIAL_USERS = "potentialUsers";
 +
      private static final Logger LOGGER = 
LoggerFactory.getLogger(GraphQLUtils.class);
-     private static final Map<Class, String> QUERY_FIELDS = new HashMap<>();
+-    private static final Map<Class, String> QUERY_FIELDS = new HashMap<>();
++    private static final Map<Class<?>, String> QUERY_FIELDS = new HashMap<>();
      private static final Map<String, String> QUERIES = new HashMap<>();
-@@ -74,107 +91,107 @@ public class GraphQLUtils {
+
+     static {
+@@ -77,115 +96,115 @@ public class GraphQLUtils {
      }
- 
+
      public static String getProcessDefinitionByIdAndVersion(String id, String 
version) {
 -        return getProcessDefinitionQuery("ProcessDefinitionByIdAndVersion", 
id, version);
 +        return getProcessDefinitionQuery("ProcessDefinitionByIdAndVersion", 
Map.of(ID, id, VERSION, version));
      }
- 
+
      public static String getProcessInstanceById(String id) {
 -        return getProcessInstanceQuery("ProcessInstanceById", id);
 +        return getProcessInstanceQuery("ProcessInstanceById", Map.of(ID, id));
      }
- 
+
      public static String getProcessInstanceByIdAndState(String id, 
ProcessInstanceState state) {
 -        return getProcessInstanceQuery("ProcessInstanceByIdAndState", id, 
state.name());
 +        return getProcessInstanceQuery("ProcessInstanceByIdAndState", 
Map.of(ID, id, STATE, state.name()));
      }
- 
+
      public static String getProcessInstanceByIdAndStart(String id, String 
start) {
 -        return getProcessInstanceQuery("ProcessInstanceByIdAndStart", id, 
start);
 +        return getProcessInstanceQuery("ProcessInstanceByIdAndStart", 
Map.of(ID, id, START, start));
      }
- 
+
      public static String getProcessInstanceByIdAndProcessId(String id, String 
processId) {
 -        return getProcessInstanceQuery("ProcessInstanceByIdAndProcessId", id, 
processId);
 +        return getProcessInstanceQuery("ProcessInstanceByIdAndProcessId", 
Map.of(ID, id, PROCESS_ID, processId));
      }
- 
+
      public static String 
getProcessInstanceByIdAndParentProcessInstanceId(String id, String 
parentProcessInstanceId) {
 -        return 
getProcessInstanceQuery("ProcessInstanceByIdAndParentProcessInstanceId", id, 
parentProcessInstanceId);
 +        return 
getProcessInstanceQuery("ProcessInstanceByIdAndParentProcessInstanceId", 
Map.of(ID, id, PARENT_PROCESS_INSTANCE_ID, parentProcessInstanceId));
      }
- 
+
      public static String getProcessInstanceByParentProcessInstanceId(String 
parentProcessInstanceId) {
 -        return 
getProcessInstanceQuery("ProcessInstanceByParentProcessInstanceId", 
parentProcessInstanceId);
 +        return 
getProcessInstanceQuery("ProcessInstanceByParentProcessInstanceId", 
Map.of(PARENT_PROCESS_INSTANCE_ID, parentProcessInstanceId));
      }
- 
+
      public static String 
getProcessInstanceByIdAndNullParentProcessInstanceId(String id, Boolean isNull) 
{
 -        return 
getProcessInstanceQuery("ProcessInstanceByIdAndNullParentProcessInstanceId", 
id, isNull.toString());
 +        return 
getProcessInstanceQuery("ProcessInstanceByIdAndNullParentProcessInstanceId", 
Map.of(ID, id, IS_NULL, isNull));
      }
- 
+
      public static String 
getProcessInstanceByIdAndNullRootProcessInstanceId(String id, Boolean isNull) {
 -        return 
getProcessInstanceQuery("ProcessInstanceByIdAndNullRootProcessInstanceId", id, 
isNull.toString());
 +        return 
getProcessInstanceQuery("ProcessInstanceByIdAndNullRootProcessInstanceId", 
Map.of(ID, id, IS_NULL, isNull));
      }
- 
+
      public static String getProcessInstanceByRootProcessInstanceId(String 
rootProcessInstanceId) {
 -        return 
getProcessInstanceQuery("ProcessInstanceByRootProcessInstanceId", 
rootProcessInstanceId);
 +        return 
getProcessInstanceQuery("ProcessInstanceByRootProcessInstanceId", Map.of(ID, 
rootProcessInstanceId));
      }
- 
+
      public static String getProcessInstanceByIdAndErrorNode(String id, String 
nodeDefinitionId) {
 -        return getProcessInstanceQuery("ProcessInstanceByIdAndErrorNode", id, 
nodeDefinitionId);
 +        return getProcessInstanceQuery("ProcessInstanceByIdAndErrorNode", 
Map.of(ID, id, NODE, nodeDefinitionId));
      }
- 
+
      public static String getProcessInstanceByIdAndAddon(String id, String 
addon) {
 -        return getProcessInstanceQuery("ProcessInstanceByIdAndAddon", id, 
addon);
 +        return getProcessInstanceQuery("ProcessInstanceByIdAndAddon", 
Map.of(ID, id, ADDON, addon));
      }
- 
+
      public static String getProcessInstanceByIdAndMilestoneName(String id, 
String milestone) {
 -        return getProcessInstanceQuery("ProcessInstanceByIdAndMilestoneName", 
id, milestone);
 +        return getProcessInstanceQuery("ProcessInstanceByIdAndMilestoneName", 
Map.of(ID, id, MILESTONE, milestone));
      }
- 
+
      public static String getProcessInstanceByIdAndMilestoneStatus(String id, 
String status) {
 -        return 
getProcessInstanceQuery("ProcessInstanceByIdAndMilestoneStatus", id, status);
 +        return 
getProcessInstanceQuery("ProcessInstanceByIdAndMilestoneStatus", Map.of(ID, id, 
STATUS, status));
      }
- 
+
 -    public static String getProcessInstanceByBusinessKey(String businessKeys) 
{
 -        return getProcessInstanceQuery("ProcessInstanceByBusinessKey", 
businessKeys);
 +    public static String getProcessInstanceByBusinessKey(String businessKey) {
 +        return getProcessInstanceQuery("ProcessInstanceByBusinessKey", 
Map.of(BUSSINES_KEY, businessKey));
      }
- 
+
+     public static String getProcessInstanceByCreatedBy(String identity) {
+-        return getProcessInstanceQuery("ProcessInstanceByCreatedBy", 
identity);
++        return getProcessInstanceQuery("ProcessInstanceByCreatedBy", 
Map.of(IDENT, identity));
+     }
+
+     public static String getProcessInstanceByUpdatedBy(String identity) {
+-        return getProcessInstanceQuery("ProcessInstanceByUpdatedBy", 
identity);
++        return getProcessInstanceQuery("ProcessInstanceByUpdatedBy", 
Map.of(IDENT, identity));
+     }
+
      public static String getUserTaskInstanceById(String id) {
 -        return getUserTaskInstanceQuery("UserTaskInstanceById", id);
 +        return getUserTaskInstanceQuery("UserTaskInstanceById", Map.of(ID, 
id));
      }
- 
+
      public static String getUserTaskInstanceByProcessInstanceId(String id) {
 -        return 
getUserTaskInstanceQuery("UserTaskInstanceByProcessInstanceId", id);
 +        return 
getUserTaskInstanceQuery("UserTaskInstanceByProcessInstanceId", Map.of(ID, id));
      }
- 
+
      public static String getUserTaskInstanceByIdAndActualOwner(String id, 
String actualOwner) {
 -        return getUserTaskInstanceQuery("UserTaskInstanceByIdAndActualOwner", 
id, actualOwner);
 +        return getUserTaskInstanceQuery("UserTaskInstanceByIdAndActualOwner", 
Map.of(ID, id, ACTUAL_OWNER, actualOwner));
      }
- 
+
      public static String getUserTaskInstanceByIdAndProcessId(String id, 
String processId) {
 -        return getUserTaskInstanceQuery("UserTaskInstanceByIdAndProcessId", 
id, processId);
 +        return getUserTaskInstanceQuery("UserTaskInstanceByIdAndProcessId", 
Map.of(ID, id, PROCESS_ID, processId));
      }
- 
+
      public static String getUserTaskInstanceByIdNoActualOwner(String id) {
 -        return getUserTaskInstanceQuery("UserTaskInstanceByIdNoActualOwner", 
id);
 +        return getUserTaskInstanceQuery("UserTaskInstanceByIdNoActualOwner", 
Map.of(ID, id));
      }
- 
+
      public static String getUserTaskInstanceByIdAndState(String id, String 
state) {
 -        return getUserTaskInstanceQuery("UserTaskInstanceByIdAndState", id, 
state);
 +        return getUserTaskInstanceQuery("UserTaskInstanceByIdAndState", 
Map.of(ID, id, STATE, state));
      }
- 
+
      public static String getUserTaskInstanceByIdAndStarted(String id, String 
started) {
 -        return getUserTaskInstanceQuery("UserTaskInstanceByIdAndStarted", id, 
started);
 +        return getUserTaskInstanceQuery("UserTaskInstanceByIdAndStarted", 
Map.of(ID, id, STARTED, started));
      }
- 
+
      public static String getUserTaskInstanceByIdAndCompleted(String id, 
String completed) {
 -        return getUserTaskInstanceQuery("UserTaskInstanceByIdAndCompleted", 
id, completed);
 +        return getUserTaskInstanceQuery("UserTaskInstanceByIdAndCompleted", 
Map.of(ID, id, COMPLETED, completed));
      }
- 
+
      public static String getUserTaskInstanceByIdAndPotentialGroups(String id, 
List<String> potentialGroups) throws Exception {
 -        return 
getUserTaskInstanceWithArray("UserTaskInstanceByIdAndPotentialGroups", 
potentialGroups, "potentialGroups", id);
 +        return 
getUserTaskInstanceWithArray("UserTaskInstanceByIdAndPotentialGroups", 
potentialGroups, POTENTIAL_GROUPS, Map.of(ID, id));
      }
- 
+
      public static String getUserTaskInstanceByIdAndPotentialUsers(String id, 
List<String> potentialUsers) throws Exception {
 -        return 
getUserTaskInstanceWithArray("UserTaskInstanceByIdAndPotentialUsers", 
potentialUsers, "potentialUsers", id);
 +        return 
getUserTaskInstanceWithArray("UserTaskInstanceByIdAndPotentialUsers", 
potentialUsers, POTENTIAL_USERS, Map.of(ID, id));
      }
- 
+
      public static String getJobById(String id) {
 -        return getJobQuery("JobById", id);
 +        return getJobQuery("JobById", Map.of(ID, id));
      }
- 
+
      public static String getTravelsByUserTaskId(String id) {
-@@ -197,10 +214,10 @@ public class GraphQLUtils {
+@@ -208,7 +227,7 @@ public class GraphQLUtils {
          return getQuery("DealsByTaskIdNoActualOwner", id);
      }
- 
+
 -    private static String getUserTaskInstanceWithArray(String query, 
List<String> values, String variable, String... args) throws Exception {
 +    private static String getUserTaskInstanceWithArray(String query, 
List<String> values, String variable, Map<String, Object> args) throws 
Exception {
          String json = getUserTaskInstanceQuery(query, args);
          ObjectNode jsonNode = (ObjectNode) getObjectMapper().readTree(json);
--        ArrayNode pg = (ArrayNode) jsonNode.get("variables").get(variable);
-+        ArrayNode pg = jsonNode.get("variables").withArray(variable);
-         values.forEach(g -> pg.add(g));
-         return jsonNode.toString();
-     }
-@@ -209,25 +226,35 @@ public class GraphQLUtils {
+         ArrayNode pg = (ArrayNode) jsonNode.get("variables").get(variable);
+@@ -220,24 +239,32 @@ public class GraphQLUtils {
          return format(QUERIES.get(name), args);
      }
- 
+
 -    private static String getProcessInstanceQuery(String name, String... 
args) {
 +    private static String getProcessInstanceQuery(String name, Map<String, 
Object> args) {
          return getQuery(name, ProcessInstance.class, args);
      }
- 
+
 -    private static String getProcessDefinitionQuery(String name, String... 
args) {
 +    private static String getProcessDefinitionQuery(String name, Map<String, 
Object> args) {
          return getQuery(name, ProcessDefinition.class, args);
      }
- 
+
 -    private static String getUserTaskInstanceQuery(String name, String... 
args) {
 +    private static String getUserTaskInstanceQuery(String name, Map<String, 
Object> args) {
          return getQuery(name, UserTaskInstance.class, args);
      }
- 
+
 -    private static String getJobQuery(String name, String... args) {
 +    private static String getJobQuery(String name, Map<String, Object> args) {
          return getQuery(name, Job.class, args);
      }
- 
+
 -    private static String getQuery(String name, Class clazz, String... args) {
 -        return format(QUERIES.get(name), insert(0, args, 
QUERY_FIELDS.get(clazz)));
--    }
-+    private static String getQuery(String name, Class clazz, Map<String, 
Object> args) {
++    private static String getQuery(String name, Class<?> clazz, Map<String, 
Object> args) {
 +        try {
 +            String query = format(QUERIES.get(name), QUERY_FIELDS.get(clazz));
-+
 +            JsonNode jsonQuery = getObjectMapper().readTree(query);
 +            ObjectNode jsonVars = getObjectMapper().valueToTree(args);
 +            jsonQuery.withObject("/variables").setAll(jsonVars);
-+
 +            return jsonQuery.toString();
 +        } catch (Exception e) {
 +            throw new RuntimeException(e);
 +        }
-+     }
- 
+     }
+
      private static Stream<Field> getAllFieldsList(Class clazz) {
-         return 
FieldUtils.getAllFieldsList(clazz).stream().filter(getSoourcePredicate().or(getSoourcePredicate()));
 diff --git 
a/data-index/data-index-service/data-index-service-common/src/test/resources/graphql_queries.json
 
b/data-index/data-index-service/data-index-service-common/src/test/resources/graphql_queries.json
-index 8da0f683d..0825ff420 100644
+index afc269c6e..543f91bc4 100644
 --- 
a/data-index/data-index-service/data-index-service-common/src/test/resources/graphql_queries.json
 +++ 
b/data-index/data-index-service/data-index-service-common/src/test/resources/graphql_queries.json
-@@ -1,207 +1,126 @@
+@@ -1,219 +1,134 @@
  {
    "ProcessDefinitionByIdAndVersion": {
      "query": "query ($id: String, $version: String) { ProcessDefinitions( 
where: {  id: {  equal : $id }, version: {  equal : $version } }, orderBy: { 
version: ASC }, pagination : { limit: 10, offset: 0 } ){ %s } }",
@@ -383,6 +375,20 @@ index 8da0f683d..0825ff420 100644
 -    "variables": {
 -      "bk": "%s"
 -    }
++    "variables": {}
+   },
+   "ProcessInstanceByCreatedBy": {
+     "query": "query ( $ident: String ) { ProcessInstances(where: { createdBy 
: { equal : $ident } }) { %s } }",
+-    "variables": {
+-      "ident": "%s"
+-    }
++    "variables": {}
+   },
+   "ProcessInstanceByUpdatedBy": {
+     "query": "query ( $ident: String ) { ProcessInstances(where: { updatedBy 
: { equal : $ident } }) { %s } }",
+-    "variables": {
+-      "ident": "%s"
+-    }
 +    "variables": {}
    },
    "UserTaskInstanceById": {
@@ -507,81 +513,81 @@ index 8da0f683d..0825ff420 100644
    }
  }
 diff --git 
a/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/model/ProcessInstanceEntity.java
 
b/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/model/ProcessInstanceEntity.java
-index f477b3a20..dd87921de 100644
+index a9c041341..c7ea6b341 100644
 --- 
a/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/model/ProcessInstanceEntity.java
 +++ 
b/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/model/ProcessInstanceEntity.java
-@@ -36,14 +36,13 @@ import jakarta.persistence.Table;
+@@ -38,14 +38,12 @@ import jakarta.persistence.Table;
  import org.hibernate.annotations.OnDelete;
  import org.hibernate.annotations.OnDeleteAction;
  import org.hibernate.annotations.Type;
 -import org.hibernate.annotations.TypeDef;
- 
+
  import com.fasterxml.jackson.databind.node.ObjectNode;
 -import com.vladmihalcea.hibernate.type.json.JsonBlobType;
-+
+
 +import org.kie.kogito.persistence.oracle.hibernate.JsonBinaryType;
- 
  @Entity(name = "processes")
  @Table(name = "processes")
 -@TypeDef(name = "jsonb", typeClass = JsonBlobType.class)
  public class ProcessInstanceEntity extends AbstractEntity {
- 
+
      @Id
-@@ -69,7 +68,7 @@ public class ProcessInstanceEntity extends AbstractEntity {
-     private String parentProcessInstanceId;
-     @Column(name = "lastUpdateTime")
-     private ZonedDateTime lastUpdate;
+@@ -75,7 +73,7 @@ public class ProcessInstanceEntity extends AbstractEntity {
+     private String createdBy;
+     @Column(name = "updated_by")
+     private String updatedBy;
 -    @Type(type = "jsonb")
-+    @Type(value = JsonBinaryType.class)
++    @Type(JsonBinaryType.class)
      private ObjectNode variables;
      @OneToMany(cascade = CascadeType.ALL, mappedBy = "processInstance")
      private List<NodeInstanceEntity> nodes;
 diff --git 
a/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/model/UserTaskInstanceEntity.java
 
b/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/model/UserTaskInstanceEntity.java
-index 784048459..25ccf13d0 100644
+index 98cd6fd26..965a753b3 100644
 --- 
a/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/model/UserTaskInstanceEntity.java
 +++ 
b/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/model/UserTaskInstanceEntity.java
-@@ -35,13 +35,11 @@ import jakarta.persistence.Table;
+@@ -38,13 +38,12 @@ import jakarta.persistence.Table;
  import org.hibernate.annotations.OnDelete;
  import org.hibernate.annotations.OnDeleteAction;
  import org.hibernate.annotations.Type;
 -import org.hibernate.annotations.TypeDef;
- 
+
  import com.fasterxml.jackson.databind.node.ObjectNode;
 -import com.vladmihalcea.hibernate.type.json.JsonBlobType;
++
 +import org.kie.kogito.persistence.oracle.hibernate.JsonBinaryType;
- 
+
  @Entity(name = "tasks")
 -@TypeDef(name = "jsonb", typeClass = JsonBlobType.class)
  @Table(name = "tasks")
  public class UserTaskInstanceEntity extends AbstractEntity {
- 
-@@ -90,9 +88,9 @@ public class UserTaskInstanceEntity extends AbstractEntity {
+
+@@ -93,9 +92,9 @@ public class UserTaskInstanceEntity extends AbstractEntity {
      private String processId;
      private String rootProcessId;
      private String rootProcessInstanceId;
 -    @Type(type = "jsonb")
-+    @Type(value = JsonBinaryType.class)
++    @Type(JsonBinaryType.class)
      private ObjectNode inputs;
 -    @Type(type = "jsonb")
-+    @Type(value = JsonBinaryType.class)
++    @Type(JsonBinaryType.class)
      private ObjectNode outputs;
      private String endpoint;
-     @OneToMany(cascade = CascadeType.ALL, mappedBy = "userTask")
+     @OneToMany(cascade = CascadeType.ALL, mappedBy = "userTask", 
orphanRemoval = true, fetch = FetchType.LAZY)
 diff --git 
a/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/storage/OracleQuery.java
 
b/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/storage/OracleQuery.java
-index d848509ae..f698d913a 100644
+index a663c662b..dca6217b4 100644
 --- 
a/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/storage/OracleQuery.java
 +++ 
b/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/storage/OracleQuery.java
-@@ -26,8 +26,8 @@ import jakarta.persistence.criteria.Order;
+@@ -29,8 +29,8 @@ import jakarta.persistence.criteria.Order;
  import jakarta.persistence.criteria.Path;
  import jakarta.persistence.criteria.Predicate;
  import jakarta.persistence.criteria.Root;
 +import jakarta.persistence.metamodel.Attribute;
- 
+
 -import org.hibernate.query.criteria.internal.path.PluralAttributePath;
  import org.kie.kogito.index.oracle.model.AbstractEntity;
  import org.kie.kogito.persistence.api.query.AttributeFilter;
  import org.kie.kogito.persistence.api.query.AttributeSort;
-@@ -134,10 +134,10 @@ public class OracleQuery<E extends AbstractEntity, T> 
implements Query<T> {
+@@ -137,10 +137,10 @@ public class OracleQuery<E extends AbstractEntity, T> 
implements Query<T> {
                      return builder.equal(getAttributePath(root, attribute), 
value);
                  case IS_NULL:
                      Path pathNull = getAttributePath(root, attribute);
@@ -594,24 +600,23 @@ index d848509ae..f698d913a 100644
                  case BETWEEN:
                      List<Object> v = (List<Object>) value;
                      return builder.between(getAttributePath(root, attribute), 
(Comparable) v.get(0),
-@@ -176,6 +176,12 @@ public class OracleQuery<E extends AbstractEntity, T> 
implements Query<T> {
+@@ -179,6 +179,11 @@ public class OracleQuery<E extends AbstractEntity, T> 
implements Query<T> {
          return join.get(split[split.length - 1]);
      }
- 
+
 +    private boolean isPluralAttribute(final String attribute) {
 +        return 
this.repository.getEntityManager().getMetamodel().entity(this.entityClass).getDeclaredPluralAttributes().stream()
 +                .map(Attribute::getName)
 +                .anyMatch(pluralAttribute -> 
pluralAttribute.equals(attribute));
 +    }
-+
      private List<Predicate> getRecursivePredicate(AttributeFilter<?> filter, 
Root<E> root, CriteriaBuilder builder) {
          return ((List<AttributeFilter<?>>) filter.getValue())
                  .stream()
 diff --git 
a/data-index/data-index-storage/data-index-storage-oracle/src/test/java/org/kie/kogito/index/oracle/schema/DDLSchemaExporter.java
 
b/data-index/data-index-storage/data-index-storage-oracle/src/test/java/org/kie/kogito/index/oracle/schema/DDLSchemaExporter.java
-index 7f2bf10f9..420d0ee8a 100644
+index cdcd3cde9..a47fba0db 100644
 --- 
a/data-index/data-index-storage/data-index-storage-oracle/src/test/java/org/kie/kogito/index/oracle/schema/DDLSchemaExporter.java
 +++ 
b/data-index/data-index-storage/data-index-storage-oracle/src/test/java/org/kie/kogito/index/oracle/schema/DDLSchemaExporter.java
-@@ -43,7 +43,7 @@ public class DDLSchemaExporter {
+@@ -46,7 +46,7 @@ public class DDLSchemaExporter {
      public static void main(String[] args) {
          try (KogitoOracleSqlContainer oracleSql = new 
KogitoOracleSqlContainer()) {
              oracleSql.start();
@@ -621,78 +626,78 @@ index 7f2bf10f9..420d0ee8a 100644
              settings.put(Environment.USER, oracleSql.getUsername());
              settings.put(Environment.PASS, oracleSql.getPassword());
 diff --git 
a/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/model/ProcessInstanceEntity.java
 
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/model/ProcessInstanceEntity.java
-index 5c6ce9fbb..5bf3ea843 100644
+index 45ae037ac..fac15ead3 100644
 --- 
a/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/model/ProcessInstanceEntity.java
 +++ 
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/model/ProcessInstanceEntity.java
-@@ -36,13 +36,11 @@ import jakarta.persistence.Table;
+@@ -38,13 +38,11 @@ import jakarta.persistence.Table;
  import org.hibernate.annotations.OnDelete;
  import org.hibernate.annotations.OnDeleteAction;
  import org.hibernate.annotations.Type;
 -import org.hibernate.annotations.TypeDef;
  import org.kie.kogito.persistence.postgresql.hibernate.JsonBinaryType;
- 
+
  import com.fasterxml.jackson.databind.node.ObjectNode;
- 
+
  @Entity(name = "processes")
 -@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
  @Table(name = "processes")
  public class ProcessInstanceEntity extends AbstractEntity {
- 
-@@ -69,7 +67,7 @@ public class ProcessInstanceEntity extends AbstractEntity {
-     private String parentProcessInstanceId;
-     @Column(name = "lastUpdateTime")
-     private ZonedDateTime lastUpdate;
+
+@@ -74,7 +72,7 @@ public class ProcessInstanceEntity extends AbstractEntity {
+     private String createdBy;
+
+     private String updatedBy;
 -    @Type(type = "jsonb")
-+    @Type(value = JsonBinaryType.class)
++    @Type(JsonBinaryType.class)
      @Column(columnDefinition = "jsonb")
      private ObjectNode variables;
      @OneToMany(cascade = CascadeType.ALL, mappedBy = "processInstance")
 diff --git 
a/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/model/UserTaskInstanceEntity.java
 
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/model/UserTaskInstanceEntity.java
-index 2e28ef813..3a709e6a8 100644
+index 94f6d5dbd..e8abc279b 100644
 --- 
a/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/model/UserTaskInstanceEntity.java
 +++ 
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/model/UserTaskInstanceEntity.java
-@@ -35,13 +35,11 @@ import jakarta.persistence.Table;
+@@ -38,13 +38,11 @@ import jakarta.persistence.Table;
  import org.hibernate.annotations.OnDelete;
  import org.hibernate.annotations.OnDeleteAction;
  import org.hibernate.annotations.Type;
 -import org.hibernate.annotations.TypeDef;
  import org.kie.kogito.persistence.postgresql.hibernate.JsonBinaryType;
- 
+
  import com.fasterxml.jackson.databind.node.ObjectNode;
- 
+
  @Entity(name = "tasks")
 -@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
  @Table(name = "tasks")
  public class UserTaskInstanceEntity extends AbstractEntity {
- 
-@@ -90,10 +88,10 @@ public class UserTaskInstanceEntity extends AbstractEntity 
{
+
+@@ -93,10 +91,10 @@ public class UserTaskInstanceEntity extends AbstractEntity 
{
      private String processId;
      private String rootProcessId;
      private String rootProcessInstanceId;
 -    @Type(type = "jsonb")
-+    @Type(value = JsonBinaryType.class)
++    @Type(JsonBinaryType.class)
      @Column(columnDefinition = "jsonb")
      private ObjectNode inputs;
 -    @Type(type = "jsonb")
-+    @Type(value = JsonBinaryType.class)
++    @Type(JsonBinaryType.class)
      @Column(columnDefinition = "jsonb")
      private ObjectNode outputs;
      private String endpoint;
 diff --git 
a/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/storage/PostgreSqlQuery.java
 
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/storage/PostgreSqlQuery.java
-index 74fd17bd9..e2c373f78 100644
+index b3d980ec6..1df737162 100644
 --- 
a/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/storage/PostgreSqlQuery.java
 +++ 
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/storage/PostgreSqlQuery.java
-@@ -26,8 +26,8 @@ import jakarta.persistence.criteria.Order;
+@@ -29,8 +29,8 @@ import jakarta.persistence.criteria.Order;
  import jakarta.persistence.criteria.Path;
  import jakarta.persistence.criteria.Predicate;
  import jakarta.persistence.criteria.Root;
 +import jakarta.persistence.metamodel.Attribute;
- 
+
 -import org.hibernate.query.criteria.internal.path.PluralAttributePath;
  import org.kie.kogito.index.postgresql.model.AbstractEntity;
  import org.kie.kogito.persistence.api.query.AttributeFilter;
  import org.kie.kogito.persistence.api.query.AttributeSort;
-@@ -132,10 +132,10 @@ public class PostgreSqlQuery<K, E extends 
AbstractEntity, T> implements Query<T>
+@@ -135,10 +135,10 @@ public class PostgreSqlQuery<K, E extends 
AbstractEntity, T> implements Query<T>
                      return builder.equal(getAttributePath(root, 
filter.getAttribute()), filter.getValue());
                  case IS_NULL:
                      Path pathNull = getAttributePath(root, 
filter.getAttribute());
@@ -705,10 +710,10 @@ index 74fd17bd9..e2c373f78 100644
                  case BETWEEN:
                      List<Object> value = (List<Object>) filter.getValue();
                      return builder
-@@ -176,6 +176,12 @@ public class PostgreSqlQuery<K, E extends AbstractEntity, 
T> implements Query<T>
+@@ -179,6 +179,12 @@ public class PostgreSqlQuery<K, E extends AbstractEntity, 
T> implements Query<T>
          return join.get(split[split.length - 1]);
      }
- 
+
 +    private boolean isPluralAttribute(final String attribute) {
 +        return 
this.repository.getEntityManager().getMetamodel().entity(this.entityClass).getDeclaredPluralAttributes().stream()
 +                .map(Attribute::getName)
@@ -719,10 +724,10 @@ index 74fd17bd9..e2c373f78 100644
          return ((List<AttributeFilter<?>>) filter.getValue())
                  .stream()
 diff --git 
a/data-index/data-index-storage/data-index-storage-postgresql/src/test/java/org/kie/kogito/index/postgresql/schema/DDLSchemaExporter.java
 
b/data-index/data-index-storage/data-index-storage-postgresql/src/test/java/org/kie/kogito/index/postgresql/schema/DDLSchemaExporter.java
-index 4f0d95a71..15b2ad7cc 100644
+index 9b082ecd2..16aaa771e 100644
 --- 
a/data-index/data-index-storage/data-index-storage-postgresql/src/test/java/org/kie/kogito/index/postgresql/schema/DDLSchemaExporter.java
 +++ 
b/data-index/data-index-storage/data-index-storage-postgresql/src/test/java/org/kie/kogito/index/postgresql/schema/DDLSchemaExporter.java
-@@ -45,7 +45,7 @@ public class DDLSchemaExporter {
+@@ -48,7 +48,7 @@ public class DDLSchemaExporter {
          try (KogitoPostgreSqlContainer postgresql = new 
KogitoPostgreSqlContainer()) {
              postgresql.waitingFor(Wait.forListeningPort());
              postgresql.start();
@@ -732,47 +737,36 @@ index 4f0d95a71..15b2ad7cc 100644
              settings.put(Environment.USER, postgresql.getUsername());
              settings.put(Environment.PASS, postgresql.getPassword());
 diff --git a/kogito-apps-build-parent/pom.xml 
b/kogito-apps-build-parent/pom.xml
-index 2e24461df..f965430b6 100644
+index 2ae4efff1..1dcf2e465 100644
 --- a/kogito-apps-build-parent/pom.xml
 +++ b/kogito-apps-build-parent/pom.xml
-@@ -47,7 +47,7 @@
+@@ -67,7 +67,7 @@
          <!-- OptaPlanner version -->
-         <version.org.optaplanner>9.40.0.Final</version.org.optaplanner>
- 
+         <version.org.optaplanner>9.44.0.Final</version.org.optaplanner>
+
 -        
<version.com.vladmihalcea.hibernate-types-55>2.12.1</version.com.vladmihalcea.hibernate-types-55>
-+        <version.org.hibernate>6.2.0.Final</version.org.hibernate> <!-- 
Aligned with Quarkus bom -->
++        <version.org.hibernate>6.2.13.Final</version.org.hibernate>
          <version.org.apache.opennlp>1.9.2</version.org.apache.opennlp>
          <version.org.apache.commons.csv>1.8</version.org.apache.commons.csv>
          <version.org.jredisearch>2.0.0</version.org.jredisearch>
-@@ -137,6 +137,11 @@
-                 <type>pom</type>
-                 <scope>import</scope>
-             </dependency>
-+            <dependency>
-+                <groupId>org.hibernate.orm</groupId>
-+                <artifactId>hibernate-ant</artifactId>
-+                <version>${version.org.hibernate}</version>
-+            </dependency>
-             <dependency>
-                 <groupId>com.redislabs</groupId>
-                 <artifactId>jredisearch</artifactId>
-@@ -163,11 +168,6 @@
-                 <version>${version.org.skyscreamer}</version>
+@@ -184,9 +184,9 @@
                  <scope>test</scope>
              </dependency>
--            <dependency>
+             <dependency>
 -                <groupId>com.vladmihalcea</groupId>
 -                <artifactId>hibernate-types-55</artifactId>
 -                
<version>${version.com.vladmihalcea.hibernate-types-55}</version>
--            </dependency>
++                <groupId>org.hibernate.orm</groupId>
++                <artifactId>hibernate-ant</artifactId>
++                <version>${version.org.hibernate}</version>
+             </dependency>
              <dependency>
                  <groupId>com.graphql-java</groupId>
-                 <artifactId>graphql-java-extended-scalars</artifactId>
 diff --git a/persistence-commons/persistence-commons-oracle/pom.xml 
b/persistence-commons/persistence-commons-oracle/pom.xml
-index c4ac717bb..08ae24324 100644
+index ab6db2dbd..8e011f3c7 100644
 --- a/persistence-commons/persistence-commons-oracle/pom.xml
 +++ b/persistence-commons/persistence-commons-oracle/pom.xml
-@@ -42,8 +42,8 @@
+@@ -46,8 +46,8 @@
        <artifactId>quarkus-jdbc-oracle</artifactId>
      </dependency>
      <dependency>
@@ -784,12 +778,12 @@ index c4ac717bb..08ae24324 100644
      <dependency>
        <groupId>io.quarkus</groupId>
 diff --git 
a/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/OracleQuery.java
 
b/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/OracleQuery.java
-index d52ea5eb6..0bb5a271b 100644
+index 45b33bc1f..bc0c0e758 100644
 --- 
a/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/OracleQuery.java
 +++ 
b/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/OracleQuery.java
-@@ -22,17 +22,19 @@ import java.util.Objects;
+@@ -25,17 +25,19 @@ import java.util.Objects;
  import java.util.stream.Collectors;
- 
+
  import org.hibernate.query.NativeQuery;
 +import org.hibernate.type.CustomType;
 +import org.hibernate.type.spi.TypeConfiguration;
@@ -801,30 +795,30 @@ index d52ea5eb6..0bb5a271b 100644
  import org.kie.kogito.persistence.oracle.model.CacheEntityRepository;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
- 
+
  import com.fasterxml.jackson.core.JsonProcessingException;
  import com.fasterxml.jackson.databind.ObjectMapper;
 -import com.vladmihalcea.hibernate.type.json.JsonBlobType;
- 
+
  import static java.lang.String.format;
  import static java.util.stream.Collectors.joining;
-@@ -137,7 +139,7 @@ public class OracleQuery<T> implements Query<T> {
+@@ -140,7 +142,7 @@ public class OracleQuery<T> implements Query<T> {
          jakarta.persistence.Query query = repository.getEntityManager()
                  .createNativeQuery(queryString.toString())
                  .unwrap(NativeQuery.class)
 -                .addScalar("json_value", new JsonBlobType(type));
 +                .addScalar("json_value", new CustomType<>(new 
JsonBinaryType(), new TypeConfiguration()));
- 
+
          if (limit != null) {
              query.setMaxResults(limit);
 diff --git 
a/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/hibernate/JsonBinaryType.java
 
b/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/hibernate/JsonBinaryType.java
-index 8b67f527f..2e1752247 100644
+index bee97ed84..667e799f6 100644
 --- 
a/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/hibernate/JsonBinaryType.java
 +++ 
b/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/hibernate/JsonBinaryType.java
-@@ -16,91 +16,83 @@
- 
+@@ -18,91 +18,83 @@
+  */
  package org.kie.kogito.persistence.oracle.hibernate;
- 
+
 +import java.io.ByteArrayInputStream;
  import java.io.Serializable;
 +import java.sql.Blob;
@@ -833,56 +827,55 @@ index 8b67f527f..2e1752247 100644
  import java.sql.SQLException;
 -import java.sql.Types;
  import java.util.Objects;
- 
+
  import org.hibernate.HibernateException;
  import org.hibernate.engine.spi.SharedSessionContractImplementor;
 +import org.hibernate.type.SqlTypes;
  import org.hibernate.usertype.UserType;
- 
+
  import com.fasterxml.jackson.core.JsonProcessingException;
  import com.fasterxml.jackson.databind.JsonNode;
  import com.fasterxml.jackson.databind.ObjectMapper;
 -import com.fasterxml.jackson.databind.node.ObjectNode;
- 
+
  import static java.lang.String.format;
- 
+
 -public class JsonBinaryType implements UserType {
 +public class JsonBinaryType implements UserType<JsonNode> {
- 
+
      private ObjectMapper mapper = new ObjectMapper();
- 
+
      @Override
 -    public int[] sqlTypes() {
 -        return new int[] { Types.JAVA_OBJECT };
 +    public int getSqlType() {
 +        return SqlTypes.BLOB;
      }
- 
+
      @Override
 -    public Class returnedClass() {
 +    public Class<JsonNode> returnedClass() {
          return JsonNode.class;
      }
- 
+
      @Override
 -    public boolean equals(Object x, Object y) throws HibernateException {
 +    public boolean equals(JsonNode x, JsonNode y) throws HibernateException {
          return Objects.equals(x, y);
      }
- 
+
      @Override
 -    public int hashCode(Object x) throws HibernateException {
 +    public int hashCode(JsonNode x) throws HibernateException {
          return Objects.hashCode(x);
      }
- 
+
      @Override
 -    public Object nullSafeGet(ResultSet rs, String[] names, 
SharedSessionContractImplementor session, Object owner)
--            throws HibernateException, SQLException {
++    public JsonNode nullSafeGet(ResultSet rs, int position, 
SharedSessionContractImplementor session, Object owner)
+             throws HibernateException, SQLException {
 -        final String json = rs.getString(names[0]);
 -        if (json == null) {
-+    public JsonNode nullSafeGet(ResultSet rs, int position, 
SharedSessionContractImplementor session, Object owner)
-+            throws SQLException {
 +        final Blob json = rs.getBlob(position);
 +        if (json.length() == 0) {
              return null;
@@ -895,12 +888,11 @@ index 8b67f527f..2e1752247 100644
 +            throw new RuntimeException("Failed to convert String to JSON: " + 
ex.getMessage(), ex);
          }
      }
- 
+
      @Override
 -    public void nullSafeSet(PreparedStatement ps, Object value, int index, 
SharedSessionContractImplementor session)
--            throws HibernateException, SQLException {
 +    public void nullSafeSet(PreparedStatement ps, JsonNode value, int index, 
SharedSessionContractImplementor session)
-+            throws SQLException {
+             throws HibernateException, SQLException {
          if (value == null) {
 -            ps.setNull(index, Types.OTHER);
 +            ps.setNull(index, SqlTypes.BLOB);
@@ -921,7 +913,7 @@ index 8b67f527f..2e1752247 100644
 +            throw new RuntimeException(format("Failed to convert JSON to 
String: %s", ex.getMessage()), ex);
          }
      }
- 
+
      @Override
 -    public Object deepCopy(Object value) throws HibernateException {
 +    public JsonNode deepCopy(JsonNode value) throws HibernateException {
@@ -935,26 +927,26 @@ index 8b67f527f..2e1752247 100644
 -        }
 +        return value.deepCopy();
      }
- 
+
      @Override
-@@ -109,12 +101,12 @@ public class JsonBinaryType implements UserType {
+@@ -111,12 +103,12 @@ public class JsonBinaryType implements UserType {
      }
- 
+
      @Override
 -    public Serializable disassemble(Object value) throws HibernateException {
 +    public Serializable disassemble(JsonNode value) throws HibernateException 
{
          return this.deepCopy(value).toString();
      }
- 
+
      @Override
 -    public Object assemble(Serializable cached, Object owner) throws 
HibernateException {
 +    public JsonNode assemble(Serializable cached, Object owner) throws 
HibernateException {
          try {
              return mapper.readTree(cached.toString());
          } catch (JsonProcessingException ex) {
-@@ -123,7 +115,7 @@ public class JsonBinaryType implements UserType {
+@@ -125,7 +117,7 @@ public class JsonBinaryType implements UserType {
      }
- 
+
      @Override
 -    public Object replace(Object original, Object target, Object owner) 
throws HibernateException {
 +    public JsonNode replace(JsonNode original, JsonNode target, Object owner) 
throws HibernateException {
@@ -962,53 +954,42 @@ index 8b67f527f..2e1752247 100644
      }
  }
 diff --git 
a/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/model/CacheEntity.java
 
b/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/model/CacheEntity.java
-index 7cbf7ce42..61de03cbf 100644
+index 996177bfc..5c5660687 100644
 --- 
a/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/model/CacheEntity.java
 +++ 
b/persistence-commons/persistence-commons-oracle/src/main/java/org/kie/kogito/persistence/oracle/model/CacheEntity.java
-@@ -18,6 +18,11 @@ package org.kie.kogito.persistence.oracle.model;
- 
- import java.util.Objects;
- 
-+import org.hibernate.annotations.Type;
-+import org.kie.kogito.persistence.oracle.hibernate.JsonBinaryType;
-+
-+import com.fasterxml.jackson.databind.node.ObjectNode;
-+
- import jakarta.persistence.Column;
- import jakarta.persistence.Entity;
- import jakarta.persistence.Id;
-@@ -26,17 +31,10 @@ import jakarta.persistence.Index;
- import jakarta.persistence.Table;
+@@ -29,16 +29,15 @@ import jakarta.persistence.Table;
  import jakarta.persistence.UniqueConstraint;
- 
--import org.hibernate.annotations.Type;
+
+ import org.hibernate.annotations.Type;
 -import org.hibernate.annotations.TypeDef;
--
--import com.fasterxml.jackson.databind.node.ObjectNode;
++
++import org.kie.kogito.persistence.oracle.hibernate.JsonBinaryType;
+
+ import com.fasterxml.jackson.databind.node.ObjectNode;
 -import com.vladmihalcea.hibernate.type.json.JsonBlobType;
--
+
  @Entity
  @IdClass(CacheId.class)
  @Table(name = "kogito_data_cache", uniqueConstraints = 
@UniqueConstraint(columnNames = { "name", "key" }),
          indexes = @Index(columnList = "name,key", unique = true))
 -@TypeDef(name = "jsonb", typeClass = JsonBlobType.class)
  public class CacheEntity {
- 
+
      @Id
-@@ -47,7 +45,7 @@ public class CacheEntity {
+@@ -49,7 +48,7 @@ public class CacheEntity {
      @Column(nullable = false)
      private String key;
- 
+
 -    @Type(type = "jsonb")
 +    @Type(JsonBinaryType.class)
      @Column(name = "json_value")
      private ObjectNode value;
- 
+
 diff --git 
a/persistence-commons/persistence-commons-oracle/src/test/java/org/kie/kogito/persistence/schema/DDLSchemaExporter.java
 
b/persistence-commons/persistence-commons-oracle/src/test/java/org/kie/kogito/persistence/schema/DDLSchemaExporter.java
-index 4c3faf1d0..642789526 100644
+index 9269c56b9..18d42b55d 100644
 --- 
a/persistence-commons/persistence-commons-oracle/src/test/java/org/kie/kogito/persistence/schema/DDLSchemaExporter.java
 +++ 
b/persistence-commons/persistence-commons-oracle/src/test/java/org/kie/kogito/persistence/schema/DDLSchemaExporter.java
-@@ -37,7 +37,7 @@ public class DDLSchemaExporter {
+@@ -39,7 +39,7 @@ public class DDLSchemaExporter {
          try (KogitoOracleSqlContainer oracle = new 
KogitoOracleSqlContainer()) {
              oracle.waitingFor(Wait.forListeningPort());
              oracle.start();
@@ -1018,10 +999,10 @@ index 4c3faf1d0..642789526 100644
              settings.put(Environment.USER, oracle.getUsername());
              settings.put(Environment.PASS, oracle.getPassword());
 diff --git a/persistence-commons/persistence-commons-postgresql/pom.xml 
b/persistence-commons/persistence-commons-postgresql/pom.xml
-index 3715d7ab9..dcdf7ab7c 100644
+index 4a5ecaa1f..da5f3ca48 100644
 --- a/persistence-commons/persistence-commons-postgresql/pom.xml
 +++ b/persistence-commons/persistence-commons-postgresql/pom.xml
-@@ -42,8 +42,8 @@
+@@ -46,8 +46,8 @@
        <artifactId>quarkus-jdbc-postgresql</artifactId>
      </dependency>
      <dependency>
@@ -1033,13 +1014,13 @@ index 3715d7ab9..dcdf7ab7c 100644
      <dependency>
        <groupId>io.quarkus</groupId>
 diff --git 
a/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/PostgresQuery.java
 
b/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/PostgresQuery.java
-index e01355e78..b6851dcbb 100644
+index cd6ab38b2..ae831210e 100644
 --- 
a/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/PostgresQuery.java
 +++ 
b/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/PostgresQuery.java
-@@ -21,17 +21,19 @@ import java.util.Map;
+@@ -24,17 +24,19 @@ import java.util.Map;
  import java.util.Objects;
  import java.util.stream.Collectors;
- 
+
 +import org.hibernate.type.CustomType;
 +import org.hibernate.type.spi.TypeConfiguration;
  import org.kie.kogito.persistence.api.query.AttributeFilter;
@@ -1050,76 +1031,75 @@ index e01355e78..b6851dcbb 100644
  import org.kie.kogito.persistence.postgresql.model.CacheEntityRepository;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
- 
+
  import com.fasterxml.jackson.core.JsonProcessingException;
  import com.fasterxml.jackson.databind.ObjectMapper;
 -import com.vladmihalcea.hibernate.type.json.JsonNodeBinaryType;
- 
+
  import static java.lang.String.format;
  import static java.util.stream.Collectors.joining;
-@@ -134,7 +136,7 @@ public class PostgresQuery<T> implements Query<T> {
- 
+@@ -137,7 +139,7 @@ public class PostgresQuery<T> implements Query<T> {
+
          LOGGER.debug("Executing PostgreSQL query: {}", queryString);
          jakarta.persistence.Query query = 
repository.getEntityManager().createNativeQuery(queryString.toString());
 -        
query.unwrap(org.hibernate.query.NativeQuery.class).addScalar("json_value", 
JsonNodeBinaryType.INSTANCE);
 +        
query.unwrap(org.hibernate.query.NativeQuery.class).addScalar("json_value", new 
CustomType<>(new JsonBinaryType(), new TypeConfiguration()));
- 
+
          if (limit != null) {
              query.setMaxResults(limit);
 diff --git 
a/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/hibernate/JsonBinaryType.java
 
b/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/hibernate/JsonBinaryType.java
-index 83622105b..550aa151b 100644
+index 3f360bba2..937851b9f 100644
 --- 
a/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/hibernate/JsonBinaryType.java
 +++ 
b/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/hibernate/JsonBinaryType.java
-@@ -25,81 +25,72 @@ import java.util.Objects;
- 
+@@ -27,81 +27,73 @@ import java.util.Objects;
+
  import org.hibernate.HibernateException;
  import org.hibernate.engine.spi.SharedSessionContractImplementor;
 +import org.hibernate.type.SqlTypes;
  import org.hibernate.usertype.UserType;
- 
+
  import com.fasterxml.jackson.core.JsonProcessingException;
  import com.fasterxml.jackson.databind.JsonNode;
  import com.fasterxml.jackson.databind.ObjectMapper;
 -import com.fasterxml.jackson.databind.node.ObjectNode;
--
+
  import static java.lang.String.format;
- 
+
 -public class JsonBinaryType implements UserType {
 +public class JsonBinaryType implements UserType<JsonNode> {
- 
+
      private ObjectMapper mapper = new ObjectMapper();
- 
+
      @Override
 -    public int[] sqlTypes() {
 -        return new int[] { Types.JAVA_OBJECT };
 +    public int getSqlType() {
-+        return SqlTypes.JAVA_OBJECT;
++        return SqlTypes.BLOB;
      }
- 
+
      @Override
 -    public Class returnedClass() {
 +    public Class<JsonNode> returnedClass() {
          return JsonNode.class;
      }
- 
+
      @Override
 -    public boolean equals(Object x, Object y) throws HibernateException {
-+    public boolean equals(JsonNode x, JsonNode y) {
++    public boolean equals(JsonNode x, JsonNode y) throws HibernateException {
          return Objects.equals(x, y);
      }
- 
+
      @Override
 -    public int hashCode(Object x) throws HibernateException {
-+    public int hashCode(JsonNode x) {
++    public int hashCode(JsonNode x) throws HibernateException {
          return Objects.hashCode(x);
      }
- 
+
      @Override
 -    public Object nullSafeGet(ResultSet rs, String[] names, 
SharedSessionContractImplementor session, Object owner)
--            throws HibernateException, SQLException {
--        final String json = rs.getString(names[0]);
 +    public JsonNode nullSafeGet(ResultSet rs, int position, 
SharedSessionContractImplementor session, Object owner)
-+            throws SQLException {
+             throws HibernateException, SQLException {
+-        final String json = rs.getString(names[0]);
 +        final String json = rs.getString(position);
          if (json == null) {
              return null;
@@ -1131,12 +1111,11 @@ index 83622105b..550aa151b 100644
 +            throw new RuntimeException("Failed to convert String to JSON: " + 
ex.getMessage(), ex);
          }
      }
- 
+
      @Override
 -    public void nullSafeSet(PreparedStatement ps, Object value, int index, 
SharedSessionContractImplementor session)
--            throws HibernateException, SQLException {
 +    public void nullSafeSet(PreparedStatement ps, JsonNode value, int index, 
SharedSessionContractImplementor session)
-+            throws SQLException {
+             throws HibernateException, SQLException {
          if (value == null) {
              ps.setNull(index, Types.OTHER);
              return;
@@ -1155,7 +1134,7 @@ index 83622105b..550aa151b 100644
 +            throw new RuntimeException(format("Failed to convert JSON to 
String: %s", ex.getMessage()), ex);
          }
      }
- 
+
      @Override
 -    public Object deepCopy(Object value) throws HibernateException {
 +    public JsonNode deepCopy(JsonNode value) throws HibernateException {
@@ -1169,26 +1148,26 @@ index 83622105b..550aa151b 100644
 -        }
 +        return value.deepCopy();
      }
- 
+
      @Override
-@@ -108,12 +99,12 @@ public class JsonBinaryType implements UserType {
+@@ -110,12 +102,12 @@ public class JsonBinaryType implements UserType {
      }
- 
+
      @Override
 -    public Serializable disassemble(Object value) throws HibernateException {
 +    public Serializable disassemble(JsonNode value) throws HibernateException 
{
          return this.deepCopy(value).toString();
      }
- 
+
      @Override
 -    public Object assemble(Serializable cached, Object owner) throws 
HibernateException {
 +    public JsonNode assemble(Serializable cached, Object owner) throws 
HibernateException {
          try {
              return mapper.readTree(cached.toString());
          } catch (JsonProcessingException ex) {
-@@ -122,7 +113,7 @@ public class JsonBinaryType implements UserType {
+@@ -124,7 +116,7 @@ public class JsonBinaryType implements UserType {
      }
- 
+
      @Override
 -    public Object replace(Object original, Object target, Object owner) 
throws HibernateException {
 +    public JsonNode replace(JsonNode original, JsonNode target, Object owner) 
throws HibernateException {
@@ -1196,39 +1175,39 @@ index 83622105b..550aa151b 100644
      }
  }
 diff --git 
a/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/model/CacheEntity.java
 
b/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/model/CacheEntity.java
-index 111e79ee5..6092f048f 100644
+index 0f58963f9..a77c306cf 100644
 --- 
a/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/model/CacheEntity.java
 +++ 
b/persistence-commons/persistence-commons-postgresql/src/main/java/org/kie/kogito/persistence/postgresql/model/CacheEntity.java
-@@ -27,7 +27,6 @@ import jakarta.persistence.Table;
+@@ -29,7 +29,6 @@ import jakarta.persistence.Table;
  import jakarta.persistence.UniqueConstraint;
- 
+
  import org.hibernate.annotations.Type;
 -import org.hibernate.annotations.TypeDef;
  import org.kie.kogito.persistence.postgresql.hibernate.JsonBinaryType;
- 
+
  import com.fasterxml.jackson.databind.node.ObjectNode;
-@@ -36,7 +35,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
+@@ -38,7 +37,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
  @IdClass(CacheId.class)
  @Table(name = "kogito_data_cache", uniqueConstraints = 
@UniqueConstraint(columnNames = { "name",
          "key" }), indexes = @Index(columnList = "name,key", unique = true))
 -@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
  public class CacheEntity {
- 
+
      @Id
-@@ -47,7 +45,7 @@ public class CacheEntity {
+@@ -49,7 +47,7 @@ public class CacheEntity {
      @Column(nullable = false)
      private String key;
- 
+
 -    @Type(type = "jsonb")
 +    @Type(JsonBinaryType.class)
      @Column(name = "json_value", columnDefinition = "jsonb")
      private ObjectNode value;
- 
+
 diff --git 
a/persistence-commons/persistence-commons-postgresql/src/test/java/org/kie/kogito/persistence/schema/DDLSchemaExporter.java
 
b/persistence-commons/persistence-commons-postgresql/src/test/java/org/kie/kogito/persistence/schema/DDLSchemaExporter.java
-index 98a54340f..012341591 100644
+index 2d8e5734f..1092d6354 100644
 --- 
a/persistence-commons/persistence-commons-postgresql/src/test/java/org/kie/kogito/persistence/schema/DDLSchemaExporter.java
 +++ 
b/persistence-commons/persistence-commons-postgresql/src/test/java/org/kie/kogito/persistence/schema/DDLSchemaExporter.java
-@@ -37,7 +37,7 @@ public class DDLSchemaExporter {
+@@ -39,7 +39,7 @@ public class DDLSchemaExporter {
          try (KogitoPostgreSqlContainer postgresql = new 
KogitoPostgreSqlContainer()) {
              postgresql.waitingFor(Wait.forListeningPort());
              postgresql.start();
diff --git a/.ci/environments/quarkus-3/patches/0003_mutiny_changes.patch 
b/.ci/environments/quarkus-3/patches/0003_mutiny_changes.patch
index 9917a169e..71193532a 100644
--- a/.ci/environments/quarkus-3/patches/0003_mutiny_changes.patch
+++ b/.ci/environments/quarkus-3/patches/0003_mutiny_changes.patch
@@ -1,14 +1,8 @@
-commit 1f48cf1b6cfeda47e05d1a64363ccb60787fe4df
-Author: radtriste <[email protected]>
-Date:   Wed May 3 15:47:07 2023 +0200
-
-    patch: mutiny update
-
 diff --git 
a/persistence-commons/persistence-commons-infinispan/src/main/java/org/kie/kogito/persistence/infinispan/cache/InfinispanStorage.java
 
b/persistence-commons/persistence-commons-infinispan/src/main/java/org/kie/kogito/persistence/infinispan/cache/InfinispanStorage.java
-index 598223d1b..e94a35074 100644
+index 29292da9a..1beb34b0f 100644
 --- 
a/persistence-commons/persistence-commons-infinispan/src/main/java/org/kie/kogito/persistence/infinispan/cache/InfinispanStorage.java
 +++ 
b/persistence-commons/persistence-commons-infinispan/src/main/java/org/kie/kogito/persistence/infinispan/cache/InfinispanStorage.java
-@@ -76,7 +76,7 @@ public class InfinispanStorage<K, V> implements Storage<K, 
V> {
+@@ -78,7 +78,7 @@ public class InfinispanStorage<K, V> implements Storage<K, 
V> {
          UnicastProcessor<V> processor = UnicastProcessor.create();
          CacheObjectCreatedListener<K, V> listener = new 
CacheObjectCreatedListener<>(delegate, v -> processor.onNext(v));
          return processor
@@ -16,8 +10,8 @@ index 598223d1b..e94a35074 100644
 +                .onSubscription().invoke(s -> 
delegate.addClientListener(listener))
                  .onTermination().invoke(() -> 
delegate.removeClientListener(listener));
      }
- 
-@@ -86,7 +86,7 @@ public class InfinispanStorage<K, V> implements Storage<K, 
V> {
+
+@@ -88,7 +88,7 @@ public class InfinispanStorage<K, V> implements Storage<K, 
V> {
          UnicastProcessor<V> processor = UnicastProcessor.create();
          CacheObjectUpdatedListener<K, V> listener = new 
CacheObjectUpdatedListener<>(delegate, v -> processor.onNext(v));
          return processor
@@ -25,8 +19,8 @@ index 598223d1b..e94a35074 100644
 +                .onSubscription().invoke(s -> 
delegate.addClientListener(listener))
                  .onTermination().invoke(() -> 
delegate.removeClientListener(listener));
      }
- 
-@@ -96,7 +96,7 @@ public class InfinispanStorage<K, V> implements Storage<K, 
V> {
+
+@@ -98,7 +98,7 @@ public class InfinispanStorage<K, V> implements Storage<K, 
V> {
          UnicastProcessor<K> processor = UnicastProcessor.create();
          CacheObjectRemovedListener<K> listener = new 
CacheObjectRemovedListener<>(v -> processor.onNext(v));
          return processor
@@ -34,4 +28,4 @@ index 598223d1b..e94a35074 100644
 +                .onSubscription().invoke(s -> 
delegate.addClientListener(listener))
                  .onTermination().invoke(() -> 
delegate.removeClientListener(listener));
      }
- 
+
diff --git a/.ci/environments/quarkus-3/patches/0004_arc_changes.patch 
b/.ci/environments/quarkus-3/patches/0004_arc_changes.patch
index 4be87acf5..5a3f33b16 100644
--- a/.ci/environments/quarkus-3/patches/0004_arc_changes.patch
+++ b/.ci/environments/quarkus-3/patches/0004_arc_changes.patch
@@ -1,34 +1,28 @@
-commit 3897fefbcbca59cc79a3d5631dbef8787fe5f971
-Author: radtriste <[email protected]>
-Date:   Thu May 4 11:06:26 2023 +0200
-
-    patch: solve arc changes
-
 diff --git 
a/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/storage/OracleStorageService.java
 
b/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/storage/OracleStorageService.java
-index a11b9fe52..d0fa23be0 100644
+index 8c1d6dcfa..efadb2929 100644
 --- 
a/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/storage/OracleStorageService.java
 +++ 
b/data-index/data-index-storage/data-index-storage-oracle/src/main/java/org/kie/kogito/index/oracle/storage/OracleStorageService.java
-@@ -15,7 +15,9 @@
+@@ -18,7 +18,9 @@
   */
  package org.kie.kogito.index.oracle.storage;
- 
+
 +import jakarta.annotation.Priority;
  import jakarta.enterprise.context.ApplicationScoped;
 +import jakarta.enterprise.inject.Alternative;
  import jakarta.inject.Inject;
- 
+
  import org.kie.kogito.index.model.Job;
-@@ -24,14 +26,14 @@ import org.kie.kogito.index.model.UserTaskInstance;
+@@ -28,14 +30,14 @@ import org.kie.kogito.index.model.UserTaskInstance;
  import org.kie.kogito.persistence.api.Storage;
  import org.kie.kogito.persistence.api.StorageService;
- 
+
 -import io.quarkus.arc.AlternativePriority;
  import io.quarkus.arc.properties.IfBuildProperty;
- 
+
  import static java.lang.String.format;
  import static 
org.kie.kogito.persistence.api.factory.Constants.PERSISTENCE_TYPE_PROPERTY;
  import static org.kie.kogito.persistence.oracle.Constants.ORACLE_STORAGE;
- 
+
 -@AlternativePriority(1)
 +@Alternative
 +@Priority(1)
@@ -36,30 +30,30 @@ index a11b9fe52..d0fa23be0 100644
  @IfBuildProperty(name = PERSISTENCE_TYPE_PROPERTY, stringValue = 
ORACLE_STORAGE)
  public class OracleStorageService implements StorageService {
 diff --git 
a/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/storage/PostgreSqlStorageService.java
 
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/storage/PostgreSqlStorageService.java
-index 969d73231..cae9875a1 100644
+index deab75186..93bb36faf 100644
 --- 
a/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/storage/PostgreSqlStorageService.java
 +++ 
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/storage/PostgreSqlStorageService.java
-@@ -15,7 +15,9 @@
+@@ -18,7 +18,9 @@
   */
  package org.kie.kogito.index.postgresql.storage;
- 
+
 +import jakarta.annotation.Priority;
  import jakarta.enterprise.context.ApplicationScoped;
 +import jakarta.enterprise.inject.Alternative;
  import jakarta.inject.Inject;
- 
+
  import org.kie.kogito.index.model.Job;
-@@ -24,14 +26,14 @@ import org.kie.kogito.index.model.UserTaskInstance;
+@@ -28,14 +30,14 @@ import org.kie.kogito.index.model.UserTaskInstance;
  import org.kie.kogito.persistence.api.Storage;
  import org.kie.kogito.persistence.api.StorageService;
- 
+
 -import io.quarkus.arc.AlternativePriority;
  import io.quarkus.arc.properties.IfBuildProperty;
- 
+
  import static java.lang.String.format;
  import static 
org.kie.kogito.persistence.api.factory.Constants.PERSISTENCE_TYPE_PROPERTY;
  import static 
org.kie.kogito.persistence.postgresql.Constants.POSTGRESQL_STORAGE;
- 
+
 -@AlternativePriority(1)
 +@Alternative
 +@Priority(1)
@@ -67,34 +61,34 @@ index 969d73231..cae9875a1 100644
  @IfBuildProperty(name = PERSISTENCE_TYPE_PROPERTY, stringValue = 
POSTGRESQL_STORAGE)
  public class PostgreSqlStorageService implements StorageService {
 diff --git 
a/trusty/trusty-storage/trusty-storage-postgresql/src/main/java/org/kie/kogito/trusty/storage/postgresql/PostgresStorageService.java
 
b/trusty/trusty-storage/trusty-storage-postgresql/src/main/java/org/kie/kogito/trusty/storage/postgresql/PostgresStorageService.java
-index ee4e19533..3aca96e3e 100644
+index 6e174a82a..2adb6a2db 100644
 --- 
a/trusty/trusty-storage/trusty-storage-postgresql/src/main/java/org/kie/kogito/trusty/storage/postgresql/PostgresStorageService.java
 +++ 
b/trusty/trusty-storage/trusty-storage-postgresql/src/main/java/org/kie/kogito/trusty/storage/postgresql/PostgresStorageService.java
-@@ -16,7 +16,9 @@
- 
+@@ -18,7 +18,9 @@
+  */
  package org.kie.kogito.trusty.storage.postgresql;
- 
+
 +import jakarta.annotation.Priority;
  import jakarta.enterprise.context.ApplicationScoped;
 +import jakarta.enterprise.inject.Alternative;
  import jakarta.inject.Inject;
- 
+
  import org.kie.kogito.explainability.api.CounterfactualExplainabilityRequest;
-@@ -27,7 +29,6 @@ import org.kie.kogito.persistence.api.StorageService;
+@@ -29,15 +31,15 @@ import org.kie.kogito.persistence.api.StorageService;
  import org.kie.kogito.trusty.storage.api.model.decision.DMNModelWithMetadata;
  import org.kie.kogito.trusty.storage.api.model.decision.Decision;
- 
+
 -import io.quarkus.arc.AlternativePriority;
  import io.quarkus.arc.properties.IfBuildProperty;
- 
+
  import static java.lang.String.format;
-@@ -35,7 +36,8 @@ import static 
org.kie.kogito.persistence.api.factory.Constants.PERSISTENCE_TYPE_
+ import static 
org.kie.kogito.persistence.api.factory.Constants.PERSISTENCE_TYPE_PROPERTY;
  import static 
org.kie.kogito.persistence.postgresql.Constants.POSTGRESQL_STORAGE;
- 
- @ApplicationScoped
--@AlternativePriority(1)
+
 +@Alternative
 +@Priority(1)
+ @ApplicationScoped
+-@AlternativePriority(1)
  @IfBuildProperty(name = PERSISTENCE_TYPE_PROPERTY, stringValue = 
POSTGRESQL_STORAGE)
  public class PostgresStorageService implements StorageService {
- 
+
diff --git 
a/.ci/environments/quarkus-3/patches/0005_jobs-service-reactive-streams.patch 
b/.ci/environments/quarkus-3/patches/0005_jobs-service-reactive-streams.patch
index 49f5f4079..f2e9f5373 100644
--- 
a/.ci/environments/quarkus-3/patches/0005_jobs-service-reactive-streams.patch
+++ 
b/.ci/environments/quarkus-3/patches/0005_jobs-service-reactive-streams.patch
@@ -1,275 +1,268 @@
 diff --git a/jobs-service/jobs-service-common/pom.xml 
b/jobs-service/jobs-service-common/pom.xml
-index c479c65ec..46ae229cd 100644
+index defe64921..0bbd7f8d2 100644
 --- a/jobs-service/jobs-service-common/pom.xml
 +++ b/jobs-service/jobs-service-common/pom.xml
-@@ -97,6 +97,11 @@
-       <artifactId>smallrye-reactive-messaging-in-memory</artifactId>
+@@ -93,6 +93,10 @@
+       <groupId>io.quarkus</groupId>
+       <artifactId>quarkus-smallrye-openapi</artifactId>
      </dependency>
- 
 +    <dependency>
-+      <groupId>io.smallrye.reactive</groupId>
-+      <artifactId>mutiny-zero-flow-adapters</artifactId>
++       <groupId>io.smallrye.reactive</groupId>
++       <artifactId>mutiny-zero-flow-adapters</artifactId>
 +    </dependency>
-+
-     <!-- Data Index Integration -->
+
+     <!-- Logging -->
      <dependency>
-       <groupId>org.kie.kogito</groupId>
 diff --git 
a/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/messaging/ReactiveMessagingEventConsumer.java
 
b/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/messaging/ReactiveMessagingEventConsumer.java
-index fb5e9360b..e1cba14ca 100644
+index 5739f2544..07734ccbd 100644
 --- 
a/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/messaging/ReactiveMessagingEventConsumer.java
 +++ 
b/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/messaging/ReactiveMessagingEventConsumer.java
-@@ -17,6 +17,7 @@ package org.kie.kogito.jobs.service.messaging;
- 
- import java.util.Objects;
- 
-+import mutiny.zero.flow.adapters.AdaptersToFlow;
- import org.eclipse.microprofile.reactive.messaging.Message;
- import org.kie.kogito.jobs.service.exception.JobServiceException;
- import org.kie.kogito.jobs.service.model.JobDetails;
-@@ -74,7 +75,7 @@ public abstract class ReactiveMessagingEventConsumer {
+@@ -32,6 +32,8 @@ import org.slf4j.LoggerFactory;
+ import io.cloudevents.CloudEvent;
+ import io.smallrye.mutiny.Uni;
+
++import static mutiny.zero.flow.adapters.AdaptersToFlow.publisher;
++
+ public abstract class ReactiveMessagingEventConsumer {
+
+     private static final Logger LOGGER = 
LoggerFactory.getLogger(ReactiveMessagingEventConsumer.class);
+@@ -77,7 +79,7 @@ public abstract class ReactiveMessagingEventConsumer {
          return 
Uni.createFrom().completionStage(jobRepository.get(job.getId()))
                  .flatMap(existingJob -> {
                      if (existingJob == null || existingJob.getStatus() == 
JobStatus.SCHEDULED) {
 -                        return 
Uni.createFrom().publisher(scheduler.schedule(job));
-+                        return 
Uni.createFrom().publisher(AdaptersToFlow.publisher(scheduler.schedule(job)));
++                        return 
Uni.createFrom().publisher(publisher(scheduler.schedule(job)));
                      } else {
                          LOGGER.info("A Job in status: {} already exists for 
the job id: {}, no processing will be done fot the event: {}.",
                                  existingJob.getStatus(),
 diff --git 
a/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/resource/JobResource.java
 
b/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/resource/JobResource.java
-index b4de77b37..451f42789 100644
+index 2a7cdc175..2bf124b82 100644
 --- 
a/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/resource/JobResource.java
 +++ 
b/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/resource/JobResource.java
-@@ -28,6 +28,7 @@ import jakarta.ws.rs.PathParam;
- import jakarta.ws.rs.Produces;
- import jakarta.ws.rs.core.MediaType;
- 
-+import mutiny.zero.flow.adapters.AdaptersToFlow;
- import org.eclipse.microprofile.openapi.annotations.Operation;
- import org.eclipse.microprofile.openapi.annotations.parameters.RequestBody;
- import org.kie.kogito.jobs.api.Job;
-@@ -65,7 +66,7 @@ public class JobResource {
+@@ -46,6 +46,8 @@ import org.slf4j.LoggerFactory;
+
+ import io.smallrye.mutiny.Uni;
+
++import static mutiny.zero.flow.adapters.AdaptersToFlow.publisher;
++
+ @ApplicationScoped
+ @Path(RestApiConstants.JOBS_PATH)
+ public class JobResource {
+@@ -68,7 +70,7 @@ public class JobResource {
      public Uni<ScheduledJob> create(Job job) {
          LOGGER.debug("REST create {}", job);
          JobDetails jobDetails = 
jobDetailsValidator.validateToCreate(ScheduledJobAdapter.to(ScheduledJob.builder().job(job).build()));
 -        return Uni.createFrom().publisher(scheduler.schedule(jobDetails))
-+        return 
Uni.createFrom().publisher(AdaptersToFlow.publisher(scheduler.schedule(jobDetails)))
++        return 
Uni.createFrom().publisher(publisher(scheduler.schedule(jobDetails)))
                  .onItem().ifNull().failWith(new RuntimeException("Failed to 
schedule job " + job))
                  .onItem().transform(ScheduledJobAdapter::of);
      }
-@@ -79,7 +80,7 @@ public class JobResource {
+@@ -82,7 +84,7 @@ public class JobResource {
          LOGGER.debug("REST patch update {}", job);
          //validating allowed patch attributes
          JobDetails jobToBeMerged = 
jobDetailsValidator.validateToMerge(ScheduledJobAdapter.to(ScheduledJobBuilder.from(job)));
 -        return Uni.createFrom().publisher(scheduler.reschedule(id, 
jobToBeMerged.getTrigger()).buildRs())
-+        return 
Uni.createFrom().publisher(AdaptersToFlow.publisher(scheduler.reschedule(id, 
jobToBeMerged.getTrigger()).buildRs()))
++        return Uni.createFrom().publisher(publisher(scheduler.reschedule(id, 
jobToBeMerged.getTrigger()).buildRs()))
                  .onItem().ifNull().failWith(new NotFoundException("Failed to 
reschedule job " + job))
                  .onItem().transform(ScheduledJobAdapter::of);
      }
 diff --git 
a/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/resource/v2/JobResourceV2.java
 
b/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/resource/v2/JobResourceV2.java
-index f03cefc3e..dc79d5639 100644
+index 34ed6ea97..a55727bed 100644
 --- 
a/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/resource/v2/JobResourceV2.java
 +++ 
b/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/resource/v2/JobResourceV2.java
-@@ -27,6 +27,7 @@ import jakarta.ws.rs.PathParam;
- import jakarta.ws.rs.Produces;
- import jakarta.ws.rs.core.MediaType;
- 
-+import mutiny.zero.flow.adapters.AdaptersToFlow;
- import org.eclipse.microprofile.openapi.annotations.Operation;
- import org.kie.kogito.jobs.service.adapter.JobDetailsAdapter;
- import org.kie.kogito.jobs.service.api.Job;
-@@ -63,7 +64,7 @@ public class JobResourceV2 {
+@@ -43,6 +43,8 @@ import org.slf4j.LoggerFactory;
+
+ import io.smallrye.mutiny.Uni;
+
++import static mutiny.zero.flow.adapters.AdaptersToFlow.publisher;
++
+ @ApplicationScoped
+ @Path(RestApiConstants.V2 + RestApiConstants.JOBS_PATH)
+ public class JobResourceV2 {
+@@ -66,7 +68,7 @@ public class JobResourceV2 {
          LOGGER.debug("REST create {}", job);
          jobValidator.validateToCreate(job);
          JobDetails jobDetails = JobDetailsAdapter.from(job);
 -        return Uni.createFrom().publisher(scheduler.schedule(jobDetails))
-+        return 
Uni.createFrom().publisher(AdaptersToFlow.publisher(scheduler.schedule(jobDetails)))
++        return 
Uni.createFrom().publisher(publisher(scheduler.schedule(jobDetails)))
                  .onItem().ifNull().failWith(new RuntimeException("Failed to 
schedule job " + job))
                  .onItem().transform(JobDetailsAdapter::toJob);
      }
 diff --git 
a/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/scheduler/BaseTimerJobScheduler.java
 
b/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/scheduler/BaseTimerJobScheduler.java
-index 4a3e9e6a6..c9f23d1cd 100644
+index c18029793..aa2b39a82 100644
 --- 
a/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/scheduler/BaseTimerJobScheduler.java
 +++ 
b/jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/scheduler/BaseTimerJobScheduler.java
-@@ -26,6 +26,7 @@ import java.util.concurrent.CompletionStage;
- import java.util.concurrent.ConcurrentHashMap;
- import java.util.function.Consumer;
- 
-+import mutiny.zero.flow.adapters.AdaptersToFlow;
- import org.apache.commons.lang3.tuple.Pair;
- import org.eclipse.microprofile.reactive.streams.operators.PublisherBuilder;
- import org.eclipse.microprofile.reactive.streams.operators.ReactiveStreams;
-@@ -306,7 +307,7 @@ public abstract class BaseTimerJobScheduler implements 
ReactiveJobScheduler {
+@@ -49,6 +49,8 @@ import org.slf4j.LoggerFactory;
+
+ import io.smallrye.mutiny.Uni;
+
++import static mutiny.zero.flow.adapters.AdaptersToFlow.publisher;
++
+ /**
+  * Base reactive Job Scheduler that performs the fundamental operations and 
let to the concrete classes to
+  * implement the scheduling actions.
+@@ -315,7 +317,7 @@ public abstract class BaseTimerJobScheduler implements 
ReactiveJobScheduler {
          return Uni.createFrom().completionStage(futureJob)
                  .onItem().invoke(job -> LOGGER.debug("Cancel Job Scheduling 
{}", job))
                  .chain(scheduledJob -> 
Optional.ofNullable(scheduledJob.getScheduledId())
 -                        .map(id -> 
Uni.createFrom().publisher(this.doCancel(scheduledJob))
-+                        .map(id -> 
Uni.createFrom().publisher(AdaptersToFlow.publisher(this.doCancel(scheduledJob)))
++                        .map(id -> 
Uni.createFrom().publisher(publisher(this.doCancel(scheduledJob)))
                                  .onItem().transform(b -> scheduledJob))
                          .orElse(Uni.createFrom().item(scheduledJob)))
                  //final state, removing the job
 diff --git 
a/jobs-service/jobs-service-common/src/test/java/org/kie/kogito/jobs/service/scheduler/BaseTimerJobSchedulerTest.java
 
b/jobs-service/jobs-service-common/src/test/java/org/kie/kogito/jobs/service/scheduler/BaseTimerJobSchedulerTest.java
-index b535e7671..9b1b3fb0a 100644
+index 08185b4ee..62ebd9b2c 100644
 --- 
a/jobs-service/jobs-service-common/src/test/java/org/kie/kogito/jobs/service/scheduler/BaseTimerJobSchedulerTest.java
 +++ 
b/jobs-service/jobs-service-common/src/test/java/org/kie/kogito/jobs/service/scheduler/BaseTimerJobSchedulerTest.java
-@@ -25,6 +25,7 @@ import java.util.concurrent.CompletionStage;
- import java.util.concurrent.TimeUnit;
- import java.util.function.Consumer;
- 
-+import mutiny.zero.flow.adapters.AdaptersToFlow;
- import org.eclipse.microprofile.reactive.streams.operators.PublisherBuilder;
- import org.eclipse.microprofile.reactive.streams.operators.ReactiveStreams;
- import org.junit.jupiter.api.BeforeEach;
-@@ -352,7 +353,7 @@ public abstract class BaseTimerJobSchedulerTest {
- 
+@@ -51,6 +51,7 @@ import org.reactivestreams.Publisher;
+ import io.smallrye.mutiny.Multi;
+ import io.smallrye.mutiny.Uni;
+
++import static mutiny.zero.flow.adapters.AdaptersToFlow.publisher;
+ import static org.assertj.core.api.Assertions.assertThat;
+ import static org.assertj.core.api.Assertions.assertThatThrownBy;
+ import static org.kie.kogito.jobs.service.model.JobStatus.CANCELED;
+@@ -358,7 +359,7 @@ public abstract class BaseTimerJobSchedulerTest {
+
      private void subscribeOn(Publisher<JobDetails> schedule) {
          Multi.createFrom()
 -                .publisher(schedule)
-+                .publisher(AdaptersToFlow.publisher(schedule))
++                .publisher(publisher(schedule))
                  .subscribe()
                  .with(dummyCallback(), dummyCallback());
      }
 diff --git 
a/jobs-service/jobs-service-common/src/test/java/org/kie/kogito/jobs/service/scheduler/impl/TimerDelegateJobSchedulerTest.java
 
b/jobs-service/jobs-service-common/src/test/java/org/kie/kogito/jobs/service/scheduler/impl/TimerDelegateJobSchedulerTest.java
-index 1009f1aa8..77460ecdd 100644
+index b6567ce0c..9c5ca3bc9 100644
 --- 
a/jobs-service/jobs-service-common/src/test/java/org/kie/kogito/jobs/service/scheduler/impl/TimerDelegateJobSchedulerTest.java
 +++ 
b/jobs-service/jobs-service-common/src/test/java/org/kie/kogito/jobs/service/scheduler/impl/TimerDelegateJobSchedulerTest.java
-@@ -18,6 +18,7 @@ package org.kie.kogito.jobs.service.scheduler.impl;
- import java.util.Optional;
- import java.util.UUID;
- 
-+import mutiny.zero.flow.adapters.AdaptersToFlow;
- import org.eclipse.microprofile.reactive.streams.operators.PublisherBuilder;
- import org.eclipse.microprofile.reactive.streams.operators.ReactiveStreams;
- import org.junit.jupiter.api.BeforeEach;
-@@ -76,14 +77,14 @@ class TimerDelegateJobSchedulerTest extends 
BaseTimerJobSchedulerTest {
+@@ -45,6 +45,7 @@ import org.reactivestreams.Publisher;
+
+ import io.smallrye.mutiny.Multi;
+
++import static mutiny.zero.flow.adapters.AdaptersToFlow.publisher;
+ import static org.assertj.core.api.Assertions.assertThat;
+ import static org.mockito.ArgumentMatchers.any;
+ import static org.mockito.ArgumentMatchers.eq;
+@@ -79,14 +80,14 @@ class TimerDelegateJobSchedulerTest extends 
BaseTimerJobSchedulerTest {
      @Test
      void testDoSchedule() {
          PublisherBuilder<ManageableJobHandle> schedule = 
tested.doSchedule(scheduledJob, Optional.empty());
 -        
Multi.createFrom().publisher(schedule.buildRs()).subscribe().with(dummyCallback(),
 dummyCallback());
-+        
Multi.createFrom().publisher(AdaptersToFlow.publisher(schedule.buildRs())).subscribe().with(dummyCallback(),
 dummyCallback());
++        
Multi.createFrom().publisher(publisher(schedule.buildRs())).subscribe().with(dummyCallback(),
 dummyCallback());
          verify(timer).scheduleJob(any(DelegateJob.class), 
any(JobDetailsContext.class), eq(scheduledJob.getTrigger()));
      }
- 
+
      @Test
      void testDoCancel() {
          Publisher<ManageableJobHandle> cancel = 
tested.doCancel(JobDetails.builder().of(scheduledJob).scheduledId(SCHEDULED_ID).build());
 -        
Multi.createFrom().publisher(cancel).subscribe().with(dummyCallback(), 
dummyCallback());
-+        
Multi.createFrom().publisher(AdaptersToFlow.publisher(cancel)).subscribe().with(dummyCallback(),
 dummyCallback());
++        
Multi.createFrom().publisher(publisher(cancel)).subscribe().with(dummyCallback(),
 dummyCallback());
          verify(timer).removeJob(any(ManageableJobHandle.class));
      }
- 
-@@ -91,7 +92,7 @@ class TimerDelegateJobSchedulerTest extends 
BaseTimerJobSchedulerTest {
+
+@@ -94,7 +95,7 @@ class TimerDelegateJobSchedulerTest extends 
BaseTimerJobSchedulerTest {
      void testDoCancelNullId() {
          Publisher<ManageableJobHandle> cancel =
                  
tested.doCancel(JobDetails.builder().of(scheduledJob).scheduledId(null).build());
 -        
Multi.createFrom().publisher(cancel).subscribe().with(dummyCallback(), 
dummyCallback());
-+        
Multi.createFrom().publisher(AdaptersToFlow.publisher(cancel)).subscribe().with(dummyCallback(),
 dummyCallback());
++        
Multi.createFrom().publisher(publisher(cancel)).subscribe().with(dummyCallback(),
 dummyCallback());
          verify(timer, never()).removeJob(any(ManageableJobHandle.class));
      }
- 
+
 diff --git a/jobs-service/jobs-service-mongodb/pom.xml 
b/jobs-service/jobs-service-mongodb/pom.xml
-index ba120b976..5f32dba62 100644
+index ebe22617f..87949efc5 100644
 --- a/jobs-service/jobs-service-mongodb/pom.xml
 +++ b/jobs-service/jobs-service-mongodb/pom.xml
-@@ -30,6 +30,10 @@
-             <groupId>io.quarkus</groupId>
-             <artifactId>quarkus-mongodb-client</artifactId>
-         </dependency>
+@@ -34,6 +34,10 @@
+     <description>Jobs Service (Timers and Async Jobs) with 
MongoDB</description>
+
+     <dependencies>
 +        <dependency>
 +            <groupId>io.smallrye.reactive</groupId>
 +            <artifactId>mutiny-zero-flow-adapters</artifactId>
 +        </dependency>
- 
-         <!-- Testing -->
          <dependency>
+             <groupId>org.kie.kogito</groupId>
+             <artifactId>jobs-service-common</artifactId>
 diff --git 
a/jobs-service/jobs-service-mongodb/src/main/java/org/kie/kogito/jobs/service/repository/mongodb/MongoDBJobRepository.java
 
b/jobs-service/jobs-service-mongodb/src/main/java/org/kie/kogito/jobs/service/repository/mongodb/MongoDBJobRepository.java
-index 7f4cfd6c6..c6200a936 100644
+index bc615db4d..3140f6cb5 100644
 --- 
a/jobs-service/jobs-service-mongodb/src/main/java/org/kie/kogito/jobs/service/repository/mongodb/MongoDBJobRepository.java
 +++ 
b/jobs-service/jobs-service-mongodb/src/main/java/org/kie/kogito/jobs/service/repository/mongodb/MongoDBJobRepository.java
-@@ -23,6 +23,7 @@ import jakarta.enterprise.context.ApplicationScoped;
- import jakarta.enterprise.event.Observes;
- import jakarta.inject.Inject;
- 
-+import mutiny.zero.flow.adapters.AdaptersToReactiveStreams;
- import org.bson.Document;
- import org.bson.json.JsonWriterSettings;
- import org.eclipse.microprofile.config.inject.ConfigProperty;
-@@ -142,28 +143,29 @@ public class MongoDBJobRepository extends 
BaseReactiveJobRepository implements R
- 
+@@ -58,6 +58,7 @@ import static java.util.Arrays.stream;
+ import static java.util.Optional.ofNullable;
+ import static java.util.stream.Collectors.counting;
+ import static java.util.stream.Collectors.toList;
++import static mutiny.zero.flow.adapters.AdaptersToReactiveStreams.publisher;
+ import static org.bson.Document.parse;
+ import static 
org.eclipse.microprofile.reactive.streams.operators.ReactiveStreams.fromPublisher;
+
+@@ -144,17 +145,17 @@ public class MongoDBJobRepository extends 
BaseReactiveJobRepository implements R
+
      @Override
      public PublisherBuilder<JobDetails> findAll() {
 -        return fromPublisher(collection.find()
--                .map(document -> documentToJson(document))
--                .map(jobDetailsMarshaller::unmarshall)
--                .emitOn(Infrastructure.getDefaultExecutor())
--                .convert()
++        return fromPublisher(publisher(collection.find()
+                 .map(document -> documentToJson(document))
+                 .map(jobDetailsMarshaller::unmarshall)
+                 .emitOn(Infrastructure.getDefaultExecutor())
+                 .convert()
 -                .toPublisher());
-+        return fromPublisher(
-+                AdaptersToReactiveStreams.publisher(
-+                        collection.find()
-+                                .map(document -> documentToJson(document))
-+                                .map(jobDetailsMarshaller::unmarshall)
-+                                .emitOn(Infrastructure.getDefaultExecutor())
-+                                .convert()
-+                                .toPublisher()));
++                .toPublisher()));
      }
- 
+
      @Override
      public PublisherBuilder<JobDetails> 
findByStatusBetweenDatesOrderByPriority(ZonedDateTime from, ZonedDateTime to, 
JobStatus... status) {
-         return fromPublisher(
-+                AdaptersToReactiveStreams.publisher(
+-        return fromPublisher(
++        return fromPublisher(publisher(
                  collection.find(
                          and(
                                  in(STATUS_COLUMN, 
stream(status).map(Enum::name).collect(toList())),
-                                 gt(FIRE_TIME_COLUMN, 
from.toInstant().toEpochMilli()),
-                                 lt(FIRE_TIME_COLUMN, 
to.toInstant().toEpochMilli())),
-                         new FindOptions().sort(descending("priority")))
--                        .map(document -> documentToJson(document))
-+                        .map(MongoDBJobRepository::documentToJson)
+@@ -165,7 +166,7 @@ public class MongoDBJobRepository extends 
BaseReactiveJobRepository implements R
                          .map(jobDetailsMarshaller::unmarshall)
--                        .emitOn(Infrastructure.getDefaultExecutor())
--                        .convert()
+                         .emitOn(Infrastructure.getDefaultExecutor())
+                         .convert()
 -                        .toPublisher());
-+                        .emitOn(Infrastructure.getDefaultExecutor())));
++                        .toPublisher()));
      }
- 
+
      static JsonObject documentToJson(Document document) {
 diff --git 
a/jobs-service/jobs-service-mongodb/src/test/java/org/kie/kogito/jobs/service/repository/mongodb/MongoDBJobRepositoryExecutionTest.java
 
b/jobs-service/jobs-service-mongodb/src/test/java/org/kie/kogito/jobs/service/repository/mongodb/MongoDBJobRepositoryExecutionTest.java
-index 388a82566..786ca9736 100644
+index bd92b95a5..216300e7a 100644
 --- 
a/jobs-service/jobs-service-mongodb/src/test/java/org/kie/kogito/jobs/service/repository/mongodb/MongoDBJobRepositoryExecutionTest.java
 +++ 
b/jobs-service/jobs-service-mongodb/src/test/java/org/kie/kogito/jobs/service/repository/mongodb/MongoDBJobRepositoryExecutionTest.java
-@@ -22,6 +22,7 @@ import java.util.HashMap;
+@@ -24,6 +24,7 @@ import java.util.HashMap;
  import java.util.Map;
  import java.util.concurrent.CompletableFuture;
  import java.util.concurrent.CompletionStage;
 +import java.util.concurrent.Flow;
- 
+
  import org.bson.Document;
  import org.bson.conversions.Bson;
-@@ -37,7 +38,6 @@ import org.kie.kogito.jobs.service.model.RecipientInstance;
+@@ -39,7 +40,6 @@ import org.kie.kogito.jobs.service.model.RecipientInstance;
  import org.kie.kogito.jobs.service.repository.marshaller.JobDetailsMarshaller;
  import org.kie.kogito.timer.impl.PointInTimeTrigger;
  import org.mockito.ArgumentCaptor;
 -import org.reactivestreams.Publisher;
- 
+
  import com.mongodb.client.model.FindOneAndReplaceOptions;
  import com.mongodb.client.model.ReturnDocument;
-@@ -125,7 +125,7 @@ class MongoDBJobRepositoryExecutionTest {
+@@ -127,7 +127,7 @@ class MongoDBJobRepositoryExecutionTest {
          MultiConvert convertMulti = mock(MultiConvert.class);
          when(multi.emitOn(any())).thenReturn(multi);
          when(multi.convert()).thenReturn(convertMulti);
 -        Publisher publisher = mock(Publisher.class);
 +        Flow.Publisher publisher = mock(Flow.Publisher.class);
          when(convertMulti.toPublisher()).thenReturn(publisher);
- 
+
          completableFuture = mock(CompletableFuture.class);
 diff --git a/jobs-service/jobs-service-postgresql-common/pom.xml 
b/jobs-service/jobs-service-postgresql-common/pom.xml
-index 87e4dffd7..f7e54b5ba 100644
+index 4f7550a54..448c807c4 100644
 --- a/jobs-service/jobs-service-postgresql-common/pom.xml
 +++ b/jobs-service/jobs-service-postgresql-common/pom.xml
-@@ -30,6 +30,10 @@
-             <groupId>io.quarkus</groupId>
-             <artifactId>quarkus-flyway</artifactId>
-         </dependency>
+@@ -34,6 +34,10 @@
+     <description>Jobs Service (Timers and Async Jobs) PostgreSQL 
Common</description>
+
+     <dependencies>
 +        <dependency>
 +            <groupId>io.smallrye.reactive</groupId>
 +            <artifactId>mutiny-zero-flow-adapters</artifactId>
@@ -278,67 +271,69 @@ index 87e4dffd7..f7e54b5ba 100644
              <groupId>org.kie.kogito</groupId>
              <artifactId>jobs-service-common</artifactId>
 diff --git 
a/jobs-service/jobs-service-postgresql-common/src/main/java/org/kie/kogito/jobs/service/repository/postgresql/PostgreSqlJobRepository.java
 
b/jobs-service/jobs-service-postgresql-common/src/main/java/org/kie/kogito/jobs/service/repository/postgresql/PostgreSqlJobRepository.java
-index 9a3f7e94b..82907e9f8 100644
+index 3363ff6fb..5bdd8b495 100644
 --- 
a/jobs-service/jobs-service-postgresql-common/src/main/java/org/kie/kogito/jobs/service/repository/postgresql/PostgreSqlJobRepository.java
 +++ 
b/jobs-service/jobs-service-postgresql-common/src/main/java/org/kie/kogito/jobs/service/repository/postgresql/PostgreSqlJobRepository.java
-@@ -27,6 +27,7 @@ import java.util.stream.Stream;
- import jakarta.enterprise.context.ApplicationScoped;
- import jakarta.inject.Inject;
- 
-+import mutiny.zero.flow.adapters.AdaptersToReactiveStreams;
- import org.eclipse.microprofile.reactive.streams.operators.PublisherBuilder;
- import org.eclipse.microprofile.reactive.streams.operators.ReactiveStreams;
- import org.kie.kogito.jobs.service.model.JobDetails;
-@@ -139,17 +140,19 @@ public class PostgreSqlJobRepository extends 
BaseReactiveJobRepository implement
+@@ -50,6 +50,7 @@ import io.vertx.mutiny.sqlclient.RowSet;
+ import io.vertx.mutiny.sqlclient.Tuple;
+
+ import static java.util.stream.Collectors.toList;
++import static mutiny.zero.flow.adapters.AdaptersToReactiveStreams.publisher;
+ import static org.kie.kogito.jobs.service.utils.DateUtil.DEFAULT_ZONE;
+
+ @ApplicationScoped
+@@ -140,18 +141,18 @@ public class PostgreSqlJobRepository extends 
BaseReactiveJobRepository implement
+     public PublisherBuilder<JobDetails> findByStatus(JobStatus... status) {
          String statusQuery = createStatusQuery(status);
          String query = " WHERE " + statusQuery;
-         return ReactiveStreams.fromPublisher(
-+            AdaptersToReactiveStreams.publisher(
+-        return ReactiveStreams.fromPublisher(
++        return ReactiveStreams.fromPublisher(publisher(
                  client.preparedQuery("SELECT " + JOB_DETAILS_COLUMNS + " FROM 
" + JOB_DETAILS_TABLE + query + " ORDER BY priority DESC LIMIT 
$1").execute(Tuple.of(MAX_ITEMS_QUERY))
                          .onItem().transformToMulti(rowSet -> 
Multi.createFrom().iterable(rowSet))
 -                        .onItem().transform(this::from));
 +                        .onItem().transform(this::from)));
      }
- 
+
      @Override
      public PublisherBuilder<JobDetails> findAll() {
-         return ReactiveStreams.fromPublisher(
-+            AdaptersToReactiveStreams.publisher(
+-        return ReactiveStreams.fromPublisher(
++        return ReactiveStreams.fromPublisher(publisher(
                  client.preparedQuery("SELECT " + JOB_DETAILS_COLUMNS + " FROM 
" + JOB_DETAILS_TABLE + " LIMIT $1").execute(Tuple.of(MAX_ITEMS_QUERY))
                          .onItem().transformToMulti(rowSet -> 
Multi.createFrom().iterable(rowSet))
 -                        .onItem().transform(this::from));
 +                        .onItem().transform(this::from)));
      }
- 
+
      @Override
-@@ -159,10 +162,11 @@ public class PostgreSqlJobRepository extends 
BaseReactiveJobRepository implement
+@@ -160,11 +161,11 @@ public class PostgreSqlJobRepository extends 
BaseReactiveJobRepository implement
+         String timeQuery = createTimeQuery("$2", "$3");
          String query = " WHERE " + statusQuery + " AND " + timeQuery;
- 
-         return ReactiveStreams.fromPublisher(
-+            AdaptersToReactiveStreams.publisher(
+
+-        return ReactiveStreams.fromPublisher(
++        return ReactiveStreams.fromPublisher(publisher(
                  client.preparedQuery("SELECT " + JOB_DETAILS_COLUMNS + " FROM 
" + JOB_DETAILS_TABLE + query + " ORDER BY priority DESC LIMIT $1")
                          .execute(Tuple.of(MAX_ITEMS_QUERY, 
from.toOffsetDateTime(), to.toOffsetDateTime()))
                          .onItem().transformToMulti(rowSet -> 
Multi.createFrom().iterable(rowSet))
 -                        .onItem().transform(this::from));
 +                        .onItem().transform(this::from)));
      }
- 
+
      static String createStatusQuery(JobStatus... status) {
 diff --git a/kogito-apps-build-parent/pom.xml 
b/kogito-apps-build-parent/pom.xml
-index 9ef5fe1c1..29bf514bf 100644
+index 1dcf2e465..d773ad06b 100644
 --- a/kogito-apps-build-parent/pom.xml
 +++ b/kogito-apps-build-parent/pom.xml
-@@ -57,6 +57,9 @@
- 
+@@ -77,6 +77,9 @@
+
          <!-- Explainability Toolkit version -->
          
<version.explainability-core>1.22.1.Final</version.explainability-core>
 +
 +        <!-- Mutiny Zero Flow Adapters -->
 +        
<version.io.smallrye.reactive.mutiny-zero>1.0.0</version.io.smallrye.reactive.mutiny-zero>
      </properties>
- 
+
      <build>
-@@ -162,6 +165,11 @@
+@@ -177,6 +180,11 @@
                  <artifactId>mapstruct</artifactId>
                  <version>${version.org.mapstruct}</version>
              </dependency>
diff --git 
a/.ci/environments/quarkus-3/patches/0006_data-index-reactive-streams.patch 
b/.ci/environments/quarkus-3/patches/0006_data-index-reactive-streams.patch
index 9868ad86f..50e4cd379 100644
--- a/.ci/environments/quarkus-3/patches/0006_data-index-reactive-streams.patch
+++ b/.ci/environments/quarkus-3/patches/0006_data-index-reactive-streams.patch
@@ -1,10 +1,10 @@
 diff --git a/data-index/data-index-common/pom.xml 
b/data-index/data-index-common/pom.xml
-index b744de020..cea2bd368 100644
+index f25994ad6..72a276de2 100644
 --- a/data-index/data-index-common/pom.xml
 +++ b/data-index/data-index-common/pom.xml
-@@ -29,6 +29,10 @@
-       <groupId>com.google.guava</groupId>
-       <artifactId>guava</artifactId>
+@@ -65,6 +65,10 @@
+       <groupId>io.quarkus</groupId>
+       <artifactId>quarkus-oidc</artifactId>
      </dependency>
 +    <dependency>
 +      <groupId>io.smallrye.reactive</groupId>
@@ -14,56 +14,42 @@ index b744de020..cea2bd368 100644
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-junit5</artifactId>
 diff --git 
a/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/graphql/GraphQLSchemaManagerImpl.java
 
b/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/graphql/GraphQLSchemaManagerImpl.java
-index b0d1086ae..b386b0ab2 100644
+index 3738fca0e..af2de1c99 100644
 --- 
a/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/graphql/GraphQLSchemaManagerImpl.java
 +++ 
b/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/graphql/GraphQLSchemaManagerImpl.java
-@@ -23,7 +23,7 @@ import java.util.concurrent.CompletableFuture;
- import java.util.function.Supplier;
- 
- import jakarta.enterprise.context.ApplicationScoped;
--
-+import mutiny.zero.flow.adapters.AdaptersToReactiveStreams;
- import jakarta.annotation.PostConstruct;
- import org.kie.kogito.index.graphql.AbstractGraphQLSchemaManager;
- import org.kie.kogito.index.graphql.query.GraphQLQueryParserRegistry;
-@@ -327,11 +327,11 @@ public class GraphQLSchemaManagerImpl extends 
AbstractGraphQLSchemaManager {
+@@ -49,6 +49,7 @@ import graphql.schema.idl.TypeDefinitionRegistry;
+
+ import static java.lang.String.format;
+ import static java.util.stream.Collectors.toList;
++import static mutiny.zero.flow.adapters.AdaptersToReactiveStreams.publisher;
+ import static org.kie.kogito.index.json.JsonUtils.getObjectMapper;
+
+ @ApplicationScoped
+@@ -184,11 +185,11 @@ public class GraphQLSchemaManagerImpl extends 
AbstractGraphQLSchemaManager {
      }
- 
+
      private DataFetcher<Publisher<ObjectNode>> 
objectCreatedPublisher(Supplier<Storage> cache) {
 -        return env -> cache.get().objectCreatedListener();
-+        return env -> 
AdaptersToReactiveStreams.publisher(cache.get().objectCreatedListener());
++        return env -> publisher(cache.get().objectCreatedListener());
      }
- 
+
      private DataFetcher<Publisher<ObjectNode>> 
objectUpdatedPublisher(Supplier<Storage> cache) {
 -        return env -> cache.get().objectUpdatedListener();
-+        return env -> 
AdaptersToReactiveStreams.publisher(cache.get().objectUpdatedListener());
++        return env -> publisher(cache.get().objectUpdatedListener());
      }
- 
+
      private Supplier<DataIndexServiceException> cacheNotFoundException(String 
processId) {
-@@ -339,11 +339,11 @@ public class GraphQLSchemaManagerImpl extends 
AbstractGraphQLSchemaManager {
+@@ -196,11 +197,11 @@ public class GraphQLSchemaManagerImpl extends 
AbstractGraphQLSchemaManager {
      }
- 
+
      protected DataFetcher<Publisher<ObjectNode>> 
getDomainModelUpdatedDataFetcher(String processId) {
 -        return env -> 
Optional.ofNullable(getCacheService().getDomainModelCache(processId)).orElseThrow(cacheNotFoundException(processId)).objectUpdatedListener();
-+        return env -> 
AdaptersToReactiveStreams.publisher(Optional.ofNullable(getCacheService().getDomainModelCache(processId)).orElseThrow(cacheNotFoundException(processId)).objectUpdatedListener());
++        return env -> 
publisher(Optional.ofNullable(getCacheService().getDomainModelCache(processId)).orElseThrow(cacheNotFoundException(processId)).objectUpdatedListener());
      }
- 
+
      protected DataFetcher<Publisher<ObjectNode>> 
getDomainModelAddedDataFetcher(String processId) {
 -        return env -> 
Optional.ofNullable(getCacheService().getDomainModelCache(processId)).orElseThrow(cacheNotFoundException(processId)).objectCreatedListener();
-+        return env -> 
AdaptersToReactiveStreams.publisher(Optional.ofNullable(getCacheService().getDomainModelCache(processId)).orElseThrow(cacheNotFoundException(processId)).objectCreatedListener());
++        return env -> 
publisher(Optional.ofNullable(getCacheService().getDomainModelCache(processId)).orElseThrow(cacheNotFoundException(processId)).objectCreatedListener());
      }
- 
+
      protected DataFetcher<Collection<ObjectNode>> 
getDomainModelDataFetcher(String processId) {
-diff --git a/kogito-apps-build-parent/pom.xml 
b/kogito-apps-build-parent/pom.xml
-index 29bf514bf..f28b1f42c 100644
---- a/kogito-apps-build-parent/pom.xml
-+++ b/kogito-apps-build-parent/pom.xml
-@@ -51,7 +51,7 @@
-         <version.org.apache.opennlp>1.9.2</version.org.apache.opennlp>
-         <version.org.apache.commons.csv>1.8</version.org.apache.commons.csv>
-         <version.org.jredisearch>2.0.0</version.org.jredisearch>
--        <version.org.mapstruct>1.4.2.Final</version.org.mapstruct>
-+        <version.org.mapstruct>1.5.5.Final</version.org.mapstruct>
-         <version.org.skyscreamer>1.5.0</version.org.skyscreamer>
-         
<version.com.graphql-java-extended-scalars>19.0</version.com.graphql-java-extended-scalars>
- 
diff --git 
a/.ci/environments/quarkus-3/patches/0010_quarkus_dev_ui_static_content_routes.patch
 
b/.ci/environments/quarkus-3/patches/0010_quarkus_dev_ui_static_content_routes.patch
index ceef9adda..3be721ec8 100644
--- 
a/.ci/environments/quarkus-3/patches/0010_quarkus_dev_ui_static_content_routes.patch
+++ 
b/.ci/environments/quarkus-3/patches/0010_quarkus_dev_ui_static_content_routes.patch
@@ -1,13 +1,26 @@
 diff --git 
a/kogito-quarkus-serverless-workflow-devui-parent/kogito-quarkus-serverless-workflow-devui-deployment/src/main/java/org/kie/kogito/swf/tools/deployment/DevConsoleProcessor.java
 
b/kogito-quarkus-serverless-workflow-devui-parent/kogito-quarkus-serverless-workflow-devui-deployment/src/main/java/org/kie/kogito/swf/tools/deployment/DevConsoleProcessor.java
-index 58c331a87..ed33f60b1 100644
+index 93b58135d..effce8f5a 100644
 --- 
a/kogito-quarkus-serverless-workflow-devui-parent/kogito-quarkus-serverless-workflow-devui-deployment/src/main/java/org/kie/kogito/swf/tools/deployment/DevConsoleProcessor.java
 +++ 
b/kogito-quarkus-serverless-workflow-devui-parent/kogito-quarkus-serverless-workflow-devui-deployment/src/main/java/org/kie/kogito/swf/tools/deployment/DevConsoleProcessor.java
-@@ -41,7 +41,7 @@ import 
io.quarkus.vertx.http.runtime.devmode.DevConsoleRecorder;
+@@ -43,7 +43,7 @@ import 
io.quarkus.vertx.http.runtime.devmode.DevConsoleRecorder;
  public class DevConsoleProcessor {
- 
+
      private static final String STATIC_RESOURCES_PATH = "dev-static/";
 -    private static final String BASE_RELATIVE_URL = 
"/q/dev/org.kie.kogito.kogito-quarkus-serverless-workflow-devui";
 +    private static final String BASE_RELATIVE_URL = 
"/q/dev-v1/org.kie.kogito.kogito-quarkus-serverless-workflow-devui";
      private static final String DATA_INDEX_CAPABILITY = 
"org.kie.kogito.data-index";
- 
+
      @BuildStep(onlyIf = IsDevelopment.class)
+diff --git 
a/runtime-tools-quarkus-extension-parent/runtime-tools-quarkus-extension-deployment/src/main/java/org/kie/kogito/runtime/tools/quarkus/extension/deployment/DevConsoleProcessor.java
 
b/runtime-tools-quarkus-extension-parent/runtime-tools-quarkus-extension-deployment/src/main/java/org/kie/kogito/runtime/tools/quarkus/extension/deployment/DevConsoleProcessor.java
+index f2b39a6f5..a5337babd 100644
+--- 
a/runtime-tools-quarkus-extension-parent/runtime-tools-quarkus-extension-deployment/src/main/java/org/kie/kogito/runtime/tools/quarkus/extension/deployment/DevConsoleProcessor.java
++++ 
b/runtime-tools-quarkus-extension-parent/runtime-tools-quarkus-extension-deployment/src/main/java/org/kie/kogito/runtime/tools/quarkus/extension/deployment/DevConsoleProcessor.java
+@@ -46,7 +46,7 @@ import 
io.quarkus.vertx.http.runtime.devmode.DevConsoleRecorder;
+ public class DevConsoleProcessor {
+
+     private static final String STATIC_RESOURCES_PATH = "dev-static/";
+-    private static final String BASE_RELATIVE_URL = 
"/q/dev/org.kie.kogito.runtime-tools-quarkus-extension";
++    private static final String BASE_RELATIVE_URL = 
"/q/dev-v1/org.kie.kogito.runtime-tools-quarkus-extension";
+     private static final String DATA_INDEX_CAPABILITY = 
"org.kie.kogito.data-index";
+
+     @SuppressWarnings("unused")


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to