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

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


The following commit(s) were added to refs/heads/main by this push:
     new 23ea984ab [incubator-kie-issues-2204] Quarkus upgrade 3.27.2 and 
Spring Boot to 3.5.10 (#2298)
23ea984ab is described below

commit 23ea984ab5550af666adf371aead494a19a863c2
Author: Jijo Thomas K <[email protected]>
AuthorDate: Fri Feb 20 03:41:11 2026 +0530

    [incubator-kie-issues-2204] Quarkus upgrade 3.27.2 and Spring Boot to 
3.5.10 (#2298)
    
    * changes for quarkus upgrade and spring boot
    
    * Quarkus upgrade to 3.27.2 and Spring Boot to 3.5.10
    
    - Upgraded Hibernate ORM from 6.6.11.Final to 7.1.14.Final
    - Fixed Hibernate API changes: removed ReturnableType parameter from 
ContainsSQLFunction
    - Replaced deprecated hibernate-entitymanager with hibernate-core
    - Updated Quarkus test annotations: @InjectMock -> @InjectSpy
    
    * docs: remove Hibernate 7 upgrade report
    
    * refactor(test): replace InjectSpy with InjectMock annotation
    
    * refactor(data-index): add ReturnableType parameter to render method
    
    * fix(data-index): exclude GraphQL observation auto-configuration for 
dependency compatibility
    
    * fix(springboot): add EntityManagerFactory interface workaround for 
Hibernate 7 and Spring ORM 6.2 compatibility
    
    * fix(data-audit): add type conversion for Hibernate 7 native query result 
compatibility
    
    * refactor(jobs): remove @Temporal annotations for OffsetDateTime fields in 
JPA entities
    
    * refactor(data-index): add comment explaining Hibernate 7 render method 
override requirement
    
    * feat(jobs): enable async console logging
    
    * style: reorder imports to follow conventions in trusty service tests
    
    * auto generated: add BPMN and SW process definitions for jobs service 
integration tests
    
    * fix(data-audit): add type conversion for Hibernate 7 native query result 
compatibility
    
    * refactor(contains-sql-function): remove outdated comment regarding 
Hibernate 7 render method
    
    * Revert "auto generated: add BPMN and SW process definitions for jobs 
service integration tests"
    
    This reverts commit 7451b83fc4579c408e0f34695a5784dd49d97b9a.
    
    * refactor(data-audit): extract date conversion utility to reduce code 
duplication
    
    * refactor(graphql): upgrade graphql-java to 24.3 for compatibility with 
Spring Boot 3.5.x and adjust extended-scalars version
    refactor(data-audit): utilize DateTimeUtil for cross-version compatibility 
in JPADynamicQuery
    fix(data-index): set default data fetcher to JsonPropertyDataFetcher for 
improved handling of various data sources
    chore(application): disable Flyway validation in jobs service to avoid 
migration conflicts
    
    * 1. Changed ZoneId.systemDefault() → ZoneId.of("UTC") to match 
DateTimeUtil in the same package
    2. Extracted private static final JsonPropertyDataFetcher 
JSON_PROPERTY_DATA_FETCHER = new JsonPropertyDataFetcher(); and reference it in 
the lambda
    3.  Scoped to dev/test profiles only:
    %dev.quarkus.flyway.validate-on-migrate=false
    %test.quarkus.flyway.validate-on-migrate=false
    
    * trailing space removed
    
    * Temporal Changes Reverted to handle timestamp (#3)
    
    Co-authored-by: Nithin R Krishnan <[email protected]>
    
    * fixed review comments
    
    * review comment fix: changed the name of beanPostProcessor and added for 
data index as well
    
    * Fixed sort in imports
    
    ---------
    
    Co-authored-by: Nithin R Krishnan <[email protected]>
    Co-authored-by: Nithin from BAMOE CLI <[email protected]>
    Co-authored-by: Nithin R Krishnan <[email protected]>
    Co-authored-by: jijo.thomas.k <[email protected]>
---
 .../kogito-addons-data-audit-jpa-common/pom.xml    |  5 +-
 .../app/audit/jpa/queries/JPADynamicQuery.java     |  7 ++-
 .../app/audit/jpa/queries/mapper/DateTimeUtil.java | 55 ++++++++++++++++++++++
 .../app/audit/jpa/queries/mapper/PojoMapper.java   | 37 ++++++++++++++-
 .../mapper/ProcessInstanceStateTOMapper.java       | 13 ++---
 .../ProcessInstanceVariableHistoryTOMapper.java    |  7 ---
 .../mapper/UserTaskInstanceAssignmentTOMapper.java | 11 ++---
 .../mapper/UserTaskInstanceDeadlineTOMapper.java   | 11 ++---
 .../SpringbootAuditDataConfiguration.java          | 19 ++++++++
 .../index/graphql/JsonPropertyDataFetcher.java     |  6 ++-
 .../src/test/resources/deals-mongo.proto           | 22 ++++++---
 .../src/test/resources/travels-mongo.proto         | 54 +++++++++++++++++++--
 .../service/graphql/GraphQLProtoSchemaMapper.java  |  7 +++
 .../service/graphql/GraphQLSchemaManagerImpl.java  |  3 +-
 .../storage/DataIndexSpringbootConfiguration.java  | 19 ++++++++
 .../src/main/resources/application.properties      |  1 -
 .../index/postgresql/ContainsSQLFunction.java      |  2 +-
 .../BaseExplainabilityMessagingHandlerIT.java      |  2 +-
 .../src/main/resources/application.properties      |  4 ++
 .../kogito-addons-common-embedded-jobs-jpa/pom.xml |  6 ---
 .../jpa/SpringbootJPAJobStoreConfiguration.java    | 19 ++++++++
 kogito-apps-build-parent/pom.xml                   | 16 +++++--
 .../service/common/KeycloakTrustyServiceIT.java    |  2 +-
 .../service/common/api/DecisionsApiV1IT.java       |  2 +-
 .../service/common/api/ExecutionsApiV1IT.java      |  2 +-
 .../service/common/api/ExplainabilityApiV1IT.java  |  2 +-
 .../incoming/ExplainabilityResultConsumerIT.java   |  2 +-
 .../messaging/incoming/ModelEventConsumerIT.java   |  2 +-
 .../messaging/incoming/TraceEventConsumerIT.java   |  2 +-
 29 files changed, 267 insertions(+), 73 deletions(-)

diff --git 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/pom.xml
 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/pom.xml
index 1ba89cd55..454328656 100644
--- 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/pom.xml
+++ 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/pom.xml
@@ -100,9 +100,8 @@
                        <scope>test</scope>
                </dependency>
                <dependency>
-                       <groupId>org.hibernate</groupId>
-                       <artifactId>hibernate-entitymanager</artifactId>
-                       <version>5.6.12.Final</version>
+                       <groupId>org.hibernate.orm</groupId>
+                       <artifactId>hibernate-core</artifactId>
                        <scope>test</scope>
                </dependency>
        </dependencies>
diff --git 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/JPADynamicQuery.java
 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/JPADynamicQuery.java
index f9edd3411..3c3404fea 100644
--- 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/JPADynamicQuery.java
+++ 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/JPADynamicQuery.java
@@ -18,9 +18,6 @@
  */
 package org.kie.kogito.app.audit.jpa.queries;
 
-import java.sql.Timestamp;
-import java.time.OffsetDateTime;
-import java.time.ZoneId;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -39,6 +36,8 @@ import graphql.schema.GraphQLScalarType;
 import graphql.schema.GraphQLSchemaElement;
 import jakarta.persistence.EntityManager;
 
+import static 
org.kie.kogito.app.audit.jpa.queries.mapper.DateTimeUtil.toDateTime;
+
 public class JPADynamicQuery extends JPAAbstractQuery<Object> implements 
GraphQLSchemaQuery {
 
     private String name;
@@ -112,7 +111,7 @@ public class JPADynamicQuery extends 
JPAAbstractQuery<Object> implements GraphQL
         if (outputType instanceof GraphQLScalarType) {
             GraphQLScalarType scalarType = (GraphQLScalarType) outputType;
             if ("DateTime".equals(scalarType.getName())) {
-                target = OffsetDateTime.ofInstant(((Timestamp) 
source).toInstant(), ZoneId.of("UTC"));
+                target = toDateTime(source);
             }
 
         }
diff --git 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/DateTimeUtil.java
 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/DateTimeUtil.java
new file mode 100644
index 000000000..e803c95b5
--- /dev/null
+++ 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/DateTimeUtil.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.kie.kogito.app.audit.jpa.queries.mapper;
+
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.OffsetDateTime;
+import java.time.ZoneId;
+import java.util.Date;
+
+public final class DateTimeUtil {
+
+    private DateTimeUtil() {
+    }
+
+    /**
+     * Converts various date/time types to OffsetDateTime.
+     * Hibernate 7 returns OffsetDateTime instead of Date for native queries,
+     * so this utility handles multiple input types for compatibility.
+     */
+    public static OffsetDateTime toDateTime(Object value) {
+        if (value == null) {
+            return null;
+        }
+        if (value instanceof OffsetDateTime) {
+            return (OffsetDateTime) value;
+        }
+        if (value instanceof Date) {
+            return OffsetDateTime.ofInstant(((Date) value).toInstant(), 
ZoneId.of("UTC"));
+        }
+        if (value instanceof Instant) {
+            return OffsetDateTime.ofInstant((Instant) value, ZoneId.of("UTC"));
+        }
+        if (value instanceof LocalDateTime) {
+            return ((LocalDateTime) 
value).atZone(ZoneId.of("UTC")).toOffsetDateTime();
+        }
+        throw new IllegalArgumentException("Cannot convert " + 
value.getClass() + " to OffsetDateTime");
+    }
+}
diff --git 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/PojoMapper.java
 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/PojoMapper.java
index a08df47c7..bf601bf7c 100644
--- 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/PojoMapper.java
+++ 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/PojoMapper.java
@@ -20,7 +20,12 @@ package org.kie.kogito.app.audit.jpa.queries.mapper;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.OffsetDateTime;
+import java.time.ZoneId;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 import org.kie.kogito.app.audit.jpa.queries.DataMapper;
@@ -68,7 +73,24 @@ public class PojoMapper<T> implements DataMapper<T, 
Object[]> {
             return null;
         }
 
-        // Handle BigDecimal -> Integer/Long conversion)
+        if (targetType.isInstance(value)) {
+            return value;
+        }
+
+        // Hibernate 7 returns java.time types instead of java.util.Date
+        if (targetType == Date.class) {
+            if (value instanceof OffsetDateTime) {
+                return Date.from(((OffsetDateTime) value).toInstant());
+            }
+            if (value instanceof Instant) {
+                return Date.from((Instant) value);
+            }
+            if (value instanceof LocalDateTime) {
+                return Date.from(((LocalDateTime) 
value).atZone(ZoneId.of("UTC")).toInstant());
+            }
+        }
+
+        // Handle BigDecimal -> Integer/Long conversion
         if (value instanceof java.math.BigDecimal bd) {
             if (targetType == Integer.class || targetType == int.class) {
                 return bd.intValue();
@@ -77,6 +99,18 @@ public class PojoMapper<T> implements DataMapper<T, 
Object[]> {
             }
         }
 
+        // Hibernate 7 may return different numeric types for native query 
columns
+        if (targetType == Integer.class || targetType == int.class) {
+            if (value instanceof Number) {
+                return ((Number) value).intValue();
+            }
+        }
+        if (targetType == Long.class || targetType == long.class) {
+            if (value instanceof Number) {
+                return ((Number) value).longValue();
+            }
+        }
+
         // Handle CLOB -> String conversion
         if (value instanceof java.sql.Clob clob && targetType == String.class) 
{
             try {
@@ -84,7 +118,6 @@ public class PojoMapper<T> implements DataMapper<T, 
Object[]> {
                 if (length == 0) {
                     return null;
                 }
-                // Check if length exceeds int max (extremely unlikely for 
stack traces)
                 if (length > Integer.MAX_VALUE) {
                     LOGGER.warn("CLOB too large ({} bytes), truncating to 
Integer.MAX_VALUE", length);
                     return clob.getSubString(1, Integer.MAX_VALUE);
diff --git 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/ProcessInstanceStateTOMapper.java
 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/ProcessInstanceStateTOMapper.java
index 6b3dd3e79..b1f2f596a 100644
--- 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/ProcessInstanceStateTOMapper.java
+++ 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/ProcessInstanceStateTOMapper.java
@@ -18,10 +18,7 @@
  */
 package org.kie.kogito.app.audit.jpa.queries.mapper;
 
-import java.time.OffsetDateTime;
-import java.time.ZoneId;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 import org.kie.kogito.app.audit.graphql.type.ProcessInstanceStateTO;
@@ -29,6 +26,8 @@ import org.kie.kogito.app.audit.jpa.queries.DataMapper;
 
 import graphql.com.google.common.base.Objects;
 
+import static 
org.kie.kogito.app.audit.jpa.queries.mapper.DateTimeUtil.toDateTime;
+
 public class ProcessInstanceStateTOMapper implements 
DataMapper<ProcessInstanceStateTO, Object[]> {
     @Override
     public List<ProcessInstanceStateTO> produce(List<Object[]> data) {
@@ -43,7 +42,7 @@ public class ProcessInstanceStateTOMapper implements 
DataMapper<ProcessInstanceS
                 transformedData.add(current);
             }
             current.setEventId((String) row[0]);
-            current.setEventDate(toDateTime((Date) row[1]));
+            current.setEventDate(toDateTime(row[1]));
             current.setProcessType((String) row[2]);
             current.setProcessId((String) row[3]);
             current.setProcessVersion((String) row[4]);
@@ -55,15 +54,11 @@ public class ProcessInstanceStateTOMapper implements 
DataMapper<ProcessInstanceS
             current.setEventType((String) row[10]);
             current.setOutcome((String) row[11]);
             current.setState((String) row[12]);
-            current.setSlaDueDate(toDateTime((Date) row[13]));
+            current.setSlaDueDate(toDateTime(row[13]));
             current.addRole((String) data.get(idx)[14]);
             current.setEventUser((String) data.get(idx)[15]);
         }
 
         return transformedData;
     }
-
-    public OffsetDateTime toDateTime(Date date) {
-        return (date != null) ? OffsetDateTime.ofInstant(date.toInstant(), 
ZoneId.of("UTC")) : null;
-    }
 }
diff --git 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/ProcessInstanceVariableHistoryTOMapper.java
 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/ProcessInstanceVariableHistoryTOMapper.java
index 77e984f8b..6f3e7cc6b 100644
--- 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/ProcessInstanceVariableHistoryTOMapper.java
+++ 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/ProcessInstanceVariableHistoryTOMapper.java
@@ -18,10 +18,7 @@
  */
 package org.kie.kogito.app.audit.jpa.queries.mapper;
 
-import java.time.OffsetDateTime;
-import java.time.ZoneId;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 import org.kie.kogito.app.audit.graphql.type.ProcessInstanceVariableHistoryTO;
@@ -58,8 +55,4 @@ public class ProcessInstanceVariableHistoryTOMapper 
implements DataMapper<Proces
 
         return transformedData;
     }
-
-    public OffsetDateTime toDateTime(Date date) {
-        return (date != null) ? OffsetDateTime.ofInstant(date.toInstant(), 
ZoneId.of("UTC")) : null;
-    }
 }
diff --git 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/UserTaskInstanceAssignmentTOMapper.java
 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/UserTaskInstanceAssignmentTOMapper.java
index b740b494e..4055e62de 100644
--- 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/UserTaskInstanceAssignmentTOMapper.java
+++ 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/UserTaskInstanceAssignmentTOMapper.java
@@ -18,10 +18,7 @@
  */
 package org.kie.kogito.app.audit.jpa.queries.mapper;
 
-import java.time.OffsetDateTime;
-import java.time.ZoneId;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 import org.kie.kogito.app.audit.graphql.type.UserTaskInstanceAssignmentTO;
@@ -29,6 +26,8 @@ import org.kie.kogito.app.audit.jpa.queries.DataMapper;
 
 import graphql.com.google.common.base.Objects;
 
+import static 
org.kie.kogito.app.audit.jpa.queries.mapper.DateTimeUtil.toDateTime;
+
 public class UserTaskInstanceAssignmentTOMapper implements 
DataMapper<UserTaskInstanceAssignmentTO, Object[]> {
 
     @Override
@@ -44,7 +43,7 @@ public class UserTaskInstanceAssignmentTOMapper implements 
DataMapper<UserTaskIn
                 transformedData.add(current);
             }
             current.setEventId((String) row[0]);
-            current.setEventDate(toDateTime((Date) row[1]));
+            current.setEventDate(toDateTime(row[1]));
             current.setEventUser((String) row[2]);
             current.setUserTaskDefinitionId((String) row[3]);
             current.setUserTaskInstanceId((String) row[4]);
@@ -58,8 +57,4 @@ public class UserTaskInstanceAssignmentTOMapper implements 
DataMapper<UserTaskIn
 
         return transformedData;
     }
-
-    public OffsetDateTime toDateTime(Date date) {
-        return (date != null) ? OffsetDateTime.ofInstant(date.toInstant(), 
ZoneId.of("UTC")) : null;
-    }
 }
diff --git 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/UserTaskInstanceDeadlineTOMapper.java
 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/UserTaskInstanceDeadlineTOMapper.java
index 6974d0907..2b944b581 100644
--- 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/UserTaskInstanceDeadlineTOMapper.java
+++ 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/mapper/UserTaskInstanceDeadlineTOMapper.java
@@ -18,10 +18,7 @@
  */
 package org.kie.kogito.app.audit.jpa.queries.mapper;
 
-import java.time.OffsetDateTime;
-import java.time.ZoneId;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 import org.kie.kogito.app.audit.graphql.type.UserTaskInstanceDeadlineTO;
@@ -29,6 +26,8 @@ import org.kie.kogito.app.audit.jpa.queries.DataMapper;
 
 import graphql.com.google.common.base.Objects;
 
+import static 
org.kie.kogito.app.audit.jpa.queries.mapper.DateTimeUtil.toDateTime;
+
 public class UserTaskInstanceDeadlineTOMapper implements 
DataMapper<UserTaskInstanceDeadlineTO, Object[]> {
 
     @Override
@@ -44,7 +43,7 @@ public class UserTaskInstanceDeadlineTOMapper implements 
DataMapper<UserTaskInst
                 transformedData.add(current);
             }
             current.setEventId((String) row[0]);
-            current.setEventDate(toDateTime((Date) row[1]));
+            current.setEventDate(toDateTime(row[1]));
             current.setUserTaskDefinitionId((String) row[2]);
             current.setUserTaskInstanceId((String) row[3]);
             current.setProcessInstanceId((String) row[4]);
@@ -56,8 +55,4 @@ public class UserTaskInstanceDeadlineTOMapper implements 
DataMapper<UserTaskInst
 
         return transformedData;
     }
-
-    public OffsetDateTime toDateTime(Date date) {
-        return (date != null) ? OffsetDateTime.ofInstant(date.toInstant(), 
ZoneId.of("UTC")) : null;
-    }
 }
diff --git 
a/data-audit/kogito-addons-data-audit-springboot/src/main/java/org/kie/kogito/app/audit/springboot/SpringbootAuditDataConfiguration.java
 
b/data-audit/kogito-addons-data-audit-springboot/src/main/java/org/kie/kogito/app/audit/springboot/SpringbootAuditDataConfiguration.java
index f7cbe6c52..da405657f 100644
--- 
a/data-audit/kogito-addons-data-audit-springboot/src/main/java/org/kie/kogito/app/audit/springboot/SpringbootAuditDataConfiguration.java
+++ 
b/data-audit/kogito-addons-data-audit-springboot/src/main/java/org/kie/kogito/app/audit/springboot/SpringbootAuditDataConfiguration.java
@@ -18,13 +18,32 @@
  */
 package org.kie.kogito.app.audit.springboot;
 
+import org.springframework.beans.factory.config.BeanPostProcessor;
 import org.springframework.boot.SpringBootConfiguration;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
 
 @SpringBootConfiguration
 @EnableAutoConfiguration
 @ComponentScan
 public class SpringbootAuditDataConfiguration {
 
+    // Hibernate 7 + Spring ORM 6.2 workaround: Hibernate 7's 
SessionFactory.getSchemaManager()
+    // returns org.hibernate.relational.SchemaManager, conflicting with JPA 
3.2's
+    // EntityManagerFactory.getSchemaManager() returning 
jakarta.persistence.SchemaManager.
+    // Force plain JPA interface to avoid JDK Proxy incompatible return type 
error.
+    @Bean
+    public static BeanPostProcessor auditDataEmfPostProcessor() {
+        return new BeanPostProcessor() {
+            @Override
+            public Object postProcessBeforeInitialization(Object bean, String 
beanName) {
+                if (bean instanceof LocalContainerEntityManagerFactoryBean 
emfb) {
+                    
emfb.setEntityManagerFactoryInterface(jakarta.persistence.EntityManagerFactory.class);
+                }
+                return bean;
+            }
+        };
+    }
 }
diff --git 
a/data-index/data-index-graphql/src/main/java/org/kie/kogito/index/graphql/JsonPropertyDataFetcher.java
 
b/data-index/data-index-graphql/src/main/java/org/kie/kogito/index/graphql/JsonPropertyDataFetcher.java
index ff21c1085..a1ab034f5 100644
--- 
a/data-index/data-index-graphql/src/main/java/org/kie/kogito/index/graphql/JsonPropertyDataFetcher.java
+++ 
b/data-index/data-index-graphql/src/main/java/org/kie/kogito/index/graphql/JsonPropertyDataFetcher.java
@@ -29,6 +29,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 
 import graphql.schema.DataFetcher;
 import graphql.schema.DataFetchingEnvironment;
+import graphql.schema.PropertyDataFetcher;
 
 public class JsonPropertyDataFetcher implements DataFetcher {
 
@@ -84,6 +85,9 @@ public class JsonPropertyDataFetcher implements DataFetcher {
                 return null;
             }
         }
-        return null;
+        // Fallback to PropertyDataFetcher for non-JsonNode sources (e.g. 
POJOs in PostgreSQL).
+        // This allows JsonPropertyDataFetcher to be used as the default data 
fetcher for all
+        // domain types regardless of the storage backend.
+        return PropertyDataFetcher.fetching(property).get(environment);
     }
 }
