v3.5.0-RC1
Pre-release
Pre-release
·
504 commits
to main
since this release
⭐ New Features
- Add support for Docker's credential stores and helpers #45269
- Introduce 'spring.test.print-condition-evaluation-report' property to control whether the condition evaluation report should be printed when the ApplicationContext fails to start #45268
- Fail fast when both management 'base path' and 'endpoint mapping' are set to '/' #45251
- Allow structured logging with relocated or disabled context elements #45218
- Auto-configure OtlpMetricsSender if available #45204
- Support per-meter configuration for OtlpMetricsProperties #45203
- Migrate from AntPathRequestMatcher to PathPatternRequestMatcher #45163
- Add support for configuring SimpleAsyncTaskExecutor#rejectTasksWhenLimitReached #45155
- Align FilterRegistrationBean empty dispatcher type logic with FilterRegistration annotation #45130
- Add missing attributes to ServletRegistration annotation #45007
- Add missing attributes to FilterRegistration annotation #45005
- Add ClientHttpRequestFactoryBuilderCustomizer support #44987
- Remove RECORD_COMPONENT target from
@DefaultValue
#44984 - AutoConfiguredRestClientSsl should build upon, rather than overwrite, the configuration from HttpClientProperties #44979
- Rename spring.codec properties to spring.http.codecs #44971
- Rename 'spring.http.client' properties to 'spring.http.client.settings' #44958
- Enable RestClientAutoConfiguration in reactive web applications when virtual threads are enabled #44952
- Rename spring.mvc.converters.preferred-json-mapper to spring.http.converters.preferred-json-mapper #44925
- Make it easier to create an integration test for an OAuth2 resource server #44906
- Add spring.kafka.consumer.max-poll-interval configuration property #44901
- Add OtlpGrpcSpanExporterBuilderCustomizer and OtlpHttpSpanExporterBuilderCustomizer customizers #44900
- Improve performance of MapBinder by calculating reused fields only once #44868
- Improve performance of IndexedElementsBinder.assertNoUnboundChildren by not checking all elements #44867
- Add containsDescendantOfCache for system property source #44863
- Bypass SystemEnvironmentPropertySource.resolvePropertyName calls for configuration properties #44862
- Introduce a cache for expensive JavaBeanBinder and ValueObjectBinder #44861
- Allow ConfigurationPropertyCaching overriding for the duration of a bind operation #44860
- Improve SystemEnvironmentPropertyMapper performance by caching results #44858
- Improve ConfigurationPropertyName equals/hashCode performance #44857
- ApplicationInfoPropertySource should be marked as immutable #44856
- Add support for LdapContextSource#referral property #44850
- Auto-configure Otel's MeterProvider where appropriate #44833
- Make it possible to opt in to TaskExecutor auto-configuration when an Executor has already been defined #44659
- Support optional: prefix with logging.log4j2.config.override #44488
- Align TestRestTemplate default redirect settings to be the same as RestTemplate #43431
- Refactor TestRestTemplate to remove need for CustomHttpComponentsClientHttpRequestFactory #43422
- Add ClientHttpConnector builders for WebClient with a similar design to ClientHttpRequestFactoryBuilder #43079
- Use paketobuildpacks/builder-noble-java-tiny as the default image builder #42711
- Broaden OAuth2 client auto-configuration to include non servlet web applications #40997
- Auto-configure a bootstrapExecutor bean to be used by Framework's background bean initialization #39791
- Add a dedicated annotation to register filters and servlets #16500
🐞 Bug Fixes
- In a reactive web app, SslBundle can no longer open store file locations without using a 'file:' prefix #45263
- JsonValueWriter can throw StackOverflowError on deeply nested items #45262
- Spring Boot with native image container image build fails on podman due to directory permissions #45257
- Neo4jReactiveDataAutoConfiguration assumes that certain beans are available #45236
- Wrong jOOQ exception translator with empty db name #45220
- MessageSourceMessageInterpolator does not replace a parameter when the message matches its code #45214
- Logging a Path object using structured logging throws StackOverflowError #45211
- IntegrationMbeanExporter is not eligible for getting processed by all BeanPostProcessors warnings are shown when using JMX #45195
- OAuth2AuthorizationServerJwtAutoConfiguration uses
@ConditionalOnClass
incorrectly #45179 - MongoDB's dependency management is missing Kotlin coroutine driver modules #45160
- ImagePlatform can cause "OS must not be empty" IllegalArgumentException #45154
- ECS structure logging is not compatible with all collectors as it does not use the nested format #45063
- TypeUtils does not handle generics with identical names in different positions #45040
- HttpClient5 5.4.3 breaks local Docker transport #45035
- ConnectionDetailsFactories should use the context class loader to load factories #45014
- spring.datasource.hikari.data-source-class-name cannot be used as a driver class name is always required and Hikari does not accept both #45003
- Post-processing to apply custom JdbcConnectionDetails triggers an NPE in Hikari if the JDBC URL is for an unknown driver #44999
- DataSourceBuilder triggers an NPE in Hikari when trying to build a DataSource with a JDBC URL for an unknown driver #44996
- ClientHttpRequestFactoryBuilder detection does not use the bean class loader #44986
- SSL config does not watch for symlink file changes #44890
- EmbeddedLdapAutoConfiguration should not rely on PreDestroy #44875
- SystemEnvironmentPropertySource is no longer considered immutable #44859
- DataSourceTransactionManagerAutoConfiguration should run after DataSourceAutoConfiguration #44820
📔 Documentation
- Make
@Component
a javadoc link #45259 - Fix documentation links to buildpacks.io #45242
- Document that applicationTaskExecutor can also act as bootstrapExecutor if the latter is not explicitly configured #45232
- Clarify the use of multiple profile expressions with "spring.config.activate.on-profile" #45225
- Update CDS documentation to cover AOTCache #45200
- Add details of the purpose of the metrics endpoint #45048
- Escape the asterisk in spring-application.adoc #45034
- Show the use of token properties in authorization server clients configuration example #45019
- Add Javadoc since for GarbageCollectorInfo #44980
- Add reference to Styra (OPA) Spring Boot SDK #44977
- WebFlux security documentation incorrectly links to servlet classes #44967
- Replace mentions of deprecated MockBean annotation #44963
- Update documentation for Task execution #44926
- TaskExecution documentation should describe what happens when multiple Executor beans are present #44909
- Documentation lists coordinates for some dependencies that are not actually managed #44880
- Polish javadoc of SpringProfileAction #44827
- Add reference to Dapr Java SDK Spring Boot starter #44379
🔨 Dependency Upgrades
- Upgrade to AspectJ 1.9.24 #45208
- Upgrade to Byte Buddy 1.17.5 #45102
- Upgrade to Couchbase Client 3.7.9 #45103
- Upgrade to Elasticsearch Client 8.17.4 #45134
- Upgrade to Flyway 11.7.2 #45271
- Upgrade to GraphQL Java 23.1 #45030
- Upgrade to Gson 2.13.1 #45273
- Upgrade to Hibernate 6.6.13.Final #45105
- Upgrade to HikariCP 6.3.0 #45106
- Upgrade to HtmlUnit 4.11.1 #45107
- Upgrade to HttpClient5 5.4.3 #45108
- Upgrade to HttpCore5 5.3.4 #45109
- Upgrade to Infinispan 15.2.1.Final #45110
- Upgrade to InfluxDB Java 2.25 #45111
- Upgrade to Jaybird 6.0.1 #45112
- Upgrade to Jetty 12.0.19 #45113
- Upgrade to jOOQ 3.19.22 #45114
- Upgrade to JUnit Jupiter 5.12.2 #45171
- Upgrade to Lombok 1.18.38 #45116
- Upgrade to MariaDB 3.5.3 #45117
- Upgrade to Maven Failsafe Plugin 3.5.3 #45118
- Upgrade to Maven Surefire Plugin 3.5.3 #45119
- Upgrade to Micrometer 1.15.0-RC1 #45136
- Upgrade to Micrometer Tracing 1.5.0-RC1 #45137
- Upgrade to Mockito 5.17.0 #45120
- Upgrade to MongoDB 5.4.0 #45121
- Upgrade to Neo4j Java Driver 5.28.4 #45135
- Upgrade to OpenTelemetry 1.49.0 #45123
- Upgrade to Pulsar 4.0.4 #45124
- Upgrade to Pulsar Reactive 0.6.0 #45248
- Upgrade to R2DBC MySQL 1.4.1 #45209
- Upgrade to Rabbit Stream Client 0.23.0 #45164
- Upgrade to Reactor Bom 2024.0.5 #45138
- Upgrade to Selenium 4.31.0 #45126
- Upgrade to Selenium HtmlUnit 4.30.0 #45127
- Upgrade to Spring AMQP 3.2.5 #45139
- Upgrade to Spring Authorization Server 1.5.0-RC1 #45140
- Upgrade to Spring Data Bom 2025.0.0-RC1 #45141
- Upgrade to Spring Framework 6.2.6 #45142
- Upgrade to Spring GraphQL 1.4.0-RC1 #45229
- Upgrade to Spring HATEOAS 2.5.0-RC1 #45234
- Upgrade to Spring Integration 6.5.0-RC1 #45143
- Upgrade to Spring Kafka 3.3.5 #45144
- Upgrade to Spring LDAP 3.3.0-RC1 #45145
- Upgrade to Spring Pulsar 1.2.5 #45146
- Upgrade to Spring Security 6.5.0-RC1 #45147
- Upgrade to Spring Session 3.5.0-RC1 #45148
- Upgrade to Spring WS 4.1.0-RC1 #45149
- Upgrade to Testcontainers 1.21.0 #45276
- Upgrade to Tomcat 10.1.40 #45128
❤️ Contributors
Thank you to all the contributors who worked on this release:
@DimaVilda, @EvaristeGalois11, @MelleD, @YongGoose, @aahlenst, @ali-jalaal, @dmitrysulman, @dmytrodanilenkov, @dobrosi, @erichaagdev, @florgust, @geniusYoo, @izeye, @jonatan-ivanov, @kwondh5217, @lengors, @nenros, @nevenc, @ngocnhan-tran1996, @nosan, @quaff, @rainboyan, @salaboy, and @shakuzen