⭐ New Features
- Make SessionHolder publicly accessible for external resource management #35799
- RouterFunctions Builders do not support ServerResponse subtypes #35791
- Configure Jackson CBOR codecs by default if present #35787
- Rename
maxAttemptstomaxRetriesin@RetryableandRetryPolicy#35772 - Prevent Kotlin Serialization side effects #35761
- Add default API version to the list of supported versions #35755
- Improve user check in TransportHandlingSockJsService #35753
- Update ApiVersionDeprecationHandler to provide access to handler #35750
- Use dedicated classes for ApiVersionResolver implementations #35747
- Provide AOT support for
@Nestedclasses in a@ParameterizedClass#35744 - AssertJ support for WebTestClient #35737
- Reject attempt to use
@MockitoSpyBeanwith a scoped proxy #35722 - Provide a way to supply the client builder for an HttpServiceGroup #35707
- Review HttpMessageConverters.Builder to improve readability of code using the API #35704
- Configure custom Kotlin Serialization converter on HttpMessageConverters #35733
🐞 Bug Fixes
- Missing support for UnprocessableContent in WebClientResponseException.create(HttpStatusCode, ..) methods #35802
- Relax media type checks in HttpMessageConverters #35801
- Fix
HttpHeadersandWebSocketHttpHeadersinterop issues #35792 @ConcurrencyLimitweird behavior when combined with@Asyncand@Transactional#35788- buildSrc:test failing on JDKs before JDK 25 #35777
- Add jar validation and fix multi-release jar #35768
- Upgrade to JUnit 6.0.1 and prevent AOT test scanning failure for JUnit 4 tests #35740
- Fix port handling in
HtmlUnitRequestBuilder#35709 - RestTestClient.mutate() should not have side effects #35698
📔 Documentation
- Document workaround for
@PersistenceContextand@PersistenceUnitin test classes in AOT #31442
🔨 Dependency Upgrades
- Upgrade to Jetty 12.1.4 #35805
- Upgrade to Micrometer 1.16.0 #35811
- Upgrade to Reactor 2025.0.0 #35779
❤️ Contributors
Thank you to all the contributors who worked on this release: