Spring Boot v2.2.0.M4 Release Notes
Release Date: 2019-06-19 // almost 5 years ago-
🍱 ⭐️ New Features
- 👌 Support annotations on constructor parameters for binding #17109
- ➕ Add general purpose header support to RestTemplateBuilder #17091
- 🖨 Register Printer and Parser beans as converters #17064
- 🌲 Log JDBC connection URL for embedded database when using H2 console #17063
- ⬇️ Drop deprecated spring.version pom property in favor of spring-framework.version #17043
- ➕ Add
configuration-strategy
property to RedisSessionProperties to configureConfigureRedisAction
#17022 - 🔧 Exclude groovy.lang.MetaClass type from configuration annotation processor #16996
- 👉 Make it easier to set bufferRequestBody on ClientHttpRequestFactory #16972
- Define the classloader for FluentConfiguration #16947
- 0️⃣ Fork process with spring-boot:run by default #16945
- ⚡️ Update Maven spring-boot:run to launch JVM with flags to enable development-time optimisations #16941
- 🔧 Configure String codecs in RSocket strategies #16924
- 🌲 Use deferred logging rather than System.out to report jars on the classpath with Class-Path manifest attributes that point to non-existent files when using DevTools #16883
- 👌 Improve diagnostics when JVM launched by spring-boot:run exits with a non-zero status #16869
- 🔧 Configure PathPattern for RSocket routing #16865
- 👍 Allow Flyway or Liquibase to be auto-configured without a DataSource bean #16850
- ➕ Add support for AWS Redshift JDBC driver #16831
- 🔧 Auto-configure Kafka listener container factory with user-provided rebalance listener #16755
- 🔧 Provide a configuration property for Spring Kafka's missingTopicsFatal #16740
- ⚡️ Optimize CacheKey handling in SpringIterableConfigurationPropertySource #16717
- 👉 Make excludeDevtools available as a user property #16701
- Set UTF-8 charset for whitelabel HTML error pages #16611
- ➕ Add annotation to support registering Jackson key serializer/deserializers #16544
- 🔧 Auto-configure Elasticsearch REST client in Spring Data #16542
- 🔧 Rename spring.reactor.stacktrace-mode configuration property #16537
- 0️⃣ Disable Tomcat's MBean Registry by default and provide a property to enable it #16498
- 👌 Improve configuration property binding performance with extremely large input files #16401
- ➕ Add support for Couchbase's role based access #16389
- ⚡️ Update Gradle bootRun to launch JVM with flags to enable development-time optimisations #16222
- 🔧 Auto-configure reactive Elasticsearch components introduced in Spring Data Moore #16214
- 📇 Include spring.profiles in additional-spring-configuration-metadata.json #16107
- 🔄 Change Logback's maxHistory property default to 7 days #15875
- ➕ Add configuration support for Opaque Token authentication #15872
- 🔧 Avoid codec auto-configuration when they are not going to be used #15690
- 🔄 Change default Freemarker template file extension to .ftlh to enable HTML escaping #15131
- 🏗 Make it possible for the output from the BuildInfo task to be repeatable #14494
- 👌 Improve analysis of Tomcat connector start failures by using new throwOnFailure attribute #7130
🍱 🐞 Bug Fixes
- 🔌 Gradle plugin creates fat jars that do not align with unspecified assumption that META-INF/MANIFEST.MF should be the first or second entry #17232
- Netty connection timeouts of 0 or -1 are not applied correctly #17228
- PropertyMapper does not chain when and whenNot calls #17227
- Dependency management for JavaBeans Activation Framework is incomplete #17223
- 🔧 @WebMvcTest ignores base path configured via @WebAppConfiguration #17220
- Missing outcome tag for WebClient metrics on errors #17219
- 🔧 Flyway and Liquibase auto-configuration does not consider DataSource properties configured via @AutoConfigureTestDatabase #17218
- 🔧 @JooqTest does not auto-configure caching #17213
- Fat jar launcher mishandles root jar files with + characters in their path, making nested entries unloadable #17211
- Logback debugging property is ignored unless a logback file is present #17192
- Getting an InputStream from a JarURLConnection for a nested jar or an entry in a nested jar creates a JarFile that's never closed #17127
- JarFileArchive creates a JarFile that is never closed #17126
- 📜 JarFile leaks a file handle if central directory parsing fails #17124
- JarResourceManager leaks an InputStream when asked for a Resource for the root of a jar #17122
- 🌲 Embedded Undertow containers may lose access log entries when shut down #17120
- Repackaging with Maven may not close a library's input stream when adding it to the jar #17118
- DevTools' ChangeableUrls creates JarFiles that are not closed when looking for Class-Path manifest entries #17114
- DevTools uses the wrong command to shut down an in-memory Derby database #17104
- Constructor binding can fail with non iterable property sources #17098
- SpringIterableConfigurationPropertySource cache is not thread safe #17018
- 🖐 Handle all getters first in JavaBeanBinder.addProperties() #17016
- 0️⃣ ConfigFileApplicationListener filtering fails when the defaultPropertySource is a composite #17011
- RestTemplateBuilder.basicAuth causes the entire body to be read into memory #17010
- JVM can't exit due to threads left if Tomcat throws exceptions during shutdown #16995
- 🔒 Spring Session without Spring Security leads to NoClassDefFoundError: org/springframework/security/web/authentication/RememberMeServices #16992
- 🔧 Spring Data Cassandra auto-configuration should be conditional on Cluster bean #16990
- ⚡️ JavaBeanBinder.Bean.get() does not use updated resolved type when checking for type differences #16988
- 0️⃣ spring-boot:run uses the wrong default working directory for a forked JVM #16960
- 📦 SpringBootVersion fails with a NullPointerException if Package has no implementation version and the ProtectionDomain returns a null CodeSource #16956
- 🔊 WebSphere Liberty's WSJdbcDataSource logs an exception during startup when using a JNDI DataSource with Hikari still on the classpath #16940
- ReactiveSecurityAutoConfiguration can cause TypeNotPresentExceptionProxy #16939
- 🔧 Constructor-based configuration property binding fails silently when parameter name information is not available #16928
- Cannot call HTTP when rsocket server is activated #16826
- Actuator /configprops shows Duration properties as { "units": ["SECONDS", "NANOS"] } #16539
📔 Documentation
- 📄 Correct expansion of jOOQ in the reference docs #17196
- 🛠 Fix regular expression used in devools documentation #16993
- 🛠 Fix unresolved includes in Gradle Plugin's reference documentation #16968
- 📄 Reinstate htmlsingle and PDF reference docs #16854
- Document that -Dspring.profiles.active should not be used to run an app with Maven #10926
⬆️ 🔨 Dependency Upgrades
- ⬆️ Upgrade to Mariadb 2.4.2 #17237
- ⬆️ Upgrade to Infinispan 9.4.15.Final #17236
- ⬆️ Upgrade to Micrometer 1.1.5 #17224
- ⬆️ Upgrade to Spring AMQP 2.2.0.M3 #17203
- ⬆️ Upgrade to Spring Kafka 2.3.0.M3 #17202
- ⬆️ Upgrade to Spring Integration 5.2.0.M3 #17201
- ⬆️ Upgrade to Maven War Plugin 3.2.3 #17190
- ⬆️ Upgrade to Mockito 2.28.2 #17189
- ⬆️ Upgrade to Infinispan 9.4.14.Final #17188
- ⬆️ Upgrade to Hsqldb 2.5.0 #17187
- ⬆️ Upgrade to Hibernate Validator 6.0.17.Final #17186
- ⬆️ Upgrade to Hibernate 5.4.3.Final #17185
- ⬆️ Upgrade to Jaybird 3.0.6 #17184
- ⬆️ Upgrade to Jetty 9.4.19.v20190610 #17183
- ⬆️ Upgrade to Tomcat 9.0.21 #17182
- ⬆️ Upgrade to Kafka 2.2.1 #17181
- ⬆️ Upgrade to Johnzon Jsonb 1.1.12 #17180
- ⬆️ Upgrade to Httpclient 4.5.9 #17179
- ⬆️ Upgrade to Artemis 2.9.0 #17178
- ⬆️ Upgrade to Byte Buddy 1.9.13 #17177
- ⬆️ Upgrade to Undertow 2.0.21.Final #17176
- ⬆️ Upgrade to Rxjava2 2.2.9 #17175
- 🚀 Upgrade to Lettuce 5.1.7.RELEASE #17174
- ⬆️ Upgrade to Unboundid Ldapsdk 4.0.11 #17173
- ⬆️ Upgrade to Rabbit Amqp Client 5.7.1 #17172
- ⬆️ Upgrade to Hazelcast 3.12.1 #17171
- ⬆️ Upgrade to Appengine Sdk 1.9.75 #17170
- ⬆️ Upgrade to Couchbase Client 2.7.7 #17169
- 🚀 Upgrade to Dependency Management Plugin 1.0.8.RELEASE #17151
- ⬆️ Upgrade to Rsocket 0.12.2-RC4 #17131
- ⬆️ Upgrade to Spring HATEOAS 1.0.0.M3 #17075
- ⬆️ Upgrade to Spring Data Moore-RC1 #16966
- 🔒 Upgrade to Spring Security 5.2.0.M3 #16965
- ⬆️ Upgrade to Reactor Dysprosium-M2 #16964
- ⬆️ Upgrade to Spring Framework 5.2.0.M3 #16963
- ⬆️ Upgrade to Couchbase Client 2.7.6 #16950
- ⬆️ Upgrade to Maven Source Plugin 3.1.0 #16922
- ⬆️ Upgrade to Pooled Jms 1.0.5 #16921
- ⬆️ Upgrade to Jboss Logging 3.4.0.Final #16920
- ⬆️ Upgrade to Tomcat 9.0.20 #16919
- ⬆️ Upgrade to Javax Cache 1.1.1 #16918
- ⬆️ Upgrade to Dropwizard Metrics 4.1.0 #16917
- ⬆️ Upgrade to Okhttp3 3.14.2 #16916
- ⬆️ Upgrade to Sendgrid 4.4.1 #16915
- ⬆️ Upgrade to Jackson 2.9.9 #16914
- ⬆️ Upgrade to Spring Session Corn-M2 #16587
- ⬆️ Upgrade to Hamcrest 2.1 #15555
🍱 ❤️ Contributors
🚀 We'd like to thank all the contributors who worked on this release!