Releases: spring-projects/spring-boot
v3.4.1
🐞 Bug Fixes
- KafkaProperties fail to build SSL properties when the bundle name is an empty string #43563
- Diagnostics are poor when property resolution throws a ConversionFailedException #43559
- SpringApplicationShutdownHandlers do not run in deterministic order #43536
- Unable to find a
@SpringBootConfiguration
results in misleading error message #43507 - With multiple ResourceHandlerRegistrationCustomizer beans in the context, only one of them is used #43497
- Unable to use Docker Compose support when mixing dedicated and shared services #43472
- Kafka dependency management does not include the kafka-server module #43454
- Docker API version is incorrectly reported when '/_ping` calls fail and version should be fixed #43452
- Methods to build producer / consumer properties from KafkaProperties are inconvienenent to use without an SSL bundle #43448
- Failures in -Djarmode=tools do not consistently return a non-zero exit #43436
- HttpComponentsClientHttpRequestFactoryBuilder replaces the existing defaultRequestConfigCustomizer rather than adding to it #43429
- spring-boot-maven-plugin sets imagePlatform even if it's empty #43424
- OnBeanCondition fails to match on annotations when using Scoped Proxies #43423
- Failure analysis for InvalidConfigurationPropertyValueException doesn't correctly handle fuzzy matching of environment variables #43382
- H2ConsoleAutoConfiguration causes early initialization of DataSource beans #43359
- Accept progress on numbers >2GB #43356
- Servlet-based UserDetailsServiceAutoConfiguration is active in a reactive app #43334
- StructuredLoggingJsonMembersCustomizer implementations declared in spring.factories with a generic type more specific than Object are not called #43312
- Overriding log level with an environment variable does not work when using an environment prefix #43307
- Management endpoint access and enabled properties are ignored unless the endpoint ID is an exact match #43302
- UnsupportedOperationException when starting a Maven shaded application on Java 21 with virtual threads enabled #43291
- JmsListener failing with Narayana (pooled ConnectionFactory) since 3.4.0 #43277
- SslBundle can no longer open store file locations without using a 'file:' prefix #43274
- TestRestTemplate does not allow redirects to be customized #43258
- Testcontainers start() methods may be started multiple times #43253
📔 Documentation
- Fix typo in documentation #43558
- Document that server.ssl.cipher and server.ssl.enabled-protocols are not fallbacks used with SSL bundles #43552
- Use
<annotationProcessorPaths>
in Maven examples for configuring an annotation processor #43544 - Fix typo #43519
- Links to logback javadoc are incorrect #43456
- Fix JUnit javadoc links #43428
- Reference documentation incorrectly uses 'disabled' rather than 'none' for access restrictions #43351
- Restore System property in Logging section of the reference documentation #43342
- Fix link to proxyBeanMethods in
@AutoConfiguration
javadoc #43325 - Fix links to Servlet and JPA javadoc #43324
- Link to
@EnableMethodSecurity
instead of the deprecated@EnableGlobalMethodSecurity
#43315 - Document that StructuredLoggingJsonMembersCustomizer implementations may optionally take constructor parameters #43314
- Update javadoc of StructuredLoggingJsonMembersCustomizer to note that implementations can registered through spring.factories #43313
- Fix Javadoc link for Hikari #43311
- Document how to use structured logging with custom log configuration #43301
- Update Javadoc since for OtlpMetricsProperties and OtlpTracingProperties #43249
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.15.11 #43529
- Upgrade to Couchbase Client 3.7.6 #43500
- Upgrade to CycloneDX Maven Plugin 2.9.1 #43398
- Upgrade to Dependency Management Plugin 1.1.7 #43543
- Upgrade to Elasticsearch Client 8.15.5 #43399
- Upgrade to Hibernate 6.6.4.Final #43566
- Upgrade to Hibernate Validator 8.0.2.Final #43510
- Upgrade to Jackson Bom 2.18.2 #43401
- Upgrade to Jetty 12.0.16 #43488
- Upgrade to jOOQ 3.19.16 #43468
- Upgrade to JUnit Jupiter 5.11.4 #43530
- Upgrade to Log4j2 2.24.3 #43501
- Upgrade to Micrometer 1.14.2 #43408
- Upgrade to Micrometer Tracing 1.4.1 #43409
- Upgrade to Native Build Tools Plugin 0.10.4 #43403
- Upgrade to Netty 4.1.116.Final #43548
- Upgrade to Prometheus Client 1.3.5 #43503
- Upgrade to Pulsar 3.3.3 #43405
- Upgrade to Pulsar Reactive 0.5.10 #43539
- Upgrade to Reactor Bom 2024.0.1 #43410
- Upgrade to RxJava3 3.1.10 #43406
- Upgrade to Spring AMQP 3.2.1 #43411
- Upgrade to Spring Authorization Server 1.4.1 #43412
- Upgrade to Spring Batch 5.2.1 #43477
- Upgrade to Spring Data Bom 2024.1.1 #43413
- Upgrade to Spring Framework 6.2.1 #43414
- Upgrade to Spring HATEOAS 2.4.1 #43478
- Upgrade to Spring Integration 6.4.1 #43415
- Upgrade to Spring Kafka 3.3.1 #43416
- Upgrade to Spring LDAP 3.2.10 #43417
- Upgrade to Spring Pulsar 1.2.1 #43418
- Upgrade to Spring Retry 2.0.11 #43486
- Upgrade to Spring Security 6.4.2 #43419
- Upgrade to Spring Session 3.4.1 #43420
- Upgrade to SQLite JDBC 3.47.1.0 #43407
- Upgrade to Thymeleaf 3.1.3.RELEASE [#43469](https://github.com/sp...
v3.3.7
🐞 Bug Fixes
- KafkaProperties fail to build SSL properties when the bundle name is an empty string #43561
- With multiple ResourceHandlerRegistrationCustomizer beans in the context, only one of them is used #43494
- Kafka dependency management does not include the kafka-server module #43450
- Failures in -Djarmode=tools do not consistently return a non-zero exit #43435
- SpringApplicationShutdownHandlers do not run in deterministic order #43430
- Failure analysis for InvalidConfigurationPropertyValueException doesn't correctly handle fuzzy matching of environment variables #43380
- Diagnostics are poor when property resolution throws a ConversionFailedException #43378
- Unable to find a
@SpringBootConfiguration
results in misleading error message #43357 - H2ConsoleAutoConfiguration causes early initialization of DataSource beans #43337
- Accept progress on numbers >2GB #43328
- Overriding log level with an environment variable does not work when using an environment prefix #43304
- Methods to build producer / consumer properties from KafkaProperties are inconvienenent to use without an SSL bundle #43300
- UnsupportedOperationException when starting a Maven shaded application on Java 21 with virtual threads enabled #43284
- Unable to use Docker Compose support when mixing dedicated and shared services #40139
📔 Documentation
- Fix typo in documentation #43557
- Fix typo #43512
- Links to logback javadoc are incorrect #43439
- Fix JUnit javadoc links #43383
- Document that server.ssl.cipher and server.ssl.enabled-protocols are not fallbacks used with SSL bundles #43353
- Restore System property in Logging section of the reference documentation #43341
- Use
<annotationProcessorPaths>
in Maven examples for configuring an annotation processor #43329 - Fix link to proxyBeanMethods in
@AutoConfiguration
javadoc #43323 - Fix links to Servlet and JPA javadoc #43320
- Link to
@EnableMethodSecurity
instead of the deprecated@EnableGlobalMethodSecurity
#43308 - Fix Javadoc link for Hikari #43305
🔨 Dependency Upgrades
- Upgrade to Dependency Management Plugin 1.1.7 #43542
- Upgrade to Hibernate Validator 8.0.2.Final #43509
- Upgrade to Jetty 12.0.16 #43487
- Upgrade to jOOQ 3.19.16 #43463
- Upgrade to Kafka 3.7.2 #43502
- Upgrade to Micrometer 1.13.9 #43388
- Upgrade to Micrometer Tracing 1.3.7 #43389
- Upgrade to Native Build Tools Plugin 0.10.4 #43385
- Upgrade to Netty 4.1.116.Final #43549
- Upgrade to Reactor Bom 2023.0.13 #43390
- Upgrade to RxJava3 3.1.10 #43386
- Upgrade to Spring Authorization Server 1.3.4 #43391
- Upgrade to Spring Batch 5.1.3 #43474
- Upgrade to Spring Data Bom 2024.0.7 #43392
- Upgrade to Spring Framework 6.1.16 #43393
- Upgrade to Spring HATEOAS 2.3.4 #43475
- Upgrade to Spring Integration 6.3.7 #43476
- Upgrade to Spring Kafka 3.2.6 #43394
- Upgrade to Spring LDAP 3.2.10 #43395
- Upgrade to Spring Pulsar 1.1.7 #43396
- Upgrade to Spring Retry 2.0.11 #43485
- Upgrade to Spring Security 6.3.6 #43527
- Upgrade to Spring Session 3.3.5 #43397
- Upgrade to Thymeleaf 3.1.3.RELEASE #43464
- Upgrade to Thymeleaf Extras SpringSecurity 3.1.3.RELEASE #43465
- Upgrade to Tomcat 10.1.34 #43466
- Upgrade to Undertow 2.3.18.Final #43387
- Upgrade to Zipkin Reporter 3.4.3 #43462
❤️ Contributors
Thank you to all the contributors who worked on this release:
@BenchmarkingBuffalo, @kgb-financial-com, @ngocnhan-tran1996, @nosan, @quaff, @scordio, and @sobychacko
v3.4.0
⭐ New Features
- Add withDefaultRequestConfigCustomizer method to HttpComponentsClientHttpRequestFactoryBuilder #43139
- Fail JsonWriter if duplicate names are detected #43041
- Add JsonObjectDeserializer.nullSafeValue method that accepts a mapper Function #42972
- Support timeout property for GraphQL over SSE #42966
- Improve performance of ConfigurationPropertiesBinder by storing bind handlers on first access #42950
- Improve performance of ConcurrentReferenceCachingMetadataReaderFactory #42949
- Log warning in HikariCheckpointRestoreLifecycle if pool suspension isn't configured #42937
- Remove spring-boot-starter-aop dependency from spring-boot-starter-data-jpa and spring-boot-starter-integration #42934
🐞 Bug Fixes
- Jersey body handling is inconsistent with Spring Webflux and Spring MVC #43209
- Classes are accidentally named "structure logging" instead of "structured logging" #43203
- StructuredLoggingJsonProperties customizer should be a Class reference rather than a String #43202
- Cannot package OCI image when 'docker.io/paketobuildpacks/new-relic' is provided as a buildpack #43171
- Incorrect Type for 'management.endpoints.access.default' defined in additional-spring-configuration-metadata.json #43154
- WebServerPortFileWriter fails when using a portfile without extension #43117
- SslOptions.isSpecified() only returns true if ciphers and enabled protocols are set #43084
- SslHealthIndicator throws NullPointerException when using SslBundle with SslStoreBundle.NONE #43078
- JdkClientHttpRequestFactoryBuilder and JettyClientHttpRequestFactoryBuilder do not set Ciphers or Enabled Protocols #43077
- Root cause of errors is hidden when loading images from archive #43070
- mvn spring-boot:run fails on Windows with "Could Not Find or Load Main Class" when path contains non-ASCII characters #43062
- A
@SpyBean
on the output of a FactoryBean is not reset #43053 - Logback logging system does not process URLs with paths not ending in .xml #42990
- Bean-based conditions do not consider factory beans correctly when determining if they are a candidate #42970
- NPE in bootBuildImage when setting DOCKER_CONTEXT=default #42960
- Warning due to duplicate MockResolver extensions #42957
- HttpHostConnectException is thrown when using buildpacks with Gradle or Maven on Windows #42952
- build-info doesn't support seconds since the epoch from project.build.outputTimestamp #42936
- NPE in OnClassCondition.resolveOutcomesThreaded following thread interruption because firstHalf is null #42926
- Default WebSocketMessageBrokerConfigurer is always overriding custom channel executor #42924
- X-Registry-Auth header sent to Docker Engine API contains field "authHeader" #42915
- ApplicationContextRunner has inconsistent behaviour with duplicate auto-configuration class names #17963
📔 Documentation
- Migrate class references to full javadoc links #43239
- Documentation for 'spring.datasource.type' is misleading #43199
- Update "Upgrading From" section to use "2.x" #43160
- Include spring-boot-loader in API documentation #43153
- Document how and where to add custom GraalVM configuration files #43074
- Rework DataSource configuration examples to separate defining an additional DataSource and defining a DataSource of a different type #43059
- Location of the layers schema is incorrect in the Maven Plugin's examples #43033
- Link to Eclipse setup instructions #42954
- Fix link to Checkpoint and Restore status page #42939
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 6.1.4 #43128
- Upgrade to Byte Buddy 1.15.10 #43097
- Upgrade to Couchbase Client 3.7.5 #43098
- Upgrade to Elasticsearch Client 8.15.4 #43129
- Upgrade to Flyway 10.20.1 #43130
- Upgrade to Groovy 4.0.24 #43099
- Upgrade to Hibernate 6.6.2.Final #43100
- Upgrade to HttpClient5 5.4.1 #43102
- Upgrade to Infinispan 15.0.11.Final #43131
- Upgrade to Jackson Bom 2.18.1 #43103
- Upgrade to Jetty 12.0.15 #43104
- Upgrade to jOOQ 3.19.15 #43105
- Upgrade to Kafka 3.8.1 #43106
- Upgrade to Lettuce 6.4.1.RELEASE #43185
- Upgrade to Logback 1.5.12 #43107
- Upgrade to Lombok 1.18.36 #43186
- Upgrade to Maven Dependency Plugin 3.8.1 #43108
- Upgrade to Maven Failsafe Plugin 3.5.2 #43109
- Upgrade to Maven Surefire Plugin 3.5.2 #43110
- Upgrade to Micrometer 1.14.1 #43187
- Upgrade to Micrometer Tracing 1.4.0 #43120
- Upgrade to MongoDB 5.2.1 #43111
- Upgrade to Netty 4.1.115.Final #43133
- Upgrade to Prometheus Client 1.3.3 #43112
- Upgrade to Pulsar Reactive 0.5.9 #43188
- Upgrade to Reactor Bom 2024.0.0 #43015
- Upgrade to Spring AMQP 3.2.0 #43016
- Upgrade to Spring Authorization Server 1.4.0 #43017
- Upgrade to Spring Batch 5.2.0 #43018
- Upgrade to Spring Data Bom 2024.1.0 #43019
- Upgrade to Spring Framework 6.2.0 #43020
- Upgrade to Spring HATEOAS 2.4.0 #43021
- Upgrade to Spring Integration 6.4.0 #43022
- Upgrade to Spring Kafka 3.3.0 #43023
- Upgrade to Spring LDAP 3.2.8 #43189
- Upgrade to Spring Pulsar 1.2.0 #43024
- Upgrade to Spring RESTDocs 3.0.3 #43025
- Upgrade to Spring Security 6.4.1 #43232
- Upgrade to Spring Session 3.4.0 [#43027](https:/...
v3.3.6
⚠️ Noteworthy
- This release upgrades to OpenTelemetry 1.38.0, see this issue comment for more details.
🐞 Bug Fixes
- Spring Boot 3.3.x dependencies do not converge for Micrometer Tracing and OpenTelemetry #43200
- Cannot package OCI image when 'docker.io/paketobuildpacks/new-relic' is provided as a buildpack #43170
- WebServerPortFileWriter fails when using a portfile without extension #43116
- SslOptions.isSpecified() only returns true if ciphers and enabled protocols are set #43083
- Root cause of errors is hidden when loading images from archive #43069
- mvn spring-boot:run fails on Windows with "Could Not Find or Load Main Class" when path contains non-ASCII characters #43051
- Logback logging system does not process URLs with paths not ending in .xml #42989
- NPE in bootBuildImage when setting DOCKER_CONTEXT=default #42959
- build-info doesn't support seconds since the epoch from project.build.outputTimestamp #42935
- NPE in OnClassCondition.resolveOutcomesThreaded following thread interruption because firstHalf is null #42925
- X-Registry-Auth header sent to Docker Engine API contains field "authHeader" #42914
- A
@SpyBean
on the output of a FactoryBean is not reset #31204
📔 Documentation
- Documentation for 'spring.datasource.type' is misleading #43198
- Update "Upgrading From" section to use "2.x" #43159
- Include spring-boot-loader in API documentation #43151
- Document how and where to add custom GraalVM configuration files #43073
- Rework DataSource configuration examples to separate defining an additional DataSource and defining a DataSource of a different type #43058
- Location of the layers schema is incorrect in the Maven Plugin's examples #43032
- Link to Eclipse setup instructions #42953
- Fix link to Checkpoint and Restore status page #42938
- Update HttpWebServiceMessageSenderBuilder javadoc #42893
- Move default value descriptions to "description" in logging property metadata #42881
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 6.1.4 #43146
- Upgrade to Groovy 4.0.24 #43095
- Upgrade to Infinispan 15.0.11.Final #43147
- Upgrade to Jackson Bom 2.17.3 #43036
- Upgrade to Jetty 12.0.15 #43093
- Upgrade to jOOQ 3.19.15 #43037
- Upgrade to Logback 1.5.12 #43038
- Upgrade to Lombok 1.18.36 #43181
- Upgrade to Micrometer 1.13.8 #43182
- Upgrade to Micrometer Tracing 1.3.6 #43000
- Upgrade to Netty 4.1.115.Final #43148
- Upgrade to Pulsar Reactive 0.5.9 #43183
- Upgrade to Reactor Bom 2023.0.12 #43002
- Upgrade to Spring AMQP 3.1.8 #43004
- Upgrade to Spring Data Bom 2024.0.6 #43006
- Upgrade to Spring Framework 6.1.15 #43008
- Upgrade to Spring Integration 6.3.6 #43010
- Upgrade to Spring Kafka 3.2.5 #43011
- Upgrade to Spring LDAP 3.2.8 #43184
- Upgrade to Spring Pulsar 1.1.6 #43012
- Upgrade to Spring RESTDocs 3.0.3 #43014
- Upgrade to Spring Security 6.3.5 #43013
- Upgrade to Tomcat 10.1.33 #43149
❤️ Contributors
Thank you to all the contributors who worked on this release:
@ahoehma, @izeye, @ngocnhan-tran1996, @nosan, @quaff, and @wickdynex
v3.2.12
🐞 Bug Fixes
- Cannot package OCI image when 'docker.io/paketobuildpacks/new-relic' is provided as a buildpack #43126
- WebServerPortFileWriter fails when using a portfile without extension #43115
- SslOptions.isSpecified() only returns true if ciphers and enabled protocols are set #43082
- Logback logging system does not process URLs with paths not ending in .xml #42986
- NPE in bootBuildImage when setting DOCKER_CONTEXT=default #42958
- build-info doesn't support seconds since the epoch from project.build.outputTimestamp #42922
- X-Registry-Auth header sent to Docker Engine API contains field "authHeader" #42910
- NPE in OnClassCondition.resolveOutcomesThreaded following thread interruption because firstHalf is null #41709
- Root cause of errors is hidden when loading images from archive #31243
📔 Documentation
- Documentation for 'spring.datasource.type' is misleading #43193
- Update "Upgrading From" section to use "2.x" #43123
- Rework DataSource configuration examples to separate defining an additional DataSource and defining a DataSource of a different type #43054
- Link to Eclipse setup instructions #42918
- Update HttpWebServiceMessageSenderBuilder javadoc #42868
- Move default value descriptions to "description" in logging property metadata #42848
- Document how and where to add custom GraalVM configuration files #42515
🔨 Dependency Upgrades
- Upgrade to Groovy 4.0.24 #43088
- Upgrade to Infinispan 14.0.33.Final #43229
- Upgrade to Jetty 12.0.15 #43090
- Upgrade to jOOQ 3.18.22 #43091
- Upgrade to Lombok 1.18.36 #43177
- Upgrade to Micrometer 1.12.13 #43178
- Upgrade to Micrometer Tracing 1.2.12 #42994
- Upgrade to MongoDB 4.11.5 #43092
- Upgrade to Netty 4.1.115.Final #43144
- Upgrade to Pulsar Reactive 0.5.9 #43179
- Upgrade to Reactor Bom 2023.0.12 #42995
- Upgrade to Spring AMQP 3.1.8 #42996
- Upgrade to Spring Data Bom 2023.1.12 #42997
- Upgrade to Spring Framework 6.1.15 #42999
- Upgrade to Spring Integration 6.2.11 #43001
- Upgrade to Spring Kafka 3.1.10 #43003
- Upgrade to Spring LDAP 3.2.8 #43180
- Upgrade to Spring Pulsar 1.0.12 #43005
- Upgrade to Spring RESTDocs 3.0.3 #43007
- Upgrade to Spring Security 6.2.8 #43009
- Upgrade to Tomcat 10.1.33 #43145
❤️ Contributors
Thank you to all the contributors who worked on this release:
@ahoehma, @izeye, @ngocnhan-tran1996, @nosan, @quaff, and @wickdynex
v3.4.0-RC1
⭐ New Features
- Update web services support to make use of ClientHttpRequestFactoryBuilder #42886
- Add requestFactorySettings method to RestTemplateBuilder #42885
- Rename RestTemplateBuilder 'set' methods #42884
- Unify default HTTP client redirect behavior and provide configuration option #42879
- Add Testcontainers and docker compose support for ClickHouse #42837
- Support ResourceLoader delegation from ApplicationResourceLoader #42835
- Add support for ClickHouse JDBC driver in enum DatabaseDriver #42815
- Add property to control export of OTLP logs #42813
- Remove remaining functionality that has been deprecated for removal in 3.4.0 #42780
- Add support for auto-configuring an indexed reactive session repository #42604
- Detect accidental misconfiguration of JsonMixin annotation #42592
- Support Reactor Netty in ClientHttpRequestFactories #42587
- Add property to specify Docker Compose flags #42571
- Rename OtlpAutoConfiguration to OtlpTracingAutoConfiguration #42529
- Add connect timeout properties for OTLP logging and tracing #42528
- Add management.otlp.logging.transport property #42527
- Use builder-jammy-java-tiny when using Buildpacks #42508
- Allow structure logging JSON to be customized #42486
- Raise the minimum supported version of Gradle 8 to 8.4 #42481
- Harmonize configuration properties that accept a comma-separated list of values #42478
- Allow common messages to be specified for message sources #42472
- Provide a configuration property for configuring Jetty's max form keys #42448
- Provide service connection support for Hazelcast #42416
- Make OtlpMeterRegistry virtual thread aware #42407
- Improve SpringEnvironmentLookup exception to hint that the log4j2 file must have '-spring' suffix #42405
- Allow auto-configured org.jooq.Configuration to be used to create a custom DSLContext #42400
- Add support for partitioned cookies #42316
- Deprecate support for injecting DynamicPropertyRegistry in favor of DynamicPropertyRegistrar beans #41996
- Warn when the user provides volume mounts with sensitive targets when building images #41643
- Shut down management server only once main server is shut down #41002
- Export SBOM contained in native-image #40630
- Introduce
@BatchTaskExecutor
to make it easier to configure Spring Batch to use a custom task executor #40040 - Restrict actuator access based on read/write/delete operations via configuration #39046
- Provide a way to further customize underlying ClientHttpRequestFactory components #39035
- Autoconfigure Undertow/XNIO for virtual thread support #38819
- Provide a mechanism for easily configuring global client HTTP request factory settings #36266
🐞 Bug Fixes
- Running mvn spring-boot:run with classpaths that exceeds Windows' length limits leaves temporary files #42845
- ClassNotFoundException is thrown when loading protocol resolvers from ForkJoinPool task #42839
- Report produced by ConditionReportApplicationContextFailureProcessor is always empty in a failed test #42786
- Case-insensitive comparisons may be adversely affected by the user's locale #42736
- server.tomcat.reject-illegal-header has been deprecated since 2.7.12 and should have been removed in 3.3.0 #42731
- DataSourceProperties#driverClassIsLoadable should not print a stacktrace to the error stream when it fails #42684
- Some
@ControllerEndpoint
and@RestControllerEndpoint
infrastructure remains undeprecated #42499 - Auto-configuration for Rabbit Streams doesn't consider RabbitConnectionDetails #42491
@ConditionalOn
(Missing)Bean(annotation = …) infers the type to match when used on a@Bean
method #42484- ActiveMQ Artemis Connection Factory creation fails in native image #42422
- Duplicate meter binding when context contains multiple registries, none are primary, and one or more is a composite #42398
- Profiles are not active when the environment is prepared with an AOT-optimized application #41562
📔 Documentation
- Update HttpWebServiceMessageSenderBuilder javadoc #42894
- Document HttpClientAutoConfiguration updates #42888
- Update web services documentation following HTTP client changes #42887
- Move default value descriptions to "description" in logging property metadata #42882
- Document that embedded Tomcat must be at least 10.1.25 #42869
- Update documentation where we recommend a
@Qualifier
on one bean and@Primary
on another to suggest a single bean with defaultCandidate=false #42831 - Fix systemd example configuration #42806
- Document that the exact behavior of the maximum HTTP request header size property is server-specific #42790
- Clarify why
@Primary
is recommended when defining your own ObjectMapper that replaces JacksonAutoConfiguration's #42788 - Polish javadoc for Binder#bindOrCreate(String, Class) #42779
- Document that Tomcat's maxQueueCapacity need to be greater than 0 #42727
- Remove stale link to jar-to-war getting started guide #42722
- Fix typos and formatting errors in documentation #42721
- Fix case used for examples in "Sanitize Sensitive Values" #42703
- Fix Regex javadoc links #42686
- Document how Map properties are bound from environment variables #42673
- Improve classpath index documentation for reproducible builds #42644
- Improve documentation for CycloneDX integration #42629
- Remove links to Spring Data GemFire #42597
- Documentation is missing MyCustomFormat.kt example #42594
- Link to Framework's docs about
@Bean
's autowireCandidate and defaultCandidate #42586 - Order alphabetically the sections in Common Application Properties #42521
- Improve the javad...
v3.3.5
🐞 Bug Fixes
- Running mvn spring-boot:run with classpaths that exceeds Windows' length limits leaves temporary files #42841
- Report produced by ConditionReportApplicationContextFailureProcessor is always empty in a failed test #42785
- Case-insensitive comparisons may be adversely affected by the user's locale #42735
- DataSourceProperties#driverClassIsLoadable should not print a stacktrace to the error stream when it fails #42683
- Some
@ControllerEndpoint
and@RestControllerEndpoint
infrastructure remains undeprecated #42498 - Auto-configuration for Rabbit Streams doesn't consider RabbitConnectionDetails #42490
- ClassNotFoundException is thrown when loading protocol resolvers from ForkJoinPool task #42468
- ActiveMQ Artemis Connection Factory creation fails in native image #42421
- Duplicate meter binding when context contains multiple registries, none are primary, and one or more is a composite #42397
📔 Documentation
- Document that embedded Tomcat must be at least 10.1.25 #42849
- Fix systemd example configuration #42805
- Document that the exact behavior of the maximum HTTP request header size property is server-specific #42789
- Clarify why
@Primary
is recommended when defining your own ObjectMapper that replaces JacksonAutoConfiguration's #42787 - Polish javadoc for Binder#bindOrCreate(String, Class) #42778
- Document that Tomcat's maxQueueCapacity need to be greater than 0 #42726
- Remove stale link to jar-to-war getting started guide #42723
- Fix typos and formatting errors in documentation #42718
- Fix case used for examples in "Sanitize Sensitive Values" #42702
- Fix Regex javadoc links #42685
- Document how Map properties are bound from environment variables #42672
- Improve classpath index documentation for reproducible builds #42643
- Remove links to Spring Data GemFire #42596
- Order alphabetically the sections in Common Application Properties #42520
- Improve the javadoc describing when
@ConditionalOn
(Missing)Bean will infer the type to match #42505 - Document how to handle MANIFEST.MF in native image with Maven #42476
- Fix links to Micrometer reference doc #42467
- Polish documentation #42454
- Add Javadoc since for PrometheusScrapeEndpoint(PrometheusRegistry, Properties) #42406
- Remove note about graceful shutdown with Tomcat requiring 9.0.33 or later as we now require 10.1.x #42382
- Document support for Java 23 #42380
- Improve documentation for CycloneDX integration #41506
🔨 Dependency Upgrades
- Prohibit upgrades to Undertow 2.3.18.Final #42756
- Upgrade to CycloneDX Maven Plugin 2.8.2 #42631
- Upgrade to GraphQL Java 22.3 #42757
- Upgrade to Infinispan 15.0.10.Final #42632
- Upgrade to Jaybird 5.0.6.java11 #42752
- Upgrade to Jersey 3.1.9 #42633
- Upgrade to Jetty 12.0.14 #42635
- Upgrade to Jetty Reactive HTTPClient 4.0.8 #42634
- Upgrade to jOOQ 3.19.14 #42818
- Upgrade to JUnit Jupiter 5.10.5 #42637
- Upgrade to Logback 1.5.11 #42753
- Upgrade to Micrometer 1.13.6 #42543
- Upgrade to Micrometer Tracing 1.3.5 #42544
- Upgrade to Neo4j Java Driver 5.25.0 #42628
- Upgrade to Netty 4.1.114.Final #42639
- Upgrade to Pooled JMS 3.1.7 #42640
- Upgrade to Pulsar Reactive 0.5.8 #42819
- Upgrade to R2DBC Pool 1.0.2.RELEASE #42754
- Upgrade to R2DBC Postgresql 1.0.7.RELEASE #42755
- Upgrade to Reactor Bom 2023.0.11 #42545
- Upgrade to Spring Authorization Server 1.3.3 #42546
- Upgrade to Spring Data Bom 2024.0.5 #42547
- Upgrade to Spring Framework 6.1.14 #42548
- Upgrade to Spring GraphQL 1.3.3 #42742
- Upgrade to Spring Integration 6.3.5 #42549
- Upgrade to Spring LDAP 3.2.7 #42550
- Upgrade to Spring Pulsar 1.1.5 #42551
- Upgrade to Spring RESTDocs 3.0.2 #42743
- Upgrade to Spring Retry 2.0.10 #42552
- Upgrade to Spring Security 6.3.4 #42553
- Upgrade to Spring Session 3.3.3 #42554
- Upgrade to Tomcat 10.1.31 #42642
❤️ Contributors
Thank you to all the contributors who worked on this release:
@IMWoo94, @arefbehboudi, @izeye, @jeonghyeon00, @ngocnhan-tran1996, @nosan, and @quaff
v3.2.11
🐞 Bug Fixes
- Case-insensitive comparisons may be adversely affected by the user's locale #42719
- DataSourceProperties#driverClassIsLoadable should not print a stacktrace to the error stream when it fails #42681
- Auto-configuration for Rabbit Streams doesn't consider RabbitConnectionDetails #42489
- ActiveMQ Artemis Connection Factory creation fails in native image #42414
- Duplicate meter binding when context contains multiple registries, none are primary, and one or more is a composite #42396
- Report produced by ConditionReportApplicationContextFailureProcessor is always empty in a failed test #42185
📔 Documentation
- Fix systemd example configuration #42795
- Polish javadoc for Binder#bindOrCreate(String, Class) #42777
- Remove stale link to jar-to-war getting started guide #42691
- Fix Regex javadoc links #42645
- Clarify why
@Primary
is recommended when defining your own ObjectMapper that replaces JacksonAutoConfiguration's #42598 - Remove links to Spring Data GemFire #42575
- Improve the javadoc describing when
@ConditionalOn
(Missing)Bean will infer the type to match #42504 - Polish documentation #42445
- Document how to handle MANIFEST.MF in native image with Maven #42412
- Document support for Java 23 #42374
- Remove note about graceful shutdown with Tomcat requiring 9.0.33 or later as we now require 10.1.x #42373
- Improve classpath index documentation for reproducible builds #41265
- Document how Map properties are bound from environment variables #40936
- Document that the exact behavior of the maximum HTTP request header size property is server-specific #40798
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 5.18.6 #42612
- Upgrade to Dropwizard Metrics 4.2.28 #42613
- Upgrade to Infinispan 14.0.32.Final #42614
- Upgrade to Jaybird 5.0.6.java11 #42747
- Upgrade to Jersey 3.1.9 #42615
- Upgrade to Jetty 12.0.14 #42617
- Upgrade to Jetty Reactive HTTPClient 4.0.8 #42616
- Upgrade to jOOQ 3.18.21 #42816
- Upgrade to JUnit Jupiter 5.10.5 #42619
- Upgrade to Micrometer 1.12.11 #42531
- Upgrade to Micrometer Tracing 1.2.11 #42532
- Upgrade to Neo4j Java Driver 5.25.0 #42626
- Upgrade to Netty 4.1.114.Final #42620
- Upgrade to Pooled JMS 3.1.7 #42621
- Upgrade to Pulsar Reactive 0.5.8 #42817
- Upgrade to R2DBC Pool 1.0.2.RELEASE #42748
- Upgrade to R2DBC Postgresql 1.0.7.RELEASE #42749
- Upgrade to Reactor Bom 2023.0.11 #42533
- Upgrade to Spring Authorization Server 1.2.7 #42534
- Upgrade to Spring Framework 6.1.14 #42536
- Upgrade to Spring GraphQL 1.2.9 #42740
- Upgrade to Spring Integration 6.2.10 #42537
- Upgrade to Spring LDAP 3.2.7 #42538
- Upgrade to Spring Pulsar 1.0.11 #42539
- Upgrade to Spring RESTDocs 3.0.2 #42741
- Upgrade to Spring Retry 2.0.10 #42540
- Upgrade to Spring Security 6.2.7 #42541
- Upgrade to Spring Session 3.2.6 #42542
- Upgrade to Tomcat 10.1.31 #42623
❤️ Contributors
Thank you to all the contributors who worked on this release:
@IMWoo94, @arefbehboudi, @jeonghyeon00, @ngocnhan-tran1996, @nosan, and @quaff
v3.4.0-M3
⭐ New Features
- Allow additional interfaces to be defined on AssertableApplicationContext and ApplicationContextRunners #42369
- Add spring.jms.listener.max-messages-per-task property for configuring max messages per task #42341
- Support
@DependsOn
,@Description
,@Fallback
,@Lazy
,@Primary
, and@Role
on@ConfigurationProperties
beans #42289 - Add Pulsar container factory customizers #42182
- Use
@EnableConfigurationProperties
to define the MessageSourceProperties bean #42181 - Add OpenTelemetry Logging service connection support from LgtmStackContainer and Docker Compose #42174
- Add transport selection to OtlpLoggingConnectionDetails #42171
- Add Graylog Extended Log Format (GELF) for structured logging #42158
- Add consistent scope support ConfigurationProperties beans #42073
- Apply spring.pulsar.consumer.subscription.name to auto-configured Pulsar listener container #42067
- Add support for configuring Pulsar listener container concurrency #42062
- Add support for configuring Pulsar client IO and listener threads #42052
- Add support for Log4j2's MultiFormatStringBuilderFormattable in structured logging #42034
- Use early static registration of EventPublishingContextWrapper in tests #42005
- Add configuration support for ExponentialHistogram in OTLP Registry #41837
- Support testcontainers-redis #41450
- Support Otlp Tracing's GRPC port from service connections #41333
- Add service connection from Opentelemetry Collector for Logging #41324
- Add auto-configuration for OTLP gRPC format when using tracing #41213
- Add a configuration property for Spring Data Web's serialization mode #39797
- Reinstate support for auto-configuring an embedded ActiveMQ broker #38404
- Enable graceful shutdown by default #37495
- Allow the configuration of active profiles in SpringApplication.Augmented #36660
- Reduce the need for
@AutoConfigureTestDatabase
(replace=NONE) when using a test-provided database #35253 - Remove setting BP_NATIVE_IMAGE environment variable when building images #32884
- Provide support for deprecated auto-configuration classes #14860
🐞 Bug Fixes
- management.health.db.ignore-routing-datasources=true has no effect when an AbstractRoutingDataSource has been wrapped #42323
- Missing details in OAuth2ClientProperties validation error message #42280
- FileNotFoundException from unused mis-configured SSL bundles #42170
- ZipkinHttpClientSender fails with "Failed to introspect Class" when spring-web is not on the classpath #42160
@RestartScope
can cause 'Recursive update' exceptions when used with container beans #42108- JarLauncher fails to load large jar files #42080
- PropertiesMigrationListener wrongly reports property as deprecated when has group #42072
- Using an empty string MongoDB 'replica-set-name' property will result in ClusterType=REPLICA_SET #42060
- Binding spring.main.* properties doesn't work in a native image #42038
- Default Logback config uses deprecated "converterClass" attribute #42008
- Health endpoint additional paths are not available by default when Spring Security is used #40962
- Application yaml file is not processed after spring boot migration #35403
📔 Documentation
- Document that spring.jmx.enabled is not intended for third-party libraries #42286
- Update link to Log4j2 system properties #42264
- Links to GraphQL in the reference guide redirect to the root instead of specific sections #42209
- Syntax error in "Receive a message reactively section" of the reference guide #42201
- Deprecation reason for the autotime enabled, percentiles, and percentiles-historgram properties is confusing #42194
- Replace RFC 7807 by RFC 9457 in property documentation #42191
- Document that configuration property binding to a Kotlin value class with a default is not supported #42177
- Update documentation to reflect new no handler found exception behavior #42168
- Polish configuration property reference #42166
- Improve docker without buildpacks documentation #42114
- Fix StatsD link typo on Metrics documentation page #42113
- Remove link to “Converting a Spring Boot JAR Application to a WAR” as the guide is no longer available #42112
- Improve documentation in "Command-line Completion" #42104
- Kotlin code examples are missing from the Testing section #42096
- Fix incorrect command in Docker configuration for Colima #42083
- Add tip to correlation IDs documentation referencing spring.reactor.context-propagation=auto #42054
- Gradle Plugin AOT documentation has sample error #42051
- Add documentation for configuring OpenTelemetry SDK logs #41825
🔨 Dependency Upgrades
- Upgrade to Artemis 2.37.0 #42213
- Upgrade to Byte Buddy 1.15.1 #42215
- Upgrade to Commons Lang3 3.17.0 #42216
- Upgrade to Elasticsearch Client 8.15.1 #42217
- Upgrade to Flyway 10.18.0 #42295
- Upgrade to Groovy 4.0.23 #42296
- Upgrade to Hibernate 6.6.1.Final #42349
- Upgrade to HttpCore5 5.3 #42297
- Upgrade to Infinispan 15.0.8.Final #42219
- Upgrade to Jakarta Servlet JSP JSTL 3.0.2 #42220
- Upgrade to JBoss Logging 3.6.1.Final #42221
- Upgrade to Jedis 5.1.5 #42222
- Upgrade to Jetty 12.0.13 #42224
- Upgrade to Jetty Reactive HTTPClient 4.0.7 #42223
- Upgrade to Lettuce 6.4.0.RELEASE #42225
- Upgrade to Liquibase 4.29.2 #42226
- Upgrade to Log4j2 2.24.0 #42227
- Upgrade to Logback 1.5.8 [#42228](https://github.com/spring-projects/spring-...
v3.3.4
🐞 Bug Fixes
- management.health.db.ignore-routing-datasources=true has no effect when an AbstractRoutingDataSource has been wrapped #42322
- Missing details in OAuth2ClientProperties validation error message #42279
- FileNotFoundException from unused mis-configured SSL bundles #42169
- ZipkinHttpClientSender fails with "Failed to introspect Class" when spring-web is not on the classpath #42161
@RestartScope
can cause 'Recursive update' exceptions when used with container beans #42107- JarLauncher fails to load large jar files #42079
- PropertiesMigrationListener wrongly reports property as deprecated when has group #42071
- Using an empty string MongoDB 'replica-set-name' property will result in ClusterType=REPLICA_SET #42059
- Default Logback config uses deprecated "converterClass" attribute #42006
📔 Documentation
- Document that spring.jmx.enabled is not intended for third-party libraries #42285
- Update link to Log4j2 system properties #42263
- Links to GraphQL in the reference guide redirect to the root instead of specific sections #42208
- Syntax error in "Receive a message reactively section" of the reference guide #42200
- Deprecation reason for the autotime enabled, percentiles, and percentiles-historgram properties is confusing #42193
- Replace RFC 7807 by RFC 9457 in property documentation #42190
- Document that configuration property binding to a Kotlin value class with a default is not supported #42176
- Update documentation to reflect new no handler found exception behavior #42167
- Polish configuration property reference #42165
- Remove link to “Converting a Spring Boot JAR Application to a WAR” as the guide is no longer available #42111
- Fix StatsD link typo on Metrics documentation page #42109
- Improve docker without buildpacks documentation #42106
- Improve documentation in "Command-line Completion" #42103
- Kotlin code examples are missing from the Testing section #42094
- Fix incorrect command in Docker configuration for Colima #42078
- Gradle Plugin AOT documentation has sample error #42046
🔨 Dependency Upgrades
- Upgrade to Groovy 4.0.23 #42292
- Upgrade to Hibernate 6.5.3.Final #42365
- Upgrade to Infinispan 15.0.8.Final #42253
- Upgrade to Jakarta Servlet JSP JSTL 3.0.2 #42254
- Upgrade to Jetty 12.0.13 #42256
- Upgrade to Jetty Reactive HTTPClient 4.0.7 #42255
- Upgrade to Logback 1.5.8 #42257
- Upgrade to Micrometer 1.13.4 #42129
- Upgrade to Micrometer Tracing 1.3.4 #42130
- Upgrade to MSSQL JDBC 12.6.4.jre11 #42258
- Upgrade to Native Build Tools Plugin 0.10.3 #42205
- Upgrade to Netty 4.1.113.Final #42259
- Upgrade to Postgresql 42.7.4 #42260
- Upgrade to R2DBC MariaDB 1.2.2 #42326
- Upgrade to Reactor Bom 2023.0.10 #42131
- Upgrade to SendGrid 4.10.3 #42366
- Upgrade to Spring Data Bom 2024.0.4 #42132
- Upgrade to Spring Framework 6.1.13 #42133
- Upgrade to Spring HATEOAS 2.3.3 #42282
- Upgrade to Spring Integration 6.3.4 #42134
- Upgrade to Spring Kafka 3.2.4 #42135
- Upgrade to Spring Pulsar 1.1.4 #42136
- Upgrade to Spring Retry 2.0.9 #42327
- Upgrade to Tomcat 10.1.30 #42346
- Upgrade to Undertow 2.3.17.Final #42303
- Upgrade to Zipkin Reporter 3.4.2 #42364
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Alchemik, @arefbehboudi, @einarpehrson, @izeye, @martinfrancois, @mushroom528, @nosan, and @quaff