Releases: spring-projects/spring-boot
Releases · spring-projects/spring-boot
v2.4.9
🪲 Bug Fixes
- Setting Gson as preferred mapper breaks controller methods returning JSON Strings #27354
- Exception thrown from /actuator/configprops endpoint when spring.config.import=configtree:xxxx is used #27327
- Redis health indicators report that Redis is up when the cluster's state is fail #27300
- Optional file search locations with pattern throws exception if not present #27209
- Spring Session JDBC does not work when lazy initialization is enabled #27208
- App fails to start when using Spring Batch with JDBC and lazy initialization is enabled #27193
- DurationStyle.SIMPLE.print does not work correctly with ChronoUnit.MICROS #27149
- Live Reload using Devtools no longer connects #27147
- YamlPropertySourceLoader may not use the right ClassLoader to check if SnakeYAML is present #27133
- File named "config" in working directory causes IllegalStateException #27120
📔 Documentation
- Document auto-configured Jetty metrics #27299
- Document that hateoas starter is spring MVC specific #26897
- Improve javadoc of
@DefaultValue
#26742
🔨 Dependency Upgrades
- Upgrade to AppEngine SDK 1.9.90 #27377
- Upgrade to AspectJ 1.9.7 #27238
- Upgrade to DB2 JDBC 11.5.6.0 #27239
- Upgrade to Dropwizard Metrics 4.1.25 #27378
- Upgrade to Jetty 9.4.43.v20210629 #27241
- Upgrade to Jetty Reactive HTTPClient 1.1.10 #27240
- Upgrade to Johnzon 1.2.14 #27242
- Upgrade to jOOQ 3.14.13 #27379
- Upgrade to Lettuce 6.0.7.RELEASE #27339
- Upgrade to Logback 1.2.4 #27380
- Upgrade to Micrometer 1.6.9 #27340
- Upgrade to MySQL 8.0.26 #27444
- Upgrade to Netty 4.1.66.Final #27381
- Upgrade to Postgresql 42.2.23 #27244
- Upgrade to Reactor 2020.0.9 #27159
- Upgrade to SLF4J 1.7.32 #27445
- Upgrade to Spring AMQP 2.3.10 #27391
- Upgrade to Spring Data 2020.0.11 #27161
- Upgrade to Spring Framework 5.3.9 #27160
- Upgrade to Spring HATEOAS 1.2.8 #27183
- Upgrade to Tomcat 9.0.50 #27245
- Upgrade to Undertow 2.2.9.Final #27446
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v2.5.2
🪲 Bug Fixes
- Instantiator is called without a classloader #27074
- EnvironmentPostProcessors aren't instantiated with correct ClassLoader #27073
- EnvironmentPostProcessors aren't instantiated with correct ClassLoader #27072
- Instantiator is called without a classloader #27071
- Failure when binding the name of a non-existent class to a Class<?> property isn't very helpful #27061
- Failure when binding the name of a non-existent class to a Class<?> property isn't very helpful #27060
- Unable to exclude dependencies on repackaging war #27057
- Unable to exclude dependencies on repackaging war #27056
- Deadlock when the application context is closed and System.exit(int) is then called during application context refresh #27049
- Default value for NettyProperties.leakDetection is not aligned with Netty's default #27046
- Profile-specific resolution should still happen when processing 'spring.config.import' properties #27006
- Profile-specific resolution should still happen when processing 'spring.config.import' properties #27005
- Gradle build fails with "invocation of 'Task.project' at execution time is unsupported" when using the configuration cache in a project that depends on org.springframework.boot:spring-boot-configuration-processor #26997
- NoSuchMethodError with Jetty 10 when trying to use HTTP/2 over TLS (h2) #26988
- SpringApplicationShutdownHook throws ClassCastException when use log4j2 #26953
- Gradle 6.9.x is not listed as a supported version when the Gradle version is < 6.8 #26952
- Kotlin plugin's version shouldn't be read if the kotlin.version extra property has been set #26947
- Profile-specific files should still be considered when processing 'spring.config.import' properties #26939
- Misleading type information reported by BeanNotOfRequiredTypeFailureAnalyzer #26935
- SQL initialization in 2.5 does not handle connection errors gracefully anymore #26926
- Script-based database initialization should not check the database's type unless it has scripts to apply #26925
- Memory leak in MetricsClientHttpRequestInterceptor when auto-timing is disabled #26923
- DevTools' LiveReload support's HTTP header handling is case sensitive #26920
- DevTools' LiveReload support's HTTP header handling is case sensitive #26919
- App fails to start when using Flyway or Liquibase with a spring.flyway.url or spring.liquibase.url without spring-jdbc on the classpath #26917
- A bean factory post processor cannot be configured to run after
DependsOnDatabaseInitializationPostProcessor
#26899 - WebSocket auto-configuration throws a CNFE with Jetty 10 #26847
📔 Documentation
- Description of spring.datasource.name property is inaccurate #27063
- Description of spring.datasource.name property is inaccurate #27062
- Update reference documentation to reflect
@SpringBootApplication
's use of@SpringBootConfiguration
#27024 - Document uuid support in RandomValuePropertySource #27010
- Misleading doc about application startup exposure #26978
- Add missing space for asciidoc ordered list #26955
- Add Azure info to the cloud deployment docs #26910
- Make the documentation versions more apparent #26891
🔨 Dependency Upgrades
- Upgrade to Cassandra Driver 4.11.2 #26990
- Upgrade to Dropwizard Metrics 4.1.24 #27035
- Upgrade to Hazelcast 4.1.4 #27069
- Upgrade to Jedis 3.6.1 #26992
- Upgrade to Jetty EL 9.0.48 #26993
- Upgrade to Kotlin 1.5.20 #27088
- Upgrade to Kotlin 1.5.20 #27086
- Upgrade to Lettuce 6.1.3.RELEASE #27036
- Upgrade to Micrometer 1.7.1 #27015
- Upgrade to Neo4j Java Driver 4.2.7 #27037
- Upgrade to Netty tcNative 2.0.40.Final #27070
- Upgrade to Nimbus JOSE JWT 9.10 #27039
- Upgrade to OAuth2 OIDC SDK 9.9 #27038
- Upgrade to Postgresql 42.2.22 #26994
- Upgrade to Reactor 2020.0.8 #26968
- Upgrade to SLF4J 1.7.31 #26995
- Upgrade to Spring AMQP 2.3.9 #26972
- Upgrade to Spring Data 2021.0.2 #26970
- Upgrade to Spring HATEOAS 1.3.2 #26969
- Upgrade to Spring Integration 5.5.1 #26974
- Upgrade to Spring Kafka 2.7.3 #26973
- Upgrade to Spring Security 5.5.1 #26945
- Upgrade to Spring Session 2021.0.1 #26971
- Upgrade to Tomcat 9.0.48 #26996
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v2.4.8
🪲 Bug Fixes
- EnvironmentPostProcessors aren't instantiated with correct ClassLoader #27043
- Failure when binding the name of a non-existent class to a Class<?> property isn't very helpful #27028
- Profile-specific resolution should still happen when processing 'spring.config.import' properties #26960
- Kotlin plugin's version shouldn't be read if the kotlin.version extra property has been set #26946
- Memory leak in MetricsClientHttpRequestInterceptor when auto-timing is disabled #26915
- Gradle build fails with "invocation of 'Task.project' at execution time is unsupported" when using the configuration cache in a project that depends on org.springframework.boot:spring-boot-configuration-processor #26880
- Profile-specific files should still be considered when processing 'spring.config.import' properties #26858
- App fails to start when using Flyway or Liquibase with a spring.flyway.url or spring.liquibase.url without spring-jdbc on the classpath #26849
- Misleading type information reported by BeanNotOfRequiredTypeFailureAnalyzer #26821
- DevTools' LiveReload support's HTTP header handling is case sensitive #26813
- Unable to exclude dependencies on repackaging war #15808
📔 Documentation
- Description of spring.datasource.name property is inaccurate #27026
- Document uuid support in RandomValuePropertySource #26975
- Update reference documentation to reflect
@SpringBootApplication
's use of@SpringBootConfiguration
#26937 - Make the documentation versions more apparent #26851
🔨 Dependency Upgrades
- Upgrade to Dropwizard Metrics 4.1.24 #27031
- Upgrade to Jetty EL 8.5.68 #26984
- Upgrade to Lettuce 6.0.6.RELEASE #27032
- Upgrade to Micrometer 1.6.8 #27014
- Upgrade to Neo4j Java Driver 4.1.4 #27033
- Upgrade to Netty tcNative 2.0.40.Final #27066
- Upgrade to Nimbus JOSE JWT 8.22 #27068
- Upgrade to OAuth2 OIDC SDK 8.36.2 #27067
- Upgrade to Postgresql 42.2.22 #26985
- Upgrade to Reactor 2020.0.8 #26962
- Upgrade to SLF4J 1.7.31 #26986
- Upgrade to Spring AMQP 2.3.9 #26966
- Upgrade to Spring Data 2020.0.10 #26963
- Upgrade to Spring HATEOAS 1.2.7 #27013
- Upgrade to Spring Integration 5.4.8 #26967
- Upgrade to Spring Security 5.4.7 #26965
- Upgrade to Spring Session 2020.0.5 #26964
- Upgrade to Tomcat 9.0.48 #26987
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
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...