Upgrade to Spring Boot 4.0.1 and Wicket 10.8.0#2
Upgrade to Spring Boot 4.0.1 and Wicket 10.8.0#2keesvandieren with Copilot wants to merge 3 commits into
Conversation
Co-authored-by: keesvandieren <863966+keesvandieren@users.noreply.github.com>
…base for Spring Boot 4.0 compatibility Co-authored-by: keesvandieren <863966+keesvandieren@users.noreply.github.com>
| JpaRepositoriesAutoConfiguration.class, | ||
| HibernateJpaAutoConfiguration.class, | ||
| }) | ||
| @SpringBootApplication |
There was a problem hiding this comment.
@copilot why are exclusions removed?
There was a problem hiding this comment.
The exclusions were removed because those AutoConfiguration classes no longer exist in Spring Boot 4.0:
DataSourceAutoConfigurationJpaRepositoriesAutoConfigurationHibernateJpaAutoConfiguration
These classes were reorganized/moved in Spring Boot 3.x/4.x. The test class using this configuration (WicketBaseTest) is currently @Disabled, so there's no functional impact.
If you need to re-enable this test and still want to exclude database/JPA autoconfiguration, Spring Boot 4.0 uses a modular approach where data-related autoconfiguration is in separate modules. You could either:
- Keep the test disabled (current state)
- Use
@SpringBootTest(properties = {"spring.autoconfigure.exclude=...})with the new class names if they exist - Not exclude them and use
@MockBeanfor dependencies instead
Would you like me to investigate the new equivalent exclusions for Spring Boot 4.0, or is the current state (with the test disabled) acceptable?
| @ConditionalOnProperty(prefix = DataStoreCassandraProperties.PROPERTY_PREFIX, value = "enabled", matchIfMissing = true) | ||
| @ConditionalOnClass(name = "com.datastax.driver.core.Session", value = {CassandraDataStore.class}) | ||
| @EnableConfigurationProperties({DataStoreCassandraProperties.class}) | ||
| @AutoConfigureAfter(CassandraAutoConfiguration.class) |
There was a problem hiding this comment.
The @AutoConfigureAfter(CassandraAutoConfiguration.class) annotation was removed because CassandraAutoConfiguration no longer exists in Spring Boot 4.0. This class was part of Spring Boot's autoconfiguration that was reorganized or removed in the 3.x/4.x transition.
The @AutoConfigureAfter annotation was used to ensure this configuration ran after Cassandra's autoconfiguration. Since that class is gone, the annotation had to be removed to compile. The configuration will still work - it just won't have explicit ordering relative to the (now non-existent) CassandraAutoConfiguration.
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Upgrades Spring Boot from 3.5.5 to 4.0.1, Wicket from 10.6.0 to 10.8.0, and Wicketstuff to 10.7.0 (latest available).
Breaking Changes Addressed
Removed deprecated autoconfiguration classes
CassandraAutoConfiguration,HazelcastAutoConfiguration,RedisAutoConfigurationno longer exist in Spring Boot 4.0@AutoConfigureAfterannotations referencing these classes from datastore configurationsSpring Data JPA null specification handling
Liquibase autoconfiguration
liquibase-coredependency withspring-boot-starter-liquibaseVersion Constraints
Wicketstuff 10.8.0 not yet published - using 10.7.0 which is compatible with Wicket 10.8.0.
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
config.liquibase.com/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java -jar /home/REDACTED/work/wicket-spring-boot/wicket-spring-boot/wicket-spring-boot-starter-example/target/surefire/surefirebooter-20251229060246169_3.jar /home/REDACTED/work/wicket-spring-boot/wicket-spring-boot/wicket-spring-boot-starter-example/target/surefire 2025-12-29T06-02-45_697-jvmRun1 surefire-20251229060246169_1tmp surefire_0-20251229060246169_2tmp ndor/bin/git(dns block)/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java -jar /home/REDACTED/work/wicket-spring-boot/wicket-spring-boot/wicket-spring-boot-starter-example/target/surefire/surefirebooter-20251229060635675_3.jar /home/REDACTED/work/wicket-spring-boot/wicket-spring-boot/wicket-spring-boot-starter-example/target/surefire 2025-12-29T06-06-35_609-jvmRun1 surefire-20251229060635675_1tmp surefire_0-20251229060635675_2tmp(dns block)/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java -jar /home/REDACTED/work/wicket-spring-boot/wicket-spring-boot/wicket-spring-boot-starter-example/target/surefire/surefirebooter-20251229060918041_3.jar /home/REDACTED/work/wicket-spring-boot/wicket-spring-boot/wicket-spring-boot-starter-example/target/surefire 2025-12-29T06-09-17_986-jvmRun1 surefire-20251229060918041_1tmp surefire_0-20251229060918041_2tmp git(dns block)maven.repository.redhat.com/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher clean compile -DskipTests(dns block)packages.confluent.io/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher clean compile -DskipTests(dns block)repo.clojars.org/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher dependency:tree -Dincludes=org.springframework.boot:*(dns block)/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher clean compile -DskipTests(dns block)/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher test(dns block)repository.apache.org/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher versions:display-dependency-updates -DprocessDependencyManagement=false(dns block)/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher versions:display-dependency-updates(dns block)/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher dependency:tree -Dincludes=org.springframework.boot:*(dns block)repository.hazelcast.com/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher clean compile -DskipTests(dns block)repository.sonatype.org/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher versions:display-dependency-updates -DprocessDependencyManagement=false(dns block)s01.oss.sonatype.org/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher versions:display-dependency-updates -DprocessDependencyManagement=false(dns block)/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher versions:display-dependency-updates(dns block)/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/wicket-spring-boot/wicket-spring-boot org.codehaus.plexus.classworlds.launcher.Launcher dependency:tree -Dincludes=org.springframework.boot:*(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.