v4.0.0-M2
Pre-release
Pre-release
⭐ New Features
- Rename metrics, observation, and tracing modules to include micrometer in their names and packages #46925
- Drop support for Undertow as it is not Servlet 6.1 compatible #46917
- Harmonize Logback's console and file logging charset #46846
- Make spring-boot-starter-opentelemetry produce OTLP output from instrumentation #46842
- Add '
@HttpServiceClient
' scanning auto-configuration #46782 - Add dependency management for JSpecify #46776
- Drop Actuator endpoint parameter support for javax.annotations.NonNull #46773
- Remove StreamBuilderFactoryBeanCustomizer in favor of Spring Kafka's StreamsBuilderFactoryBeanConfigurer #46675
- Rely on org.springframework.core.Nullness to determine if an Actuator endpoint is optional #46593
- Provide configuration property to disable console logging #46592
- Add JSpecify nullability annotations #46587
- Add auto-configuration and properties support for Spring Framework's new API Versioning #46519
- Ensure RestClient uses Virtual Thread Executor when spring.threads.virtual.enabled=true and JdkClientHttpRequestFactoryBuilder #46404
- Create spring-boot-autoconfigure-classic module #46233
- Auto-configure Elasticsearch's new Rest5Client rather than the legacy RestClient #46061
- Raise the minimum supported version of Gradle to 8.14 #43574
- Support Gradle 9 #43573
- Make auto-configurations final and remove public members #32883
🐞 Bug Fixes
- HTTP Service Client properties are not applied #46915
- Hazelcast health indicator reports the wrong status when Hazelcast has shut down due to an out-of-memory error #46910
- Configuration Metadata for Actuator endpoints does not take Nullness into account #46854
- Performance critical tracing code has high overhead due to the use of the Stream API #46845
- Default authorization server filter chain configuration is excluded in M1 release when actuator starter is on the classpath #46841
- SpringLiquibaseCustomizer is exposed outside its defined visibility scope #46759
- Race condition in OutputCapture can result in stale data #46722
- Auto-configured WebClient no longer uses context's ReactorResourceFactory #46684
- WebTestClientAutoConfiguration fails when WebFlux is on the classpath and spring-boot-http-codec is not #46678
- Default value not detected for a field annoted with
@Name
#46667 - Missing metadata when using
@Name
with a constructor-bound property #46664 - Missing property for Spring Authorization Server's PAR endpoint #46648
- Auto-configured MockMvc ignores
@FilterRegistration
annotation #46647 - Property name is incorrect when reporting a mis-configured OAuth 2 Resource Server JWT public key location #46637
- Memory not freed on context restart in JpaMetamodel#CACHE with spring.main.lazy-initialization=true #46635
- Failure to discover default value for a primitive should not lead to document its default value #46562
- WebTestClient is now bound to previous test server port when test application context is paused #46557
- Spring Boot 4.0.0-M1 has a typo in spring-boot-dependencies.pom for spring-boot-starter-opentelemetry #46549
- spring-boot-metrics with micrometer-registry-otlp throws exception if spring-boot-opentelemetry is missing #46303
📔 Documentation
- Update Servlet container system requirements #46918
- Kotlin samples for configuration metadata are in the wrong package #46858
- Observability examples in the reference guide are missing the Kotlin version #46799
- Align method descriptions for SslOptions getCiphers and getEnabledProtocols with '
@returns
' #46770 - Tracing samples in the reference guide are missing the Kotlin version #46768
- Improve Virtual Threads section to mention the changes in Java 24 #46611
- spring.test.webtestclient.timeout is not documented #46589
- spring-boot-test-autoconfigure should use the configuration properties annotation processor like other modules #46586
- spring.test.mockmvc properties are not documented #46579
🔨 Dependency Upgrades
- Upgrade to Angus Mail 2.0.4 #46735
- Upgrade to AssertJ 3.27.4 #46736
- Upgrade to Byte Buddy 1.17.7 #46887
- Upgrade to Couchbase Client 3.9.0 #46797
- Upgrade to Elasticsearch 9.1.0 #46686
- Upgrade to Elasticsearch Client 9.1.1 #46827
- Upgrade to Flyway 11.11.1 #46894
- Upgrade to GraphQL Java 25.0.beta-5 #46880
- Upgrade to Hibernate 7.1.0.Final #46738
- Upgrade to HikariCP 7.0.1 #46739
- Upgrade to HtmlUnit 4.15.0 #46895
- Upgrade to Jackson Bom 2.20.0-rc1 #46815
- Upgrade to Jedis 6.1.0 #46687
- Upgrade to Jetty 12.1.0 #46906
- Upgrade to Jetty Reactive HTTPClient 4.0.11 #46888
- Upgrade to jOOQ 3.19.25 #46809
- Upgrade to Json-smart 2.6.0 #46742
- Upgrade to Lettuce 6.8.0.RELEASE #46750
- Upgrade to MariaDB 3.5.5 #46810
- Upgrade to Maven Javadoc Plugin 3.11.3 #46889
- Upgrade to Micrometer 1.16.0-M2 #46811
- Upgrade to Micrometer Tracing 1.6.0-M2 #46812
- Upgrade to Mockito 5.19.0 #46896
- Upgrade to MSSQL JDBC 13.2.0.jre11 #46897
- Upgrade to MySQL 9.4.0 #46743
- Upgrade to Native Build Tools Plugin 0.11.0 #46501
- Upgrade to Netty 4.2.4.Final #46829
- Upgrade to OpenTelemetry 1.53.0 #46813
- Upgrade to Oracle Database 23.9.0.25.07 #46744
- Upgrade to Prometheus Client 1.4.1 #46898
- Upgrade to Pulsar 4.0.6 #46745
- Upgrade to Reactor Bom 2025.0.0-M6 #46814
- Upgrade to REST Assured 5.5.6 #46850
- Upgrade to Selenium 4.35.0 #46899
- Upgrade to Selenium HtmlUnit 4.35.0 #46900
- Upgrade to Spring AMQP 4.0.0-M4 #46803
- Upgrade to Spring Authorization Server 2.0.0-M2 #46617
- Upgrade to Spring Batch 6.0.0-M2 #46618
- Upgrade to Spring Data Bom 2025.1.0-M5 #46619
- Upgrade to Spring Framework 7.0.0-M8 #46620
- Upgrade to Spring GraphQL 2.0.0-M2 #46628
- Upgrade to Spring HATEOAS 3.0.0-M4 #46804
- Upgrade to Spring Integration 7.0.0-M2 #46805
- Upgrade to Spring Kafka 4.0.0-M4 #46806
- Upgrade to Spring LDAP 4.0.0-M2 #46621
- Upgrade to Spring Pulsar 2.0.0-M2 #46622
- Upgrade to Spring RESTDocs 4.0.0-M2 #46623
- Upgrade to Spring Security 7.0.0-M2 #46624
- Upgrade to Spring Session 4.0.0-M2 #46901
- Upgrade to Tomcat 11.0.10 #46747
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Kguswo, @deejay1, @ganjisriver, @izeye, @jetflo, @ngocnhan-tran1996, @nicolasgarea, @nosan, @prishedko, @quaff, @schmidti159, @scordio, @shakuzen, @smartandhandsome, @spencergibb, @tommyk-gears, @wonyongg, and @zakaria-shahen