Spring Boot v2.4.0 Release Notes
Release Date: 2020-11-12 // almost 4 years ago-
๐ฑ โญ New Features
- Provide a property or environment variable to enable DevTools' restarter irrespective of how the application was launched #21424
๐ฑ ๐ Bug Fixes
- ๐ป Using last modified for static resources in reproducible archives and images causes unwanted browser caching #24099
- ๐ง BootJar's afterResolve action causes resolution failures with the Versions plugin due to configurations being copied and made resolvable #24072
- ๐ Configuration metadata annotation processor may use the wrong accessor for boolean properties #24059
- When using Tomcat, key and trust store passwords set via javax.net.ssl system properties are overwritten with null when Spring Boot's equivalent properties have not been set #24053
- Config files no longer loaded if they contain a hidden path element #24043
- โ
@DataJpaTest
using H2 with schema.sql and spring.datasource.schema-username fails #24024 - "java.lang.IllegalStateException: zip file closed" when call JarFileWrapper.stream() of spring-boot-loader #24017
- JdbcStoreTypeConfiguration picks transaction of primary data source when Quartz data source is not the primary data source #24015
- โ TestTypeExcludeFilter does not implement hashCode and equals as required by its super-class #24013
- ๐ง Our auto-configuration should not use
@PostConstruct
as it's ignored on Java 11+ without a dependency on jakarta-annotation-api #24010 - โ
@MockBean
fields are not reset for JUnit 5@Nested
tests using@WebMvcTest
#23984 - ๐ ClasspathLoggingApplicationListener logs the classpath as unknown on Java 11 and later #23138
๐ Documentation
- ๐ Fix link to Flyway callback docs #24122
- ๐ Fix deprecation warnings in javadoc comments #24120
- Provide more details about overriding SpringPhysicalNamingStrategy's case insensitive flag #24062
- ๐ Clarify documentation regarding relaxed binding of environment variables #24033
- โจ Enhance spring.datasource.initialization-mode property description #24030
- Recommend disabling context path redirects when using proxy-terminated SSL with Tomcat #24026
- ๐ Improve Spring Session back off documentation #24019
- โ Clarify the javadoc of AutoConfigureTestDatabase to make it clearer that it only replaces the main DataSource #24007
- Recommend that bean definitions provide as much type information as possible #24005
- ๐ฒ logging.file.* properties flagged with error level while they are still honoured #23995
- โ Add missing default value for enum-based configuration properties #23992
- ๐ Configuration property replacement metadata for spring.resources.cache.cachecontrol.stale-while-revalidate is invalid #23980
โฌ๏ธ ๐จ Dependency Upgrades
- โฌ๏ธ Upgrade to AppEngine SDK 1.9.83 #24082
- โฌ๏ธ Upgrade to AssertJ 3.18.1 #24126
- โฌ๏ธ Upgrade to Byte Buddy 1.10.18 #24083
- โฌ๏ธ Upgrade to Couchbase Client 3.0.10 #24084
- โฌ๏ธ Upgrade to Hibernate 5.4.23.Final #24085
- โฌ๏ธ Upgrade to Infinispan 11.0.5.Final #24127
- โฌ๏ธ Upgrade to Jetty 9.4.34.v20201102 #24047
- โฌ๏ธ Upgrade to jOOQ 3.14.3 #24128
- โฌ๏ธ Upgrade to Kotlin Coroutines 1.4.1 #24087
- โฌ๏ธ Upgrade to Micrometer 1.6.1 #24051
- โฌ๏ธ Upgrade to Netty 4.1.54.Final #24129
- โฌ๏ธ Upgrade to Nimbus JOSE JWT 9.1.2 #24088
- โฌ๏ธ Upgrade to Pooled JMS 1.2.1 #24089
- โฌ๏ธ Upgrade to Reactor 2020.0.1 #24110
- โฌ๏ธ Upgrade to SendGrid 4.6.8 #24090
- โฌ๏ธ Upgrade to Spring AMQP 2.3.1 #24073
- โฌ๏ธ Upgrade to Spring Data 2020.0.1 #24036
- โฌ๏ธ Upgrade to Spring Framework 5.3.1 #24035
- โฌ๏ธ Upgrade to Spring HATEOAS 1.2.1 #24091
- โฌ๏ธ Upgrade to Spring Integration 5.4.1 #24097
- โฌ๏ธ Upgrade to Spring Kafka 2.6.3 #24074
- โฌ๏ธ Upgrade to Spring Session 2020.0.1 #24098
๐ฑ โค๏ธ Contributors
๐ We'd like to thank all the contributors who worked on this release!
Previous changes from v2.4.0-RC1
-
๐ฑ โญ New Features
- Provide dependency management for jOOQ's new jooq-kotlin module #23964
- ๐ง Provide a configuration property for the driverClassName of the Liquibase DataSource #23958
- ๐ Move spring.resources.* properties to spring.web.resources.* #23917
- ๐ง Provide configuration properties for setting the logging charsets #23827
- โ Add auto-trimming support to configtree property sources #23826
- โ Add configuration properties for RabbitMQ's batch listener config #23766
- ๐ฆ Expose BootBuildImage's cleanCache property as a command-line option #23753
- ๐ Allow a SAML2 relying party registration's assertion consumer service binding and location to be configured via application properties #23746
- ๐ Rename
spring.security.saml2.relyingparty.*.relying-party-entity-id
tospring.security.saml2.relyingparty.*.entityId
#23745 - โ Add a command line option for image.cleanCache when building with Maven #23719
- ๐ Allow a SAML2 relying party registration's decryption X509 credentials to be configured via application properties #23705
- โ Add support for CNB platform API 0.4 #23692
- ๐ Allow TestPropertyValues.of to take a Map source #23685
- ๐ฒ Rationalize Logback logging properties #23609
- ๐ When building with Maven, include project dependencies in the application layer by default #23463
- ๐ง Provide properties to configure WebFlux's locale and how it's resolved #23449
- โ Remove skipping of spring-boot-* projects when determining what is eligible for DevTools restart #23158
- ๐ Make
@PropertyMapping
support nested annotations #23146 - ๐ Change favicon default StaticResourceLocation #23126
- โก๏ธ Update TextResourceOrigin to show the source jar of a ClasspathResource #23019
- ๐ Use stricter multi-document properties separator logic #22963
- ๐ Support wildcard configtree imports #22958
- ๐ Support Gradle's configuration cache with Gradle 6.7 and later #22922
- ๐ง Provide a property for configuring the base path of the Actuator's endpoints when using WebFlux #22906
- ๐ Allow proxied
@SpyBeans
to be used with Mockito's inline mock maker #22416 - ๐ป Fail with exception if management.server.address is set but actuator is on the same port #22187
- ๐ง Don't adapt RandomPropertySource to ConfigurationPropertySource #21659
- ๐ง Auto-configuration of MethodValidationPostProcessor prevents the use of
@Validated
on final@ConfigurationProperties
classes #21454 - ๐ Allow
@WebListener
ServletContextListeners to programmatically add servlets and filters #18303
๐ฑ ๐ Bug Fixes
- ๐ง Configuration property annotation processor does not notice overriding getter methods #23970
- ๐ Incremental compilation does not keep metadata for inner classes #23960
- ๐ Maven plugin build-image creator step fails in Bitbucket pipelines #23957
- ๐ง Datasource initialisation with JPA schema configured in deferred mode happens asynchronously #23933
- ๐ ConfigurationMetadataAnnotationProcessor can add duplicate entries #23916
- Jar entries are duplicated in BOOT-INF/lib with layered jars and Maven #23819
- โ HttpEncodingAutoConfiguration is not added to the WebMvcTest slice #23817
- ๐ Wildcard locations for configs causes files to be parsed multiple times on k8s #23815
- ๐ป Exception thrown from /actuator/env endpoint when spring.config.import=configtree:xxxx is used #23805
- ๐ฒ Exceptions when initializing logging system are not shown #23802
- excludeProjectDependencies() does not work when customising a jar's layers with Gradle #23763
- ๐ง A reactive web application using Spring Session uses server.servlet.session.timeout to configure its session timeout #23752
- โฑ server.servlet.session.timeout not in effect when using Jetty starter without jakarta.annotation and javax.annotation #23751
- If the JVM is killed while refresh is in progress, the shutdown hook does not close the context #23744
- Hang on AbstractEntityManagerFactoryBean.getNativeEntityManagerFactory() #23735
- BootJar.getConfigurations() should not be public API #23732
- Renaming of CompositeMeterRegistryAutoConfiguration breaks code that was excluding it or referring to it from
@AutoConfigureBefore
/After #23724 - ๐ Databases that support embedded and non-embedded modes are always detected as embedded #23693
- โ
@MockBean
fields are not reset for JUnit 5@Nested
tests #12470
๐ Documentation
- โ Remove version elements from Maven plugin documentation #23931
- ๐ Polish HTTP/2 Cleartext documentation #23820
- ๐ง Document how to enable h2c via programmatic configuration #23816
- Note that using LiveReload requires Devtools restart to be enabled #23765
- ๐ Fix links to Spring Framework documentation #23737
- ๐ Maven layers documentation is incomplete #23731
- โ Add reference to JobRunr Spring Boot starter #23725
- ๐ Polish titles on configblocks #23722
- ๐ง Document how to override attributes already specified in Maven plugin configuration #23718
- ๐ Block selection in docs only works in single page HTML #23709
โฌ๏ธ ๐จ Dependency Upgrades
- โฌ๏ธ Upgrade to AssertJ 3.18.0 #23888
- โฌ๏ธ Upgrade to Commons Pool2 2.9.0 #23889
- โฌ๏ธ Upgrade to Dropwizard Metrics 4.1.14 #23890
- โฌ๏ธ Upgrade to Elasticsearch 7.9.3 #23891
- โฌ๏ธ Upgrade to Flyway 7.1.1 #23932
- โฌ๏ธ Upgrade to Jetty 9.4.33.v20201020 #23893
- โฌ๏ธ Upgrade to jOOQ 3.14.0 #23894
- โฌ๏ธ Upgrade to Kotlin Coroutines 1.4.0 #23913
- ๐ Upgrade to Lettuce 6.0.1.RELEASE #23923
- โฌ๏ธ Upgrade to Lombok 1.18.16 #23895
- โฌ๏ธ Upgrade to Micrometer 1.6.0 #23525
- โฌ๏ธ Upgrade to Mockito 3.6.0 #23924
- โฌ๏ธ Upgrade to MongoDB 4.1.1 #23897
- โฌ๏ธ Upgrade to MSSQL JDBC 8.4.1.jre8 #23742
- โฌ๏ธ Upgrade to MySQL 8.0.22 #23898
- โฌ๏ธ Upgrade to Netty 4.1.53.Final #23899
- โฌ๏ธ Upgrade to Nimbus JOSE JWT 9.1.1 #23901
- โฌ๏ธ Upgrade to OAuth2 OIDC SDK 8.23.1 #23900
- โฌ๏ธ Upgrade to Oracle Database 19.8.0.0 #23902
- โฌ๏ธ Upgrade to Postgresql 42.2.18 #23903
- โฌ๏ธ Upgrade to R2DBC Bom Arabba-SR8 #23904
- โฌ๏ธ Upgrade to Rabbit AMQP Client 5.10.0 #23905
- โฌ๏ธ Upgrade to Reactor 2020.0.0 #23771
- โฌ๏ธ Upgrade to RSocket 1.1.0 #23912
- โฌ๏ธ Upgrade to SendGrid 4.6.7 #23906
- โฌ๏ธ Upgrade to Spring AMQP 2.3.0 #23785
- โฌ๏ธ Upgrade to Spring Batch 4.3.0 #23963
- โฌ๏ธ Upgrade to Spring Data 2020.0.0 #23778
- โฌ๏ธ Upgrade to Spring Framework 5.3.0 #23774
- โฌ๏ธ Upgrade to Spring HATEOAS 1.2.0 #23779
- โฌ๏ธ Upgrade to Spring Integration 5.4.0 #23781
- โฌ๏ธ Upgrade to Spring Session 2020.0.0 #23788
๐ฑ โค๏ธ Contributors
๐ We'd like to thank all the contributors who worked on this release!