Spring Boot v2.2.0.RC1 Release Notes

Release Date: 2019-10-03 // 14 days ago
  • 🍱 ⭐️ New Features

    • 👌 Support new Micrometer NewRelicConfig eventType properties #18472
    • ➕ Add annotation required to switch on constructor binding #18469
    • 🔧 Configure oauth2client in Reactive OAuth2 client auto-configuration #18385
    • ➕ Add Auto-configuration for RSocket Security #18356
    • ✂ Remove dependency management for Spring Plugin #18318
    • 👌 Support block based image banner pixels #18301
    • ➕ Add support @LocalRSocketServerPort for RSocket Port #18287
    • ⏱ Use Reactor's new Schedulers.boundedElastic() #18269
    • 👌 Improve handling of non-standard status codes in WebFluxTags #18267
    • ➕ Add auto-configuration support for TransactionalOperator #18265
    • ➕ Add Ansi 256 Colors support for ResourceBanner #18264
    • 👌 Improve embedded Tomcat's Graal compatibility #18262
    • ➕ Add AutoConfiguration support for spring-security-saml2-service-provider #18260
    • ➕ Add dependency management for Oracle JDBC driver #18242
    • ➕ Add support for X-Forwarded-Host using Tomcat's new RemoteIpValve hostHeader attribute #18233
    • 🌐 Apply ServerRSocketFactoryCustomizer to reactor netty web server #18208
    • 👉 Use Duration for ServerProperties.Jetty.idleTimeout #18206
    • Provide dependency management for Awaitility #18205
    • 👍 Tolerate Flyway 5.x while retaining support for Flyway 6 #18193
    • Add property ROLLING_FILE_LOG_PATTERN for File Appender #18151
    • ➕ Add property to transparently migrate deprecated endoint IDs #18148
    • ⬇️ Drop . prefix from config files in new .config directory #18006
    • 📇 Rename 'details' to 'components' in health actuator JSON #17929
    • 🗄 Deprecate spring-boot-starter-cloud-connectors in favour of Java CFEnv #17877
    • 0️⃣ Disable H2C by default when using Reactor Netty, aligning it with Jetty, Tomcat, and Undertow #17867
    • 🔧 Configure PathPatternRouteMatcher at the RSocketStrategies level #17571
    • 👌 Support # in addition to -- as a default comment prefix for Quartz DataSource initialization #17435
    • 🗄 Don't apply -Xverify:none on Java 13 as it has been deprecated #17008
    • Provide an env var that controls the user with which the launch script runs the app #16973
    • 👌 Support programmatic lazy-int exclusion #16615
    • 👌 Support zip64 jars #16091
    • ✅ Streamline WebTestClient creation and customization in integration tests #15132
    • Provide an option for showing individual health indicators' status but not their details #15076

    🍱 🐞 Bug Fixes

    • Bean binding might not be used when more than one constructor exists #18485
    • Main server ResourceConfigCustomizers should not apply to management context #18468
    • Actuator endpoint time-to-live caching is not respected on WebFlux #18411
    • Enforce ordering when ObjectProvider is used #18409
    • Typo in assertion error message produced by ApplicationContextAssert doesNotHaveBean #18379
    • DataSourceInitializedEvent picks wrong datasource #18369
    • Micrometer dependency management does not include its micrometer-registry-cloudwatch2 module #18367
    • Legacy HealthAggregator and HealthStatusHttpMapper are incorrectly reset #18354
    • 🔧 ReactiveManagementWebSecurityAutoConfiguration does not back off when oauth2 client configuration present #18345
    • BasicErrorController returns body even if NO_CONTENT status causing 406 later #18343
    • ✅ Dependency management for REST Assured is missing the spring-web-test-client module #18330
    • Concurrent EndpointRequest calls can cause NPE #18299
    • Logged application startup time has become overly precise #18278
    • Custom protocols are not honoured when Devtools is active #18239
    • ✅ TestTypeExcludeFilter does not detect JUnit 5's @testable annotation #18234
    • Dependency management for Janino is incomplete #18226
    • Bindable.withExistingValue drops annotations #18219
    • 👉 Use custom port for RSocket server over websocket #18200
    • HealthIndicatorRegistry bean is no longer available #18194
    • 🤡 RestTemplateBuilder headers no longer get applied when using MockRestServiceServer #17885
    • 🔧 Wrong semantic for immutable @ConfigurationProperties contributed via @import #17831
    • 🌐 It is unclear that the RSocket websocket transport requires Reactor Netty and is not supported with other web servers #17494
    • 🔧 Configuration Processor should use the constructor as a source only with @ConstructorBinding #17035
    • FileEditor not applied for String to File property conversion #16931

    📔 Documentation

    • ➕ Add Mustache to 'Customize ViewResolvers' docs section #18437
    • 🛠 Fix default values in metadata for HiddenHttpMethodFilter #18435
    • 📚 Polish some external documentation links #18384
    • 📄 Mention Java 13 in system requirements docs #18383
    • ➕ Add missing appendices to PDF reference documentation #18371
    • ⏱ Invalid property name in "Task Execution and Scheduling" example #18336
    • 📚 Broken links in documentation #18332
    • 💅 Reference Spring Framework RSocket section + polish #18321
    • 🛠 Fix small typo in configuration metadata documentation #18297
    • 🛠 fix logback example typo #18296
    • 🛠 Fix pre-defined logging group documentation #18283
    • 🛠 Fix typo in HealthContributors definition #18249
    • ✂ Remove duplicated row from HealthIndicators table #18248
    • 🛠 Fix minor typo in documentation #18222
    • ⬆️ Revisit test slices Javadoc with JUnit Jupiter upgrade #18178
    • 📚 Correct capitalization of GemFire in the reference documentation #18001
    • ✂ Remove reference to Spring IO Platform from documentation #17986
    • Split the appendices into multiple pages and include a table of contents in each #16289

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to Webjars Locator Core 0.41 #18497
    • ⬆️ Upgrade to Mockito 3.1.0 #18496
    • ⬆️ Upgrade to Hibernate 5.4.6.Final #18495
    • ⬆️ Upgrade to Johnzon Jsonb 1.2.0 #18493
    • ⬆️ Upgrade to Okhttp3 3.14.4 #18492
    • ⬆️ Upgrade to gmavenplus-plugin 1.8.0 #18462
    • ⬆️ Upgrade to Cargo Maven Plugin 1.7.7 #18461
    • ⬆️ Upgrade to Maven Maven Plugin 3.6.0 #18460
    • ⬆️ Upgrade to Download Maven Plugin 1.4.2 #18459
    • ⬆️ Upgrade to Spock 1.3-groovy-2.5 #18458
    • ⬆️ Upgrade to plexus-archiver to 3.7.0 #18457
    • ⬆️ Upgrade to maven-plugin-annotations 3.6.0 #18456
    • ⬆️ Upgrade to maven-common-artifact-filters 3.1.0 #18455
    • ⬆️ Upgrade to maven-archiver 3.4.0 #18453
    • ⬆️ Upgrade to MockK 1.9.3 #18452
    • ⬆️ Upgrade to Commons FileUpload 1.4 #18450
    • ⬆️ Upgrade to Testcontainers 1.12.2 #18446
    • ✂ Remove prohibited version of Maven Invoker Plugin #18442
    • 🚀 Upgrade to Spring REST Docs 2.0.4.RELEASE #18439
    • ⬆️ Upgrade to Netty Tcnative 2.0.26.Final #18433
    • ⬆️ Upgrade to Joda Time 2.10.4 #18432
    • ⬆️ Upgrade to Httpclient 4.5.10 #18431
    • ⬆️ Upgrade to Tomcat 9.0.26 #18430
    • ⬆️ Upgrade to Maven Invoker Plugin 3.2.1 #18429
    • ⬆️ Upgrade to Lombok 1.18.10 #18428
    • ⬆️ Upgrade to Postgresql 42.2.8 #18427
    • ⬆️ Upgrade to Neo4j Ogm 3.2.1 #18426
    • ⬆️ Upgrade to Mariadb 2.4.4 #18425
    • ⬆️ Upgrade to Kotlin Coroutines 1.3.2 #18424
    • ⬆️ Upgrade to Hibernate 5.4.5.Final #18423
    • ⬆️ Upgrade to Flyway 6.0.4 #18422
    • ⬆️ Upgrade to Artemis 2.10.1 #18421
    • ⬆️ Upgrade to Jakarta Jms 2.0.3 #18420
    • ⬆️ Upgrade to Prometheus Pushgateway 0.7.0 #18419
    • 🚀 Upgrade to Lettuce 5.2.0.RELEASE #18418
    • ⬆️ Upgrade to Hikaricp 3.4.1 #18417
    • ⬆️ Upgrade to Okhttp3 3.14.3 #18416
    • 🚀 Upgrade deployment test to TomEE 8.0.0 #18395
    • ⬆️ Upgrade to Micrometer 1.3.0 #18389
    • ⬆️ Upgrade to RSocket 1.0.0-RC5 #18364
    • ⬆️ Upgrade to Commons Compress 1.19 #18311
    • 🚀 Upgrade to Spring Doc Resources 0.1.3.RELEASE #18293
    • 🚀 Upgrade to Reactor Dysprosium-RELEASE #18276
    • 🚀 Upgrade to Spring HATEOAS 1.0.0.RELEASE #18258
    • ⬆️ Upgrade to Spring Session Corn-RC1 #18257
    • 🚀 Upgrade to Spring Security 5.2.0.RELEASE #18256
    • 🚀 Upgrade to Spring Kafka 2.3.0.RELEASE #18255
    • 🚀 Upgrade to Spring Integration 5.2.0.RELEASE #18254
    • 🚀 Update to Spring Data Moore-RELEASE #18253
    • 🚀 Upgrade to Spring Batch 4.2.0.RELEASE #18252
    • 🚀 Upgrade to Spring AMQP 2.2.0.RELEASE #18251
    • 🚀 Upgrade to Spring Framework 5.2.0.RELEASE #18232
    • ⬆️ Upgrade to Jackson 2.10.0 #17999
    • ⬆️ Upgrade to Jersey 2.29.1 #17430

    🍱 ❤️ Contributors

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


Previous changes from v2.2.0.M6

  • 🍱 ⭐️ New Features

    • Provide a public API for determining the outcome of a request from its response's status code #18150
    • 👌 Improve handling of non-standard status codes in WebMvcTags #17998
    • 🔧 Auto-configure Flyway with any JavaMigration beans #17993
    • ➕ Added Additional Resource Server Configuration of Issuer Validation #17953
    • ➕ Additional sanitization for URI being exposed over Endpoints #17939
    • 🔧 Configure ping (formerly application) health indicator by default #17926
    • ✂ Remove default favicon #17925
    • ➕ Added support for dev-tools yaml configuration #17915
    • 🔒 Bypass Spring Security authentication for remote devtools endpoint #17878
    • 👌 Support multiple drives when using the CLI on Windows with cygwin #17872
    • 👍 Allow Jetty's threadpool to be configured via properties #17871
    • 👉 Make logError() in AbstractErrorWebExceptionHandler overrideable #17863
    • 🔦 Expose dependency management plugin version in dependency management #17854
    • ➕ Add confirm-type property to RabbitProperties #17848
    • ➕ Add support for configuring Spring Session JDBC flush mode #17797
    • ➕ Add dependency management for IBM DB2 JDBC driver #17782
    • 🔧 Provide a configuration property for JMS listener container's receive timeout #17332
    • 👌 Support parallel test execution with @AutoConfigureMockMvc #16179
    • ➕ Add support for health indicator groups #14022

    🍱 🐞 Bug Fixes

    • Annotation processor does not detect properties with custom constructor #18184
    • Get Comment From Nested JarFile Incorrect #18168
    • Quartz is failing with JDBC but without Liquibase #18165
    • 🔧 @Component cannot not longer be used on @ConfigurationProperties beans #18138
    • Binder can throw NPE if BindHandler.onStart return null #18129
    • 📇 HikariCP and Tomcat specific datasource properties missing in spring-configuration-metadata.json #18124
    • SolrHealthIndicator reports down when baseUrl references a core instead of the root context #18110
    • NoSuchBeanDefinitionException with a custom FlywayMigrationInitializer bean that is not named flywayInitializer #18106
    • NoSuchBeanDefinitionException with a custom Flyway bean that is not named flyway #18103
    • 👻 TypeUtils.process(TypeDescriptor, TypeMirror) swallows exception message and stack trace #18094
    • 📇 Duplicate metadata entry for property that is @Deprecated when Lombok runs before spring-boot-configuration-processor #18093
    • Quartz may attempt to use the DataSource before migrations have been run #18085
    • "spring" shell script error on AIX Bash 4.3.0 #18084
    • SSL handshake fails when client authentication is enabled and starter-jetty is used #18083
    • When using Netty, an invalid content-type header value causes request to get stuck when compression is enabled #18027
    • ApplicationContextRequestMatcher can use the wrong ApplicationContext #18021
    • Spring Boot CLI is unable to always capture ctrl-c #17996
    • throws IllegalArgumentException when downloading file when filename includes '%' for undertow server #17994
    • RestTemplateExchangeTags does not handle non-standard status codes #17991
    • 🌐 Non MVC web applications always return 404 for errors #17959
    • WebClientExchangeTags does not handle non-standard status codes #17950
    • 🤡 Mocking session scoped spy bean calls real method #17948
    • 🔌 Cannot override jackson.version using Gradle Dependency Management Plugin #17943
    • 📦 DataSourceSchemaCreatedPublisher.getPersistenceProviderRootPackage fails with a NullPointerException when using a custom LocalContainerEntityManagerFactoryBean that has no JpaVendorAdapter #17942
    • OutOfMemoryError on TomcatEmbeddedContext when trying to precompile JSP files #17928
    • Custom favicon placed in static resources doesn't work since 2.2.0.M5 #17922
    • 👉 Use alwaysApplyingWhenNonNull PropertyMapper to set the values in the LdapContextSource #17889
    • Liquibase bean with name other than 'liquibase' breaks context #17887
    • spring.config.additional-location as environment variable does not work correctly #17857
    • websocket transport not applied on RSocket servers without WebFlux #17845
    • 🔧 UndertowServletWebServerFactory does not configure a temporary directory #17813
    • Wrong annotation lookup with proxied endpoints #17812
    • 🏗 NPE in BuildInfoMojo when running under eclipse #17810
    • Unable to use off for enum values in yaml file #17798
    • 🔧 Confusing and incomplete failure analysis when ConfigurationProperties uses constructor for beans #17750
    • AbstractErrorWebExceptionHandler fails when the response has a non-standard status code #16691

    📔 Documentation

    • ✂ Remove management.health.status.order from docs #18170
    • 👌 Improve devtools trigger-file documentation #18132
    • Provide a How-To for customizing WebClient's TcpClient #18125
    • ✅ Doc the pros and cons of Out-of-Container and Integration Tests #18120
    • Clarify Logback XML #18118
    • 📦 Document @SpringBootApplication scanBasePackages restrictions #18117
    • 🛠 Fix typo in deprecation reason for liquibase.check-change-log-location property #18108
    • Document that Filter beans are eagerly initialized #18081
    • 📚 Clarify "YAML Shortcomings" documentation #18080
    • Document logger environment variable restrictions #18079
    • 🔧 Document need to exactly match Hibernate's property format when configuring spring.jpa.properties.hibernate.* properties #18026
    • ✂ Remove warning about MBean shutdown since it's disabled by default in 2.0 #18025
    • Project API links should used versioned links #18024
    • ✂ Remove spring-boot-starter-data-gemfire from documentation #18023
    • 📚 Update "Web Application Conditions" documentation to mention reactive #18022
    • ✂ Remove reference to non-existent --edit option in CLI docs #18016
    • 🛠 Fix Undertow access log dir property name in doc #17972
    • Document the response structure when retrieving a single logger group #17909
    • 📚 Expand documentation on remote devtools #17880
    • 0️⃣ Document that default property values for certain types are not detected by the annotation processor #17855
    • 🛠 Fix syntax errors in docs #17840
    • ➕ Add reference to Pebble Templates to 3rd party starter list #17822
    • 🔧 Document that auto-configuration classes and properties are considered internal #17818
    • 👍 Document Prometheus Pushgateway support #17815
    • 📚 Include logger group with configuredLevel in LoggersEndpoint documentation #17772

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to Junit Jupiter 5.5.2 #18182
    • ⬆️ Upgrade to Glassfish El 3.0.3 #18181
    • ⬆️ Upgrade to Micrometer 1.2.1 #18180
    • ⬆️ Upgrade to Neo4j Ogm 3.2.0-RC2 #18162
    • ⬆️ Upgrade to Jooq 3.12.1 #18161
    • ⬆️ Upgrade to Kotlin Coroutines 1.3.1 #18160
    • ⬆️ Upgrade to Elasticsearch 6.8.3 #18159
    • ⬆️ Upgrade to Ehcache3 3.8.1 #18158
    • ⬆️ Upgrade to Jakarta Ws Rs 2.1.6 #18157
    • ⬆️ Upgrade to Jakarta Websocket 1.1.2 #18156
    • ⬆️ Upgrade to Jakarta Servlet Jsp Jstl 1.2.7 #18155
    • ⬆️ Upgrade to Jakarta Servlet 4.0.3 #18154
    • ⬆️ Upgrade to Httpcore 4.4.12 #18147
    • ⬆️ Upgrade to Activemq 5.15.10 #18146
    • ⬆️ Upgrade to Undertow 2.0.26.Final #18145
    • ⬆️ Upgrade to Maven Site Plugin 3.8.2 #18075
    • ⬆️ Upgrade to Snakeyaml 1.25 #18074
    • ⬆️ Upgrade to Webjars Locator Core 0.40 #18073
    • ⬆️ Upgrade to Slf4j 1.7.28 #18072
    • ⬆️ Upgrade to Selenium Htmlunit 2.36.0 #18071
    • ⬆️ Upgrade to Reactive Streams 1.0.3 #18070
    • ⬆️ Upgrade to Mongo Driver Reactivestreams 1.12.0 #18069
    • ⬆️ Upgrade to Mongodb 3.11.0 #18068
    • ⬆️ Upgrade to Liquibase 3.8.0 #18067
    • ⬆️ Upgrade to Jboss Logging 3.4.1.Final #18066
    • ⬆️ Upgrade to Infinispan 9.4.16.Final #18065
    • ⬆️ Upgrade to Freemarker 2.3.29 #18064
    • ⬆️ Upgrade to Jetty 9.4.20.v20190813 #18063
    • ⬆️ Upgrade to Janino 3.1.0 #18062
    • ⬆️ Upgrade to Groovy 2.5.8 #18061
    • ⬆️ Upgrade to Tomcat 9.0.24 #18060
    • ⬆️ Upgrade to Log4j2 2.12.1 #18059
    • ⬆️ Upgrade to Commons Dbcp2 2.7.0 #18058
    • ⬆️ Upgrade to Artemis 2.10.0 #18057
    • ⬆️ Upgrade to Htmlunit 2.36.0 #18056
    • ⬆️ Upgrade to Byte Buddy 1.10.1 #18055
    • ⬆️ Upgrade to Jakarta Transaction 1.3.3 #18054
    • ⬆️ Upgrade to Jakarta Persistence 2.2.3 #18053
    • ⬆️ Upgrade to Jakarta Json Bind 1.0.2 #18052
    • ⬆️ Upgrade to Jakarta Json 1.1.6 #18051
    • ⬆️ Upgrade to Jakarta Annotation 1.3.5 #18050
    • ⬆️ Upgrade to Undertow 2.0.25.Final #18049
    • ⬆️ Upgrade to Rsocket 1.0.0-RC3 #18048
    • ⬆️ Upgrade to Rxjava2 2.2.12 #18047
    • ⬆️ Upgrade to Netty 4.1.39.Final #18046
    • ⬆️ Upgrade to Jakarta Mail 1.6.4 #18045
    • ⬆️ Upgrade to Caffeine 2.8.0 #18044
    • ⬆️ Upgrade to Jooq 3.12.0 #18014
    • ⬆️ Upgrade to Flyway 6.0.1 #17997
    • ⬆️ Upgrade to Kotlin 1.3.50 #17982
    • ⬆️ upgrade git commit id plugin version to 3.0.1 for issue 17879 #17981
    • ⬆️ Upgrade to mssql-jdbc 7.4.1.jre8 #17965
    • ⬆️ Upgrade to Kotlin Coroutines 1.3.0 #17907
    • ⬆️ Upgrade to Spring HATEOAS 1.0.0.RC2 #17904
    • ⬆️ Upgrade to Spring Session Corn-M4 #17903
    • ⬆️ Upgrade to Spring Kafka 2.3.0.RC1 #17902
    • ⬆️ Upgrade to Spring Integration 5.2.0.RC1 #17901
    • ⬆️ Upgrade to Spring Data Moore-RC3 #17900
    • ⬆️ Upgrade to Spring Batch 4.2.0.RC1 #17899
    • ⬆️ Upgrade to Spring AMQP 2.2.0.RC1 #17898
    • 🔒 Upgrade to Spring Security 5.2.0.RC1 #17897
    • ⬆️ Upgrade to Spring Framework 5.2.0.RC2 #17896
    • ⬆️ Upgrade to Reactor Dysprosium-RC1 #17895
    • ⬆️ Upgrade to Jackson 2.9.9.20190807 #17850
    • ⬆️ Upgrade to Mockito 3.0.0 #17803
    • ⬆️ Upgrade to Rsocket 1.0.0-RC2 #17800
    • ⬆️ Upgrade to Couchbase Client 2.7.9 #17795

    🍱 ❤️ Contributors

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