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

ahuber pushed a commit to branch v4
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/v4 by this push:
     new a62f0864195 CAUSEWAY-3892: upgraded from Spring Boot 3.x to 4.x 
(SNAPSHOT)
a62f0864195 is described below

commit a62f0864195bf2d368e388ff0e65134a33aa9ca2
Author: Andi Huber <[email protected]>
AuthorDate: Wed May 28 07:10:44 2025 +0200

    CAUSEWAY-3892: upgraded from Spring Boot 3.x to 4.x (SNAPSHOT)
    
    - disabling GraphQL, as it is currently broken upstream
---
 bom/pom.xml                                        | 32 ++++++++++++++++++----
 core/config/pom.xml                                | 16 +----------
 .../PatternOptionalStringConstraintValidator.java  | 17 +++++++++---
 core/pom.xml                                       |  2 +-
 mavendeps/webapp/pom.xml                           |  9 +++---
 5 files changed, 46 insertions(+), 30 deletions(-)

diff --git a/bom/pom.xml b/bom/pom.xml
index 8738ce286b1..d69dbcd0af5 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -39,7 +39,7 @@ identified
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.5.0</version>
+        <version>4.0.0-SNAPSHOT</version>
         <relativePath />
     </parent>
     <groupId>org.apache.causeway</groupId>
@@ -55,7 +55,8 @@ identified
     </description>
 
     <properties>
-        <revision>4.0.0-SNAPSHOT</revision> <!-- can be overidden like mvn 
-Drevision=2.7.8 -->
+        <revision>4.0.0-SNAPSHOT</revision> <!-- can be overidden like mvn
+        -Drevision=2.7.8 -->
 
         <!-- BUILD SPECIFICA -->
 
@@ -119,6 +120,7 @@ identified
         
<graphql-java-extended-scalars.version>22.0</graphql-java-extended-scalars.version>
         <guava.version>33.4.8-jre</guava.version>
 
+        <hibernate-validator.version>9.0.0.Final</hibernate-validator.version> 
<!-- Spring Boot 4 preview, remove later -->
         <htmlparser.version>2.1</htmlparser.version>
 
         <javafaker.version>1.0.2</javafaker.version>
@@ -176,7 +178,7 @@ identified
 
         <sql-formatter.version>2.0.5</sql-formatter.version>
         <snakeyaml.version>2.0</snakeyaml.version>
-        <spring-boot.version>3.5.0</spring-boot.version>
+        <spring-boot.version>4.0.0-SNAPSHOT</spring-boot.version>
 
         <surefire-plugin.argLine>
             -Xmx384m
@@ -214,7 +216,8 @@ identified
             [1] https://github.com/twbs/bootstrap/blob/master/LICENSE
             [2] 
https://github.com/mouse0270/bootstrap-growl/blob/master/LICENSE
             [3] https://github.com/l0rdn1kk0n/wicket-bootstrap
-            [4] 
https://github.com/Eonasdan/bootstrap-datetimepicker/blob/master/LICENSE
+            [4]
+            
https://github.com/Eonasdan/bootstrap-datetimepicker/blob/master/LICENSE
             [5] 
https://github.com/moment/moment/blob/develop/LICENSE</license.additional-notes>
     </properties>
     <dependencyManagement>
@@ -1507,7 +1510,7 @@ identified
             </dependency>
 
             <dependency>
-                <groupId>org.hibernate</groupId>
+                <groupId>org.hibernate.validator</groupId>
                 <artifactId>hibernate-validator</artifactId>
                 <version>${hibernate-validator.version}</version>
                 <exclusions>
@@ -2037,7 +2040,24 @@ identified
                 <enabled>false</enabled>
             </snapshots>
         </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+        </repository>
     </repositories>
+
     <distributionManagement>
         <repository>
             <id>apache.releases.https</id>
@@ -2912,7 +2932,7 @@ identified
             </modules>
         </profile>
         <!--  END SNIPPET: release-profile  -->
-        
+
         <profile>
             <id>causeway-lombok-workaround</id>
             <activation>
diff --git a/core/config/pom.xml b/core/config/pom.xml
index 8cf663d8f57..05396f14c5b 100644
--- a/core/config/pom.xml
+++ b/core/config/pom.xml
@@ -94,22 +94,8 @@
         </dependency>
 
         <dependency>
