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 to ApplicationRunner #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!