diff --git 
a/data-index/data-index-quarkus/data-index-service-mongodb/src/test/resources/deals-mongo.proto
 
b/data-index/data-index-quarkus/data-index-service-mongodb/src/test/resources/deals-mongo.proto
index e3417a884..bc5fee843 100644
--- 
a/data-index/data-index-quarkus/data-index-service-mongodb/src/test/resources/deals-mongo.proto
+++ 
b/data-index/data-index-quarkus/data-index-service-mongodb/src/test/resources/deals-mongo.proto
@@ -23,33 +23,43 @@ import "kogito-types.proto";
 option kogito_model = "Deals";
 option kogito_id = "deals";
 
+/* @Indexed */
 message Location {
-    option java_package = "org.acme.travels";
+    option java_package = "org.acme.deals";
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string city = 1;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string country = 2;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string street = 3;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string zipCode = 4;
 }
 
 /* @Indexed */
 message Deals {
     option java_package = "org.acme.deals";
-    /* @Field(index = Index.YES, store = Store.YES) */
+    /* @Field(index = Index.YES, store = Store.YES) @SortableField */
     optional string id = 1;
-    /* @Field(index = Index.NO, store = Store.YES) */
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string name = 2;
-    /* @Field(index = Index.NO, store = Store.YES) */
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string review = 3;
     optional Product product = 4;
     /* @Field(index = Index.NO, store = Store.YES) */
     optional org.kie.kogito.index.model.KogitoMetadata metadata = 5;
 }
 
