Spring Boot v2.3.0.M1 Release Notes
Release Date: 2020-01-23 // over 4 years ago-
🍱 ⭐️ New Features
- ➕ Add layertools jarmode support to Gradle #19867
- Automatically add jarmode jars when packaging #19865
- ➕ Add layertools jarmode #19849
- ➕ Add jarmode support to the loader code #19848
- 🔌 Write classpath index file from Gradle plugin #19847
- 📦 Create a new ImagePackager tools class #19834
- ➕ Add buildImage support to the gradle plugin #19831
- ➕ Add build-image support to the maven plugin #19830
- ➕ Add cloud native buildpack module #19828
- ✂ Remove spring-boot-starter-cloud-connectors #19798
- ⚡️ Update the Gradle plugin with an option to generate layered jars #19792
- ⚡️ Update the Maven plugin with an option to generate layered jars #19768
- 👌 Support generation and loading of layered jars #19767
- ✂ Remove support for Jest #19681
- ✂ Remove support for Elasticsearch transport client #19668
- 0️⃣ Do not include the validation starter in web starters by default #19550
- 🏗 Auto-configure HTTP client builders as lazy #19549
- ➕ Add Stackdriver metrics export support #19528
- Avoid 406 Not Acceptable for error pages #19522
- ➕ Add Java 14 to JavaVersion enumeration #19511
- 👷 Switch
JobLauncherCommandLineRunner
toApplicationRunner
#19442 - 🔧 Configurer for RabbitTemplate similar to SimpleRabbitListenerContainerFactoryConfigurer #19440
- 👉 Make output from spring-boot-autoconfigure-processor reproducible #19370
- ➕ Add ComponentScan#nameGenerator alias on @SpringBootApplication #19346
- ➕ Add support for setting DirContextAuthenticationStrategy on the LdapContextSource #19328
- ✂ Remove code that is deprecated since 2.1.x #19189
- 👉 Use DateTimeFormatter in favor of SimpleDateFormat #19142
- ➕ Add configuration property for RabbitMQ client requestedChannelMax #19106
- ✂ Remove plugin management for maven-site-plugin #19085
- 👌 Support tc datasource prefix for test containers #19044
- 👌 Support constructor binding on 3rd party classes #19011
- 👌 Support Gradle 6 #18957
- 🔧 Move spring.http.* configuration properties namespace #18827
- 👍 Raise the minimum supported version of Gradle to 5.6 #18777
- 🔌 Provide toolchains support for Spring Boot Maven Plugin #18732
- ⬆️ Upgrade to Cassandra driver 4 #18621
- ➕ Add group RemoteIpValve for ServerProperties.Tomcat #18489
- ➕ Add information about the input into the property binding process to the configprops endpoint #17886
- ✅ Reconsider default for spring.datasource.generate-unique-name as the current one makes test cases brittle #16747
- spring.cache.redis.cache-prefix should use prefixCacheNameWith to include the cache name in the generated key #16676
- 👌 Improve JarLauncher's performance when running as an exploded jar #16655
- 0️⃣ Considered new defaults for JPA repository bootstrap #16230
- 🔧 Provide end-to-end tracability for bound @ConfigurationProperties #14880
- 👉 Use the same classpath ordering for an exploded jar and an archive #9128
🍱 🐞 Bug Fixes
- Dependency resolution fails with Gradle 5.3.x to 5.6.x #19814
- 🔧 Configuring dedicated Cassandra contact points now require a local DC #19779
- Since 2.2.2 Jetty error handler cannot be overridden #19774
- Fat jars do not tolerate entries with an invalid modification date of 0 #19714
- Duplicate metrics can be recorded by WebMvcTags since it does not rationalize trailing slashes #19701
- ✅ Failure analyser for a missing validation provider does not kick in when using the latest Jakarta Validation API #19689
- 👉 Make equality checks defensive to null reference #19686
- PoolingDataSourceBean getParentLogger throws StackOverflowError #19683
- MetricsWebFilter assigns UNKNOWN outcome to 200 OK responses #19600
- 🔧 Rejected value is null when configuration property fails validation #19598
- 🔧 Diagnostics are poor when using
@ConfigurationPropertiesScan
and@ConstructorBinding
on a Kotlin data class without kotlin-reflect #19582 - HypermediaAutoConfiguration hinges on Spring MVC #19562
- 📦 Spring Boot's antlib references a properties file that is no longer packaged in its jar #19554
- Unset forward header strategy in kubernetes environment eats X-Forwarded-* headers in Spring Boot 2.2 #19529
- Incorrect target type with wildcard List #19527
- 👉 Use RBAC credentials for Couchbase cluster info #19517
- Non-public property in Saml2RelyingPartyProperties' Registration class #19486
- ➕ Add support for nested requests in MetricsClientHttpRequestInterceptor #19464
- 👌 Support commas embedded in command line arguments from Maven plugin #19463
- 🏗 Configuration properties that use the builder pattern are not recognized when used with a generic #19441
- Disable Jackson SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS by default #19435
- 🚀 NoSuchMethodError when deploying to Tomcat 8.5 before 8.5.44 and Tomcat 9 before 9.0.23 #19422
- 🔧 Micrometer's Dynatrace group property cannot be configured via application properties #19375
- 🤡 @SpyBean (MockitoPostProcessor) tries to initialize @StepScope Bean out of scope #19310
- 🔧 server.ssl.key-alias is ignored when configuring Netty #19305
- 🔧 Actuator does not display immutable configuration properties when using @Validated #19279
- 🚀 Bean class placeholders doesn't work in 2.2.1.RELEASE #19217
- 🔧 Constructor binding fails when configuration class has a generic field with type parameter java.util.Map #19216
- Liquibase actuator endpoint does not give correct information when multiple databases are used in one project #19191
- 🔧 ssl.enabled is ignored when Rabbit is configured with an address with no protocol #19113
- 🖐 Handle ApiVersion in CachingOperationInvoker #19090
- 👉 Use DeferredLog in CloudFoundryVcapEnvironmentPostProcessor #19087
- Spring Boot DevTools YAML property loading does not work #19082
- HealthWebEndpointMapper should expose details if right authority present #19060
- 🔌 Spring Boot - Maven Plugin shutdown broken #18941
📔 Documentation
- 📚 Maven plugin documentation has an unresolved
{gradle-project-version}
token #19878 - 📚 Update documentation on excluding an auto-configuration to recommend exclude on SpringBootApplication #19873
- Document RedisCacheManagerBuilderCustomizer #19820
- 💅 Polish README.adoc #19817
- 📚 Revisit documentation that mentions Gradle "compile" configuration #19797
- ✂ Remove duplicate note in Hazelcast section of reference guide #19679
- ⚡️ Update build instructions in README after switch to Gradle #19617
- 🛠 Fix links to external types in javadoc #19592
- 🔗 Links to apply method in AutoTimer's javadoc are broken #19574
- ⚡️ Spring MVC auto-config doc update #19535
- ➕ Add reference to OptaPlanner starter #19509
- Outdated reference in ArtemisConfigurationCustomizer javadoc #19504
- 💅 Polish note about handling of caches that are created on-the-fly #19499
- 🛠 Fix typo in BindHandler#onFinish javadoc #19497
- 📚 Adapt file rotation documentation to logging's maxHistory default change to 7 days #19461
- 📚 Clarify documentation of repackage mojo's attach property #19454
- 🔧 Clarify non-public nature of Boot?s own @ConfigurationProperties classes and multi-DataSource example #19452
- Clarify the behaviour of @CacheConfig with respect to on-the-fly cache creation and cache metrics #19449
- ➕ Add JMX note for Kafka consumer metrics #19447
- 👌 Improve documentation coverage for Spring Batch #19439
- 🛠 Fix typo on ConditionMessage #19434
- 👌 Improve "Running Behind a Front-end Proxy Server" documentation #19404
- 🔗 Link consistently to Tomcat 9.0 docs #19363
- 🛠 Fix link to Vaadin Spring Boot starter #19361
- ➕ add nitrite spring boot starter #19315
- ➕ Add missing closing parenthesis in Test Scope Dependencies reference documentation #19298
- 🔧 Document the property configuration of the auto-configured EntityManagerFactoryBuilder #19210
- ➕ Add missing health indicators to docs #19155
- Clarify contradictory advice on the use of
@PropertySource
#19153 - 🌲 Document logging of startup info #19151
- 🛠 Fix link in new Maven Plugin docs #19108
- 0️⃣ Incorrect Javadoc regarding default Tomcat async request timeout #19092
- 📚 Provide documentation for the Maven Plugin that is consistent with our other reference documentation #19080
- 🛠 Fix syntax error in configuration metadata sample in docs #19033
- 🏗 Use CAPS for build args in Dockerfile example #19031
- 👌 Improve Dockerfile example to extract the application jar based on an argument #19004
- ✂ Remove spring-boot-samples references from docs #18947
- ✂ Remove reference to ConfigurationPropertiesScan in javadoc #18937
⬆️ 🔨 Dependency Upgrades
- ⬆️ Upgrade to Reactor Dysprosium-SR4 #19809
- ⬆️ Upgrade to Infinispan 10.1.1.Final #19790
- ⬆️ Upgrade to Kafka to 2.4.0 and Spring Kafka 2.4.1 #19764
- ⬆️ Upgrade to Jakarta Validation API 2.0.2 #19691
- ⬆️ Upgrade to Elasticsearch 7.5.1 #19675
- 🔒 Upgrade to Spring Security 5.3.0.M1 #19654
- ⬆️ Upgrade to Micrometer 1.3.3 #19652
- ⬆️ Upgrade to Spring AMQP 2.2.3 #19651
- ⬆️ Upgrade to Spring Integration 5.3.0.M1 #19650
- ⬆️ Upgrade to Spring HATEOAS 1.1.0.M1 #19649
- ⬆️ Upgrade to Spring Kafka 2.4.1 #19612
- ⬆️ Upgrade to Spring Data Neumann-M2 #19588
- ⬆️ Upgrade to Spring Framework 5.2.3 #19534
- ⬆️ Upgrade to Tomcat 9.0.30 #19474
- ⬆️ Upgrade to Spring Batch 4.2.1 #19317
- ⬆️ Upgrade to Maven Enforcer Plugin 3.0.0-M3 #19276
- ⬆️ Upgrade to Webjars Locator Core 0.43 #19275
- ⬆️ Upgrade to Neo4j Ogm 3.2.3 #19273
- ⬆️ Upgrade to Jetty El 8.5.49 #19272
- ⬆️ Upgrade to Mockito 3.2.0 #19271
- ⬆️ Upgrade to Mariadb 2.5.2 #19270
- ⬆️ Upgrade to Liquibase 3.8.2 #19269
- ⬆️ Upgrade to Kotlin 1.3.61 #19268
- ⬆️ Upgrade to Hibernate 5.4.9.Final #19267
- ⬆️ Upgrade to Flyway 6.1.3 #19266
- ⬆️ Upgrade to Jaybird 3.0.8 #19265
- ⬆️ Upgrade to Jetty Reactive Httpclient 1.1.0 #19263
- ⬆️ Upgrade to Jetty 9.4.24.v20191120 #19262
- ⬆️ Upgrade to Aspectj 1.9.5 #19261
- ⬆️ Upgrade to Johnzon Jsonb 1.2.2 #19259
- ⬆️ Upgrade to Activemq 5.15.11 #19258
- ⬆️ Upgrade to Byte Buddy 1.10.4 #19257
- ⬆️ Upgrade to Undertow 2.0.28.Final #19256
- ⬆️ Upgrade to Rxjava2 2.2.15 #19255
- ⬆️ Upgrade to Prometheus Pushgateway 0.8.0 #19254
- ⬆️ Upgrade to Netty Tcnative 2.0.28.Final #19253
- ⬆️ Upgrade to Unboundid Ldapsdk 4.0.13 #19252
- ⬆️ Upgrade to Querydsl 4.2.2 #19251
- ⬆️ Upgrade to Appengine Sdk 1.9.77 #19250
- ⬆️ Upgrade to Jackson 2.10.1 #19249
- ⬆️ Upgrade to Couchbase Client 2.7.11 #19248
- ⬆️ Upgrade to Maven Source Plugin 3.2.0 #18930
- ⬆️ Upgrade to Maven Jar Plugin 3.2.0 #18929
- ⬆️ Upgrade to Maven Assembly Plugin 3.2.0 #18928
- ⬆️ Upgrade to Pooled Jms 1.1.0 #18926
- ⬆️ Upgrade to Influxdb Java 2.16 #18924
- ⬆️ Upgrade to Hibernate Validator 6.1.0.Final #18923
- ⬆️ Upgrade to Hamcrest 2.2 #18922
- ⬆️ Upgrade to Assertj 3.14.0 #18921
- ⬆️ Upgrade to Maven Resolver 1.4.1 #18454
🍱 ❤️ Contributors
🚀 We'd like to thank all the contributors who worked on this release!