Releases: spring-projects/spring-boot
Releases · spring-projects/spring-boot
v2.4.6
🪲 Bug Fixes
- Actuator doesn't use the CORS Configuration with default security configuration and Spring MVC #26611
- An active request delays Jetty's shutdown by 30 seconds #26607
- SmartInitializingSingleton beans are not working with lazy initialization #26605
- MVC and WebFlux metrics filters adversely affect the response when metrics recording fails #26595
- Mandatory locations with pattern fail with exception #26577
- Non-optional locations with wildcards fail if no files are contributed #26468
- ConfigurationProperties is retrieved via classpath scanning but does not indicate it should be indexed #26462
- The error message when a wildcard directory location does not match any files is misleading #26415
- StandardConfigDataLoader can import profile specific files in incorrect order #26400
- Resolvability and consumability of productionRuntimeClasspath are not aligned with runtimeClasspath #26364
- Empty value in spring.config.import causes NullPointerException #26342
@DataRedisTest
does not considerRedisReactiveAutoConfiguration
#26327- When a single bean causes a dependency cycle the failure analysis does not clearly illustrate the cycle #26322
- SpringBootConfiguration is retrieved via classpath scanning but does not indicate it should be indexed #26317
- Maven spring-boot:build-image ignores ZIP layout #26312
- bootBuildImage does not pick up targetCompatibility when it's configured after task is customised #26300
- Configuration item metadata ordering is not consistent #26275
@EnableAutoConfiguration
and@ImportAutoConfiguration
use different class loaders to find candidate configurations #26236- 'spring.web.resources.cache.use-last-modified=false' doesn't work with Spring MVC #26212
- Use of spring.profiles.include in a profile-specific document is not detected when it's configured as a YAML list #26205
- SpringApplication additional profiles and active profiles ordering changed with Spring Boot 2.4 #26189
- Profiles programmatically set on the Envionment are no longer merged with active profile properties #26151
- When classes in spring-core and spring-boot are loaded by different ClassLoaders, spring-boot cannot find its own config data location resolvers #26149
- Config data location does not exist error can be thrown if a profile-specific properties file is directly imported #26147
- Profile cannot easily be deduced from StandardConfigDataResource #25940
- ConfigDataResolvers cannot signal that they should be skipped #25894
- Remote devtools endpoint cannot be accessed if actuator and spring security are on the classpath #25868
- Additional profiles are processed too late when legacy processing is used #25817
- BufferingApplicationStartup fails with NoSuchElementException #25792
@Scheduled
method not triggered when spring.main.lazy-initialization=true #25315- Actuator doesn't use the CORS Configuration with default security configuration and Spring Webflux #24541
📔 Documentation
- Update Gradle docs to use module replacement rather than dependency substitution #26525
- Improve documentation of TestRestTemplate's fault tolerance #26521
- Document that the heap dump endpoint requires a HotSpot JVM #26473
- Fix wrong reference to Cassandra in DockerImageNames#couchbase #26405
- Move Working with the Code from CONTRIBUTING.adoc to the wiki #26333
- Fix typo in NamedContributors Javadoc #26324
- Document property names to enable reactive health indicators #26298
- Documentation has wrong key for DataSourceHealthIndicator #26282
- Align documentation with main default branch name #26256
- Align Maven version in system requirements with what is actually tested #26210
- Document that MeterFilters are only applied to the Spring-managed MeterRegistry #26185
- Use new update site for Spring Java Format's Eclipse plugin #26171
- spring.profiles.include has outdated sourceType in configuration metadata #26163
- Enhance multiple entity manager factories online documentation #26159
- Include spring.profiles.group in additional-spring-configuration-metadata.json #26127
- Suggest enabling the default servlet when using Jersey as a filter #25733
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 5.16.2 #26496
- Upgrade to Dropwizard Metrics 4.1.21 #26497
- Upgrade to Ehcache 2.10.9.2 #26498
- Upgrade to Ehcache3 3.9.3 #26499
- Upgrade to Hibernate 5.4.31.Final #26500
- Upgrade to Infinispan 11.0.11.Final #26501
- Upgrade to Janino 3.1.4 #26502
- Upgrade to JBoss Transaction SPI 7.6.1.Final #26503
- Upgrade to Jetty 9.4.41.v20210516 #26601
- Upgrade to Jetty Reactive HTTPClient 1.1.8 #26504
- Upgrade to Johnzon 1.2.11 #26506
- Upgrade to jOOQ 3.14.9 #26507
- Upgrade to Json-smart 2.3.1 #26508
- Upgrade to JUnit Jupiter 5.7.2 #26509
- Upgrade to Kafka 2.6.2 #24247
- Upgrade to Lettuce 6.0.5.RELEASE #26510
- Upgrade to MariaDB 2.7.3 #26511
- Upgrade to Micrometer 1.6.7 #26430
- Upgrade to MySQL 8.0.25 #26512
- Upgrade to Neo4j Java Driver 4.1.2 #26513
- Upgrade to Netty 4.1.65.Final #26602
- Upgrade to Netty tcNative 2.0.39.Final #26514
- Upgrade to Pooled JMS 1.2.2 #26515
- Upgrade to Postgresql 42.2.20 #26516
- Upgrade to R2DBC Bom Arabba-SR10 #26517
- Upgrade to Reactor 2020.0.7 #26358
- Upgrade to Spring AMQP 2.3.7 #26383
- Upgrade to Spring Batch 4.3.3 [#26391](https://...
v2.3.11.RELEASE
🪲 Bug Fixes
- SmartInitializingSingleton beans are not working with lazy initialization #26470
- ConfigurationProperties is retrieved via classpath scanning but does not indicate it should be indexed #26459
@DataRedisTest
does not considerRedisReactiveAutoConfiguration
#26319- SpringBootConfiguration is retrieved via classpath scanning but does not indicate it should be indexed #26308
- bootBuildImage does not pick up targetCompatibility when it's configured after task is customised #26297
- When a single bean causes a dependency cycle the failure analysis does not clearly illustrate the cycle #26292
- When a single bean causes a dependency cycle the failure analysis does not clearly illustrate the cycle #26269
@EnableAutoConfiguration
and@ImportAutoConfiguration
use different class loaders to find candidate configurations #26234- Configuration item metadata ordering is not consistent #26230
- Maven spring-boot:build-image ignores ZIP layout #26216
- Resolvability and consumability of productionRuntimeClasspath are not aligned with runtimeClasspath #25798
- MVC and WebFlux metrics filters adversely affect the response when metrics recording fails #24151
- An active request delays Jetty's shutdown by 30 seconds #22689
- Actuator doesn't use the CORS Configuration with default security configuration and Spring MVC #11987
📔 Documentation
- Document that the heap dump endpoint requires a HotSpot JVM #26467
- Fix wrong reference to Cassandra in DockerImageNames#couchbase #26399
- Move Working with the Code from CONTRIBUTING.adoc to the wiki #26332
- Fix typo in NamedContributors Javadoc #26321
- Document property names to enable reactive health indicators #26279
- Documentation has wrong key for DataSourceHealthIndicator #26268
- Align documentation with main default branch name #26255
- Improve documentation of TestRestTemplate's fault tolerance #26227
- Align Maven version in system requirements with what is actually tested #26209
- Use new update site for Spring Java Format's Eclipse plugin #26167
- Update Gradle docs to use module replacement rather than dependency substitution #25944
- Document that MeterFilters are only applied to the Spring-managed MeterRegistry #25610
- Enhance multiple entity manager factories online documentation #14928
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 5.15.15 #26481
- Upgrade to Dropwizard Metrics 4.1.21 #26482
- Upgrade to Ehcache 2.10.9.2 #26483
- Upgrade to Hibernate 5.4.31.Final #26484
- Upgrade to Janino 3.1.4 #26485
- Upgrade to JBoss Transaction SPI 7.6.1.Final #26486
- Upgrade to Jetty 9.4.41.v20210516 #26597
- Upgrade to Jetty Reactive HTTPClient 1.1.8 #26487
- Upgrade to Johnzon 1.2.11 #26489
- Upgrade to Json-smart 2.3.1 #26598
- Upgrade to Micrometer 1.5.14 #26427
- Upgrade to MySQL 8.0.25 #26490
- Upgrade to Neo4j OGM 3.2.23 #26599
- Upgrade to Netty 4.1.65.Final #26600
- Upgrade to Netty tcNative 2.0.39.Final #26492
- Upgrade to Postgresql 42.2.20 #26493
- Upgrade to R2DBC Bom Arabba-SR10 #26494
- Upgrade to Reactor Dysprosium-SR20 #26424
- Upgrade to Spring AMQP 2.2.17 #26428
- Upgrade to Spring Batch 4.2.7 #26426
- Upgrade to Spring Framework 5.2.15 #26425
- Upgrade to Spring Kafka 2.5.13 #26429
- Upgrade to Spring LDAP 2.3.4.RELEASE #25528
- Upgrade to Tomcat 9.0.46 #26495
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v2.5.0-RC1
⭐ New Features
- Make ApplicationConversionService.getSharedInstance() unmodifiable #26088
@Document
should be considered when auto-configuring Spring Data Elasticsearch #26028- Support Gradle 7 and raise minimum supported version of Gradle 6.x to 6.8 #26026
- Provide auto-configuration for using Apache HttpClient 5 with WebClient #26004
- Automatically enable h2c when HTTP/2 is enabled without SSL #25856
- Add detection of Azure App Service to CloudPlatform #25829
- Ensure that database initialization has completed before R2DBC ConnectionFactory is used #25818
- Add configuration properties for configuring Tomcat's keep-alive timeout and max keep-alive requests #25815
- Allow an R2DBC ConnectionFactoryBuilder to be derived from an existing ConnectionFactory #25788
- Move classes for DataSource initialization dependency detection into their own package #25757
- Move basic script-based DataSource initializer from spring-boot-autoconfigure to spring-boot #25756
- Add environment prefix support to SpringApplicationBuilder #25740
- Provide health for an AbstractRoutingDataSource's resolved targets #25708
- Support optional: prefix for DDL and DML script locations #25487
- Use SimpleDriverDataSource when creating an initialization-specific DataSource #25390
- Expose Spring Integration global properties #25377
- Separate auto-configuration of script-based DataSource initialization from the auto-configuration of the DataSource #25323
- Develop custom ApplicationEnvironment implementation #24892
- Allow Spring Security's RSA key converters to be used when binding configuration properties #24891
- Add R2DBC support for schema.sql and data.sql #24741
- Allow spring.config.location directories to end with system-dependent separators #24490
- Provide a constant for graceful shutdown's smart lifecycle phase #24255
- Raise the minimum supported version of Gradle to 6.x #24225
- Provide a request attribute for storing exception info for tagging purposes #24028
- Auto-configure Mongo metrics #23990
- Record WebFlux server metrics for client disconnection #23606
- Add property to control the auto-configuration of a DataSource for an embedded database #23412
- Support
@Timed
annotation for WebFlux #23112 - Log ApplicationAvailability state changes #23098
- Expose Spring Data Repository metrics #22217
- Deprecate environment fallback for Mustache variable resolution #21045
- Configure SameSite attribute on session Cookies for Spring WebFlux #20970
- Short circuit checking of source already covered by ConfigurationPropertySources #17400
- Configure memory leak detection for Netty #14338
- Add Quartz actuator endpoint #10364
- Allow RabbitMQ ConnectionFactory to be customized (to set SaslConfig or enable NIO for example) #6719
🪲 Bug Fixes
- Profile cannot easily be deduced from StandardConfigDataResource #26139
- CloudPlatform.isActive can return true when spring.main.cloud-platform is set to NONE #26125
- Converters added directly to the bean factory's conversion service are not used for property binding when
@ConfigurationPropertiesBinding
bean is defined #26089 @Persistent
should not be considered when scanning for MongoDB entities #26032- Elasticsearch auto-configuration does not configure default converters #26030
- Gradle bootBuildImage does not preserve file permissions for resources #25938
- Configuration of ciphers is ignored for TCP with Reactory Netty #25936
- Keystore.load calls do not close InputStream #25923
- ConfigData imports cannot override profile specific imports #25887
- java.util.concurrent.RejectedExecutionException when shutting down Spring Boot app with Cassandra #25870
- When running with a context hierarchy, PrimaryDefaultValidatorPostProcessor causes a NoSuchBeanDefinitionException when a Validator is in an ancestor context #25864
- Unlike Micrometer's PushMeterRegistry, PrometheusPushGatewayManager stops publishing when an UnknownHostException is caught #25845
- spring-boot:build-image hangs when classifier is specified in configuration #25811
- During incremental compilation, configuration property metadata isn't generated for classes annotated with
@ControllerEndpoint
,@JmxEndpoint
,@RestControllerEndpoint
,@ServletEndpoint
, or@WebEndpoint
#25799 - Bootstrapper interface provides no clean upgrade path due to deprecated method #25790
- DefaultErrorWebExceptionHandler does not remove MetaType.ALL when a quality values is present #25787
- AbstractWebMvcEndpointHandlerMapping does not chain InvalidEndpointRequestExceptions #25785
- Unpacked jars are not deleted when the JVM exits #25775
- TldPatterns are not aligned with Tomcat #25771
- Actuator's rest template metrics customization prevents RootUriRequestExpectationManager.forRestTemplate from identifying that the template has had a root URI configured #25769
- URI tag of http.client.requests metric ignores REST template's root URI #25767
- Checks 'javax.persistence.schema-generation.database.action' when determining DDL auto default #25755
- spring-boot:build-image hangs if finalName is specified in Spring Boot plugin configuration #25701
- Without AspectJ, using
@EnableGlobalMethodSecurity
causes JDK proxies to be used by default #25413 - Resetting the log level of a Log4j2 Logger wrongly flags its LoggerConfiguration as explicitly configured #24298
📔 Documentation
- Fix typo in "Initialize a Database using basic SQL scripts" #26137
- Avoid some redirects in docs #26129
- Document limitations of using deferred JPA bootstrap and early access to JPA #26111
- Mention special behavior of spring.config.additional-location in docs #26105
- Provide package info for org.springframework.boot.test.autoconfigure.data.cassandra #26082
- Add reference to IBM MQ Spring Boot starter [#26041](https://github.com/spring-proj...
v2.4.5
🪲 Bug Fixes
- CloudPlatform.isActive can return true when spring.main.cloud-platform is set to NONE #26124
- Elasticsearch auto-configuration does not configure default converters #26029
- Gradle bootBuildImage does not preserve file permissions for resources #25937
- Keystore.load calls do not close InputStream #25922
- Configuration of ciphers is ignored for TCP with Reactory Netty #25913
- java.util.concurrent.RejectedExecutionException when shutting down Spring Boot app with Cassandra #25869
- When running with a context hierarchy, PrimaryDefaultValidatorPostProcessor causes a NoSuchBeanDefinitionException when a Validator is in an ancestor context #25863
- Unlike Micrometer's PushMeterRegistry, PrometheusPushGatewayManager stops publishing when an UnknownHostException is caught #25844
@Persistent
should not be considered when scanning for MongoDB entities #25797- spring-boot:build-image hangs when classifier is specified in configuration #25789
- DefaultErrorWebExceptionHandler does not remove MetaType.ALL when a quality values is present #25786
- AbstractWebMvcEndpointHandlerMapping does not chain InvalidEndpointRequestExceptions #25784
- Unpacked jars are not deleted when the JVM exits #25774
- TldPatterns are not aligned with Tomcat #25770
- Actuator's rest template metrics customization prevents RootUriRequestExpectationManager.forRestTemplate from identifying that the template has had a root URI configured #25768
- ConfigData imports cannot override profile specific imports #25766
- URI tag of http.client.requests metric ignores REST template's root URI #25765
- Checks 'javax.persistence.schema-generation.database.action' when determining DDL auto default #25754
- Bootstrapper interface provides no clean upgrade path due to deprecated method #25735
- spring-boot:build-image hangs if finalName is specified in Spring Boot plugin configuration #25700
- During incremental compilation, configuration property metadata isn't generated for classes annotated with
@ControllerEndpoint
,@JmxEndpoint
,@RestControllerEndpoint
,@ServletEndpoint
, or@WebEndpoint
#25388
📔 Documentation
- Document limitations of using deferred JPA bootstrap and early access to JPA #26110
- Mention special behavior of spring.config.additional-location in docs #26085
- Provide package info for org.springframework.boot.test.autoconfigure.data.cassandra #26081
- Document more prominently that DataJpaTest sets spring.jpa.show-sql=true by default #26024
- Document how to provide runtime JVM arguments when building an image #25992
- Javadoc link for non-public autoconfiguration classes does not exist #25987
- Fix typos in docs #25947
- Use main as the branch name in info endpoint example #25866
- Document how to configure Maven's Failsafe plugin when not using spring-boot-starter-parent #25832
- Update deprecation warnings with for removal targets #25825
🔨 Dependency Upgrades
- Upgrade to AppEngine SDK 1.9.88 #26006
- Upgrade to Dropwizard Metrics 4.1.19 #26007
- Upgrade to Glassfish JAXB 2.3.4 #26100
- Upgrade to Hibernate 5.4.30.Final #26008
- Upgrade to HSQLDB 2.5.2 #26101
- Upgrade to Jakarta Mail 1.6.7 #26009
- Upgrade to Jaybird 3.0.11 #26010
- Upgrade to Jetty 9.4.39.v20210325 #26012
- Upgrade to Jetty Reactive HTTPClient 1.1.7 #26011
- Upgrade to Kotlin 1.4.32 #26013
- Upgrade to Lettuce 6.0.4.RELEASE #26102
- Upgrade to Lombok 1.18.20 #26014
- Upgrade to Micrometer 1.6.6 #26103
- Upgrade to MIMEPull 1.9.14 #26015
- Upgrade to Netty 4.1.63.Final #26016
- Upgrade to Netty tcNative 2.0.38.Final #26017
- Upgrade to Reactor 2020.0.6 #25908
- Upgrade to SAAJ Impl 1.5.3 #26104
- Upgrade to Spring Data 2020.0.8 #25910
- Upgrade to Spring Framework 5.3.6 #25909
- Upgrade to Spring Integration 5.4.6 #26113
- Upgrade to Spring Security 5.4.6 #25911
- Upgrade to Spring Session 2020.0.4 #25912
- Upgrade to Sun Mail 1.6.7 #26018
- Upgrade to Tomcat 9.0.45 #26019
- Upgrade to Undertow 2.2.7.Final #26020
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v2.3.10.RELEASE
🪲 Bug Fixes
- Gradle bootBuildImage does not preserve file permissions for resources #25915
- Keystore.load calls do not close InputStream #25884
- Unlike Micrometer's PushMeterRegistry, PrometheusPushGatewayManager stops publishing when an UnknownHostException is caught #25804
- When running with a context hierarchy, PrimaryDefaultValidatorPostProcessor causes a NoSuchBeanDefinitionException when a Validator is in an ancestor context #25800
- java.util.concurrent.RejectedExecutionException is logged when shutting down Spring Boot app with Cassandra #25796
- DefaultErrorWebExceptionHandler does not remove MetaType.ALL when a quality values is present #25778
- Unpacked jars are not deleted when the JVM exits #25773
- TldPatterns are not aligned with Tomcat #25764
- URI tag of http.client.requests metric ignores REST template's root URI #25744
- Actuator's rest template metrics customization prevents RootUriRequestExpectationManager.forRestTemplate from identifying that the template has had a root URI configured #25741
- spring-boot:build-image hangs when classifier is specified in configuration #25736
- An EnvironmentAware FailureAnalyzer may be configured with the wrong Environment #25691
- AbstractWebMvcEndpointHandlerMapping does not chain InvalidEndpointRequestExceptions #25642
- When multiple schema or data script locations are configured and no resources can be found at a location, you can't tell which location is faulty #25620
- spring-boot:build-image hangs if finalName is specified in Spring Boot plugin configuration #25590
- EmbeddedDatabaseConnection#h2 should not specify a host name #25560
- RSocket's EmbeddedServerAutoConfiguration does not back off if spring-web is absent #25551
- Incorrect ConfigurationMetadataRepository when loaded from json files containing properties of the same group #25507
- Layertools may extract entries outside of the destination path #25505
- Default fork value for spring-boot:stop is not consistent #25472
- CloudPlatform.isActive can return true when spring.main.cloud-platform is set to NONE #25455
@ConfigurationProperties
class's default values are not visible in the Errors instance passed to Validator.validate(Object target, Errors errors) #25356- Application fails to start when using Actuator and Jersey configured as a Filter #25262
- javax.persistence.schema-generation.database.action is ignored when checking if default DDL auto setting should be applied #25129
- Elasticsearch auto-configuration does not configure default converters #25087
📔 Documentation
- Javadoc link for non-public autoconfiguration classes does not exist #25948
- Use main as the branch name in info endpoint example #25865
- Document more prominently that DataJpaTest sets spring.jpa.show-sql=true by default #25843
- Update deprecation warnings with for removal targets #25808
- Description of management.metrics.export.influx.db is wrong #25723
- Document how to configure Maven's Failsafe plugin when not using spring-boot-starter-parent #25621
- Fix typos in README #25597
- Highlight link to Actuator API docs in the reference docs #25486
- Correct javadoc for ON_PARAM to accurately describe its behavior #25480
- Fix wording error in build-info goal description #25382
- Improve documentation of Mockito test execution listeners #25375
- Polish HTTP client metrics documentation wording #25353
- Document limitations of using deferred JPA bootstrap and early access to JPA #24027
- Document how to provide runtime JVM arguments when building an image #21478
🔨 Dependency Upgrades
- Upgrade to AppEngine SDK 1.9.88 #25953
- Upgrade to Byte Buddy 1.10.22 #25954
- Upgrade to Dropwizard Metrics 4.1.19 #25955
- Upgrade to Flatten Maven Plugin 1.2.7 #26094
- Upgrade to Glassfish JAXB 2.3.4 #26095
- Upgrade to Hibernate 5.4.30.Final #25956
- Upgrade to HSQLDB 2.5.2 #26096
- Upgrade to Jakarta Mail 1.6.7 #25957
- Upgrade to Jaybird 3.0.11 #25958
- Upgrade to Jetty 9.4.39.v20210325 #25960
- Upgrade to Jetty Reactive HTTPClient 1.1.7 #25959
- Upgrade to Lettuce 5.3.7.RELEASE #26097
- Upgrade to Lombok 1.18.20 #25961
- Upgrade to Maven Invoker Plugin 3.2.2 #25962
- Upgrade to Micrometer 1.5.13 #26098
- Upgrade to MIMEPull 1.9.14 #25964
- Upgrade to MongoDB 4.0.6 #25965
- Upgrade to Neo4j OGM 3.2.21 #25966
- Upgrade to Netty 4.1.63.Final #25967
- Upgrade to Netty tcNative 2.0.38.Final #25968
- Upgrade to OAuth2 OIDC SDK 7.1.3 #25969
- Upgrade to Postgresql 42.2.19 #25970
- Upgrade to R2DBC Bom Arabba-SR9 #25971
- Upgrade to Reactor Dysprosium-SR19 #25902
- Upgrade to RSocket 1.0.4 #25972
- Upgrade to SAAJ Impl 1.5.3 #26099
- Upgrade to Spring AMQP 2.2.16.RELEASE #25973
- Upgrade to Spring Batch 4.2.6.RELEASE #25974
- Upgrade to Spring Data Neumann-SR9 #25905
- Upgrade to Spring Framework 5.2.14 #25903
- Upgrade to Spring HATEOAS 1.1.5 #25904
- Upgrade to Spring Integration 5.3.7 #26112
- Upgrade to Spring Kafka 2.5.12.RELEASE #25975
- Upgrade to Spring Security 5.3.9 #25906
- Upgrade to Spring Session Dragonfruit-SR3 #25907
- Upgrade to Sun Mail 1.6.7 #25976
- Upgrade to Tomcat 9.0.45 #25977
- Upgrade to Undertow 2.1.7.Final [#25978](https://github.com/spring-projects/spring-boot/issues...
v2.5.0-M3
⭐ New Features
- Allow actuator endpoints to inject an enum indicating what to produce #25738
- Support sending metrics to InfluxDB v2 #25721
- Support Maven's reproducible build feature for war repackaging #25571
- Support OpenMetrics text format in Prometheus Actuator endpoint #25564
- Replace spring.datasource.initialization-order with a JPA-specific property #25559
- Move R2DBC ConnectionFactoryBuilder and associated classes into spring-boot #25492
- Deprecate support for checking Flyway locations #25488
- Provide configuration properties for Flyway's Vault and Conjur support #25456
- Allow PersistenceUnitPostProcessor to be configured on EntityManagerFactoryBuilder #25443
- Sanitize the value of url and urls keys in the same way that the values of uri and uris keys are sanitized #25387
- Support defining additional keys to sanitize for actuator endpoints #25384
- Add InfluxDB customizer hook point #25319
- Allow JMX endpoint ObjectNames to be customized by providing an EndpointObjectNameFactory bean #25317
- Deprecate our Gradle plugin's integration with Gradle's maven plugin #25267
- Register logging system's shutdown hook by default #25046
- Allow configuring Cassandra configuration file #24065
- Support building an image when using war packaging with Gradle #23825
- Support building an image when using war packaging with Maven #23823
- Leave jar and war tasks enabled by default and differentiate their output locations from those of bootJar and bootWar by configuring them with a classifier #23797
- Add bindings option for image building #23518
- Consider a generic way of indicating database setup #17619
- Add prefix support for environment variables #3450
🪲 Bug Fixes
- JooqExceptionTranslator passes null exception to jOOQ when SQLException cannot be translated #25718
- When multiple schema or data script locations are configured and no resources can be found at a location, you can't tell which location is faulty #25693
- When creating an initialization-specific DataSource, Flyway, Liquibase and our script-based auto-configuration all incorrectly assume that the primary DataSource will always have been derived from DataSourceProperties #25643
@ConfigurationProperties
class's default values are not visible in the Errors instance passed to Validator.validate(Object target, Errors errors) #25615- Including spring-boot-devtools causes package-private getter on proxied class to return null #25585
- Start up failure when creating an Aspect targeted at ServerHttpSecurity with devtools on the classpath. #25584
- EmbeddedDatabaseConnection#h2 should not specify a host name #25570
- RSocket's EmbeddedServerAutoConfiguration does not back off if spring-web is absent #25556
- Bootstrapper's intitialize method should be named initialize #25517
- Incorrect ConfigurationMetadataRepository when loaded from json files containing properties of the same group #25516
- Layertools may extract entries outside of the destination path #25509
- SpringApplication can replace existing default property source #25495
- In Spring Boot 2.4
@EntityScan
does not support property substitution #25491 - Default fork value for spring-boot:stop is not consistent #25484
- Application fails to start when using Actuator and Jersey configured as a Filter #25450
- Image is not built when a buildpack is used #25378
- The auto-configured WebFluxConfigurer is unordered so it may override customizations made in a user's WebFluxConfigurer #25302
📔 Documentation
- Description of management.metrics.export.influx.db is wrong #25725
- Document Java 16 support #25645
- Document DataSource implementations supported by DataSourceBuilder #25644
- Correct javadoc for ON_PARAM to accurately describe its behavior #25604
- Fix typos in README #25601
- Improve documentation of Mockito test execution listeners #25514
- Highlight link to Actuator API docs in the reference docs #25511
- Warn that multi-document property files cannot be loaded by using
@PropertySource
or@TestPropertySource
#25502 - Document how to import a Docker secret as a configtree #25500
- Add note concerning application yml and properties file precedence #25464
- Fix property name in gradle plugin documentation #25463
- Fix grammatical error in documentation #25432
- Fix wording error in build-info goal description #25386
- Polish HTTP client metrics documentation wording #25372
- Polish README #24981
🔨 Dependency Upgrades
- Upgrade to AppEngine SDK 1.9.87 #25654
- Upgrade to Byte Buddy 1.10.22 #25655
- Upgrade to Commons Lang3 3.12.0 #25656
- Upgrade to Couchbase Client 3.1.3 #25657
- Upgrade to Dropwizard Metrics 4.1.18 #25658
- Upgrade to Ehcache3 3.9.2 #25659
- Upgrade to Flyway 7.7.0 #25660
- Upgrade to Hazelcast 4.1.2 #25661
- Upgrade to Hibernate 5.4.29.Final #25662
- Upgrade to HikariCP 4.0.3 #25663
- Upgrade to Infinispan 12.0.2.Final #25664
- Upgrade to Jackson Bom 2.12.2 #25665
- Upgrade to Jakarta Mail 1.6.6 #25666
- Upgrade to Jedis 3.5.2 #25667
- Upgrade to Jetty 9.4.38.v20210224 #25462
- Upgrade to Jetty Reactive HTTPClient 1.1.6 #25668
- Upgrade to jOOQ 3.14.8 #25669
- Upgrade to Kotlin 1.4.31 #25670
- Upgrade to Kotlin Coroutines 1.4.3 #25671
- Upgrade to Lettuce 6.1.0.RC1 #25722
- Upgrade to Log4j2 2.14.1 [#25672](https://github.com/...
v2.4.4
🪲 Bug Fixes
- JooqExceptionTranslator passes null exception to jOOQ when SQLException cannot be translated #25717
- When multiple schema or data script locations are configured and no resources can be found at a location, you can't tell which location is faulty #25692
@ConfigurationProperties
class's default values are not visible in the Errors instance passed to Validator.validate(Object target, Errors errors) #25614- EmbeddedDatabaseConnection#h2 should not specify a host name #25569
- RSocket's EmbeddedServerAutoConfiguration does not back off if spring-web is absent #25555
- Incorrect ConfigurationMetadataRepository when loaded from json files containing properties of the same group #25515
- Layertools may extract entries outside of the destination path #25508
- Default fork value for spring-boot:stop is not consistent #25483
- Application fails to start when using Actuator and Jersey configured as a Filter #25449
- In Spring Boot 2.4
@EntityScan
does not support property substitution #25436 - SpringApplication can replace existing default property source #25408
- Bootstrapper's intitialize method should be named initialize #25400
- Including spring-boot-devtools causes package-private getter on proxied class to return null #25367
- Start up failure when creating an Aspect targeted at ServerHttpSecurity with devtools on the classpath. #19010
📔 Documentation
- Description of management.metrics.export.influx.db is wrong #25724
- Correct javadoc for ON_PARAM to accurately describe its behavior #25603
- Fix typos in README #25600
- Document Java 16 support #25527
- Improve documentation of Mockito test execution listeners #25513
- Highlight link to Actuator API docs in the reference docs #25510
- Fix property name in gradle plugin documentation #25454
- Fix grammatical error in documentation #25411
- Fix wording error in build-info goal description #25385
- Polish HTTP client metrics documentation wording #25371
- Document DataSource implementations supported by DataSourceBuilder #25333
- Add note concerning application yml and properties file precedence #25300
- Document how to import a Docker secret as a configtree #25095
- Warn that multi-document property files cannot be loaded by using
@PropertySource
or@TestPropertySource
#24945
🔨 Dependency Upgrades
- Upgrade to AppEngine SDK 1.9.87 #25623
- Upgrade to Byte Buddy 1.10.22 #25624
- Upgrade to Dropwizard Metrics 4.1.18 #25625
- Upgrade to Ehcache3 3.9.2 #25626
- Upgrade to Hibernate 5.4.29.Final #25627
- Upgrade to Infinispan 11.0.10.Final #25628
- Upgrade to Jakarta Mail 1.6.6 #25629
- Upgrade to Jetty 9.4.38.v20210224 #25461
- Upgrade to Jetty Reactive HTTPClient 1.1.6 #25630
- Upgrade to jOOQ 3.14.8 #25631
- Upgrade to Kotlin 1.4.31 #25632
- Upgrade to Kotlin Coroutines 1.4.3 #25719
- Upgrade to Lettuce 6.0.3.RELEASE #25720
- Upgrade to Maven Invoker Plugin 3.2.2 #25633
- Upgrade to Micrometer 1.6.5 #25543
- Upgrade to MongoDB 4.1.2 #25634
- Upgrade to Netty 4.1.60.Final #25635
- Upgrade to OAuth2 OIDC SDK 8.36.1 #25636
- Upgrade to Postgresql 42.2.19 #25637
- Upgrade to R2DBC Bom Arabba-SR9 #25638
- Upgrade to Reactor 2020.0.5 #25539
- Upgrade to Spring AMQP 2.3.6 #25647
- Upgrade to Spring Batch 4.3.2 #25579
- Upgrade to Spring Data 2020.0.6 #25547
- Upgrade to Spring Framework 5.3.5 #25541
- Upgrade to Spring HATEOAS 1.2.5 #25545
- Upgrade to Spring Integration 5.4.5 #25646
- Upgrade to Spring Kafka 2.6.7 #25578
- Upgrade to Sun Mail 1.6.6 #25639
- Upgrade to Tomcat 9.0.44 #25640
- Upgrade to Undertow 2.2.5.Final #25641
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v2.5.0-M2
⭐ New Features
- Group JDBC-related batch properties beneath spring.batch.jdbc #25316
- Auto-configure javax.jms.ExceptionListener #25278
- Align default values for Cassandra's throttling properties #25149
- Make Scheduler consistent for Spring Integration #25109
- Use SimpleDriverDataSource when creating a Liquibase-specific DataSource #24944
- Support Jetty 10.0.x #24886
- Allow the configprops endpoint to return properties with a particular prefix #24718
- Remove message attribute instead of blanking it when Include.MESSAGE is not set #24712
- Provide a property to disable the
/actuator
discovery page #24693 - Add support for creating layered war files with Maven #22821
- Add support for creating layered war files with Gradle #22195
- Add buildpack option for image building #21722
🪲 Bug Fixes
- DataSourceBuilder no longer invokes setUser on org.postgresql.ds.PGSimpleDataSource #25364
- Remote application from devtools does not work with security filter in WebSecurityConfigurerAdapter #25351
- No error message when using spring.profiles.include in a profile-specific config file if it's written as a YAML list #25348
- BeanCreationException thrown creating 'neo4jMappingContext' with Spring Boot 2.4.2 when combined with MongoDB #25347
- DataSourceBuilder no longer invokes setUser on org.h2.jdbcx.JdbcDataSource #25342
- DatabaseDriver does not detect Amazon Redshift correctly #25313
- Migrations performed by Flyway or Liquibase may not have completed before the database is accessed via jOOQ #25311
- Dependency management for Hibernate's new hibernate-micrometer module is missing #25306
- Asynchronous deserialization performed by Hazelcast may fail due to the wrong ClassLoader being used #25296
- Since 2.4.2, the Logback charset defaults to UTF-8 rather than the OS's default #25259
- Missing RabbitMQ metrics if bean is defined as a ConnectionFactory #25186
- Illegal reflective access by org.springframework.cglib.core.ReflectUtils #25184
- A ContextRefreshedEvent from a child context may result in deadlock when using JPA deferred repositories #25175
- Fix MariaDB driver product name #25173
- Gradle plugin does not include transitive project dependencies into application layer #25168
- initQueryTimeout and ildeTimeout defaults are not aligned with Cassandra defaults #25164
- TestRestTemplate exchange triggers UnsupportedOperationException in RequestEntity #25106
- WebMvcTest and WebFluxTest ignore user-provided Thymeleaf IDialect beans #25073
- Collection conversion doesn't work for configtree properties #25060
- ConfigData with Option.IGNORE_IMPORTS can cause NPE #25031
- spring.config.activate.on-profile cannot be used in profile specific file #25030
- ConfigDataLoaders cannot have a DeferredLogFactory injected preventing their subcomponents from logging accurately #24996
- spring-boot-dependencies still contains dependency management for spring-boot-starter-data-solr #24977
- DataSource initialization does not see the result of wrapping or proxying a DataSource via a BeanPostProcessor #23736
- Unexpected constructor-based initialization of
@ConfigurationProperties
leads to inconsistent behavior #16038 - Circular reference in JPA, DataSource, initializers #13042
📔 Documentation
- Remove YAML shortcomings section as it no longer applies #25346
- Update the Gradle plugin documentation to recommend the maven-publish plugin over the maven plugin #25308
- Document Kafka Streams metrics support #25298
- Default values of integer properties in the application properties appendix are rendered as decimals #25177
- Clarify usage of BufferingApplicationStartup #25136
- Since 2.3.8 and 2.4.2, the documented index format does not match the implementation #25067
- Clarify when retaining . characters in property keys requires bracket notation to be used #25065
- Highlight that Duration and Period conversion is provided by the ApplicationConversionService and, by default, is not available for web conversion #25062
- Document logging.register-shutdown-hook and why you may want to enable it #25045
- bootRun project property command line example is incomplete #25043
- Document the need to use the launcher to be able to use application.* properties in a custom banner #25041
- Add some guidance to the reference documentation about diagnosing unexpected property values #25039
- Add reference to Ogham Spring Boot starters #24964
🔨 Dependency Upgrades
- Upgrade to Spring Data 2021.0.0-M4 #25004
- Upgrade to AppEngine SDK 1.9.86 #25228
- Upgrade to Artemis 2.17.0 #25324
- Upgrade to AssertJ 3.19.0 #25229
- Upgrade to Byte Buddy 1.10.20 #25230
- Upgrade to Caffeine 2.9.0 #25325
- Upgrade to Couchbase Client 3.1.2 #25231
- Upgrade to Elasticsearch 7.11.1 #25359
- Upgrade to Flyway 7.5.3 #25232
- Upgrade to FreeMarker 2.3.31 #25326
- Upgrade to Hibernate 5.4.28.Final #25233
- Upgrade to HikariCP 4.0.1 #25234
- Upgrade to HikariCP 4.0.2 #25327
- Upgrade to HtmlUnit 2.47.1 #25235
- Upgrade to Infinispan 12.0.1.Final #25328
- Upgrade to Janino 3.1.3 #25237
- Upgrade to Jedis 3.5.1 #25238
- Upgrade to Johnzon 1.2.10 #25239
- Upgrade to jOOQ 3.14.7 #25240
- Upgrade to JUnit 4.13.2 #25329
- Upgrade to JUnit Jupiter 5.7.1 #25241
- Upgrade to Kotlin 1.4.30 #25242
- Upgrade to Lettuce 6.1.0.M1 #25360
- Upgrade to ...
v2.4.3
🗒️ Noteworthy Changes
Nimbus JOSE JWT
In versions 5.4.4 and earlier, Spring Security 5.4.x depended on versions of oauth2-oidc-sdk
and nimbus-jose-jwt
that were not compatible with each other. This was corrected in Spring Security 5.4.5 by downgrading from nimbus-jose-jwt
9.x to 8.x. A similar change has been made to Spring Boot's dependency management in this release. If you were relying on nimbus-jose-jwt
9.x, you can restore the 9.x version using the nimbus-jose-jwt.version
property.
🪲 Bug Fixes
- DataSourceBuilder no longer invokes setUser on org.postgresql.ds.PGSimpleDataSource #25363
- DatabaseDriver does not detect Amazon Redshift correctly #25312
- Migrations performed by Flyway or Liquibase may not have completed before the database is accessed via jOOQ #25310
- No error message when using spring.profiles.include in a profile-specific config file if it's written as a YAML list #25309
- Dependency management for Hibernate's new hibernate-micrometer module is missing #25305
- DataSourceBuilder no longer invokes setUser on org.h2.jdbcx.JdbcDataSource #25263
- Missing RabbitMQ metrics if bean is defined as a ConnectionFactory #25185
- A ContextRefreshedEvent from a child context may result in deadlock when using JPA deferred repositories #25174
- Gradle plugin does not include transitive project dependencies into application layer #25163
- initQueryTimeout and ildeTimeout defaults are not aligned with Cassandra defaults #25150
- Remote application from devtools does not work with security filter in WebSecurityConfigurerAdapter #25147
- TestRestTemplate exchange triggers UnsupportedOperationException when using a UriTemplateRequestEntity #25097
- WebMvcTest and WebFluxTest ignore user-provided Thymeleaf IDialect beans #25072
- Managed versions of oauth2-oidc-sdk and nimbus-jose-jwt are incompatible #25070
- BeanCreationException thrown creating 'neo4jMappingContext' with Spring Boot 2.4.2 when combined with MongoDB #25069
- Collection conversion doesn't work for configtree properties #25057
- ConfigData with Option.IGNORE_IMPORTS can cause NPE #25029
- spring.config.activate.on-profile cannot be used in profile specific file #24990
- ConfigDataLoaders cannot have a DeferredLogFactory injected preventing their subcomponents from logging accurately #24988
- Spring Data Solr support is not flagged as deprecated #24943
- Since 2.4.2, the Logback charset defaults to UTF-8 rather than the OS's default #24894
- InvalidConfigDataPropertyException thrown when server processed ConfigData contains profiles #24890
- When spring.mvc.pathmatch.matching-strategy is set to path-pattern-parser, the error handling of a management server listening on a separate port is broken #24877
- mappings endpoint fails due to an NPE when spring.mvc.pathmatch.matching-strategy is set to path-pattern-parser #24874
- Failures when recording metrics in MetricsClientHttpRequestInterceptor may interfere with RestTemplate's main behaviour #24872
- Auto-configured DataSourceTransactionManager uses spring.dao.exceptiontranslation.enable rather than spring.dao.exceptiontranslation.enabled to control exception translation #24867
- Illegal reflective access by org.springframework.cglib.core.ReflectUtils #24857
- Configuration metadata for logging.charset.* has invalid reference for java.nio.charset.Charset #24851
- Asynchronous deserialization performed by Hazelcast may fail due to the wrong ClassLoader being used #24836
📔 Documentation
- Update the Gradle plugin documentation to recommend the maven-publish plugin over the maven plugin #25307
- Document Kafka Streams metrics support #25297
- Default values of integer properties in the application properties appendix are rendered as decimals #25176
- Clarify usage of BufferingApplicationStartup #25075
- Since 2.3.8 and 2.4.2, the documented index format does not match the implementation #25066
- Clarify when retaining . characters in property keys requires bracket notation to be used #25064
- Highlight that Duration and Period conversion is provided by the ApplicationConversionService and, by default, is not available for web conversion #25061
- Document logging.register-shutdown-hook and why you may want to enable it #25044
- bootRun project property command line example is incomplete #25042
- Document the need to use the launcher to be able to use application.* properties in a custom banner #25040
- Add some guidance to the reference documentation about diagnosing unexpected property values #25038
- WebMvcProperties.MatchingStrategy should be documented as being since 2.4.0 #24875
- CONTRIBUTING.adoc contains broken link to spring-javaformat-intellij-idea-plugin #24869
- Add version to reference docs index #24854
- Remove YAML shortcomings section as it no longer applies #24620
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 5.16.1 #25205
- Upgrade to AppEngine SDK 1.9.86 #25206
- Upgrade to Byte Buddy 1.10.20 #25207
- Upgrade to FreeMarker 2.3.31 #25338
- Upgrade to Hibernate 5.4.28.Final #25208
- Upgrade to Infinispan 11.0.9.Final #25209
- Upgrade to Janino 3.1.3 #25210
- Upgrade to Jaybird 3.0.10 #25211
- Upgrade to Jetty 9.4.36.v20210114 #25212
- Upgrade to Johnzon 1.2.10 #25213
- Upgrade to jOOQ 3.14.7 #25214
- Upgrade to JUnit 4.13.2 #25339
- Upgrade to JUnit Jupiter 5.7.1 #25215
- Upgrade to Kotlin 1.4.30 #25216
- Upgrade to Lombok 1.18.18 #25217
- Upgrade to MariaDB 2.7.2 #25218
- Upgrade to Micrometer 1.6.4 #25291
- Upgrade to MySQL 8.0.23 #25219
- Upgrade to Netty 4.1.59.Final #25220
- Upgrade to Reactor 2020.0.4 #25286
- Upgrade to RxJava2 2.2.21 #25340
- Upgrade to Spring AMQP 2.3.5 #25290
- Upgrade to Spring Data 2020.0.5 [#25002](https://github.com/spring-proj...
v2.3.9.RELEASE
🪲 Bug Fixes
- Migrations performed by Flyway or Liquibase may not have completed before the database is accessed via jOOQ #25279
- Dependency management for Hibernate's new hibernate-micrometer module is missing #25277
- DatabaseDriver does not detect Amazon Redshift correctly #25265
- Missing RabbitMQ metrics if bean is defined as a ConnectionFactory #25138
- A ContextRefreshedEvent from a child context may result in deadlock when using JPA deferred repositories #24966
- Spring Data Solr support is not flagged as deprecated #24942
- Failures when recording metrics in MetricsClientHttpRequestInterceptor may interfere with RestTemplate's main behaviour #24753
- WebMvcTest and WebFluxTest ignore user-provided Thymeleaf IDialect beans #24149
📔 Documentation
- Update the Gradle plugin documentation to recommend the maven-publish plugin over the maven plugin #25299
- Document Kafka Streams metrics support #25272
- Default values of integer properties in the application properties appendix are rendered as decimals #25172
- bootRun project property command line example is incomplete #25012
- Document the need to use the launcher to be able to use application.* properties in a custom banner #24982
- CONTRIBUTING.adoc contains broken link to spring-javaformat-intellij-idea-plugin #24864
- Since 2.3.8 and 2.4.2, the documented index format does not match the implementation #24856
- Add version to reference docs index #24848
- Document logging.register-shutdown-hook and why you may want to enable it #24507
- Add some guidance to the reference documentation about diagnosing unexpected property values #24336
- Clarify when retaining . characters in property keys requires bracket notation to be used #23390
- Highlight that Duration and Period conversion is provided by the ApplicationConversionService and, by default, is not available for web conversion #22718
🔨 Dependency Upgrades
- Upgrade to AppEngine SDK 1.9.86 #25189
- Upgrade to Byte Buddy 1.10.20 #25190
- Upgrade to FreeMarker 2.3.31 #25334
- Upgrade to Hazelcast 3.12.12 #25191
- Upgrade to Hibernate 5.4.28.Final #25192
- Upgrade to Janino 3.1.3 #25193
- Upgrade to Jaybird 3.0.10 #25194
- Upgrade to Jetty 9.4.36.v20210114 #25195
- Upgrade to Johnzon 1.2.10 #25196
- Upgrade to JUnit 4.13.2 #25335
- Upgrade to Lombok 1.18.18 #25197
- Upgrade to Micrometer 1.5.11 #25285
- Upgrade to MySQL 8.0.23 #25198
- Upgrade to Neo4j OGM 3.2.20 #25199
- Upgrade to Netty 4.1.59.Final #25200
- Upgrade to Reactor Dysprosium-SR17 #25280
- Upgrade to RxJava2 2.2.21 #25336
- Upgrade to Spring AMQP 2.2.15.RELEASE #25284
- Upgrade to Spring Data Neumann-SR7 #25282
- Upgrade to Spring Framework 5.2.13 #25281
- Upgrade to Spring HATEOAS 1.1.4.RELEASE #25337
- Upgrade to Spring Integration 5.3.6.RELEASE #25283
- Upgrade to Spring Security 5.3.8.RELEASE #25201
- Upgrade to Spring Session Bom Dragonfruit-SR2 #25202
- Upgrade to Tomcat 9.0.43 #25203
- Upgrade to Undertow 2.1.6.Final #25204
❤️ Contributors
We'd like to thank all the contributors who worked on this release!