Spring Boot v2.4.0-M3 Release Notes

Release Date: 2020-09-17 // over 3 years ago
  • 🍱 ⭐ New Features

    • 👍 Allow trailing whitespace on properties document split marker #23399
    • ➕ Add startup Actuator endpoint #23213
    • 👌 Support constructor binding on 3rd party classes #23172
    • ➕ Add mainApplicationClass information as a tag to "starting" StartupStep #23162
    • 👍 Allow EntityScanner to be extended to provide a custom ClassPathScanningCandidateComponentProvider #23154
    • 👍 Allow redis's connect and read/command timeouts to be configured separately #23137
    • 👍 Allow default binder to work with multiple constructors #23117
    • Avoid unnecessary reflection in TaskExecutorBuilder #23107
    • ➕ Add global optional config data opt-out #23097
    • 🔧 Provide a property for configuring Spring AMQP's address shuffle mode #23091
    • 📇 Generate a default value in the metadata for configuration properties initialised with Period.ZERO and Duration.ZERO #23082
    • 🛠 Fix some typos in tests #23050
    • 🔧 Provide a configuration property for Kafka listener container's idleBetweenPolls #23048
    • 📇 Configure SAML 2.0 Service Provider via Metadata #23045
    • Fail if import locations are not found #23032
    • Provide a simple Instantiator utility class #23029
    • 👍 Allow placeholders to be used in config import locations #23020
    • 👌 Improve origin of imported config #23018
    • 📇 Rename CompositeMeterRegistryAutoConfiguration #22988
    • 🔧 Auto-configure ConcurrentKafkaListenerContainerFactory with a user-provided RecordFilterStrategy bean if available #22973
    • 👌 Support authentication from Docker daemon to private docker registry. #22972
    • ➕ Add a registry to support long lived instances during environment processing #22956
    • 📇 Rename neo4j.version to neo4j-java-driver.version #22952
    • ⏪ Restore support for spring.profiles.include for non profile specific documents #22944
    • 🔧 Mark bootArchives as nonresolvable configuration in Gradle plugin to better convey its purpose #22943
    • 🔧 Make GridFsTemplate's bucket configurable #22854
    • Align WebClient uri metric tag with RestTemplate's #22832
    • 🔒 Disable default security configuration when SecurityFilterChain bean is present #22739
    • Provide a buffering implementation for application startup metrics #22603
    • ✂ Remove Elasticsearch RestClient auto-configuration #22358
    • 👌 Support loading external configuration from files with no file extension #22280
    • Exclude empty starters jars and annotation processors when running or packaging with Maven and Gradle #22036
    • 👉 Make Devtools file detection more resilient across application restarts #19543
    • ➕ Add SSL support to RSocketServer #19399

    🍱 🐞 Bug Fixes

    • spring-boot-dependencies should not define a spring-boot.version property #23378
    • 🔧 @ManagementContextConfiguration is meta-annotated with @configuration(proxyBeanMethods=false) which does not disable proxying #23306
    • 🐎 Signed jar dependency performance problem when repackaged in a single jar #23265
    • ValidationHandler no longer works with certain map keys #23261
    • MVC error model unnecessarily requires timestamp entry to be a java.util.Date #23259
    • Missing sanitization in lists of URIs properties on actuator endpoints #23253
    • Cassandra's pool duration mapping uses a wrong duration unit #23251
    • PropertiesLauncher fails to load PBKDF-OpenSSL of bcprov-jdk15on-1.64.jar #23241
    • ErrorPageFilter is no longer ordered at HIGHEST_PRECEDENCE + 1 #23205
    • 🔊 When using HSQLDB, Hikari logs a warning message about the driver class name when the first connection is retrieved from the pool #23204
    • Large files can throw YAMLException due to node limits #23153
    • 🔧 Configurable SSL Logback extensions can't be supported due to URL checks #23136
    • 🏗 Image building support does not zero-pad digest hashes to 64 characters #23134
    • 🏗 Image builder fails silently when there's an error loading the ephemeral image #23133
    • RSocketPortInfoApplicationContextInitializer can throw NPE #23089
    • Dependency convergence error for nimbus-jose-jwt when depending on spring-boot-starter-oauth2-client #23072
    • UndertowWebServerFactoryCustomizer requires commons lang via an unintended import on ClassUtils #23064
    • 🔧 Freemarker is configured to prefer filesystem access by default #23051
    • 🏗 Too much logging when building an OCI image with Maven #23015
    • LayoutFactory can be presented with empty source file #23001
    • Extracting layers with layertools doesn't work with executable JAR files #23000
    • JarFile can cause memory issues when running on Java 11+ #22999
    • 🔧 Metrics auto-configurations are not ordered correctly #22990
    • 🗄 Exception inclusion cannot be disabled when sub-classing DefaultErrorAttributes and using its deprecated constructor #22984
    • The @TypeExcludeFilters annotation is not @inherited #22967
    • ⚡️ Update transaction auto-configuration to backoff if a TransactionManager is defined #22851
    • 0️⃣ MongoClientFactorySupport overrides existing uuidRepresentation with MongoProperties default value #22321

    📔 Documentation

    • 🔧 Document that @ConfigurationProperties beans are not scanned in sliced tests #23244
    • 🏗 Document that buildpacks use non-root users for building container images and running containers #23201
    • ➕ Add reference to AOProfiling Spring Boot starter #23161
    • 🏗 Document setting buildpack Java version from compiler plugin version #23148
    • Document how to perform tasks after application startup #23145
    • 🛠 Fix documentation on Elasticsearch client configuration #23144
    • 📚 Update Maven Plugin's documentation to note the importance of configuring start and stop goals with the same JMX port #23143
    • 🔧 Document how to use spring.factories to add auto-configuration to a test slice #23142
    • Document that graceful shutdown may not work from IDEs #23140
    • 📚 Provide examples of Actuator custom endpoints in the reference documentation #23061
    • ➕ Add Hyperledger Fabric for Spring Boot Starter to the community starters #23058
    • ✅ Mention correct JUnit 5 annotations in Kotlin testing section #23005
    • 🛠 Fix Gradle Plugin custom image name example and documentation #22980
    • Javadoc inaccuracy in SpringApplicationBuilder.properties(Properties) #22965
    • 🛠 Fix typo Assert4J -> AssertJ #22961
    • 👍 Document that Java 15 is a supported version #22366
    • 📚 Publish Actuator API and Maven/Gradle plugin reference documentation under htmlsingle #21585
    • ➕ Add more anchors in the properties appendix #16267

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to SendGrid 4.6.5 #23397
    • ⬆️ Upgrade to Micrometer 1.5.5 #23396
    • ⬆️ Upgrade to Flyway 6.5.6 #23395
    • ⬆️ Upgrade to Spring Kafka 2.6.1 #23382
    • 🚀 Upgrade to Spring REST Docs 2.0.5.RELEASE #23377
    • ⬆️ Upgrade to Mockito 3.5.10 #23368
    • ⬆️ Upgrade to Undertow 2.2.0.Final #23367
    • ⬆️ Upgrade to Thymeleaf Layout Dialect 2.5.1 #23366
    • ⬆️ Upgrade to SnakeYAML 1.27 #23365
    • ⬆️ Upgrade to Postgresql 42.2.16 #23364
    • ⬆️ Upgrade to Pooled JMS 1.2.0 #23363
    • ⬆️ Upgrade to InfluxDB Java 2.20 #23362
    • ⬆️ Upgrade to Artemis 2.15.0 #23361
    • ⬆️ Upgrade to Lettuce 6.0.0.RC2 #23360
    • ⬆️ Upgrade to Tomcat 9.0.38 #23359
    • 🚀 Upgrade to Spring WS 3.0.10.RELEASE #23358
    • ⬆️ Upgrade to SendGrid 4.6.4 #23357
    • ⬆️ Upgrade to R2DBC Bom Arabba-SR7 #23356
    • ⬆️ Upgrade to Nimbus JOSE JWT 9.0.1 #23355
    • ⬆️ Upgrade to OAuth2 OIDC SDK 8.19.2 #23354
    • ⬆️ Upgrade to Netty tcNative 2.0.34.Final #23353
    • ⬆️ Upgrade to Netty 4.1.52.Final #23352
    • ⬆️ Upgrade to JUnit Jupiter 5.7.0 #23351
    • ⬆️ Upgrade to Hibernate 5.4.21.Final #23350
    • ⬆️ Upgrade to Hazelcast 3.12.9 #23349
    • ⬆️ Upgrade to Flyway 6.5.5 #23348
    • ⬆️ Upgrade to Elasticsearch 7.9.1 #23347
    • ⬆️ Upgrade to Ehcache3 3.9.0 #23346
    • ⬆️ Upgrade to Couchbase Client 3.0.8 #23345
    • ⬆️ Upgrade to Commons Codec 1.15 #23344
    • ⬆️ Upgrade to Cassandra Driver 4.9.0 #23343
    • ⬆️ Upgrade to AppEngine SDK 1.9.82 #23342
    • 🔒 Upgrade to Spring Security 5.4.0 #23225
    • ⬆️ Upgrade to RSocket 1.1.0-M2 #23214
    • ⬆️ Upgrade to Spring Data 2020.0.0-RC1 #23197
    • ⬆️ Upgrade to Spring Batch 4.3.0-RC1 #23189
    • ⬆️ Upgrade to Spring Session 2020.0.0-RC1 #23188
    • ⬆️ Upgrade to Assertj 3.17.2 #23179
    • ⬆️ Upgrade to Spring Framework 5.3 RC1 #23170
    • ⬆️ Upgrade to Reactor 2020.0.0-RC1 #23065
    • ⬆️ Upgrade to Kotlin Coroutines 1.3.9 #23025
    • ⬆️ Upgrade to Kotlin 1.4.0 #23024
    • ⬆️ Upgrade to Spring AMQP 2.3.0-M3 #23011
    • ⬆️ Upgrade to Spring Integration 5.4.0-M3 #23010

    🍱 ❤️ Contributors

    🚀 We'd like to thank all the contributors who worked on this release!