-                       <groupId>org.hibernate</groupId>
+                       <groupId>org.hibernate.validator</groupId>
                        <artifactId>hibernate-validator</artifactId>
-                       <exclusions>
-                               <exclusion>
-                                       <groupId>org.jboss.logging</groupId>
-                                       
<artifactId>jboss-logging-processor</artifactId>
-                               </exclusion>
-                               <exclusion>
-                                       <groupId>org.jboss.logging</groupId>
-                                       
<artifactId>jboss-logging-annotations</artifactId>
-                               </exclusion>
-                               <exclusion>
-                                   <groupId>org.osgi</groupId>
-                                   <artifactId>org.osgi.core</artifactId>
-                           </exclusion>
-                       </exclusions>
                </dependency>
 
         <!--
diff --git 
a/core/config/src/main/java/org/apache/causeway/core/config/validators/PatternOptionalStringConstraintValidator.java
 
b/core/config/src/main/java/org/apache/causeway/core/config/validators/PatternOptionalStringConstraintValidator.java
index 27f1ecb521b..dd1415053eb 100644
--- 
a/core/config/src/main/java/org/apache/causeway/core/config/validators/PatternOptionalStringConstraintValidator.java
+++ 
b/core/config/src/main/java/org/apache/causeway/core/config/validators/PatternOptionalStringConstraintValidator.java
@@ -22,18 +22,27 @@
 
 import jakarta.validation.ConstraintValidator;
 import jakarta.validation.ConstraintValidatorContext;
-
-import 
org.hibernate.validator.internal.constraintvalidators.bv.PatternValidator;
+import jakarta.validation.constraints.Pattern;
 
 import org.springframework.stereotype.Component;
 
+import org.apache.causeway.commons.internal.context._Context;
+
+import lombok.SneakyThrows;
+
 @Component
 public class PatternOptionalStringConstraintValidator
 implements ConstraintValidator<jakarta.validation.constraints.Pattern, 
Optional<String>> {
 
-    private final PatternValidator patternValidator = new PatternValidator();
+    private final ConstraintValidator<Pattern, CharSequence> patternValidator;
 
+    @SneakyThrows
     public PatternOptionalStringConstraintValidator(){
+        var patternValidatorClass = 
_Context.loadClass("org.hibernate.validator.internal.constraintvalidators.bv.PatternValidator");
+        this.patternValidator = (ConstraintValidator<Pattern, CharSequence>)
+            patternValidatorClass
+                .getConstructor()
+                .newInstance();
     }
 
     @Override
@@ -46,7 +55,7 @@ public boolean isValid(
             final Optional<String> value,
             final ConstraintValidatorContext context) {
         if(!value.isPresent()) return true;
-        
+
         return patternValidator.isValid(value.get(), context);
     }
 }
diff --git a/core/pom.xml b/core/pom.xml
index 6a1031e0095..54c20df152a 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -287,7 +287,7 @@
         <module>../viewers/commons</module>
         <module>../viewers/restfulobjects</module>
         <module>../viewers/wicket</module>
-        <module>../viewers/graphql</module>
+<!-- <module>../viewers/graphql</module> broken on current Spring Boot 4 
Snapshot -->
 
         <module>../persistence/commons</module>
         <module>../persistence/jdbc</module>
diff --git a/mavendeps/webapp/pom.xml b/mavendeps/webapp/pom.xml
index 06e83d8f5df..033fd908173 100644
--- a/mavendeps/webapp/pom.xml
+++ b/mavendeps/webapp/pom.xml
@@ -90,10 +90,11 @@
                        <artifactId>causeway-core-runtimeservices</artifactId>
                </dependency>
 
-               <dependency>
-                       <groupId>org.apache.causeway.viewer</groupId>
-                       <artifactId>causeway-viewer-graphql-viewer</artifactId>
-               </dependency>
+<!-- broken on current Spring Boot 4 Snapshot-->
+<!--           <dependency>-->
+<!--                   <groupId>org.apache.causeway.viewer</groupId>-->
+<!--                   
<artifactId>causeway-viewer-graphql-viewer</artifactId>-->
+<!--           </dependency>-->
 
                <dependency>
                        <groupId>org.apache.causeway.viewer</groupId>

Reply via email to