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-optaplanner.git


The following commit(s) were added to refs/heads/main by this push:
     new 131c8695b0 [incubator-kie-issues#2288] - Springboot 4.0.x upgrade  
(#3221)
131c8695b0 is described below

commit 131c8695b087adea147ad0dc479e88a7e01e3926
Author: Nithin R Krishnan <[email protected]>
AuthorDate: Mon May 18 14:05:11 2026 +0530

    [incubator-kie-issues#2288] - Springboot 4.0.x upgrade  (#3221)
    
    * Upgrade Spring Boot to 4.0.5 and Spring Framework to 7.0.6; add 
persistence module and update entity scanning imports
    
    * Remove temporary dependency for Spring Boot 4.0 migration validation
    
    * Refine comments for Spring Boot persistence module and commons-logging 
dependency management
    
    * chore: retrigger CI
---
 build/optaplanner-build-parent/pom.xml               | 20 ++++++++++++++++----
 .../optaplanner-spring-boot-autoconfigure/pom.xml    |  6 ++++++
 .../autoconfigure/OptaPlannerAutoConfiguration.java  |  6 +++---
 .../chained/ChainedSpringTestConfiguration.java      |  2 +-
 .../gizmo/GizmoSpringTestConfiguration.java          |  2 +-
 .../MultiModuleSpringTestConfiguration.java          |  2 +-
 .../normal/NoConstraintsSpringTestConfiguration.java |  2 +-
 7 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/build/optaplanner-build-parent/pom.xml 
b/build/optaplanner-build-parent/pom.xml
index fb182b1283..5712cfae1b 100644
--- a/build/optaplanner-build-parent/pom.xml
+++ b/build/optaplanner-build-parent/pom.xml
@@ -42,7 +42,7 @@
     <version.org.drools>${project.version}</version.org.drools>
 
     <!-- Normal dependency versions -->
-    <version.ch.qos.logback>1.5.25</version.ch.qos.logback>
+    <version.ch.qos.logback>1.5.32</version.ch.qos.logback>
     <version.org.apache.logging.log4j>2.22.1</version.org.apache.logging.log4j>
     <version.com.thoughtworks.xstream>1.4.21</version.com.thoughtworks.xstream>
     
<version.io.quarkiverse.operatorsdk>6.6.7</version.io.quarkiverse.operatorsdk>
@@ -57,8 +57,8 @@
     <version.org.jfree.jfreechart>1.5.4</version.org.jfree.jfreechart>
     <version.org.openrewrite.recipe>1.19.3</version.org.openrewrite.recipe>
     <version.org.slf4j>2.0.17</version.org.slf4j><!-- TODO keep in sync with 
quarkus-bom -->
-    <version.org.springframework>6.2.18</version.org.springframework>
-    <version.org.springframework.boot>3.5.14</version.org.springframework.boot>
+    <version.org.springframework>7.0.6</version.org.springframework>
+    <version.org.springframework.boot>4.0.5</version.org.springframework.boot>
 
     <!-- 
************************************************************************ -->
     <!-- Plugins -->
@@ -195,6 +195,13 @@
         <artifactId>jcl-over-slf4j</artifactId>
         <version>${version.org.slf4j}</version>
       </dependency>
+      <!-- Spring Boot persistence module: hosts @EntityScan, 
EntityScanPackages, EntityScanner -->
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-persistence</artifactId>
+        <version>${version.org.springframework.boot}</version>
+      </dependency>
+
     </dependencies>
   </dependencyManagement>
 
@@ -272,7 +279,8 @@
                   <bannedDependencies>
                     <excludes combine.children="append">
                       <!-- Ban forbidden logging deps (we only use SLF4J + 
Logback) -->
-                      <!-- In case of transitive dependency, exclude it and 
use 'org.slf4j:jcl-over-slf4j' instead -->
+                      <!-- EXCEPTION: Spring Framework depends on 
commons-logging directly -->
+                      <!-- In case of transitive dependency from non-Spring 
sources, exclude it and use 'org.slf4j:jcl-over-slf4j' instead -->
                       <exclude>commons-logging:commons-log*</exclude>
                       <!-- In case of transitive dependency, exclude it and 
use 'org.apache.logging.log4j:log4j-to-slf4j' instead -->
                       <exclude>log4j:log4j</exclude>
@@ -281,6 +289,10 @@
                       <exclude>org.apache.cxf:cxf-bundle-jaxrs</exclude>
                       <exclude>org.mockito:mockito-all</exclude><!-- Use 
mockito-core instead -->
                     </excludes>
+                    <includes>
+                      <!-- Allow commons-logging from Spring Framework 
(required dependency) -->
+                      
<include>commons-logging:commons-logging:*:*:compile</include>
+                    </includes>
                   </bannedDependencies>
                 </rules>
                 <fail>true</fail>
diff --git 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/pom.xml 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/pom.xml
index 4de1472ae3..1dfbc2d491 100644
--- 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/pom.xml
+++ 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/pom.xml
@@ -82,6 +82,12 @@
       <artifactId>spring-boot-autoconfigure</artifactId>
     </dependency>
 
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-persistence</artifactId>
+    </dependency>
+
+
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-configuration-processor</artifactId>
diff --git 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/main/java/org/optaplanner/spring/boot/autoconfigure/OptaPlannerAutoConfiguration.java
 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/main/java/org/optaplanner/spring/boot/autoconfigure/OptaPlannerAutoConfiguration.java
index cc0942cbb8..8da4d8d420 100644
--- 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/main/java/org/optaplanner/spring/boot/autoconfigure/OptaPlannerAutoConfiguration.java
+++ 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/main/java/org/optaplanner/spring/boot/autoconfigure/OptaPlannerAutoConfiguration.java
@@ -60,10 +60,10 @@ import 
org.springframework.boot.autoconfigure.AutoConfigurationPackages;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.boot.autoconfigure.domain.EntityScanPackages;
-import org.springframework.boot.autoconfigure.domain.EntityScanner;
 import 
org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.persistence.autoconfigure.EntityScan;
+import org.springframework.boot.persistence.autoconfigure.EntityScanPackages;
+import org.springframework.boot.persistence.autoconfigure.EntityScanner;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import 
org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
diff --git 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/chained/ChainedSpringTestConfiguration.java
 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/chained/ChainedSpringTestConfiguration.java
index 9af04ac64f..92c5eb47fd 100644
--- 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/chained/ChainedSpringTestConfiguration.java
+++ 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/chained/ChainedSpringTestConfiguration.java
@@ -22,7 +22,7 @@ package org.optaplanner.spring.boot.autoconfigure.chained;
 import 
org.optaplanner.spring.boot.autoconfigure.chained.constraints.TestdataChainedSpringConstraintProvider;
 import 
org.optaplanner.spring.boot.autoconfigure.chained.domain.TestdataChainedSpringSolution;
 import org.springframework.boot.autoconfigure.AutoConfigurationPackage;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.boot.persistence.autoconfigure.EntityScan;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
diff --git 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/gizmo/GizmoSpringTestConfiguration.java
 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/gizmo/GizmoSpringTestConfiguration.java
index 359d7cbd4b..2dbc5dd2a8 100644
--- 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/gizmo/GizmoSpringTestConfiguration.java
+++ 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/gizmo/GizmoSpringTestConfiguration.java
@@ -22,7 +22,7 @@ package org.optaplanner.spring.boot.autoconfigure.gizmo;
 import 
org.optaplanner.spring.boot.autoconfigure.gizmo.constraints.TestdataGizmoConstraintProvider;
 import 
org.optaplanner.spring.boot.autoconfigure.gizmo.domain.TestdataGizmoSpringEntity;
 import 
org.optaplanner.spring.boot.autoconfigure.gizmo.domain.TestdataGizmoSpringSolution;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.boot.persistence.autoconfigure.EntityScan;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
diff --git 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/multimodule/MultiModuleSpringTestConfiguration.java
 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/multimodule/MultiModuleSpringTestConfiguration.java
index 82e2e82bfd..7033e23b2a 100644
--- 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/multimodule/MultiModuleSpringTestConfiguration.java
+++ 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/multimodule/MultiModuleSpringTestConfiguration.java
@@ -20,7 +20,7 @@
 package org.optaplanner.spring.boot.autoconfigure.multimodule;
 
 import org.springframework.boot.autoconfigure.AutoConfigurationPackage;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.boot.persistence.autoconfigure.EntityScan;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
diff --git 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/normal/NoConstraintsSpringTestConfiguration.java
 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/normal/NoConstraintsSpringTestConfiguration.java
index 4af0da7b86..1acc647d1d 100644
--- 
a/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/normal/NoConstraintsSpringTestConfiguration.java
+++ 
b/optaplanner-spring-integration/optaplanner-spring-boot-autoconfigure/src/test/java/org/optaplanner/spring/boot/autoconfigure/normal/NoConstraintsSpringTestConfiguration.java
@@ -21,7 +21,7 @@ package org.optaplanner.spring.boot.autoconfigure.normal;
 
 import 
org.optaplanner.spring.boot.autoconfigure.normal.domain.TestdataSpringEntity;
 import 
org.optaplanner.spring.boot.autoconfigure.normal.domain.TestdataSpringSolution;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.boot.persistence.autoconfigure.EntityScan;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration


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

Reply via email to