+/* @Indexed */
 message Product {
-    option java_package = "org.acme.travels";
+    option java_package = "org.acme.deals";
     optional Location location = 1;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string name = 2;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string code = 3;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string label = 4;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional double price = 5;
-}
\ No newline at end of file
+}
diff --git 
a/data-index/data-index-quarkus/data-index-service-mongodb/src/test/resources/travels-mongo.proto
 
b/data-index/data-index-quarkus/data-index-service-mongodb/src/test/resources/travels-mongo.proto
index 5465eea15..d65b2a438 100644
--- 
a/data-index/data-index-quarkus/data-index-service-mongodb/src/test/resources/travels-mongo.proto
+++ 
b/data-index/data-index-quarkus/data-index-service-mongodb/src/test/resources/travels-mongo.proto
@@ -23,77 +23,121 @@ import "kogito-types.proto";
 option kogito_model = "Travels";
 option kogito_id = "travels";
 
+/* @Indexed */
 message Address {
     option java_package = "org.acme.travels.travels";
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string city = 1;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string country = 2;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string street = 3;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string zipCode = 4;
 }
 
+/* @Indexed */
 message Flight {
     option java_package = "org.acme.travels.travels";
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional kogito.Date arrival = 1;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional kogito.Date departure = 2;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string flightNumber = 3;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string gate = 4;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string seat = 5;
 }
 
