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 configure ConfigureRedisAction #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!