All Versions
56
Latest Version
Avg Release Cycle
31 days
Latest Release
1253 days ago

Changelog History
Page 2

  • v2.3.2.RELEASE Changes

    July 24, 2020

    🍱 ⭐ New Features

    • 👌 Improve Liveness/Readiness health indicators and probes configuration #22107
    • ➕ Add run-image option for image building #21534
    • ➕ Add support for reactive Elasticsearch healthcheck #21042

    🍱 🐞 Bug Fixes

    • 📇 AbstractRepositoryConfigurationSourceSupport does not override registerBeanDefinitions(AnnotationMetadata, BeanDefinitionRegistry) #22480
    • ConditionMessage#items throws an NPE with a null list of items although the Javadoc states it is tolerated #22344
    • 🔧 ConfigurationPropertiesBeanDefinitionValidator interferes with EclipseLink load-time weaving #22325
    • 🏗 Image building fails when DOCKER_HOST is set to a local socket prefixed with unix:// #22300
    • 🔧 OnClassCondition tries to determine the outcome for single auto-configuration classes in parallel #22294
    • A WebFlux app that depends on com.amazonaws:DynamoDBLocal fails to start #22282
    • 0️⃣ NullPointerException in ErrorPageFilter when a MissingServletRequestParameterException is thrown and there's no DefaultHandlerExceptionResolver #22249
    • 🔊 Numerous logs mentioning a failed JNDI lookup when using Jetty #22241
    • 🔒 OAuth2ResourceServerAutoConfiguration does not back off completely when spring-security-oauth2-resource-server is not on the classpath #22233
    • 👍 Period conversion does not support a ChronoUnit of WEEKS but supports weeks in ISO-8601 (e.g. P2W) and simple (e.g. 2w) formats #22225
    • 🏗 Image building fails with an unhelpful error message when building an image from a jar that includes the launch script #22223
    • ⚠ Layered bootJar task causes warnings when custom source set is present in the project #22200
    • @ConditionalOnSingleCandidate does not match when there is a single candidate that is a scoped bean #22197
    • 🏗 NPE in spring-boot-maven-plugin:build-image when setting custom builder that is not a builder #22179
    • 🔧 Accept empty filter dispatcher types in auto-configurations #22175
    • ⚠ TomcatMetricsBinder may log a warning for an NPE if the context is closed before the ApplicationStartedEvent is published #22167
    • Resource loading fails in Tomcat when Spring Boot is loaded from the common class loader #22119
    • 🔌 Temporary files not cleaned up after Maven plugin execution #22112
    • RedisReactiveHealthIndicator is broken with Redis cluster mode #22096
    • Management health group does not inherit show-details property #22063
    • 👀 layertools with a wrong option seems to fail silently #22042
    • NamedPipeSocket does not handle FileSystemException when establishing the file channel #22035
    • ⏱ In a context hierarchy, timeout-per-shutdown-phase is only honoured in the root context #22014
    • LOGBACK: No context given for c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy #22010
    • ✅ MockBean does not resolve the right type for abstract test class #22006
    • 🔧 The failure when spring.redis.url is configured with a redis-sentinel:// URL is hard to diagnose #21999
    • spring-boot-starter-parent contains elements that must be overridden and aren't documented as such #21989
    • 🔒 Projects using Maven and spring-security-oauth2-client end up with a downgraded version of json-smart that isn't compatible with the managed version of json-path #21939
    • 🚚 Kafka Stream consumer metrics were lost in the move away from KafkaConsumerMetrics #21921
    • 🔌 Dependencies enforced without applying plugin #21911
    • 👍 Welcome page support bypasses controllers mapped to / #21909
    • AvailabilityChangeEvent does not carry generic information #21898
    • ✅ Property spring.autoconfigure.exclude ignored by test slices #21736
    • 🏗 Image references passed to a CNB builder are not validated #21495

    📔 Documentation

    • 📚 Update the documentation to avoid trivialising what the reader's learning about #22410
    • 🔧 Clarify the effect of ordering auto-configuration #22339
    • 🏗 Restructure "Building Container Images" section #22296
    • 📚 Update documentation to reflect the web server now being started immediately before the ContextRefreshedEvent is published #22277
    • Clarify locations inside and outside the jar from which properties are loaded #22264
    • 📄 Rename NoneOfNestedConditions to NoneNestedConditions in example docs #22246
    • ➕ Add package info for org.springframework.boot.autoconfigure.elasticsearch.rest #22147
    • Document how to exclude an annotation processor with Maven #22023
    • ✂ Remove Javadoc throw for ConfigurationPropertyName.ofIfValid() #22018
    • 🛠 Fix wrong property reference to keys-to-sanitize in Javadoc #21916
    • 👍 Document Kafka metrics support #21910
    • 🛠 Fix formatting of @Bean in reference documentation #21908
    • ⚡️ Update layers.idx file example in docs #21510

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to Micrometer 1.5.3 #22553
    • ⬆️ Upgrade to MariaDB 2.6.2 #22541
    • ⬆️ Upgrade to AspectJ 1.9.6 #22540
    • ⬆️ Upgrade to Groovy 2.5.13 #22526
    • ⬆️ Upgrade to Tomcat 9.0.37 #22478
    • ⬆️ Upgrade to Solr 8.5.2 #22477
    • ⬆️ Upgrade to Netty 4.1.51.Final #22476
    • ⬆️ Upgrade to Neo4j OGM 3.2.14 #22475
    • ⬆️ Upgrade to MySQL 8.0.21 #22474
    • ⬆️ Upgrade to MongoDB 4.0.5 #22473
    • 🚀 Upgrade to Lettuce 5.3.2.RELEASE #22470
    • ⬆️ Upgrade to Kotlin Coroutines 1.3.8 #22469
    • ⬆️ Upgrade to jOOQ 3.13.3 #22468
    • ⬆️ Upgrade to Johnzon 1.2.8 #22467
    • ⬆️ Upgrade to Jetty 9.4.30.v20200611 #22466
    • ⬆️ Upgrade to Jetty Reactive HTTPClient 1.1.4 #22465
    • ⬆️ Upgrade to Jakarta Servlet 4.0.4 #22464
    • ⬆️ Upgrade to Jackson Bom 2.11.1 #22463
    • ⬆️ Upgrade to HSQLDB 2.5.1 #22462
    • ⬆️ Upgrade to Hibernate 5.4.18.Final #22461
    • ⬆️ Upgrade to Hazelcast 3.12.8 #22460
    • ⬆️ Upgrade to Flatten Maven Plugin 1.2.4 #22459
    • ⬆️ Upgrade to Dropwizard Metrics 4.1.11 #22458
    • ⬆️ Upgrade to DB2 JDBC 11.5.4.0 #22457
    • ⬆️ Upgrade to Couchbase Client 3.0.6 #22456
    • ⬆️ Upgrade to Caffeine 2.8.5 #22455
    • ⬆️ Upgrade to Byte Buddy 1.10.13 #22454
    • ⬆️ Upgrade to AppEngine SDK 1.9.81 #22453
    • ⬆️ Upgrade to ActiveMQ 5.15.13 #22452
    • ⬆️ Upgrade to R2DBC Arabba-SR6 #22394
    • ⬆️ Upgrade to Spring Kafka 2.5.4 #22390
    • ⬆️ Upgrade to Spring Integration 5.3.2 #22389
    • ⬆️ Upgrade to Spring Data Neumann-SR2 #22388
    • ⬆️ Upgrade to Spring AMQP 2.2.9 #22387
    • ⬆️ Upgrade to Reactor Dysprosium-SR10 #22376
    • ⬆️ Upgrade to Spring Framework 5.2.8 #22375
    • ⬆️ Upgrade to Maven Shade Plugin 3.2.4 #22227

    🍱 ❤️ Contributors

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

  • v2.3.1.RELEASE Changes

    June 12, 2020

    🍱 ⭐ New Features

    • Provide dependency management for Oracle?s JDBC driver under new com.oracle.database Maven coordinates #21663
    • Spring Cloud's CachedRandomPropertySource is not adapted correctly #21660
    • Restrict use of custom YAML types #21598
    • 👌 Improve failure analysis of NoSuchMethodErrors to show where superclasses were loaded from #21587
    • 🐳 Provide better error message if Docker is not running #21554
    • ⚡️ Optimize SystemEnvironmentPropertyMapper #21523
    • 🏗 Provide better diagnostics when building an OCI image fails due to a 500 response from Docker #21515
    • 🔧 Consider configuring UrlPathHelper with alwaysUseFullPath=true #21499
    • 👌 Support user info in Elasticsearch URIs #21381
    • 👍 Welcome page support in Spring WebFlux #9785

    🍱 🐞 Bug Fixes

    • 0️⃣ Default log levels are inconsistent between log4J2 and logback #21882
    • Actuator 'loggers' endpoint does not return all loggers for log4j #21880
    • 🏗 Not able to use digest in 'builder' reference #21879
    • Different actuator management server port changes response on errors #21875
    • 🔒 WebMvcTest does not use the auto-configured ordering for Spring Security's filter #21837
    • 🔧 Configuring server.* properties in a child context has no effect in Spring Boot 2.3 #21789
    • STOMP does not work with lazy initialization #21786
    • 🔧 Auto-Configuration for Cassandra does not back off if a custom ReactiveSessionFactory is defined #21769
    • Spring Boot CLI adds classes from current directory to the classpath on Unix-like platforms #21755
    • Unpacked Spring Boot applications don't show version on startup #21705
    • 🛠 Fix BasicErrorController to use binding error cfg #21702
    • 👍 UnsupportedOperationException is thrown from war when shutting down Tomcat #21684
    • 🐳 Docker calls may hang forever #21672
    • SpringConfigurationPropertySource incorrectly returns ABSENT for sub properties #21655
    • 🔒 Management security configuration does not back off when SAML is configured #21642
    • Dependency management for Kafka 2.5 on nonexistent org.apache.kafka:kafka_2.11:2.5.0 #21589
    • 🔧 NoSuchBeanDefinitionException for org.springframework.context.annotation.ConfigurationClassPostProcessor.importRegistry when trying to publish AvailabilityChangeEvent during context close processing after refresh failure #21588
    • Connection and read timeouts are no longer mapped for NewRelic #21578
    • PropertiesLauncher cannot load a resource in jar via URL #21575
    • 👍 Period conversion support should not be public #21574
    • 🗄 Reintroduce RestClientBuilderCustomizer in deprecated form #21572
    • URI tag for WebMvc and WebFlux metrics is empty, rather than "root", when the path pattern is empty #21560
    • 🔌 Maven plugin help is missing #21556
    • productionRuntimeClasspath fails to resolve multiplatform dependency variants #21549
    • Pulling CNB run image fails when no tag is provided in image name #21532
    • 🌲 ServletWebServerApplicationContext uses a logger for ContextLoader for some of its logging #21522
    • 🔌 Dependency version for org.apache.commons:commons-compress is missing from spring-boot-gradle-plugin's pom #21518
    • Scope of some dependencies has changed from compile to runtime #21507
    • Password-based authentication with Cassandra does not work with Spring Boot 2.3.0 #21487
    • Order of map property in application yaml is no longer preserved #21470
    • 🛠 Fix MustacheEnvironmentCollector to not ignore native fetcher #21060
    • @SpringBootTest not picking @nAmed classes with a non-public constructor #20929

    📔 Documentation

    • 🔌 Document using system properties in gradle plugin docs #21798
    • 📚 spring.config.name is not formatted as an environment variable in multi-page reference documentation #21794
    • 🔧 Clarify that configuring a custom health HTTP status mapping replaces the default mappings #21762
    • 🚀 Document the difference in dispatch type and the effect on the security filter caused by the error page filter when deployed to a standalone container #21760
    • 👍 Document support for Gradle 5 #21752
    • Replace whitelist with a term that does not have racist connotations #21744
    • 💅 Polish #21732
    • 📚 Use highlightjs for syntax highlighting in HTML documentation #21701
    • 🗄 Document deprecations of org.springframework.boot.loader.archive.Archive.iterator() #21695
    • 📚 Documentation refers to wrong name for AvailabilityChangeEvent #21692
    • ➕ Add reference to rocketmq-spring-boot-starter #21653
    • 🔄 Change liveness-port to management-port #21650
    • 📚 {gradle-project-version}, rather than the project's actual version, appears in the Gradle plugin's reference documentation #21640
    • 🔖 Version-specific content is missing from Gradle Plugin's reference documentation #21610
    • 💅 Polish duration support javadoc #21579
    • Mark new public API added to spring-boot-loader in 2.3 with @SInCE tags #21576
    • 🔗 Links to Apache camel starter are broken #21563
    • 🛠 Fix typo in coordinates of junit-vintage-engine #21529
    • Document how to enable liveness and readiness probes outside of a Kubernetes environment #21505
    • 📇 Update configuration property metadata to reflect that spring.data.jpa.repositories.bootstrap-mode now defaults to deferred #21492
    • ➕ Add an example for setting a custom image name on the command line with Gradle #21490
    • 👉 Use https to link to groovy-lang.org #21472

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to Postgresql 42.2.14 #21871
    • ⬆️ Upgrade to Netty tcNative 2.0.31.Final #21870
    • ⬆️ Upgrade to Undertow 2.1.3.Final #21865
    • ⬆️ Upgrade to Tomcat 9.0.36 #21864
    • 🚀 Upgrade to Spring Security 5.3.3.RELEASE #21863
    • 🚀 Upgrade to Spring AMQP 2.2.7.RELEASE #21862
    • ⬆️ Upgrade to RSocket 1.0.1 #21861
    • ⬆️ Upgrade to R2DBC Bom Arabba-SR4 #21860
    • ⬆️ Upgrade to OkHttp3 3.14.9 #21858
    • ⬆️ Upgrade to Netty 4.1.50.Final #21857
    • ⬆️ Upgrade to Neo4j OGM 3.2.12 #21856
    • ⬆️ Upgrade to MongoDB 4.0.4 #21855
    • ⬆️ Upgrade to Log4j2 2.13.3 #21854
    • 🚀 Upgrade to Lettuce 5.3.1.RELEASE #21853
    • ⬆️ Upgrade to Kotlin Coroutines 1.3.7 #21852
    • ⬆️ Upgrade to Johnzon 1.2.7 #21851
    • ⬆️ Upgrade to Jetty 9.4.29.v20200521 #21850
    • ⬆️ Upgrade to Jetty Reactive HTTPClient 1.1.3 #21849
    • ⬆️ Upgrade to Jaybird 3.0.9 #21848
    • ⬆️ Upgrade to Hibernate 5.4.17.Final #21847
    • ⬆️ Upgrade to Groovy 2.5.12 #21846
    • ⬆️ Upgrade to Flyway 6.4.4 #21845
    • ⬆️ Upgrade to Dropwizard Metrics 4.1.9 #21844
    • ⬆️ Upgrade to Couchbase Client 3.0.5 #21843
    • ⬆️ Upgrade to Caffeine 2.8.4 #21842
    • ⬆️ Upgrade to Byte Buddy 1.10.11 #21841
    • ⬆️ Upgrade to Awaitility 4.0.3 #21840
    • ⬆️ Upgrade to Spring Batch 4.2.4 #21784
    • ⬆️ Upgrade to Spring Kafka 2.5.2 #21782
    • ⬆️ Upgrade to Spring Integration 5.3.1 #21779
    • ⬆️ Upgrade to Spring Data Neumann-SR1 #21776
    • ⬆️ Upgrade to Spring Framework 5.2.7 #21739
    • ⬆️ Upgrade to Reactor Dysprosium-SR8 #21731
    • ⬆️ Upgrade to Testcontainers 1.14.2 #21581

    🍱 ❤️ Contributors

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

  • v2.3.0.RELEASE Changes

    May 15, 2020

    🍱 ⭐ New Features

    • ⚡️ Update properties migrator to run on deprecated properties with warn level as well #21425
    • Provide more extensible constructors on UndertowServletWebServer and UndertowWebServer #21391
    • ➕ Add redis sentinel password property #21353
    • 🔧 Auto-configure a LifecycleProcessor with a configurable timeout per shutdown phase #21347
    • ↔ Integrate web server graceful shutdown into the application context's lifecycle processing #21325
    • 👌 Improve backwards compatibility of ErrorAttributes and DefaultErrorAttributes #21324
    • Align logback's behavior with log4j2 when getting a logger that doesn't exist #21292
    • 👉 Use CNB creator all-in-one lifecycle #21273
    • ⚡️ Optimize StringSequence.startsWith #21259
    • 🚀 Deregister JDBC drivers during undeploy of a war deployment #21221
    • ➕ Add Period converter support #21136
    • 👌 Improve binding performance when using a large number of property sources #20625
    • ➕ Add @WebServiceClientTest annotation that can be used when testing SOAP clients #17274

    🍱 🐞 Bug Fixes

    • CLI distribution is missing read rights #21451
    • Custom converters cannot be used when creating endpoint-related beans due to eager initialization triggered by ServletEndpointRegistrar #21444
    • Different actuator management server port changes response on errors #21428
    • 🐎 Performance regression between RC1 and latest snapshots with large amount of configuration properties #21416
    • Dependency exclusions declared in spring-boot-dependencies have no effect when using Gradle 6 #21350
    • 0️⃣ Unclear default for 'server.tomcat.use-relative-redirects' #21343
    • ⚠ CreateBootStartScripts causes a warning to be logged with Gradle 6.4 #21341
    • When a request is active, Undertow prevents the JVM from exiting #21327
    • ✅ When using log4j2 log4j2-test.* files are not detected #21323
    • Classpath wildcards cannot be used with Java 11 or above #21321
    • 🔧 Implementation attributes are missing from Maven shade transformer configuration in spring-boot-starter-parent #21304
    • The @ActiveProfiles annotation no longer overrides those defined in property files #21302
    • Layertools list and extract commands ignore empty layers #21301
    • 0️⃣ Binder @DefaultValue does not work with PropertyEditor converters #21294
    • 🔧 developmentOnly configuration excludes jar files from fat jar #21288
    • 🐳 Connection fails when DOCKER_HOST set to local socket #21173
    • Environment variable that does not follow guidelines for use of _ is still successfully bound if another property source contains a property that is bound to the same target #14479

    📔 Documentation

    • 🛠 Fix capitalization of Testcontainers in Howto docs #21417
    • 🔧 Document use case of splitting auto-configuration and starter #21367
    • 📚 Align TestRestTemplate Javadoc with documentation #21364
    • 🛠 Fix typo for includeLayerTools #21310
    • 🛠 Fix duplicate slashes in URL links #21108
    • ⚡️ Update link to new Spring Security docs location #21040
    • ✂ Remove version number from author section of the documentation #20934
    • ➕ Add more context to the Kubernetes container lifecycle documentation #20932
    • Document that graceful shutdown with Tomcat requires Tomcat 9.0.33 or later #20886
    • ➕ Add a testcontainers section in the reference docs #20734
    • ✂ Remove packages from the javadoc that are not user-facing #20517

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to RSocket 1.0.0 #21422
    • ⬆️ Upgrade to Xmlunit2 2.7.0 #21419
    • ⬆️ Upgrade to Tomcat 9.0.35 #21415
    • ⬆️ Upgrade to SQLite JDBC 3.31.1 #21414
    • ⬆️ Upgrade to Selenium HtmlUnit 2.40.0 #21413
    • ⬆️ Upgrade to Prometheus PushGateway 0.9.0 #21412
    • ⬆️ Upgrade to MongoDB 4.0.3 #21411
    • ⬆️ Upgrade to Micrometer 1.5.1 #21410
    • ⬆️ Upgrade to Maven Assembly Plugin 3.3.0 #21409
    • ⬆️ Upgrade to Kotlin Coroutines 1.3.6 #21408
    • ⬆️ Upgrade to jOOQ 3.13.2 #21407
    • ⬆️ Upgrade to Johnzon 1.2.5 #21406
    • ⬆️ Upgrade to Jedis 3.3.0 #21405
    • ⬆️ Upgrade to Infinispan 10.1.8.Final #21404
    • ⬆️ Upgrade to HtmlUnit 2.40.0 #21403
    • ⬆️ Upgrade to HikariCP 3.4.5 #21402
    • ⬆️ Upgrade to Hibernate Validator 6.1.5.Final #21401
    • ⬆️ Upgrade to Hibernate 5.4.15.Final #21400
    • ⬆️ Upgrade to Dropwizard Metrics 4.1.7 #21399
    • ⬆️ Upgrade to Couchbase Client 3.0.4 #21398
    • ⬆️ Upgrade to Cassandra Driver 4.6.1 #21397
    • ⬆️ Upgrade to AssertJ 3.16.1 #21396
    • 🚀 Upgrade to Spring Kafka 2.5.0.RELEASE #21387
    • 🚀 Upgrade to Spring Session Dragonfruit-RELEASE #21386
    • 🚀 Upgrade to Spring Integration 5.3.0.RELEASE #21385
    • 🚀 Upgrade to Spring HATEOAS 1.1.0.RELEASE #21384
    • 🚀 Upgrade to Spring Data Neumann-RELEASE #21383
    • ⬆️ Upgrade to Testcontainers 1.14.1 #21378
    • 🚀 Upgrade to Spring Ldap 2.3.3.RELEASE #21352
    • 🚀 Upgrade to Spring Security 5.3.2.RELEASE #21349

    🍱 ❤️ Contributors

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

  • v2.3.0.RC1 Changes

    May 01, 2020

    🍱 ⭐ New Features

    • ➕ Add InputStreamSourceToByteArrayConverter #21285
    • 🔧 Restrict wildcard pattern support for configuration files #21217
    • 🔧 Provide a property to disable configuration of the default servlet #21214
    • 👍 Allow project dependencies to be assigned to layers by their coordinates #21207
    • 👻 Throw exception if spring.config.location uses classpath*: #21175
    • 👍 Best effort support for Hazelcast 4 #21169
    • 🔧 Create ReactorNettyHttpClientMapper for configuring HttpClient #21135
    • Avoid recompiling pattern in Handler#canonicalize #21103
    • Provide an RSocketMessageHandlerCustomizer to allow customizing of the RSocketMessageHandler #21081
    • Harmonize Service Level Agreement to Service Level Objectives #21076
    • Fail operations when JarFile is closed #21072
    • 👌 Improve property name in thrown Micrometer ValidationException #21069
    • 👌 Improve compatibility of launch script by replacing use of seq with a bash native loop #21068
    • 🔄 Change default builder image from cloudfoundry/cnb to Paketo #21066
    • ➕ Add dependency management for the Wavefront SDK #21065
    • 👌 Support square bracket notation profiles properties #21006
    • 👌 Improve Elasticsearch RestClient customization capabilities #20994
    • ✂ Remove deprecated configuration properties #20991
    • 0️⃣ Default management endpoint error path should honor server.error.include-* properties #20989
    • ➕ Add support for customizing Spring Session's cookie serializer #20961
    • ➕ Add support for NewRelicClientProvider #20908
    • ✂ Remove plugin management for exec-maven-plugin #20883
    • 👉 Use YAML compatible classpath.idx format #20861
    • 👉 Use a more compact layers.idx format #20860
    • Ensure empty layers are written to the index file #20858
    • 🔧 Harmonize naming of Elasticsearch auto-configuration classes #20857
    • 🔦 Expose Prometheus#histogramFlavor property #20853
    • 🔦 Expose Elastic's pipeline and indexDateSeparator properties #20852
    • 🔦 Expose AppOptics#floorTime property #20850
    • 🗄 Deprecate PushRegistryConfig#numThreads #20845
    • Migrate ServiceLevelAgreementBoundary from Long to Double #20837
    • 🔦 Expose Graphite's graphiteTagsEnabled property #20834
    • Tolerate breaking change to IsolationLevel in kafka-clients 2.5 #20811
    • 👉 Use WavefrontSender to export metrics to Wavefront #20810
    • 👍 Allow easy activation of ISO-by-default date and time binding for Spring MVC #20579
    • 0️⃣ Disable error message on default error page unless explicitly enabled #20505
    • 🔧 Enable transaction auto-configuration when using @DataMongoTest and there is a MongoTransactionManager bean #20182
    • 🔧 Rework ErrorController now that getErrorPath() is unused and server.error.path must be used to configure the error path #19844
    • 👍 Allow to configure Cassandra's request throttling #19674
    • 🚀 Provide a condition for detecting war deployments #19421
    • 👍 Allow @AutoConfigurationPackage to specify the base packages that should be registered #19023
    • Help users to register filters that require error or async dispatch with the correct dispatcher types #18953
    • Enable users to provide custom time and datetime formats for MVC and WebFlux type conversion #18772
    • 👌 Improve handling of cancelled requests when publishing WebClient metrics #18444
    • Autoconfigure ReactiveGridFsTemplate with MongoProperties.getGridFsDatabase() #18284
    • 🔧 Automatically create a developmentOnly configuration for use with DevTools #16599

    🍱 🐞 Bug Fixes

    • Hitting Readiness and Liveness endpoints throws NPE #21211
    • JarFiles are being left open #21127
    • 🏗 Building a layered jar results in deprecation warnings as some configurations will no longer be resolvable in Gradle 7 #21112
    • 👀 PortInUseException can be thrown when server address is wrong #21105
    • ✅ Test classes annotated with @SpringBootTest with different args attributes share a context when they should not #21102
    • 🤡 MockitoPostProcessor can trigger early initialization of factory beans #21090
    • 🔒 Fat jars cause classloading problems with JDK11 and Security Manager #21074
    • WelcomePageHandlerMapping does not honor CORS #21071
    • 👀 PortInUseException thrown when Netty does not have the right to use configured port #21053
    • 🔧 spring.config.additional-location is ignored when spring.config.location is configured #21050
    • Nested object is not initialized if no matching property is defined with constructor binding #21049
    • ConditionalOnAvailableEndpoint does not deal with dashed IDs #21047
    • 🏗 Homebrew and Scoop definitions for non-snapshot builds link to wrong repository on repo.spring.io #21034
    • Endpoint exposure patterns do not work with dashed IDs #21023
    • KafkaClientMetrics is applied to a newly created producer rather than an existing one #21008
    • Embedded database initial failed for setting empty spring.database.url #21004
    • UndertowCompressionConfigurer fails on invalid Media Types #20957
    • Ensure consistent and correct attributes on files added to fat archives #20927
    • 0️⃣ Default for spring.kafka.listener.missing-topics-fatal is no longer aligned with Spring Kafka's default #20919
    • 0️⃣ Use of new DefaultResourceLoader() is dangerous as it captures the thread context classloader at the time of the call #20900
    • Application fails to start due to missing WebFluxProperties bean when using @EnableWebFlux #20891
    • Properties files in subdirectories are not loaded when one file is empty #20873
    • Layer index file is malformed when file in jar contains a space #20827
    • @SpringBootTest does not work when @activeprofiles contains a comma #19537

    📔 Documentation

    • ✨ Enhance Database initialization how to guide #21119
    • ➕ Add "Health as Gauge" how-to documentation #21092
    • 🛠 Fix link to R2DBC Query in docs #21079
    • 🏗 Maven plugin examples for build-image command line properties are incorrect #21078
    • 🔧 Relocate section on configuring DevTools' file system watcher as it isn't specific to remote applications #21075
    • 🛠 Fix anchors in links to Maven and Gradle plugin docs #21033
    • 🔗 Links to CLI binaries are broken for non-snapshot builds #21030
    • Document relaxed binding from environment variables #21028
    • Document devtool property file profile restrictions #21026
    • 📚 Documentation: Dockerfile example does not match documented default jar layers #21020
    • 🔧 Deprecate getters and setters for deprecated configuration properties consistently #21017
    • ➕ Add reference to gRPC starter #20966
    • 👉 Make it more obvious that Jolokia does not work with a WebFlux app #20964
    • ➕ Add reference to Mule 4 starter #20915
    • ➕ Added package-info to org.springframework.boot.buildpack.platform.docker.ssl #20913
    • 🛠 Fix typo in Adding Active Profiles #20909
    • 📚 Update documentation about endpoint enablement to reflect behaviour of @ConditionalOnAvailableEndpoint #20897
    • 📚 Don't use monospacing in documentation headings #20875
    • Document fat-jar index files #20859
    • ➕ Add reference to XChange starter #20830
    • 📚 Name generated PDF documentation files after the subproject #20829
    • 🗄 Deprecate support for Bitronix #20823
    • ➕ Add reference to quickfixj spring boot starter #20819
    • 🔗 Link to the Maven Plugin's documentation is broken #20818
    • ➕ Add formatting instructions for the buildSrc module #20806
    • Document how to initialize the database when using R2DBC #20524
    • 🏗 Document how to build images when behind an HTTP proxy #19984
    • 📚 Move Maven-specific content in reference guide to dedicated documentation #19165

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to Undertow 2.1.0.Final #21278
    • ⬆️ Upgrade to SAAJ Impl 1.5.2 #21277
    • ⬆️ Upgrade to Jetty EL 8.5.54 #21276
    • ⬆️ Upgrade to Hazelcast 3.12.7 #21275
    • ⬆️ Upgrade to Byte Buddy 1.10.10 #21274
    • ⬆️ Upgrade to Flyway 6.4.1 #21269
    • ⬆️ Upgrade to WebJars Locator Core 0.45 #21255
    • ⬆️ Upgrade to Tomcat 9.0.34 #21254
    • 🚀 Upgrade to Spring WS 3.0.9.RELEASE #21253
    • ⬆️ Upgrade to SendGrid 4.4.8 #21252
    • ⬆️ Upgrade to Selenium HtmlUnit 2.39.0 #21251
    • ⬆️ Upgrade to Rabbit AMQP Client 5.9.0 #21250
    • ⬆️ Upgrade to OkHttp3 3.14.8 #21249
    • ⬆️ Upgrade to Netty 4.1.49.Final #21248
    • ⬆️ Upgrade to Neo4j OGM 3.2.11 #21247
    • ⬆️ Upgrade to MySQL 8.0.20 #21246
    • ⬆️ Upgrade to MongoDB 4.0.2 #21245
    • ⬆️ Upgrade to Log4j2 2.13.2 #21244
    • ⬆️ Upgrade to Liquibase 3.8.9 #21243
    • ⬆️ Upgrade to Kotlin 1.3.72 #21242
    • ⬆️ Upgrade to JUnit Jupiter 5.6.2 #21241
    • ⬆️ Upgrade to Jetty 9.4.28.v20200408 #21240
    • ⬆️ Upgrade to Jackson Bom 2.11.0 #21239
    • ⬆️ Upgrade to InfluxDB Java 2.18 #21238
    • ⬆️ Upgrade to Infinispan 10.1.6.Final #21237
    • ⬆️ Upgrade to HtmlUnit 2.39.1 #21236
    • ⬆️ Upgrade to HikariCP 3.4.3 #21235
    • ⬆️ Upgrade to Hibernate Validator 6.1.4.Final #21234
    • ⬆️ Upgrade to Hibernate 5.4.14.Final #21233
    • ⬆️ Upgrade to Groovy 2.5.11 #21232
    • ⬆️ Upgrade to Glassfish JAXB 2.3.3 #21231
    • ⬆️ Upgrade to Flatten Maven Plugin 1.2.2 #21229
    • ⬆️ Upgrade to Dropwizard Metrics 4.1.6 #21228
    • ⬆️ Upgrade to Couchbase Client 3.0.3 #21227
    • ⬆️ Upgrade to Cassandra Driver 4.6.0 #21226
    • ⬆️ Upgrade to Caffeine 2.8.2 #21225
    • ⬆️ Upgrade to Artemis 2.12.0 #21224
    • ⬆️ Upgrade to AppEngine SDK 1.9.80 #21223
    • ⬆️ Upgrade to Spring HATEOAS 1.1.0.RC1 #21210
    • ⬆️ Upgrade to RSocket 1.0.0-RC7 #21208
    • ⬆️ Upgrade to Apache Solr 8.5.1 #21206
    • 🚀 Upgrade to Lettuce 5.3.0.RELEASE #21096
    • ⬆️ Upgrade to Kafka 2.5.0 #21032
    • ⬆️ Upgrade to Spring Kafka 2.5.0.RC1 #20953
    • ⬆️ Upgrade to Spring Integration 5.3.0.RC1 #20951
    • ⬆️ Upgrade to Spring Data Neumann-RC2 #20949
    • ⬆️ Upgrade to Spring AMQP 2.2.6 #20947
    • ⬆️ Upgrade to Spring Framework 5.2.6 #20945
    • ⬆️ Upgrade to Reactor Bom Dysprosium-SR7 #20943
    • ⬆️ Upgrade to Testcontainers 1.14.0 #20936
    • ⬆️ Upgrade to Micrometer 1.5.0 #20833

    🍱 ❤️ Contributors

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

  • v2.3.0.M4 Changes

    April 03, 2020

    🍱 ⭐️ New Features

    • 👍 Allow layertools to work without spring-boot jar #20815
    • 👌 Support layering with the existing flat jar format #20813
    • 👌 Support CNB builder platform API 0.3 #20757
    • ✅ @DataR2dbcTest should trigger Flyway or Liquibase if necessary #20739
    • 🔧 Disable auto-configuration of Hazelcast IMDG when Hazelcast Jet is present #20729
    • 🗄 Deprecate spring.mvc.pathmatch.use-suffix-pattern, spring.mvc.pathmatch.use-registered-suffix-pattern, and spring.mvc.contentnegotiation.favor-path-extension #20687
    • Provide dependency management for Jakarta Xml Soap #20661
    • 🔧 Saml2RelyingPartyAutoConfiguration should configure how AuthnRequests are sent #20584
    • ✂ Remove requirement for the disk space health indicator's path to exist when the app starts #20580
    • ⚡️ Update Gradle's layer configuration DSL to remove the double usage of layers #20563
    • 0️⃣ Combine default application and resources layers into a single layer named application #20562
    • ➕ Add HealthEndpointGroupsRegistry and its Customizer #20554
    • 🔧 Override CloudPlatform auto-detection with configuration property #20553
    • 🔧 Rename "classes" concept to "application" in custom layer configuration #20539
    • 🏗 Use DOCKER_ env vars to locate the Docker daemon when building OCI images #20538
    • 🔧 Configure Couchbase ourselves rather than importing Spring Data's abstract config #20533
    • 👍 Raise the minimum supported version of Gradle 6.x to 6.3 #20532
    • Create a new layer for loader classes #20529
    • Refine layer customization for Maven and Gradle #20526
    • ➕ Add command line option for OCI image name #20520
    • ➕ Add a property for MongoDB replica set name #20391
    • ➕ Add security.protocol to KafkaProperties #20360
    • 🔌 Provide a way to customize layers with the Gradle plugin #20296
    • 🔧 Provide a configuration property for the maximum size of the in-memory buffer used by the reactive Elasticsearch REST client #20205
    • 👌 Support Maven reproducible build feature for repackage #20176
    • 👍 Allow tags to be added to those provided by default for WebMVC and WebFlux #20175
    • 🏗 Use platform API builder image tags for default builder #20171
    • ⬆️ Upgrade to Couchbase Java SDK 3 #19893
    • ➕ Add support for default Cassandra port #19672
    • 👌 Support liveness and readiness state for Kubernetes #19593
    • 👌 Support caching of endpoint responses when the request has a principal #19538
    • ➕ Add 'threads' configuration group for embedded containers #19475
    • 👍 Resource Server autoconfiguration to support both JWT and Opaque tokens #19426
    • 🔧 Use Gradle's configuration avoidance API #18881
    • 👌 Improve handling of host, port, and addresses configuration in RabbitProperties #18830
    • ➕ Add configuration to enable Redis Cluster topology refresh #15630
    • 🔧 Make base path configurable for WebFlux applications #10129

    🍱 🐞 Bug Fixes

    • Cassandra health indicator never reports version attribute #20726
    • ReactiveCassandraHealthIndicator runs a query that fails on some Consistency Levels #20718
    • Liquibase should be able to execute with only spring-jdbc on the classpath #20715
    • CassandraHealthIndicator runs a query that fails on some Consistency Levels #20712
    • 🔒 spring.security.oauth2.resourceserver.jwt.jws-algorithm is ignored when auto-configuring ReactiveJwtDecoder #20694
    • Unresolvable placeholder in the value of spring.datasource.url causes a startup failure even when there is a user-provided DataSource bean #20671
    • @FlywayDataSource does not work in an application that has multiple datasources #20621
    • KafkaAutoConfiguration should back off when a bean of type ConcurrentKafkaListenerContainerFactory is found #20616
    • 🔧 Jwt Decoder signature algorithm configuration is not used in combination with public-key-file #20612
    • Ignore trailing slash should not apply to single character URIs #20600
    • ApplicationHome does not work correctly with paths that contain spaces #20544
    • ✅ server.port should not be set to -1 if the test does not start an embedded web server #16998

    📔 Documentation

    • Clarify the type to which connection-pool-specific spring.datasource properties are bound #20744
    • Document how to initialize a database with R2DBC #20742
    • ⚡️ Update system requirements to reflect support for Java 14 #20699
    • ➕ Add extra detail for Kubernetes probes in reference documentation #20660
    • 📚 @ConstructorBinding example in the reference documentation uses the wrong import for @DefaultValue #20622
    • Document that actuator over HTTP requires Jackson #20619
    • 📚 "Building Docker Images" is incorrectly nested beneath "Kotlin support" in the reference documentation #20608
    • 🔗 Link to correct factory in TomcatReactiveWebServerFactory's javadoc #20590
    • 📇 Recommend configuring compileJava's inputs to include processResources' output when generating configuration metadata #20556
    • ➕ Add package info to javadoc for new packages in spring-boot-loader(-tools) #20516
    • 🔌 Publish javadoc for the Maven Plugin #20127

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to Spring Integration 5.3.0.M4 #20807
    • 🚀 Upgrade to Spring Kafka 2.4.5.RELEASE #20797
    • 🚀 Upgrade to Spring Batch 4.2.2.RELEASE #20792
    • ⬆️ Upgrade to Tomcat 9.0.33 #20789
    • 🚀 Upgrade to Spring Security 5.3.1.RELEASE #20788
    • ⬆️ Upgrade to SendGrid 4.4.6 #20787
    • ⬆️ Upgrade to RxJava2 2.2.19 #20786
    • ⬆️ Upgrade to QueryDSL 4.3.1 #20785
    • ⬆️ Upgrade to Postgresql 42.2.12 #20784
    • ⬆️ Upgrade to Netty tcNative 2.0.30.Final #20783
    • ⬆️ Upgrade to Netty 4.1.48.Final #20782
    • ⬆️ Upgrade to Neo4j OGM 3.2.10 #20781
    • ⬆️ Upgrade to MongoDB 4.0.1 #20780
    • ⬆️ Upgrade to Mockito 3.3.3 #20779
    • ⬆️ Upgrade to MIMEPull 1.9.13 #20778
    • ⬆️ Upgrade to Micrometer 1.3.7 #20777
    • ⬆️ Upgrade to Maven Javadoc Plugin 3.2.0 #20776
    • ⬆️ Upgrade to MariaDB 2.6.0 #20775
    • ⬆️ Upgrade to Liquibase 3.8.8 #20774
    • ⬆️ Upgrade to Kotlin Coroutines 1.3.5 #20773
    • ⬆️ Upgrade to JUnit Jupiter 5.6.1 #20772
    • ⬆️ Upgrade to Johnzon 1.2.4 #20771
    • ⬆️ Upgrade to Janino 3.1.2 #20770
    • ⬆️ Upgrade to Infinispan 10.1.5.Final #20769
    • ⬆️ Upgrade to Hibernate 5.4.13.Final #20768
    • ⬆️ Upgrade to Flyway 6.3.2 #20767
    • ⬆️ Upgrade to Elasticsearch 7.6.2 #20766
    • ⬆️ Upgrade to Commons Lang3 3.10 #20765
    • ⬆️ Upgrade to Cassandra Driver 4.5.1 #20764
    • ⬆️ Upgrade to Byte Buddy 1.10.9 #20763
    • ⬆️ Upgrade to AppEngine SDK 1.9.79 #20762
    • ⬆️ Upgrade to ActiveMQ 5.15.12 #20761
    • ⬆️ Upgrade to Spring HATEOAS 1.1.0.M3 #20751
    • ⬆️ Upgrade to Spring Data Neumann-RC1 #20748
    • ⬆️ Upgrade to Kotlin 1.3.71 #20700
    • ⬆️ Upgrade to r2dbc Arabba-SR3 #20674
    • ⬆️ Upgrade to Spring Framework 5.2.5 #20572
    • ⬆️ Upgrade to Reactor Dysprosium-SR6 #20570
    • ⬆️ Upgrade to Spring Session Dragonfruit-RC2 #20490

    🍱 ❤️ Contributors

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

  • v2.3.0.M3 Changes

    March 12, 2020

    🍱 ⭐️ New Features

    • ➕ Add support for configuring Liquibase's clearCheckSums #20417
    • Include version and edition of neo4j database in health details #20356
    • ➕ Add descriptions for data source pool metrics #20354
    • 404 response from /actuator/env/{toMatch} should have no body #20314
    • 👌 Improve error message when creating an image with no Docker Daemon available #20297
    • 🔌 Provide a way to customize layers with the Maven plugin #20295
    • Embedded directory server should be usable without spring-ldap-core #20223
    • ➕ Add support for SimpleDriverDataSource #20220
    • 🏗 Configure OpenJDK buildpack to use the same Java version as used for compilation #20172
    • 🔀 Harmonize MongoDB sync and reactive client factories #20019
    • ➕ Add support for R2DBC #19988
    • 👍 Allow users to opt out of including the layer tools in a layered jar #19866
    • 📇 Publish Gradle metadata for Spring Boot's modules #19609
    • ➕ Add support for configuring embedded Jetty's max queue capacity #19494
    • ➕ Add support for configuring Liquibase's tag #19316
    • ➕ Add auto-configuration for Spring Integration RSocket support #18834
    • 0️⃣ Use query-less datasource validation by default #17582
    • 👍 Allow the embedded web server to be shut down gracefully #4657

    🍱 🐞 Bug Fixes

    • DevTools triggers eager initialization of jaxws-client defined in XML config #20503
    • DependencyCustomizer ifAllResourcesPresent adds modules if any resources are present #20502
    • TomcatReactiveWebServerFactory does not call getTomcatWebServer to create the TomcatWebServer #20500
    • 🏗 Dependency management for Cassandra Driver's query builder module uses the wrong artifact ID #20441
    • ⬆️ Credentials of cloudfoundry service cannot be resolved after upgrading to 2.2.5 #20433
    • ConnectionPool metrics are not exposed with r2dbc:pool: based URLs #20349
    • Binding to collection fails with unbound elements error if collection overridden in another property source with smaller number of elements #20307
    • 💻 Unlike all other Maven properties, spring-boot.run.arguments on the command line takes precedence over the pom #20244
    • 🔒 spring-boot-starter-rsocket pom contains security dependencies #20243
    • DataSource url property is ignored when there is no connection pool #20218
    • spring.jackson.serialization.indent-output doesn't work with Spring Boot 2.3.0.M2 when using Actuator #20211
    • 🏗 BuildInfo task not run in Gradle project when project's version number changes #20185
    • ⬆️ Removal of redundant / from default value for spring.liquibase.change-log may cause the change log to be reapplied on upgrade #20177

    📔 Documentation

    • 📚 Update version of com.gorylenko.gradle-git-properties in documentation example #20491
    • 🛠 Fix typos in how to section of reference documentation #20315
    • Document missing reference to DataSourceHealthIndicator #20221
    • Document sanitized keys and uri sanitization behavior #20186

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to Undertow 2.0.30.Final #20514
    • ⬆️ Upgrade to Sun Mail 1.6.5 #20513
    • ⬆️ Upgrade to Maven Dependency Plugin 3.1.2 #20512
    • ⬆️ Upgrade to Kafka 2.4.1 #20511
    • ⬆️ Upgrade to Jakarta Mail 1.6.5 #20510
    • ⬆️ Upgrade to Spring Integration 5.3.0.M3 #20489
    • ⬆️ Upgrade to Postgresql 42.2.11 #20488
    • ⬆️ Upgrade to Maven Source Plugin 3.2.1 #20487
    • ⬆️ Upgrade to Maven Shade Plugin 3.2.2 #20486
    • ⬆️ Upgrade to Flatten Maven Plugin 1.2.1 #20485
    • ⬆️ Upgrade to Build Helper Maven Plugin 3.1.0 #20484
    • 🚀 Upgrade to Spring Security 5.3.0.RELEASE #20482
    • ⬆️ Upgrade to Reactor Bom Dysprosium-SR5 #20481
    • ⬆️ Upgrade to Netty 4.1.47.Final #20480
    • ⬆️ Upgrade to Kotlin Coroutines 1.3.4 #20479
    • ⬆️ Upgrade to Kotlin 1.3.70 #20477
    • ⬆️ Upgrade to Jetty 9.4.27.v20200227 #20476
    • ⬆️ Upgrade to Jersey 2.30.1 #20475
    • ⬆️ Upgrade to Jackson Bom 2.10.3 #20474
    • ⬆️ Upgrade to Dropwizard Metrics 4.1.5 #20473
    • ⬆️ Upgrade to XmlUnit2 2.6.4 #20471
    • ⬆️ Upgrade to WebJars Locator Core 0.44 #20470
    • 🚀 Upgrade to Spring Kafka 2.4.4.RELEASE #20469
    • 🚀 Upgrade to Spring AMQP 2.2.5.RELEASE #20468
    • ⬆️ Upgrade to SnakeYAML 1.26 #20467
    • ⬆️ Upgrade to SendGrid 4.4.5 #20466
    • ⬆️ Upgrade to Selenium HtmlUnit 2.38.0 #20465
    • ⬆️ Upgrade to RxJava2 2.2.18 #20464
    • ⬆️ Upgrade to OkHttp3 3.14.7 #20463
    • ⬆️ Upgrade to Netty tcNative 2.0.29.Final #20462
    • ⬆️ Upgrade to Neo4j OGM 3.2.9 #20461
    • ⬆️ Upgrade to MongoDB 4.0.0 #20460
    • ⬆️ Upgrade to Mockito 3.3.0 #20459
    • ⬆️ Upgrade to Log4j2 2.13.1 #20458
    • ⬆️ Upgrade to Liquibase 3.8.7 #20457
    • ⬆️ Upgrade to jOOQ 3.13.1 #20456
    • ⬆️ Upgrade to Jetty Reactive HTTPClient 1.1.2 #20455
    • ⬆️ Upgrade to Janino 3.1.1 #20454
    • ⬆️ Upgrade to Jakarta XML WS 2.3.3 #20453
    • ⬆️ Upgrade to Jakarta XML Bind 2.3.3 #20452
    • ⬆️ Upgrade to Jakarta Activation 1.2.2 #20451
    • ⬆️ Upgrade to Infinispan 10.1.3.Final #20450
    • ⬆️ Upgrade to HttpClient 4.5.12 #20449
    • ⬆️ Upgrade to HtmlUnit 2.38.0 #20448
    • ⬆️ Upgrade to Hibernate 5.4.12.Final #20447
    • ⬆️ Upgrade to FreeMarker 2.3.30 #20446
    • ⬆️ Upgrade to Flyway 6.3.0 #20445
    • ⬆️ Upgrade to Couchbase Client 2.7.13 #20444
    • ⬆️ Upgrade to Cassandra Driver 4.5.0 #20443
    • ⬆️ Upgrade to Byte Buddy 1.10.8 #20442
    • ⬆️ Upgrade to Elasticsearch 7.6.1 #20423
    • ⬆️ Upgrade to Groovy 2.5.10 #20411
    • ⬆️ Upgrade to Spring Data Neumann-M4 #20241
    • 🚀 Upgrade to Spring Framework 5.2.4.RELEASE #20240

    🍱 ❤️ Contributors

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

  • v2.3.0.M2

    February 13, 2020
  • v2.3.0.M1 Changes

    January 23, 2020

    🍱 ⭐️ 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!

  • v2.2.11.RELEASE Changes

    October 29, 2020

    🍱 🐞 Bug Fixes

    • ✅ HttpEncodingAutoConfiguration is not added to the WebMvcTest slice #23749
    • ⏱ server.servlet.session.timeout not in effect when using Jetty starter without jakarta.annotation and javax.annotation #23716
    • Setting server.undertow.eager-filter-init has no effect #23675
    • If the JVM is killed while refresh is in progress, the shutdown hook does not close the context #23625
    • 🔧 @ConfigurationPropertiesBinding does not apply Formatter beans #23613
    • H2 Console error with AbstractRoutingDataSource #23566
    • When using embedded Jetty, an error response to a HEAD request has a body #23551
    • Dependency management for Netty tcNative does not include its netty-tcnative module #23502
    • PropertiesLauncher requires spring-core on the classpath #23474
    • 🔧 Flyway configuration ignores init-sqls when using spring.datasource.* properties #23392
    • 0️⃣ Log4j's tag library doesn't work out of the box as log4j-*.jar is skipped by default #23302
    • ✅ Unexpected application context cache hit when testing with SpringBootTest webEnvironment MOCK and DEFINED_PORT #23085
    • 🔧 Log4j2 configuration is not picking up some properties #22983
    • 📇 Incremental compilation does not keep metadata for inner classes #10886

    📔 Documentation

    • ✂ Remove version elements from Maven plugin documentation #23909
    • Note that using LiveReload requires Devtools restart to be enabled #23755
    • ➕ Add upgrading section to reference docs with a link to the wiki #23610
    • ➕ Add example of setting system property in gradle bootRun #23578
    • 📇 Update configuration metadata appendix to remove description for Gradle 4.5 and earlier as it is no longer supported #23562
    • 🛠 Fix link to Log4j's JDK Logging Adapter in reference documentation #23459
    • 👍 Document support for Java 15 #23447
    • 🔧 Note the Kt class name suffix when describing how to configure a Kotlin application's main class name #23418
    • ➕ Add anchor links to section headers in Gradle plugin reference docs #23402
    • Revisit hint on using classpath* for retrieving templates #23068
    • 🔧 Document how to enable h2c via programmatic configuration #21997

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to Byte Buddy 1.10.17 #23852
    • ⬆️ Upgrade to Caffeine 2.8.6 #23844
    • ⬆️ Upgrade to Dropwizard Metrics 4.1.14 #23846
    • ⬆️ Upgrade to Elasticsearch 6.8.13 #23856
    • ⬆️ Upgrade to Hazelcast 3.12.10 #23845
    • ⬆️ Upgrade to Hibernate 5.4.22.Final #23857
    • ⬆️ Upgrade to Hibernate Validator 6.0.21.Final #23858
    • ⬆️ Upgrade to Httpclient 4.5.13 #23853
    • ⬆️ Upgrade to Jetty 9.4.33.v20201020 #23855
    • ⬆️ Upgrade to Joda Time 2.10.8 #23850
    • ⬆️ Upgrade to Lombok 1.18.16 #23861
    • ⬆️ Upgrade to Micrometer 1.3.15 #23790
    • ⬆️ Upgrade to Mysql 8.0.22 #23851
    • ⬆️ Upgrade to Neo4j Ogm 3.2.17 #23859
    • ⬆️ Upgrade to Netty 4.1.53.Final #23847
    • ⬆️ Upgrade to Postgresql 42.2.18 #23860
    • ⬆️ Upgrade to Reactor Dysprosium-SR13 #23769
    • ⬆️ Upgrade to RSocket 1.0.3 #23910
    • ⬆️ Upgrade to Rxjava2 2.2.20 #23848
    • ⬆️ Upgrade to Spring AMQP 2.2.12 #23783
    • ⬆️ Upgrade to Spring Data Moore-SR11 #23776
    • ⬆️ Upgrade to Spring Framework 5.2.10 #23773
    • ⬆️ Upgrade to Spring Integration 5.2.9 #23956
    • ⬆️ Upgrade to Spring Kafka 2.3.12 #23786
    • 🚀 Upgrade to Spring Security 5.2.7.RELEASE #23862
    • ⬆️ Upgrade to Tomcat 9.0.39 #23854
    • ⬆️ Upgrade to Undertow 2.0.32.Final #23849

    🍱 ❤️ Contributors

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

  • v2.2.10.RELEASE Changes

    September 17, 2020

    🍱 🐞 Bug Fixes

    • 🔧 @ManagementContextConfiguration is meta-annotated with @Configuration(proxyBeanMethods=false) which does not disable proxying #23301
    • 🐎 Signed jar dependency performance problem when repackaged in a single jar #23263
    • 👍 Allow types other than Date to be used in the "timestamp" MVC error model #23256
    • RSocketPortInfoApplicationContextInitializer can throw NPE #23084
    • UndertowWebServerFactoryCustomizer requires commons lang via an unintended import on ClassUtils #23059
    • Missing sanitization in lists of URIs properties on actuator endpoints #23037
    • 🔊 When using HSQLDB, Hikari logs a warning message about the driver class name when the first connection is retrieved from the pool #23036
    • JarFile can cause memory issues when running on Java 11+ #22991
    • 🔧 Configurable SSL Logback extensions can't be supported due to URL checks #22946
    • The @TypeExcludeFilters annotation is not @Inherited #22939
    • When Reactor's debug agent fails to initialize, the cause of the failure is discarded #22777
    • 👀 LiquibaseEndpoint does not report change sets from ancestor contexts #22681
    • 🔧 TaskExecutorBuilder only uses second-precision when configuring the await termination period #22604
    • Spring Boot 2.3.2: new context is created for every IT class if SpyBean is used #22566
    • ✅ WebMvcTest and WebFluxTest do not include Jackson Module beans #22530
    • 👍 UndertowWebServerFactoryCustomizer does not support Options but only UndertowOptions #22502
    • 🔧 Setting ignoreInvalidFields=true on @ConfigurationProperties causes unknown fields to be ignored as well #22308
    • ⚠ Background preinitialisation may cause Jackson2ObjectMapperBuilder's Kotlin detection warning to be silently dropped #21897
    • Legacy endpoint ids with '-' do not migrate cleanly #21615
    • Externalized Configuration ignores null values in SPRING_APPLICATION_JSON #21542
    • 🔧 Proper ordering of metrics auto-configurations #21134
    • ValidationHandler no longer works with certain map keys #20350
    • XADataSourceAutoConfiguration is difficult to use with DB2XADataSource as it does not have a URL property #20229
    • 🚀 Async exceptions not handled by error pages in war deployments #19471

    📔 Documentation

    • 🔧 Document that @ConfigurationProperties beans are not scanned in sliced tests #23210
    • 📚 Provide examples of Actuator custom endpoints in the reference documentation #23028
    • ✅ Mention correct JUnit 5 annotations in Kotlin testing section #23002
    • Javadoc inaccuracy in SpringApplicationBuilder.properties(Properties) #22962
    • 🛠 Fix typo Assert4J -> AssertJ #22948
    • 📚 PushGateway documentation does not document enabled flag properly #22919
    • 🌐 Document how to discover the HTTP Port at Runtime for both Servlet and Reactive web apps #22898
    • 🔧 Mention configuration customizers for WebTestClient and RestAssured in AutoConfigureRestDocs' javadoc #22765
    • 🛠 Fix broken links to Micrometer registry docs #22705
    • 🔧 Document that spring-boot-configuration-processor cannot detect default value defined externally #22685
    • 🔗 Link to App Engine Standard sample not working #22607
    • 🛠 Fix link to Elasticsearch health indicator #22598
    • 📚 Include a hint where to find documentation for DevTools in docs overview #22591
    • 👍 Document that constructor binding does not support @DurationUnit and @DataSizeUnit #22565
    • 📄 Docs say Health's inner details section may contain components #22490
    • ✅ Recommend the use of AopTestUtils.getTargetObject() when setting expectations on a spied bean that Spring has proxied #22281
    • 🔧 Document the need for configuration files to have a file extension #22278
    • 🔧 Document that java.util.Optional is not recommended with ConfigurationProperties #21868
    • Document how to use MongoClientSettingsBuilderCustomizer #21696
    • Document that schema.sql and data.sql will still be run when using Flyway or Liquibase but discourage their use #20920
    • 👌 Improve documentation about swapping one technical starter for another #20408
    • 📚 Update metrics documentation to note the benefits of using a MeterBinder when registering a metric that relies on other beans #19557
    • 📚 Clarify documentation on use of @AutoConfigureRestDocs with WebTestClient #15977

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to Micrometer 1.3.14 #23388
    • ⬆️ Upgrade to Spring AMQP 2.2.11 #23372
    • 🚀 Upgrade to Spring Ws 3.0.10.RELEASE #23336
    • ⬆️ Upgrade to Neo4j Ogm 3.2.16 #23335
    • ⬆️ Upgrade to Tomcat 9.0.38 #23334
    • 🚀 Upgrade to Spring Security 5.2.6.RELEASE #23299
    • ⬆️ Upgrade to Postgresql 42.2.16 #23297
    • ⬆️ Upgrade to Infinispan 9.4.20.Final #23295
    • ⬆️ Upgrade to Hibernate 5.4.21.Final #23294
    • ⬆️ Upgrade to Elasticsearch 6.8.12 #23293
    • ⬆️ Upgrade to Jetty 9.4.31.v20200723 #23292
    • ⬆️ Upgrade to Byte Buddy 1.10.14 #23291
    • ⬆️ Upgrade to Undertow 2.0.31.Final #23290
    • ⬆️ Upgrade to Rsocket 1.0.2 #23289
    • ⬆️ Upgrade to Netty Tcnative 2.0.34.Final #23288
    • ⬆️ Upgrade to Netty 4.1.52.Final #23287
    • ⬆️ Upgrade to Dropwizard Metrics 4.1.12.1 #23285
    • ⬆️ Upgrade to Hazelcast 3.12.9 #23284
    • ⬆️ Upgrade to Appengine Sdk 1.9.82 #23283
    • ⬆️ Upgrade to Spring Kafka 2.3.11 #23198
    • ⬆️ Upgrade to Spring Data Moore-SR10 #23195
    • ⬆️ Upgrade to Reactor Dysprosium-SR12 #23191
    • ⬆️ Upgrade to Spring Session Corn-SR4 #23186
    • ⬆️ Upgrade to Spring Framework 5.2.9 #23182
    • 🚀 Upgrade to Dependency Management Plugin 1.0.10.RELEASE #22615

    🍱 ❤️ Contributors

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