+/* @Indexed */
 message Hotel {
     option java_package = "org.acme.travels.travels";
+    /* @Field(index = Index.YES, store = Store.YES) */
     optional Address address = 1;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string bookingNumber = 2;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string name = 3;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string phone = 4;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string room = 5;
 }
 
+/* @Indexed */
 message Traveller {
     option java_package = "org.acme.travels.travels";
+    /* @Field(index = Index.YES, store = Store.YES) */
     optional Address address = 1;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string email = 2;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string firstName = 3;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string lastName = 4;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string nationality = 5;
+    /* @Field(index = Index.YES, store = Store.YES) */
     repeated Address locations = 6;
+    /* @Field(index = Index.YES, store = Store.YES) */
     repeated string aliases = 7;
 }
 
+/* @Indexed */
 message Travels {
     option java_package = "org.acme.travels.travels";
+    /* @Field(index = Index.YES, store = Store.YES) */
     optional Flight flight = 1;
+    /* @Field(index = Index.YES, store = Store.YES) */
     optional Hotel hotel = 2;
+    /* @Field(index = Index.YES, store = Store.YES) @SortableField */
     optional string id = 3;
+    /* @Field(index = Index.YES, store = Store.YES) */
     optional Traveller traveller = 4;
+    /* @Field(index = Index.YES, store = Store.YES) */
     optional Trip trip = 5;
+    /* @Field(index = Index.YES, store = Store.YES) */
     optional VisaApplication visaApplication = 6;
+    /* @Field(index = Index.YES, store = Store.YES) */
     optional org.kie.kogito.index.model.KogitoMetadata metadata = 7;
 }
