Skip to content

v3.5.0-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@spring-builds spring-builds released this 25 Apr 11:45
· 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