Spring Boot v2.4.0 Release Notes

Release Date: 2020-11-12 // over 3 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 to spring.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!