+
 /* @Indexed */
 message Trip {
     option java_package = "org.acme.travels.travels";
-    /* @Field(index = Index.NO, store = Store.YES) */
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional kogito.Date begin = 1;
-    /* @Field(index = Index.NO, store = Store.YES) */
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string city = 2;
-    /* @Field(index = Index.NO, store = Store.YES) */
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string country = 3;
-    /* @Field(index = Index.NO, store = Store.YES) */
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional kogito.Date end = 4;
-    /* @Field(index = Index.NO, store = Store.YES) */
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional bool visaRequired = 5;
 }
 
+/* @Indexed */
 message VisaApplication {
     option java_package = "org.acme.travels.travels";
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional bool approved = 1;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string city = 2;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string country = 3;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional int32 duration = 4;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string firstName = 5;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string lastName = 6;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string nationality = 7;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional string passportNumber = 8;
+    /* @Field(index = Index.NO, store = Store.YES) @SortableField */
     optional int64 id = 9;
 }
diff --git 
a/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/graphql/GraphQLProtoSchemaMapper.java
 
b/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/graphql/GraphQLProtoSchemaMapper.java
index 7a46cc91f..ed65c0317 100644
--- 
a/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/graphql/GraphQLProtoSchemaMapper.java
+++ 
b/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/graphql/GraphQLProtoSchemaMapper.java
@@ -25,6 +25,7 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.kie.kogito.index.graphql.GraphQLObjectTypeMapper;
+import org.kie.kogito.index.graphql.JsonPropertyDataFetcher;
 import org.kie.kogito.index.graphql.query.GraphQLInputObjectTypeMapper;
 import org.kie.kogito.index.graphql.query.GraphQLOrderByTypeMapper;
 import org.kie.kogito.index.graphql.query.GraphQLQueryParserRegistry;
