Releases: spring-projects/spring-boot
Releases · spring-projects/spring-boot
v2.5.1
🪲 Bug Fixes
- SqlInitializationAutoConfiguration fails when there is a DataSource bean and no spring-jdbc or a ConnectionFactory bean and no spring-r2dbc #26850
- MetricsRestTemplateCustomizer and LocalHostUriTemplateHandler cannot be used together when building a RestTemplate with RestTemplateBuilder #26827
- CompositeHealth.getDetails() does not serialize if MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS is disabled #26823
- ConnectionFactoryBuilder.derivefrom should be named derivedFrom to align with DataSourceBuilder #26810
- Profile-specific property files are incorrectly ordered when both '.' and './config' folders are used in the same application #26782
- A spring.config.import declared in an application-.properties file calls ConfigDataLocationResolver.resolveProfileSpecific #26755
- A spring.config.import declared in an application.properties file also attempts to import profile-specific files #26754
- Jar startup fails on JDK 11 with a SecurityManager enabled #26744
- Possible divide by zero bugs when using RandomValuePropertySource #26739
- Resolving properties with a target type can cause ConversionFailedException #26732
- Upgrading to Spring Boot 2.5.0 leads to a startup warning from Jackson about Kotlin #26727
- LoggingSystem should not return LogbackLoggingSystem if logback-classic is not available #26725
- bootBuildImage runs forever when a custom image name is used and the version contains an illegal character #26703
- Non-static nested
@Configuration
in JerseySameManagementContextConfiguration #26697 - Restore run order of
data.sql
/schema.sql
against high-level database migration tools #26692 - Gradle plugin does not provided public constant for the productionRuntimeClasspath configuration #26687
- Non-embedded databases have schema/data.sql scripts applied by default #26682
- Custom username/password properties are not picked up by DataSourceInitializationConfiguration #26676
- No subdirectories found for mandatory directory location 'file:./config/*/' is thrown when config dir exists #26672
- LoggingSystem not available on shutdown to log DisposableBean#destroy invocations #26660
- Image Building with custom buildpacks fails with permission denied on Arch Linux #26658
- SingleSignOnService Binding from SAML IdP metadata gets overridden by default #26649
- UnsupportedDataSourcePropertyException is thrown when attempting to set URL for SQL Server #26647
- Flyway and Liquibase custom datasource without an url leads to java.lang.ClassCastException #26644
- Empty value for spring.datasource.password can cause NullPointerException #26633
- UnsupportedDataSourcePropertyException is thrown when attempting to set driverClassName for H2 #26631
- Some metrics are lost when Spring Data is on the classpath #26630
- ApplicationAvailabilityBean should log at debug level #26624
📔 Documentation
- Update optaplanner spring boot starter url #26816
- Fix typo in 'Reacting to the Maven plugin' title #26751
- Link to Spring Data JPA points to Spring Data JDBC #26741
- Clarify when a connection pool is created for Redis #26735
- Polish description of server.servlet.session.cookie.domain #26717
- Document Kubernetes terminationGracePeriodSeconds #26701
- Correct Kotlin version requirements in documentation #26655
- Document spring.profiles.default property #26654
- Add link to Maven Git Commit Id Plugin #26635
- Rework build-image-customization table in docs #25739
🔨 Dependency Upgrades
- Upgrade to AppEngine SDK 1.9.89 #26798
- Upgrade to Couchbase Client 3.1.6 #26799
- Upgrade to Dropwizard Metrics 4.1.22 #26800
- Upgrade to Ehcache3 3.9.4 #26801
- Upgrade to Git Commit ID Plugin 4.0.5 #26845
- Upgrade to Gson 2.8.7 #26802
- Upgrade to Hibernate 5.4.32.Final #26803
- Upgrade to Infinispan 12.1.4.Final #26804
- Upgrade to JBoss Logging 3.4.2.Final #26805
- Upgrade to Jetty 9.4.42.v20210604 #26838
- Upgrade to Jetty Reactive HTTPClient 1.1.9 #26837
- Upgrade to Johnzon 1.2.13 #26806
- Upgrade to jOOQ 3.14.11 #26807
- Upgrade to Kotlin 1.5.10 #26652
- Upgrade to Neo4j Java Driver 4.2.6 #26808
- Upgrade to RSocket 1.1.1 #26839
- Upgrade to Spring AMQP 2.3.8 #26764
- Upgrade to Spring Framework 5.3.8 #26761
- Upgrade to Spring Kafka 2.7.2 #26765
- Upgrade to Undertow 2.2.8.Final #26809
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v2.4.7
🪲 Bug Fixes
- MetricsRestTemplateCustomizer and LocalHostUriTemplateHandler cannot be used together when building a RestTemplate with RestTemplateBuilder #26826
- CompositeHealth.getDetails() does not serialize if MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS is disabled #26822
- A spring.config.import declared in an application-.properties file calls ConfigDataLocationResolver.resolveProfileSpecific #26753
- A spring.config.import declared in an application.properties file also attempts to import profile-specific files #26752
- Jar startup fails on JDK 11 with a SecurityManager enabled #26743
- Possible divide by zero bugs when using RandomValuePropertySource #26738
- LoggingSystem should not return LogbackLoggingSystem if logback-classic is not available #26724
- bootBuildImage runs forever when a custom image name is used and the version contains an illegal character #26702
- Non-static nested
@Configuration
in JerseySameManagementContextConfiguration #26696 - Gradle plugin does not provided public constant for the productionRuntimeClasspath configuration #26686
- No subdirectories found for mandatory directory location 'file:./config/*/' is thrown when config dir exists #26627
- Auto-configured resource handlers don't get applied to child contexts #26622
- Profile-specific property files are incorrectly ordered when both '.' and './config' folders are used in the same application #26593
- SingleSignOnService Binding from SAML IdP metadata gets overridden by default #26454
📔 Documentation
- Link to Spring Data JPA points to Spring Data JDBC #26740
- Clarify when a connection pool is created for Redis #26734
- Polish description of server.servlet.session.cookie.domain #26716
- Document Kubernetes terminationGracePeriodSeconds #26700
- Document spring.profiles.default property #26653
- Correct Kotlin version requirements in documentation #26421
🔨 Dependency Upgrades
- Upgrade to AppEngine SDK 1.9.89 #26783
- Upgrade to Dropwizard Metrics 4.1.22 #26784
- Upgrade to Ehcache3 3.9.4 #26785
- Upgrade to Gson 2.8.7 #26786
- Upgrade to Hibernate 5.4.32.Final #26787
- Upgrade to JBoss Logging 3.4.2.Final #26788
- Upgrade to Jetty 9.4.42.v20210604 #26834
- Upgrade to Jetty Reactive HTTPClient 1.1.9 #26833
- Upgrade to Johnzon 1.2.13 #26789
- Upgrade to jOOQ 3.14.11 #26790
- Upgrade to Neo4j Java Driver 4.1.3 #26835
- Upgrade to RSocket 1.1.1 #26836
- Upgrade to Spring AMQP 2.3.8 #26762
- Upgrade to Spring Framework 5.3.8 #26760
- Upgrade to Spring Kafka 2.6.9 #26763
- Upgrade to Undertow 2.2.8.Final #26791
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v2.3.12.RELEASE
🪲 Bug Fixes
- MetricsRestTemplateCustomizer and LocalHostUriTemplateHandler cannot be used together when building a RestTemplate with RestTemplateBuilder #26812
- CompositeHealth.getDetails() does not serialize if MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS is disabled #26797
- LoggingSystem should not return LogbackLoggingSystem if logback-classic is not available #26711
- Non-static nested
@Configuration
in JerseySameManagementContextConfiguration #26695 - Possible divide by zero bugs when using RandomValuePropertySource #26628
- Auto-configured resource handlers don't get applied to child contexts #25743
- Jar startup fails on JDK 11 with a SecurityManager enabled #25538
- bootBuildImage runs forever when a custom image name is used and the version contains an illegal character #23115
📔 Documentation
- Link to Spring Data JPA points to Spring Data JDBC #26736
- Clarify when a connection pool is created for Redis #26733
- Polish description of server.servlet.session.cookie.domain #26713
- Document spring.profiles.default property #26592
- Document Kubernetes terminationGracePeriodSeconds #26469
🔨 Dependency Upgrades
- Upgrade to AppEngine SDK 1.9.89 #26776
- Upgrade to Dropwizard Metrics 4.1.22 #26777
- Upgrade to Gson 2.8.7 #26778
- Upgrade to Hibernate 5.4.32.Final #26779
- Upgrade to JBoss Logging 3.4.2.Final #26780
- Upgrade to Jetty 9.4.42.v20210604 #26830
- Upgrade to Jetty Reactive HTTPClient 1.1.9 #26829
- Upgrade to Johnzon 1.2.13 #26781
- Upgrade to Neo4j OGM 3.2.24 #26831
- Upgrade to RSocket 1.0.5 #26832
- Upgrade to Spring AMQP 2.2.18 #26770
- Upgrade to Spring Integration 5.3.8 #26772
- Upgrade to Spring Kafka 2.5.14 #26771
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v2.5.0
For full upgrade instructions and new and noteworthy features please see the release notes.
🪲 Bug Fixes
- Auto-configured resource handlers don't get applied to child contexts #26623
- Actuator doesn't use the CORS Configuration with default security configuration and Spring Webflux #26614
- Actuator doesn't use the CORS Configuration with default security configuration and Spring MVC #26612
- SpringApplication additional profiles and active profiles ordering changed with Spring Boot 2.4 #26610
- An active request delays Jetty's shutdown by 30 seconds #26608
- SmartInitializingSingleton beans are not working with lazy initialization #26606
- MVC and WebFlux metrics filters adversely affect the response when metrics recording fails #26596
- ConfigDataResolvers cannot signal that they should be skipped #26585
- Remote devtools endpoint cannot be accessed if actuator and spring security are on the classpath #26584
- The error message when a wildcard directory location does not match any files is misleading #26583
- Mandatory locations with pattern fail with exception #26582
- Non-optional locations with wildcards fail if no files are contributed #26581
- Profiles programmatically set on the Envionment are no longer merged with active profile properties #26580
- Use of spring.profiles.include in a profile-specific document is not detected when it's configured as a YAML list #26575
- ConfigurationProperties is retrieved via classpath scanning but does not indicate it should be indexed #26463
- BufferingApplicationStartup fails with NoSuchElementException #26458
- Building an image fails when using a custom buildpack image with long file names #26445
- Additional profiles are processed too late when legacy processing is used #26434
- Config data location does not exist error can be thrown if a profile-specific properties file is directly imported #26402
- StandardConfigDataLoader can import profile specific files in incorrect order #26401
- Resolvability and consumability of productionRuntimeClasspath are not aligned with runtimeClasspath #26365
- ObjectMapper provided by JacksonAutoConfiguration via JacksonClusterEnvironmentBuilderCustomizer breaks Couchbase driver #26363
- Empty value in spring.config.import causes NullPointerException #26346
@DataRedisTest
does not considerRedisReactiveAutoConfiguration
#26328- When a single bean causes a dependency cycle the failure analysis does not clearly illustrate the cycle #26323
- SpringBootConfiguration is retrieved via classpath scanning but does not indicate it should be indexed #26318
- Maven spring-boot:build-image ignores ZIP layout #26313
- bootBuildImage does not pick up targetCompatibility when it's configured after task is customised #26301
- Configuration item metadata ordering is not consistent #26277
@EnableAutoConfiguration
and@ImportAutoConfiguration
use different class loaders to find candidate configurations #26237- 'spring.web.resources.cache.use-last-modified=false' doesn't work with Spring MVC #26233
- Restore support for binding configuration properties from RandomValuePropertySource #26201
@Scheduled
method not triggered when spring.main.lazy-initialization=true #26156- When classes in spring-core and spring-boot are loaded by different ClassLoaders, spring-boot cannot find its own config data location resolvers #26155
- ConfigFileApplicationListener#loadPostProcessors can not load EnvironmentPostProcessor in child classLoader #26126
📔 Documentation
- Info endpoint in reference doc has outdated defaults #26591
- Update documentation following the release of Spock Framework 2.0 #26586
- Update Gradle docs to use module replacement rather than dependency substitution #26526
- Improve documentation of TestRestTemplate's fault tolerance #26522
- Document that the heap dump endpoint requires a HotSpot JVM #26474
- Suggest enabling the default servlet when using Jersey as a filter #26452
- Document support for Gradle 6.9 #26409
- Fix wrong reference to Cassandra in DockerImageNames#couchbase #26406
- PDF documentation include hidden code elements #26373
- Move Working with the Code from CONTRIBUTING.adoc to the wiki #26334
- Fix typo in NamedContributors Javadoc #26325
- Polish README #26320
- Fix link to Webservices reference docs #26316
- Document property names to enable reactive health indicators #26299
- Documentation has wrong key for DataSourceHealthIndicator #26283
- Reorder a few howtos #26262
- Align documentation with main default branch name #26257
- Align Maven version in system requirements with what is actually tested #26211
- Document that MeterFilters are only applied to the Spring-managed MeterRegistry #26186
- Use new update site for Spring Java Format's Eclipse plugin #26172
- spring.profiles.include has outdated sourceType in configuration metadata #26165
- Include spring.profiles.group in additional-spring-configuration-metadata.json #26164
- Enhance multiple entity manager factories online documentation #26160
- SQL init schema-locations and data-locations are missing metadata to cause them to be handled as Resources #26154
- Replacements for spring.datasource.schema and spring.datasource.data are documented incorrectly #26150
🔨 Dependency Upgrades
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/...