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

gitgabrio 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 109a7853e [incubator-kie-issues#2288] - Springboot 4.0.x upgrade  
(#2331)
109a7853e is described below

commit 109a7853eda8aa49a6f865b002a4ea27fbaa732f
Author: Nithin R Krishnan <[email protected]>
AuthorDate: Mon May 18 14:04:55 2026 +0530

    [incubator-kie-issues#2288] - Springboot 4.0.x upgrade  (#2331)
    
    * Update dependencies and configurations for Spring Boot 4.0 compatibility
    
    * Refactor POM comments and update Jackson migration notes for Spring Boot 
4.0 compatibility
    
    * chore: retrigger CI
    
    * Refactor Jackson 2 migration comments for clarity and link to issue #6702
    
    * ci: retrigger after port-in-use flake on ProcessDataIndexMongoDBIT
    
    * Refuse byte[] in canWrite so springdoc /v3/api-docs renders under SB4
    
    * ci: retrigger
---
 .../pom.xml                                        |  7 ++++
 .../SpringbootJPAAuditDataConfiguration.java       |  2 +-
 .../kogito-addons-data-audit-springboot/pom.xml    |  5 +++
 .../audit/springboot/DataAuditHealthIndicator.java |  4 +--
 .../SpringbootAuditDataConfiguration.java          | 38 +++++++++++++++++++---
 .../data-index-common-addons-springboot/pom.xml    |  5 +++
 .../sprinboot/addon/DataIndexHealthIndicator.java  |  4 +--
 .../storage/DataIndexSpringbootConfiguration.java  |  2 +-
 .../springboot/KogitoSpringBootApplication.java    | 11 +++++++
 .../jpa/SpringbootJPAJobStoreConfiguration.java    |  2 +-
 .../kogito-addons-springboot-embedded-jobs/pom.xml |  5 +++
 .../springboot/EmbeddedJobsHealthIndicator.java    |  4 +--
 kogito-apps-build-parent/pom.xml                   | 12 ++++---
 13 files changed, 83 insertions(+), 18 deletions(-)

diff --git 
a/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-springboot/pom.xml
 
b/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-springboot/pom.xml
index 954a439cb..f5045e191 100644
--- 
a/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-springboot/pom.xml
+++ 
b/apps-integration-tests/integration-tests-data-index-service/integration-tests-data-index-service-springboot/pom.xml
@@ -61,6 +61,13 @@
       <groupId>org.kie</groupId>
       <artifactId>kie-addons-springboot-events-process-kafka</artifactId>
     </dependency>
+    <!-- spring-boot-kafka: hosts the KafkaTemplate auto-configure used by
+         kie-addons-springboot-events-process-kafka. TODO move this into that 
addon's pom upstream so
+         consumers get it transitively. -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-kafka</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.kie</groupId>
       <artifactId>kie-addons-springboot-process-management</artifactId>
diff --git 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-springboot/src/main/java/org/kie/kogito/app/audit/springboot/SpringbootJPAAuditDataConfiguration.java
 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-springboot/src/main/java/org/kie/kogito/app/audit/springboot/SpringbootJPAAuditDataConfiguration.java
index 98734d9c2..c473fe38e 100644
--- 
a/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-springboot/src/main/java/org/kie/kogito/app/audit/springboot/SpringbootJPAAuditDataConfiguration.java
+++ 
b/data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-springboot/src/main/java/org/kie/kogito/app/audit/springboot/SpringbootJPAAuditDataConfiguration.java
@@ -18,7 +18,7 @@
  */
 package org.kie.kogito.app.audit.springboot;
 
-import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.boot.persistence.autoconfigure.EntityScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
diff --git a/data-audit/kogito-addons-data-audit-springboot/pom.xml 
b/data-audit/kogito-addons-data-audit-springboot/pom.xml
index 5beaeab35..9abd35a98 100644
--- a/data-audit/kogito-addons-data-audit-springboot/pom.xml
+++ b/data-audit/kogito-addons-data-audit-springboot/pom.xml
@@ -69,6 +69,11 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-actuator</artifactId>
         </dependency>
+        <!-- spring-boot-health: hosts the actuator Health SPI used by 
@HealthIndicator below. -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-health</artifactId>
+        </dependency>
         <!--testing -->
         <dependency>
             <groupId>org.kie.kogito</groupId>
diff --git 
a/data-audit/kogito-addons-data-audit-springboot/src/main/java/org/kie/kogito/app/audit/springboot/DataAuditHealthIndicator.java
 
b/data-audit/kogito-addons-data-audit-springboot/src/main/java/org/kie/kogito/app/audit/springboot/DataAuditHealthIndicator.java
index 814b11ce0..63409ae2a 100644
--- 
a/data-audit/kogito-addons-data-audit-springboot/src/main/java/org/kie/kogito/app/audit/springboot/DataAuditHealthIndicator.java
+++ 
b/data-audit/kogito-addons-data-audit-springboot/src/main/java/org/kie/kogito/app/audit/springboot/DataAuditHealthIndicator.java
@@ -18,8 +18,8 @@
  */
 package org.kie.kogito.app.audit.springboot;
 
-import org.springframework.boot.actuate.health.Health;
-import org.springframework.boot.actuate.health.HealthIndicator;
+import org.springframework.boot.health.contributor.Health;
+import org.springframework.boot.health.contributor.HealthIndicator;
 import org.springframework.stereotype.Component;
 
 @Component
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 da405657f..a9408a145 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
@@ -21,19 +21,49 @@ 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.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+import 
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+
 @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.
+    // Jackson 2 @Bean for the data-audit addon. Remove together with
+    // https://github.com/apache/incubator-kie-drools/issues/6702 (Jackson 3 
migration).
+    @Bean
+    @ConditionalOnMissingBean
+    public ObjectMapper objectMapper() {
+        return Jackson2ObjectMapperBuilder.json().build();
+    }
+
+    // Jackson 2 HTTP message converter — GraphQLAuditDataRouteMapping uses 
Jackson 2's JsonNode in
+    // @RequestBody. canWrite refuses String and byte[] so DMN's 
pre-serialized JSON and springdoc's
+    // /v3/api-docs are not re-encoded by Jackson. Remove together with the 
@Bean ObjectMapper above
+    // (same issue: #6702).
+    @Bean
+    @ConditionalOnMissingBean(MappingJackson2HttpMessageConverter.class)
+    public MappingJackson2HttpMessageConverter 
mappingJackson2HttpMessageConverter(ObjectMapper objectMapper) {
+        return new MappingJackson2HttpMessageConverter(objectMapper) {
+            @Override
+            public boolean canWrite(Class<?> clazz, MediaType mediaType) {
+                if (clazz == String.class || clazz == byte[].class) {
+                    return false;
+                }
+                return super.canWrite(clazz, mediaType);
+            }
+        };
+    }
+
+    // Force the plain JPA interface on the EntityManagerFactory bean. 
Hibernate 7's
+    // SessionFactory.getSchemaManager() return type conflicts with JPA 3.2's, 
which breaks the JDK Proxy.
     @Bean
     public static BeanPostProcessor auditDataEmfPostProcessor() {
         return new BeanPostProcessor() {
diff --git 
a/data-index/data-index-springboot/data-index-common-addons-springboot/pom.xml 
b/data-index/data-index-springboot/data-index-common-addons-springboot/pom.xml
index f39fc5a11..2a2894abd 100644
--- 
a/data-index/data-index-springboot/data-index-common-addons-springboot/pom.xml
+++ 
b/data-index/data-index-springboot/data-index-common-addons-springboot/pom.xml
@@ -58,6 +58,11 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-actuator</artifactId>
         </dependency>
+        <!-- spring-boot-health: hosts the actuator Health SPI used by 
@HealthIndicator below. -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-health</artifactId>
+        </dependency>
     </dependencies>
 
     <dependencyManagement>
diff --git 
a/data-index/data-index-springboot/data-index-common-addons-springboot/src/main/java/org/kie/kogito/index/sprinboot/addon/DataIndexHealthIndicator.java
 
b/data-index/data-index-springboot/data-index-common-addons-springboot/src/main/java/org/kie/kogito/index/sprinboot/addon/DataIndexHealthIndicator.java
index 966b130a2..cf9c026a2 100644
--- 
a/data-index/data-index-springboot/data-index-common-addons-springboot/src/main/java/org/kie/kogito/index/sprinboot/addon/DataIndexHealthIndicator.java
+++ 
b/data-index/data-index-springboot/data-index-common-addons-springboot/src/main/java/org/kie/kogito/index/sprinboot/addon/DataIndexHealthIndicator.java
@@ -18,8 +18,8 @@
  */
 package org.kie.kogito.index.sprinboot.addon;
 
-import org.springframework.boot.actuate.health.Health;
-import org.springframework.boot.actuate.health.HealthIndicator;
+import org.springframework.boot.health.contributor.Health;
+import org.springframework.boot.health.contributor.HealthIndicator;
 import org.springframework.stereotype.Component;
 
 @Component
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 ebae71158..414b6eb1c 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
@@ -19,7 +19,7 @@
 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.boot.persistence.autoconfigure.EntityScan;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
diff --git 
a/data-index/data-index-springboot/data-index-storage-jpa-springboot/src/test/java/org/kie/kogito/index/jpa/springboot/KogitoSpringBootApplication.java
 
b/data-index/data-index-springboot/data-index-storage-jpa-springboot/src/test/java/org/kie/kogito/index/jpa/springboot/KogitoSpringBootApplication.java
index 57c6ae975..75ae53ac0 100644
--- 
a/data-index/data-index-springboot/data-index-storage-jpa-springboot/src/test/java/org/kie/kogito/index/jpa/springboot/KogitoSpringBootApplication.java
+++ 
b/data-index/data-index-springboot/data-index-storage-jpa-springboot/src/test/java/org/kie/kogito/index/jpa/springboot/KogitoSpringBootApplication.java
@@ -20,6 +20,10 @@ package org.kie.kogito.index.jpa.springboot;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 @SpringBootApplication(scanBasePackages = { "org.kie.kogito.**" })
 public class KogitoSpringBootApplication {
@@ -27,4 +31,11 @@ public class KogitoSpringBootApplication {
     public static void main(String[] args) {
         SpringApplication.run(KogitoSpringBootApplication.class, args);
     }
+
+    // Jackson 2 @Bean (data-index test fixture). Remove together with
+    // https://github.com/apache/incubator-kie-drools/issues/6702 (Jackson 3 
migration).
+    @Bean
+    public ObjectMapper objectMapper() {
+        return Jackson2ObjectMapperBuilder.json().build();
+    }
 }
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 409171ff1..282bbe374 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
@@ -20,7 +20,7 @@ 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.boot.persistence.autoconfigure.EntityScan;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
diff --git a/jobs/kogito-addons-springboot-embedded-jobs/pom.xml 
b/jobs/kogito-addons-springboot-embedded-jobs/pom.xml
index c421170e5..54128e5c5 100644
--- a/jobs/kogito-addons-springboot-embedded-jobs/pom.xml
+++ b/jobs/kogito-addons-springboot-embedded-jobs/pom.xml
@@ -70,6 +70,11 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-actuator</artifactId>
         </dependency>
+        <!-- spring-boot-health: hosts the actuator Health SPI used by 
@HealthIndicator below. -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-health</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter</artifactId>
diff --git 
a/jobs/kogito-addons-springboot-embedded-jobs/src/main/java/org/kie/kogito/app/jobs/springboot/EmbeddedJobsHealthIndicator.java
 
b/jobs/kogito-addons-springboot-embedded-jobs/src/main/java/org/kie/kogito/app/jobs/springboot/EmbeddedJobsHealthIndicator.java
index b4de18364..a30d1eb20 100644
--- 
a/jobs/kogito-addons-springboot-embedded-jobs/src/main/java/org/kie/kogito/app/jobs/springboot/EmbeddedJobsHealthIndicator.java
+++ 
b/jobs/kogito-addons-springboot-embedded-jobs/src/main/java/org/kie/kogito/app/jobs/springboot/EmbeddedJobsHealthIndicator.java
@@ -18,8 +18,8 @@
  */
 package org.kie.kogito.app.jobs.springboot;
 
-import org.springframework.boot.actuate.health.Health;
-import org.springframework.boot.actuate.health.HealthIndicator;
+import org.springframework.boot.health.contributor.Health;
+import org.springframework.boot.health.contributor.HealthIndicator;
 import org.springframework.stereotype.Component;
 
 @Component
diff --git a/kogito-apps-build-parent/pom.xml b/kogito-apps-build-parent/pom.xml
index 6fcf0b379..5d52f05a4 100644
--- a/kogito-apps-build-parent/pom.xml
+++ b/kogito-apps-build-parent/pom.xml
@@ -62,7 +62,9 @@
         <!-- OptaPlanner version -->
         <version.org.optaplanner>${project.version}</version.org.optaplanner>
 
-        <version.org.hibernate>7.1.14.Final</version.org.hibernate>
+        <!-- Aligned with kogito-runtimes' kogito-dependencies-bom. Pinned 
7.1.x because Quarkus's
+             quarkus-hibernate-orm uses org.hibernate.internal.CoreLogging, 
removed in 7.2.x. -->
+        <version.org.hibernate>7.1.18.Final</version.org.hibernate>
         <version.org.apache.opennlp>2.5.9</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,10 +72,10 @@
         <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>
-        <!-- 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>
+        <!-- spring-graphql in Spring Boot 4.0.5 calls 
ExecutionInput.cancel(), added in graphql-java 25.
+             extended-scalars stays at 24.0 (no 25.x release on Maven Central 
yet; binary-compatible
+             for the scalars used here). -->
+        <version.com.graphql-java>25.0</version.com.graphql-java>
         
<version.com.graphql-java-extended-scalars>24.0</version.com.graphql-java-extended-scalars>
 
         <!-- Explainability Toolkit version -->


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

Reply via email to