@@ -59,6 +60,7 @@ import static 
org.kie.kogito.index.graphql.GraphQLObjectTypeMapper.getTypeName;
 public class GraphQLProtoSchemaMapper {
 
     private static final Logger LOGGER = 
LoggerFactory.getLogger(GraphQLProtoSchemaMapper.class);
+    private static final JsonPropertyDataFetcher JSON_PROPERTY_DATA_FETCHER = 
new JsonPropertyDataFetcher();
 
     @Inject
     GraphQLSchemaManagerImpl schemaManager;
@@ -118,6 +120,11 @@ public class GraphQLProtoSchemaMapper {
                 codeBuilder.dataFetcher(coordinates("Query", 
rootType.getName()), 
schemaManager.getDomainModelDataFetcher(event.getProcessId()));
                 codeBuilder.dataFetcher(coordinates("Subscription", 
rootType.getName() + "Added"), 
schemaManager.getDomainModelAddedDataFetcher(event.getProcessId()));
                 codeBuilder.dataFetcher(coordinates("Subscription", 
rootType.getName() + "Updated"), 
schemaManager.getDomainModelUpdatedDataFetcher(event.getProcessId()));
+                // graphql-java 24.x LightDataFetcher optimization bypasses 
instrumentDataFetcher,
+                // so PropertyDataFetcher is no longer intercepted for 
JsonNode-based sources (MongoDB).
+                // Set default data fetcher factory to JsonPropertyDataFetcher 
which handles both
+                // JsonNode (MongoDB) and POJO (PostgreSQL) sources.
+                codeBuilder.defaultDataFetcher(env -> 
JSON_PROPERTY_DATA_FETCHER);
             });
 
             builder.codeRegistry(registry);
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 9dc6caea7..e45a6c962 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
@@ -89,8 +89,9 @@ public class GraphQLSchemaManagerImpl extends 
AbstractGraphQLSchemaManager {
         addJsonQueries(typeDefinitionRegistry);
         loadAdditionalMutations(typeDefinitionRegistry);
 
+        // Note: ExtendedScalars.Json is registered once below (line ~165), 
not here.
+        // graphql-java 24.x strict mode throws StrictModeWiringException on 
duplicate scalar registration.
         RuntimeWiring runtimeWiring = RuntimeWiring.newRuntimeWiring()
-                .scalar(ExtendedScalars.Json)
                 .type("Query", builder -> {
                     builder.dataFetcher("ProcessDefinitions", 
this::getProcessDefinitionsValues);
                     builder.dataFetcher("ProcessInstances", 
this::getProcessInstancesValues);
diff --git 
a/data-index/data-index-springboot/data-index-storage-jpa-springboot/src/main/java/org/kie/kogito/index/jpa/springboot/storage/DataIndexSpringbootConfiguration.java
 
b/data-index/data-index-springboot/data-index-storage-jpa-springboot/src/main/java/org/kie/kogito/index/jpa/springboot/storage/DataIndexSpringbootConfiguration.java
index 073aa63b3..ebae71158 100644
--- 
a/data-index/data-index-springboot/data-index-storage-jpa-springboot/src/main/java/org/kie/kogito/index/jpa/springboot/storage/DataIndexSpringbootConfiguration.java
+++ 
b/data-index/data-index-springboot/data-index-storage-jpa-springboot/src/main/java/org/kie/kogito/index/jpa/springboot/storage/DataIndexSpringbootConfiguration.java
@@ -18,8 +18,11 @@
  */
 package org.kie.kogito.index.jpa.springboot.storage;
 
+import org.springframework.beans.factory.config.BeanPostProcessor;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 @Configuration(proxyBeanMethods = false)
@@ -27,4 +30,20 @@ import 
org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableTransactionManagement
 public class DataIndexSpringbootConfiguration {
 
+    // Hibernate 7 + Spring ORM 6.2 workaround: Hibernate 7's 
SessionFactory.getSchemaManager()
+    // returns org.hibernate.relational.SchemaManager, conflicting with JPA 
3.2's
+    // EntityManagerFactory.getSchemaManager() returning 
jakarta.persistence.SchemaManager.
+    // Force plain JPA interface to avoid JDK Proxy incompatible return type 
error.
+    @Bean
+    public static BeanPostProcessor dataIndexEmfPostProcessor() {
+        return new BeanPostProcessor() {
+            @Override
+            public Object postProcessBeforeInitialization(Object bean, String 
beanName) {
+                if (bean instanceof LocalContainerEntityManagerFactoryBean 
emfb) {
+                    
emfb.setEntityManagerFactoryInterface(jakarta.persistence.EntityManagerFactory.class);
+                }
+                return bean;
+            }
+        };
+    }
 }
diff --git 
a/data-index/data-index-springboot/kogito-addons-springboot-data-index-persistence/kogito-addons-springboot-data-index-persistence-jpa-parent/integration-tests-process/src/main/resources/application.properties
 
b/data-index/data-index-springboot/kogito-addons-springboot-data-index-persistence/kogito-addons-springboot-data-index-persistence-jpa-parent/integration-tests-process/src/main/resources/application.properties
index f3a775322..e5c8061bd 100644
--- 
a/data-index/data-index-springboot/kogito-addons-springboot-data-index-persistence/kogito-addons-springboot-data-index-persistence-jpa-parent/integration-tests-process/src/main/resources/application.properties
+++ 
b/data-index/data-index-springboot/kogito-addons-springboot-data-index-persistence/kogito-addons-springboot-data-index-persistence-jpa-parent/integration-tests-process/src/main/resources/application.properties
@@ -25,4 +25,3 @@ kie.flyway.enabled=true
 
 # Disabling Spring-Boot Flyway to avoid unnecessary Data Base initialization
 spring.flyway.enabled=false
-
diff --git 
a/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/ContainsSQLFunction.java
 
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/ContainsSQLFunction.java
index ef0563b93..8a40313ae 100644
--- 
a/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/ContainsSQLFunction.java
+++ 
b/data-index/data-index-storage/data-index-storage-postgresql/src/main/java/org/kie/kogito/index/postgresql/ContainsSQLFunction.java
@@ -22,7 +22,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.hibernate.dialect.function.StandardSQLFunction;
-import org.hibernate.query.ReturnableType;
+import org.hibernate.metamodel.model.domain.ReturnableType;
 import org.hibernate.sql.ast.SqlAstTranslator;
 import org.hibernate.sql.ast.spi.SqlAppender;
 import org.hibernate.sql.ast.tree.SqlAstNode;
diff --git 
a/explainability/explainability-service-messaging/src/test/java/org/kie/kogito/explainability/messaging/BaseExplainabilityMessagingHandlerIT.java
 
b/explainability/explainability-service-messaging/src/test/java/org/kie/kogito/explainability/messaging/BaseExplainabilityMessagingHandlerIT.java
index fd8edce95..06463a84f 100644
--- 
a/explainability/explainability-service-messaging/src/test/java/org/kie/kogito/explainability/messaging/BaseExplainabilityMessagingHandlerIT.java
+++ 
b/explainability/explainability-service-messaging/src/test/java/org/kie/kogito/explainability/messaging/BaseExplainabilityMessagingHandlerIT.java
@@ -41,7 +41,7 @@ import org.slf4j.LoggerFactory;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 import io.cloudevents.CloudEvent;
-import io.quarkus.test.junit.mockito.InjectMock;
+import io.quarkus.test.InjectMock;
 
 import jakarta.inject.Inject;
 
diff --git 
a/jobs-service/jobs-service-inmemory/src/main/resources/application.properties 
b/jobs-service/jobs-service-inmemory/src/main/resources/application.properties
index e4e49a8ea..3387b029b 100644
--- 
a/jobs-service/jobs-service-inmemory/src/main/resources/application.properties
+++ 
b/jobs-service/jobs-service-inmemory/src/main/resources/application.properties
@@ -20,6 +20,10 @@
 #Flyway - It's safe to enable Flyway by default for in-memory storage
 quarkus.flyway.migrate-at-start=true
 quarkus.flyway.baseline-on-migrate=true
+# Disable Flyway validation in dev/test to avoid conflicts with data-index 
migrations applied
+# to the shared dev-services PostgreSQL container by earlier modules in the 
build.
+%dev.quarkus.flyway.validate-on-migrate=false
+%test.quarkus.flyway.validate-on-migrate=false
 quarkus.flyway.locations=classpath:kie-flyway/db/jobs-service/postgresql
 
 quarkus.datasource.db-kind=postgresql
\ No newline at end of file
diff --git 
a/jobs/kogito-addons-embedded-jobs-jpa/kogito-addons-common-embedded-jobs-jpa/pom.xml
 
b/jobs/kogito-addons-embedded-jobs-jpa/kogito-addons-common-embedded-jobs-jpa/pom.xml
index 26be02d0e..fd035b5d9 100644
--- 
a/jobs/kogito-addons-embedded-jobs-jpa/kogito-addons-common-embedded-jobs-jpa/pom.xml
+++ 
b/jobs/kogito-addons-embedded-jobs-jpa/kogito-addons-common-embedded-jobs-jpa/pom.xml
@@ -108,11 +108,5 @@
                        <artifactId>junit-platform-suite</artifactId>
                        <scope>test</scope>
                </dependency>
-               <dependency>
-                       <groupId>org.hibernate</groupId>
-                       <artifactId>hibernate-entitymanager</artifactId>
-                       <version>5.6.12.Final</version>
-                       <scope>test</scope>
-               </dependency>
        </dependencies>
 </project>
diff --git 
a/jobs/kogito-addons-embedded-jobs-jpa/kogito-addons-springboot-embedded-jobs-jpa/src/main/java/org/kie/kogito/app/jobs/springboot/jpa/SpringbootJPAJobStoreConfiguration.java
 
b/jobs/kogito-addons-embedded-jobs-jpa/kogito-addons-springboot-embedded-jobs-jpa/src/main/java/org/kie/kogito/app/jobs/springboot/jpa/SpringbootJPAJobStoreConfiguration.java
index 87c02669a..409171ff1 100644
--- 
a/jobs/kogito-addons-embedded-jobs-jpa/kogito-addons-springboot-embedded-jobs-jpa/src/main/java/org/kie/kogito/app/jobs/springboot/jpa/SpringbootJPAJobStoreConfiguration.java
+++ 
b/jobs/kogito-addons-embedded-jobs-jpa/kogito-addons-springboot-embedded-jobs-jpa/src/main/java/org/kie/kogito/app/jobs/springboot/jpa/SpringbootJPAJobStoreConfiguration.java
@@ -18,9 +18,12 @@
  */
 package org.kie.kogito.app.jobs.springboot.jpa;
 
+import org.springframework.beans.factory.config.BeanPostProcessor;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 @Configuration
@@ -29,4 +32,20 @@ import 
org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableAutoConfiguration
 public class SpringbootJPAJobStoreConfiguration {
 
+    // Hibernate 7 + Spring ORM 6.2 workaround: Hibernate 7's 
SessionFactory.getSchemaManager()
+    // returns org.hibernate.relational.SchemaManager, conflicting with JPA 
3.2's
+    // EntityManagerFactory.getSchemaManager() returning 
jakarta.persistence.SchemaManager.
+    // Force plain JPA interface to avoid JDK Proxy incompatible return type 
error.
+    @Bean
+    public static BeanPostProcessor jobStoreEmfPostProcessor() {
+        return new BeanPostProcessor() {
+            @Override
+            public Object postProcessBeforeInitialization(Object bean, String 
beanName) {
+                if (bean instanceof LocalContainerEntityManagerFactoryBean 
emfb) {
+                    
emfb.setEntityManagerFactoryInterface(jakarta.persistence.EntityManagerFactory.class);
+                }
+                return bean;
+            }
+        };
+    }
 }
diff --git a/kogito-apps-build-parent/pom.xml b/kogito-apps-build-parent/pom.xml
index 600c1fecc..d765df9b4 100644
--- a/kogito-apps-build-parent/pom.xml
+++ b/kogito-apps-build-parent/pom.xml
@@ -62,7 +62,7 @@
         <!-- OptaPlanner version -->
         <version.org.optaplanner>${project.version}</version.org.optaplanner>
 
-        <version.org.hibernate>6.6.11.Final</version.org.hibernate>
+        <version.org.hibernate>7.1.14.Final</version.org.hibernate>
         <version.org.apache.opennlp>2.3.2</version.org.apache.opennlp>
         <version.org.apache.commons.csv>1.10.0</version.org.apache.commons.csv>
         <version.org.jredisearch>2.2.0</version.org.jredisearch>
@@ -70,7 +70,11 @@
         <version.org.json>20231013</version.org.json>
         <version.org.mapstruct>1.5.5.Final</version.org.mapstruct>
         <version.org.skyscreamer>1.5.1</version.org.skyscreamer>
-        
<version.com.graphql-java-extended-scalars>22.0</version.com.graphql-java-extended-scalars>
+        <!-- graphql-java upgraded from 22.0 to 24.3 for java-dataloader 
3.4.0+ compatibility
+             required by Spring Boot 3.5.x 
(DataLoaderOptions.newDefaultOptions()).
+             extended-scalars version must match graphql-java major version. 
-->
+        <version.com.graphql-java>24.3</version.com.graphql-java>
+        
<version.com.graphql-java-extended-scalars>24.0</version.com.graphql-java-extended-scalars>
 
         <!-- Explainability Toolkit version -->
         <version.explainability-core>1.22.1.Final</version.explainability-core>
@@ -138,6 +142,12 @@
 
     <dependencyManagement>
         <dependencies>
+            <!-- Override Hibernate version before BOM imports (first-wins) -->
+            <dependency>
+                <groupId>org.hibernate.orm</groupId>
+                <artifactId>hibernate-core</artifactId>
+                <version>${version.org.hibernate}</version>
+            </dependency>
             <dependency>
                 <groupId>org.kie.kogito</groupId>
                 <artifactId>kogito-quarkus-bom</artifactId>
@@ -207,7 +217,7 @@
             <dependency>
                 <groupId>com.graphql-java</groupId>
                 <artifactId>graphql-java</artifactId>
-                <version>${version.com.graphql-java-extended-scalars}</version>
+                <version>${version.com.graphql-java}</version>
             </dependency>
             <dependency>
                 <groupId>com.graphql-java</groupId>
diff --git 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/KeycloakTrustyServiceIT.java
 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/KeycloakTrustyServiceIT.java
index 6fb21ddff..4323db522 100644
--- 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/KeycloakTrustyServiceIT.java
+++ 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/KeycloakTrustyServiceIT.java
@@ -29,10 +29,10 @@ import 
org.kie.kogito.testcontainers.KogitoKeycloakContainer;
 import org.kie.kogito.testcontainers.quarkus.KeycloakQuarkusTestResource;
 import org.kie.kogito.trusty.service.common.models.MatchedExecutionHeaders;
 
+import io.quarkus.test.InjectMock;
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.common.ResourceArg;
 import io.quarkus.test.junit.QuarkusTest;
-import io.quarkus.test.junit.mockito.InjectMock;
 
 import static io.restassured.RestAssured.given;
 import static 
org.kie.kogito.testcontainers.quarkus.KeycloakQuarkusTestResource.KOGITO_OIDC_TENANTS;
diff --git 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/DecisionsApiV1IT.java
 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/DecisionsApiV1IT.java
index e4dbb732a..04c5a6f08 100644
--- 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/DecisionsApiV1IT.java
+++ 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/DecisionsApiV1IT.java
@@ -47,8 +47,8 @@ import 
org.kie.kogito.trusty.storage.api.model.decision.DecisionOutcome;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
+import io.quarkus.test.InjectMock;
 import io.quarkus.test.junit.QuarkusTest;
-import io.quarkus.test.junit.mockito.InjectMock;
 import io.restassured.filter.log.ResponseLoggingFilter;
 import io.restassured.http.ContentType;
 import io.restassured.response.Response;
diff --git 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/ExecutionsApiV1IT.java
 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/ExecutionsApiV1IT.java
index 286deb82a..77f08e959 100644
--- 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/ExecutionsApiV1IT.java
+++ 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/ExecutionsApiV1IT.java
@@ -36,8 +36,8 @@ import 
org.kie.kogito.trusty.storage.api.model.decision.DMNModelWithMetadata;
 import org.kie.kogito.trusty.storage.api.model.decision.Decision;
 import org.mockito.Mockito;
 
+import io.quarkus.test.InjectMock;
 import io.quarkus.test.junit.QuarkusTest;
-import io.quarkus.test.junit.mockito.InjectMock;
 import io.restassured.http.ContentType;
 
 import static io.restassured.RestAssured.given;
diff --git 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/ExplainabilityApiV1IT.java
 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/ExplainabilityApiV1IT.java
index 96c7b707d..4bae4c02d 100644
--- 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/ExplainabilityApiV1IT.java
+++ 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/api/ExplainabilityApiV1IT.java
@@ -54,8 +54,8 @@ import org.mockito.ArgumentCaptor;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.IntNode;
 
+import io.quarkus.test.InjectMock;
 import io.quarkus.test.junit.QuarkusTest;
-import io.quarkus.test.junit.mockito.InjectMock;
 import io.restassured.filter.log.RequestLoggingFilter;
 import io.restassured.filter.log.ResponseLoggingFilter;
 
diff --git 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/ExplainabilityResultConsumerIT.java
 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/ExplainabilityResultConsumerIT.java
index 62c097be2..aa8d76ad7 100644
--- 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/ExplainabilityResultConsumerIT.java
+++ 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/ExplainabilityResultConsumerIT.java
@@ -33,9 +33,9 @@ import 
org.kie.kogito.testcontainers.quarkus.KafkaQuarkusTestResource;
 import org.kie.kogito.trusty.service.common.TrustyService;
 
 import io.cloudevents.CloudEvent;
+import io.quarkus.test.InjectMock;
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
-import io.quarkus.test.junit.mockito.InjectMock;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
diff --git 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/ModelEventConsumerIT.java
 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/ModelEventConsumerIT.java
index f312e0867..f1dd75f4b 100644
--- 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/ModelEventConsumerIT.java
+++ 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/ModelEventConsumerIT.java
@@ -28,9 +28,9 @@ import org.kie.kogito.trusty.service.common.TrustyService;
 import org.kie.kogito.trusty.service.common.TrustyServiceTestUtils;
 import org.kie.kogito.trusty.storage.api.model.decision.DMNModelWithMetadata;
 
+import io.quarkus.test.InjectMock;
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
-import io.quarkus.test.junit.mockito.InjectMock;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doThrow;
diff --git 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/TraceEventConsumerIT.java
 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/TraceEventConsumerIT.java
index fb3f49e88..31904d5d8 100644
--- 
a/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/TraceEventConsumerIT.java
+++ 
b/trusty/trusty-service/trusty-service-common/src/test/java/org/kie/kogito/trusty/service/common/messaging/incoming/TraceEventConsumerIT.java
@@ -28,9 +28,9 @@ import org.kie.kogito.trusty.service.common.TrustyService;
 import org.kie.kogito.trusty.service.common.TrustyServiceTestUtils;
 import org.kie.kogito.trusty.storage.api.model.decision.Decision;
 
+import io.quarkus.test.InjectMock;
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
-import io.quarkus.test.junit.mockito.InjectMock;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;


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

Reply via email to