Spring Boot

Overview

Spring Boot Build Status Chat Revved up by Gradle Enterprise

Spring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss. It takes an opinionated view of the Spring platform so that new and existing users can quickly get to the bits they need.

You can use Spring Boot to create stand-alone Java applications that can be started using java -jar or more traditional WAR deployments. We also provide a command line tool that runs Spring scripts.

Our primary goals are:

  • Provide a radically faster and widely accessible getting started experience for all Spring development.

  • Be opinionated, but get out of the way quickly as requirements start to diverge from the defaults.

  • Provide a range of non-functional features common to large classes of projects (for example, embedded servers, security, metrics, health checks, externalized configuration).

  • Absolutely no code generation and no requirement for XML configuration.

Installation and Getting Started

The reference documentation includes detailed installation instructions as well as a comprehensive getting started guide.

Here is a quick teaser of a complete Spring Boot application in Java:

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;

@RestController
@SpringBootApplication
public class Example {

	@RequestMapping("/")
	String home() {
		return "Hello World!";
	}

	public static void main(String[] args) {
		SpringApplication.run(Example.class, args);
	}

}

Getting help

Are you having trouble with Spring Boot? We want to help!

Reporting Issues

Spring Boot uses GitHub’s integrated issue tracking system to record bugs and feature requests. If you want to raise an issue, please follow the recommendations below:

  • Before you log a bug, please search the issue tracker to see if someone has already reported the problem.

  • If the issue doesn’t already exist, create a new issue.

  • Please provide as much information as possible with the issue report. We like to know the Spring Boot version, operating system, and JVM version you’re using.

  • If you need to paste code or include a stack trace, use Markdown. ``` escapes before and after your text.

  • If possible, try to create a test-case or project that replicates the problem and attach it to the issue.

Building from Source

You don’t need to build from source to use Spring Boot (binaries in repo.spring.io), but if you want to try out the latest and greatest, Spring Boot can be built and published to your local Maven cache using the Gradle wrapper. You also need JDK 1.8.

$ ./gradlew publishToMavenLocal

This will build all of the jars and documentation and publish them to your local Maven cache. It won’t run any of the tests. If you want to build everything, use the build task:

$ ./gradlew build

Modules

There are several modules in Spring Boot. Here is a quick overview:

spring-boot

The main library providing features that support the other parts of Spring Boot. These include:

  • The SpringApplication class, providing static convenience methods that can be used to write a stand-alone Spring Application. Its sole job is to create and refresh an appropriate Spring ApplicationContext.

  • Embedded web applications with a choice of container (Tomcat, Jetty, or Undertow).

  • First class externalized configuration support.

  • Convenience ApplicationContext initializers, including support for sensible logging defaults.

spring-boot-autoconfigure

Spring Boot can configure large parts of typical applications based on the content of their classpath. A single @EnableAutoConfiguration annotation triggers auto-configuration of the Spring context.

Auto-configuration attempts to deduce which beans a user might need. For example, if HSQLDB is on the classpath, and the user has not configured any database connections, then they probably want an in-memory database to be defined. Auto-configuration will always back away as the user starts to define their own beans.

spring-boot-starters

Starters are a set of convenient dependency descriptors that you can include in your application. You get a one-stop-shop for all the Spring and related technology you need without having to hunt through sample code and copy paste loads of dependency descriptors. For example, if you want to get started using Spring and JPA for database access, include the spring-boot-starter-data-jpa dependency in your project, and you are good to go.

spring-boot-cli

The Spring command line application compiles and runs Groovy source, allowing you to write the absolute minimum amount of code to get an application running. Spring CLI can also watch files, automatically recompiling and restarting when they change.

spring-boot-actuator

Actuator endpoints let you monitor and interact with your application. Spring Boot Actuator provides the infrastructure required for actuator endpoints. It contains annotation support for actuator endpoints. This module provides many endpoints, including the HealthEndpoint, EnvironmentEndpoint, BeansEndpoint, and many more.

spring-boot-actuator-autoconfigure

This provides auto-configuration for actuator endpoints based on the content of the classpath and a set of properties. For instance, if Micrometer is on the classpath, it will auto-configure the MetricsEndpoint. It contains configuration to expose endpoints over HTTP or JMX. Just like Spring Boot AutoConfigure, this will back away as the user starts to define their own beans.

spring-boot-test

This module contains core items and annotations that can be helpful when testing your application.

spring-boot-test-autoconfigure

Like other Spring Boot auto-configuration modules, spring-boot-test-autoconfigure provides auto-configuration for tests based on the classpath. It includes many annotations that can automatically configure a slice of your application that needs to be tested.

spring-boot-loader

Spring Boot Loader provides the secret sauce that allows you to build a single jar file that can be launched using java -jar. Generally you will not need to use spring-boot-loader directly, but instead work with the Gradle or Maven plugin.

spring-boot-devtools

The spring-boot-devtools module provides additional development-time features, such as automatic restarts, for a smoother application development experience. Developer tools are automatically disabled when running a fully packaged application.

Samples

Groovy samples for use with the command line application are available in spring-boot-cli/samples. To run the CLI samples, type spring run <sample>.groovy from the samples directory.

Guides

The spring.io site contains several guides that show how to use Spring Boot step-by-step:

License

Spring Boot is Open Source software released under the Apache 2.0 license.

Issues
  • Allow the embedded web server to be shut down gracefully

    Allow the embedded web server to be shut down gracefully

    We are using spring-boot and spring-cloud to realize a micro service archtecture. During load tests we are facing lots of errors such as "entitymanager closed and others" if we shut the micro service down during load. We are wondering if there is an option to configure the embedded container to shut its service connector down and waits for an empty request queue before shutting down the complete application context.

    If there is no such option, I did not find any, then it would be great to extend the shutdownhook of spring to respect such requirements.

    theme: kubernetes type: enhancement 
    opened by LutzStrobel 100
  • Log a warning on startup when spring.jpa.open-in-view is enabled but user has not explicitly opted in

    Log a warning on startup when spring.jpa.open-in-view is enabled but user has not explicitly opted in

    Considering OSIV/OEMIV is widely considered an anti-pattern, OpenEntityManagerInViewInterceptor should IMO not be enabled by default. Rather than that it should be opt-in.

    If this proposal isn't accepted at the very least the default behavior should be stressed properly in the documentation. Currently the only reference is in configuration properties appendix.

    type: enhancement 
    opened by vpavic 96
  • Support Thymeleaf 3

    Support Thymeleaf 3

    Spring boot does not seem to play well with Thymeleaf 3 beta.

    java.lang.IllegalStateException: Could not evaluate condition on org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration due to internal class not found. 
    
    This can happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake) 
    

    ....

     Caused by: java.lang.NoClassDefFoundError: org/thymeleaf/resourceresolver/IResourceResolver
    

    Thymeleaf 3 is supported by Spring 4 but not Spring Boot (http://www.thymeleaf.org/doc/articles/thymeleaf3migration.html)

    Can we please add support for Thymeleaf 3 in the next version?

    type: enhancement 
    opened by ganeshkrishnan1 63
  • Ascii art banner generated from an image

    Ascii art banner generated from an image

    Add new ImageBanner class that generates ascii art with color based on an image file (banner.gif, banner.jpg or banner.png). There are configuration settings that go along with this:

    • banner.image.dark: whether to invert image for a dark background. (default is false).
    • banner.image.max-width: maximum width in characters of banner (default is 72).
    • banner.image.aspect-ratio: correction to makes sure height is correct to accomodate the fact that fonts are taller than they are wide. (default is 0.5)
    opened by craigburke 60
  • Allow @ConfigurationProperties binding for immutable POJOs

    Allow @ConfigurationProperties binding for immutable POJOs

    Currently, it seems we are forced to use Kotlin classes with mutable nullable properties and default constructor with @ConfigurationProperties while idiomatic Kotlin code would be using classes with immutable properties initialized via constructor. I think there is a way to supporting that by leveraging kotlin-reflect library like jackson-module-kotlin do.

    More concretely, in MiXiT app I would like to be able to convert this MixitProperties class implementation to:

    @ConfigurationProperties("mixit")
    class MixitProperties(
        val baseUri: String,
        val admin: Credential,
        val drive: Drive
    )
    
    class Credential(
        val username: String,
        val password: String
    )
    
    class Drive(
        val fr: DriveDocuments,
        val en: DriveDocuments
    )
    
    class DriveDocuments(
        val sponsorform: String,
        val sponsor: String,
        val speaker: String,
        val press: String
    )
    
    

    We could imagine to support optional properties by using nullable types, like val sponsorform: String? for example.

    I will be happy to help. I have also already worked with @apatrida who maintains Jackson Kotlin module, he may provide us some guidance I think.

    theme: config-data type: enhancement 
    opened by sdeleuze 58
  • Overriding logging properties like FILE_LOG_PATTERN

    Overriding logging properties like FILE_LOG_PATTERN

    Feature request for adding support for overriding logging properties via application.properties/yaml.

    E.g. I want to easily override the FILE_LOG_PATTERN property. To define this in the application.properties/yaml also gives the benefit that I can change it per environment.

    Boot already offers

    # LOGGING
    logging.path=/var/logs
    logging.file=myapp.log
    logging.config= # location of config file (default classpath:logback.xml for logback)
    logging.level.*= # levels for loggers, e.g. "logging.level.org.springframework=DEBUG" (TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF)
    

    Something like below maybe?

    logging.property.FILE_LOG_PATTERN=
    

    Reference: http://stackoverflow.com/questions/26629197/overriding-the-file-log-pattern-if-possible-per-env

    type: enhancement 
    opened by marceloverdijk 55
  • Add Quartz Scheduler support

    Add Quartz Scheduler support

    Spring Framework has had Quartz Scheduler support for a very long time - it would be nice to make use of it in Spring Boot.

    This PR adds:

    • auto-configuration for SchedulerFactoryBean
    • spring-boot-starter-quartz
    • spring-boot-sample-quartz
    • relevant documentation updates

    Please review, comments are welcome. If this PR is accepted I'd also like to add Actuator support in a separate PR.

    I've signed the CLA.

    type: enhancement 
    opened by vpavic 48
  • Apply TomcatConnectorCustomizer and TomcatContextCustomizer beans automatically

    Apply TomcatConnectorCustomizer and TomcatContextCustomizer beans automatically

    Hi, this is a first-timers-only issue. This means we've worked to make it more legible to folks who either haven't contributed to our codebase before, or even folks who haven't contributed to open source before.

    If that's you, we're interested in helping you take the first step and can answer questions and help you out as you do. Note that we're especially interested in contributions from people from groups underrepresented in free and open source software!

    If you have contributed before, consider leaving this one for someone new, and looking through our general ideal-for-contribution issues. Thanks!

    Background

    Spring Boot provides a number of callback interfaces that can be used to customize the web server. For Tomcat, a TomcatConnectorCustomizer can be used to customize a Tomcat Connector and a TomcatContextCustomizer can be used to customize a Tomcat Context.

    Problem

    The customizers can be configured via the addConnectorCustomizers() and addContextCustomizers() methods on the ConfigurableTomcatWebServerFactory. This is bit tedious as can be seen from the example below:

    @Bean
    public WebServerFactoryCustomizer<TomcatServletWebServerFactory> connectorCustomizer() {
    	return (tomcat) -> {
    		tomcat.addConnectorCustomizers(
    			(connector) -> ((AbstractHttp11Protocol<?>) connector
    				.getProtocolHandler()).setProcessorCache(250)); // example connector customization
    	};
    }
    

    Instead, if we applied TomcatConnectorCustomizer and TomcatContextCustomizer beans automatically, that would simplify the configuration to the following:

    @Bean
    public TomcatConnectorCustomizer processorCacheCustomizer() {
    	return (connector) ->  (connector) -> ((AbstractHttp11Protocol<?>) connector
    				.getProtocolHandler()).setProcessorCache(250)); // example connector customization
    }
    

    Solution

    Beans of both the TomcatContextCustomizer and TomcatConnectorCustomizer types should be applied automatically to TomcatServletWebServerFactory and TomcatReactiveWebServerFactory. For TomcatServletWebServerFactory, this can be done here and the configuration for the reactive one can be found here.

    The ObjectProvider interface can be used for injecting a dependency. Here is an example that can be used to inject customizers when there can be 0..n of them.

    Tests for the servlet and reactive versions are here and here respectively.

    Steps to Fix

    • [x] Claim this issue with a comment below and ask any clarifying questions you need
    • [ ] Set up a repository locally following the Contributing Guidelines
    • [ ] Try to fix the issue following the steps above
    • [ ] Commit your changes and start a pull request.
    status: first-timers-only status: superseded type: enhancement 
    opened by philwebb 45
  • Allow @ConfigurationProperties binding on interfaces

    Allow @ConfigurationProperties binding on interfaces

    It would be useful to allow configuration binding to work directly on fields if the user doesn't want to expose public setters.

    status: declined 
    opened by philwebb 43
  • Improve Kotlin support

    Improve Kotlin support

    Placeholder issue for things we can do to improve Kotlin support

    @Value

    Using @Value("${thing}") is a pain because you need to escape $ (e.g. @Value("\${thing}"). Perhaps a different key like @Value("#{thing}").

    Open Classes

    Open classes are a pain, can we use a classloader to remove final. Also all @Bean methods

    perhaps we can use a custom bean classloader

    Default constructor arguments with @Autowired

    Give a constructor with a default param:

    open class Foo @Autowired constructor(val restTemplate: RestOperation = NoOpRestOperation());
    

    Kotlin will create multiple constructors, this makes Spring fall over because there's multiple annotated constructors. A method to be smart about which to pick would be nice.

    Main method

    @JvmStatic is needed for main methods. Check if we can find them automatically. Also the name of the class is a bit mad ThePackageKt so perhaps we can replace it with something nice.

    Add Kotlin Module

    Look at Jackson for an example.

    opened by philwebb 42
  • Apply RSocketConnectorConfigurer beans to the RSocketRequester.Builder

    Apply RSocketConnectorConfigurer beans to the RSocketRequester.Builder

    Resolves #26304

    status: waiting-for-triage 
    opened by nguyensach 0
  • Add Lombok @Value support for configuration metadata generation

    Add Lombok @Value support for configuration metadata generation

    This is similar to the existing lombok.Data annotation. See spring-projectsgh-25893

    status: waiting-for-triage 
    opened by mjeffrey 0
  • Single page links may be broken with 2.5

    Single page links may be broken with 2.5

    We've renamed some of the files which means some links might be broken. For example spring-boot-features.html is now features.html.

    opened by philwebb 0
  • Enable Redis connection pool if commons-pool2 is on the classpath

    Enable Redis connection pool if commons-pool2 is on the classpath

    Is #26202 concise version

    @snicoll I'm really sorry, I just want to make the commits look less, but it makes things more complicated.

    There will be no changes before the merger or approval, please let things go back to normal, sorry again

    type: enhancement 
    opened by weixsun 0
  • Add configuration property for Tomcat's rejectIllegalHeader

    Add configuration property for Tomcat's rejectIllegalHeader

    to make it easy to control without adding a TomcatConnectorCustomizer

    Related to https://github.com/spring-projects/spring-boot/issues/22081

    type: enhancement 
    opened by dbyron-sf 1
  • Upgrade to Spring Asciidoctor Extensions 0.6.0

    Upgrade to Spring Asciidoctor Extensions 0.6.0

    type: task 
    opened by wilkinsona 0
  • Apply RSocketConnectorConfigurer beans to the RSocketRequester.Builder

    Apply RSocketConnectorConfigurer beans to the RSocketRequester.Builder

    Currently, Spring Boot creates a prototype bean for RSocketRequester.Builder, since this stateful builder can be used in several places in a single application, with different purposes and customizations.

    Libraries might want to configure the RSocket connector for all requester instances (for example for instrumentation purposes). We should ensure that RSocketConnectorConfigurer beans are picked up by the RSocketRequesterAutoConfiguration and applied to all builder instances.

    type: enhancement 
    opened by bclozel 0
  • Upgrade to spring-asciidoctor-backends 0.0.1

    Upgrade to spring-asciidoctor-backends 0.0.1

    type: task 
    opened by philwebb 0
  • OnInitializedRestarterConditionTests.initialized() may wait forever

    OnInitializedRestarterConditionTests.initialized() may wait forever

    https://github.com/spring-projects/spring-boot/blob/1be8c8fda94d9ee97d16644be0940cfd94a91482/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/restart/OnInitializedRestarterConditionTests.java#L66-L89

    If TestInitialized's main method fails for some reason, it won't call wait.notify() and wait.wait() in the initialized test method will then never end.

    type: task 
    opened by wilkinsona 0
  • IncrementalBuildMetadataGenerationTests#incrementalBuildTypeRenamed does not test what it's supposed to

    IncrementalBuildMetadataGenerationTests#incrementalBuildTypeRenamed does not test what it's supposed to

    MetadataItemCondition#matches(ConfigurationMetadata value) uses the first metadata entry with the matching id. If there are more than one, this is ignored.

    IncrementalBuildMetadataGenerationTests#incrementalBuildTypeRenamed doesn't test that the metadata for the renamed pojo has been removed and it only works because the metadata for the new file is the first entry. While working on #26230, it turns out the order changes which revealed the inconsistency.

    We should improve the assertion and find out if incremental compilation actually works when a type is renamed.

    type: task 
    opened by snicoll 2
Releases(v2.5.0-RC1)
  • v2.5.0-RC1(Apr 15, 2021)

    :star: New Features

    • Make ApplicationConversionService.getSharedInstance() unmodifiable #26088
    • @Document should be considered when auto-configuring Spring Data Elasticsearch #26028
    • Support Gradle 7 and raise minimum supported version of Gradle 6.x to 6.8 #26026
    • Provide auto-configuration for using Apache HttpClient 5 with WebClient #26004
    • Automatically enable h2c when HTTP/2 is enabled without SSL #25856
    • Add detection of Azure App Service to CloudPlatform #25829
    • Ensure that database initialization has completed before R2DBC ConnectionFactory is used #25818
    • Add configuration properties for configuring Tomcat's keep-alive timeout and max keep-alive requests #25815
    • Allow an R2DBC ConnectionFactoryBuilder to be derived from an existing ConnectionFactory #25788
    • Move classes for DataSource initialization dependency detection into their own package #25757
    • Move basic script-based DataSource initializer from spring-boot-autoconfigure to spring-boot #25756
    • Add environment prefix support to SpringApplicationBuilder #25740
    • Provide health for an AbstractRoutingDataSource's resolved targets #25708
    • Support optional: prefix for DDL and DML script locations #25487
    • Use SimpleDriverDataSource when creating an initialization-specific DataSource #25390
    • Expose Spring Integration global properties #25377
    • Separate auto-configuration of script-based DataSource initialization from the auto-configuration of the DataSource #25323
    • Develop custom ApplicationEnvironment implementation #24892
    • Allow Spring Security's RSA key converters to be used when binding configuration properties #24891
    • Add R2DBC support for schema.sql and data.sql #24741
    • Allow spring.config.location directories to end with system-dependent separators #24490
    • Provide a constant for graceful shutdown's smart lifecycle phase #24255
    • Raise the minimum supported version of Gradle to 6.x #24225
    • Provide a request attribute for storing exception info for tagging purposes #24028
    • Auto-configure Mongo metrics #23990
    • Record WebFlux server metrics for client disconnection #23606
    • Add property to control the auto-configuration of a DataSource for an embedded database #23412
    • Support @Timed annotation for WebFlux #23112
    • Log ApplicationAvailability state changes #23098
    • Expose Spring Data Repository metrics #22217
    • Deprecate environment fallback for Mustache variable resolution #21045
    • Configure SameSite attribute on session Cookies for Spring WebFlux #20970
    • Short circuit checking of source already covered by ConfigurationPropertySources #17400
    • Configure memory leak detection for Netty #14338
    • Add Quartz actuator endpoint #10364
    • Allow RabbitMQ ConnectionFactory to be customized (to set SaslConfig or enable NIO for example) #6719

    :beetle: Bug Fixes

    • Profile cannot easily be deduced from StandardConfigDataResource #26139
    • CloudPlatform.isActive can return true when spring.main.cloud-platform is set to NONE #26125
    • Converters added directly to the bean factory's conversion service are not used for property binding when @ConfigurationPropertiesBinding bean is defined #26089
    • @Persistent should not be considered when scanning for MongoDB entities #26032
    • Elasticsearch auto-configuration does not configure default converters #26030
    • Gradle bootBuildImage does not preserve file permissions for resources #25938
    • Configuration of ciphers is ignored for TCP with Reactory Netty #25936
    • Keystore.load calls do not close InputStream #25923
    • ConfigData imports cannot override profile specific imports #25887
    • java.util.concurrent.RejectedExecutionException when shutting down Spring Boot app with Cassandra #25870
    • When running with a context hierarchy, PrimaryDefaultValidatorPostProcessor causes a NoSuchBeanDefinitionException when a Validator is in an ancestor context #25864
    • Unlike Micrometer's PushMeterRegistry, PrometheusPushGatewayManager stops publishing when an UnknownHostException is caught #25845
    • spring-boot:build-image hangs when classifier is specified in configuration #25811
    • During incremental compilation, configuration property metadata isn't generated for classes annotated with @ControllerEndpoint, @JmxEndpoint, @RestControllerEndpoint, @ServletEndpoint, or @WebEndpoint #25799
    • Bootstrapper interface provides no clean upgrade path due to deprecated method #25790
    • DefaultErrorWebExceptionHandler does not remove MetaType.ALL when a quality values is present #25787
    • AbstractWebMvcEndpointHandlerMapping does not chain InvalidEndpointRequestExceptions #25785
    • Unpacked jars are not deleted when the JVM exits #25775
    • TldPatterns are not aligned with Tomcat #25771
    • Actuator's rest template metrics customization prevents RootUriRequestExpectationManager.forRestTemplate from identifying that the template has had a root URI configured #25769
    • URI tag of http.client.requests metric ignores REST template's root URI #25767
    • Checks 'javax.persistence.schema-generation.database.action' when determining DDL auto default #25755
    • spring-boot:build-image hangs if finalName is specified in Spring Boot plugin configuration #25701
    • Without AspectJ, using @EnableGlobalMethodSecurity causes JDK proxies to be used by default #25413
    • Resetting the log level of a Log4j2 Logger wrongly flags its LoggerConfiguration as explicitly configured #24298

    :notebook_with_decorative_cover: Documentation

    • Fix typo in "Initialize a Database using basic SQL scripts" #26137
    • Avoid some redirects in docs #26129
    • Document limitations of using deferred JPA bootstrap and early access to JPA #26111
    • Mention special behavior of spring.config.additional-location in docs #26105
    • Provide package info for org.springframework.boot.test.autoconfigure.data.cassandra #26082
    • Add reference to IBM MQ Spring Boot starter #26041
    • Document more prominently that DataJpaTest sets spring.jpa.show-sql=true by default #26025
    • Document how to provide runtime JVM arguments when building an image #25993
    • Javadoc link for non-public autoconfiguration classes does not exist #25988
    • Fix typos in docs #25979
    • Add reference to Bitcoin starter #25943
    • Document how to customize dependency version in Version properties appendix #25935
    • Use main as the branch name in info endpoint example #25867
    • Document how to configure Maven's Failsafe plugin when not using spring-boot-starter-parent #25833
    • Update deprecation warnings with for removal targets #25826
    • Docs contribution section #25374

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.88 #26043
    • Upgrade to Cassandra Driver 4.11.0 #26044
    • Upgrade to Couchbase Client 3.1.4 #26045
    • Upgrade to Dropwizard Metrics 4.1.19 #26046
    • Upgrade to Elasticsearch 7.12.0 #26047
    • Upgrade to Flyway 7.7.3 #26048
    • Upgrade to Git Commit ID Plugin 4.0.4 #26049
    • Upgrade to Hibernate 5.4.30.Final #26050
    • Upgrade to HSQLDB 2.5.2 #26051
    • Upgrade to HtmlUnit 2.49.1 #26052
    • Upgrade to Infinispan 12.1.1.Final #26053
    • Upgrade to Jackson Bom 2.12.3 #26054
    • Upgrade to Jakarta Mail 1.6.7 #26055
    • Upgrade to Jaybird 4.0.3.java8 #26056
    • Upgrade to Jedis 3.6.0-RC1 #25950
    • Upgrade to Jetty 9.4.39.v20210325 #26058
    • Upgrade to Jetty Reactive HTTPClient 1.1.7 #26057
    • Upgrade to json-smart 2.4.2 #25946
    • Upgrade to Kotlin 1.5.0-RC #26080
    • Upgrade to Lettuce 6.1.1.RELEASE #26075
    • Upgrade to Liquibase 4.3.3 #26060
    • Upgrade to Lombok 1.18.20 #26061
    • Upgrade to Maven Invoker Plugin 3.2.2 #26062
    • Upgrade to Micrometer 1.7.0-RC1 #25934
    • Upgrade to MIMEPull 1.9.14 #26063
    • Upgrade to Mockito 3.9.0 #26064
    • Upgrade to MongoDB 4.2.3 #26065
    • Upgrade to Neo4j Java Driver 4.2.4 #26066
    • Upgrade to Netty 4.1.63.Final #26067
    • Upgrade to Netty tcNative 2.0.38.Final #26068
    • Upgrade to Nimbus JOSE JWT 9.8.1 #26077
    • Upgrade to OAuth2 OIDC SDK 9.3.3 #26076
    • Upgrade to Rabbit AMQP Client 5.12.0 #26069
    • Upgrade to Reactor 2020.0.6 #25925
    • Upgrade to Selenium HtmlUnit 2.49.1 #26070
    • Upgrade to Spring Data 2021.0.0 #25928
    • Upgrade to Spring Framework 5.3.6 #25926
    • Upgrade to Spring HATEOAS 1.3.0 #25927
    • Upgrade to Spring Integration 5.5.0-RC1 #25929
    • Upgrade to Spring Kafka 2.7.0 #25930
    • Upgrade to Spring Security 5.5.0-RC1 #25931
    • Upgrade to Spring Session 2021.0.0-RC1 #25932
    • Upgrade to Spring WS 3.1.0-RC1 #25933
    • Upgrade to Sun Mail 1.6.7 #26071
    • Upgrade to Tomcat 9.0.45 #26072
    • Upgrade to Undertow 2.2.7.Final #26073

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.5(Apr 15, 2021)

    :beetle: Bug Fixes

    • CloudPlatform.isActive can return true when spring.main.cloud-platform is set to NONE #26124
    • Elasticsearch auto-configuration does not configure default converters #26029
    • Gradle bootBuildImage does not preserve file permissions for resources #25937
    • Keystore.load calls do not close InputStream #25922
    • Configuration of ciphers is ignored for TCP with Reactory Netty #25913
    • java.util.concurrent.RejectedExecutionException when shutting down Spring Boot app with Cassandra #25869
    • When running with a context hierarchy, PrimaryDefaultValidatorPostProcessor causes a NoSuchBeanDefinitionException when a Validator is in an ancestor context #25863
    • Unlike Micrometer's PushMeterRegistry, PrometheusPushGatewayManager stops publishing when an UnknownHostException is caught #25844
    • @Persistent should not be considered when scanning for MongoDB entities #25797
    • spring-boot:build-image hangs when classifier is specified in configuration #25789
    • DefaultErrorWebExceptionHandler does not remove MetaType.ALL when a quality values is present #25786
    • AbstractWebMvcEndpointHandlerMapping does not chain InvalidEndpointRequestExceptions #25784
    • Unpacked jars are not deleted when the JVM exits #25774
    • TldPatterns are not aligned with Tomcat #25770
    • Actuator's rest template metrics customization prevents RootUriRequestExpectationManager.forRestTemplate from identifying that the template has had a root URI configured #25768
    • ConfigData imports cannot override profile specific imports #25766
    • URI tag of http.client.requests metric ignores REST template's root URI #25765
    • Checks 'javax.persistence.schema-generation.database.action' when determining DDL auto default #25754
    • Bootstrapper interface provides no clean upgrade path due to deprecated method #25735
    • spring-boot:build-image hangs if finalName is specified in Spring Boot plugin configuration #25700
    • During incremental compilation, configuration property metadata isn't generated for classes annotated with @ControllerEndpoint, @JmxEndpoint, @RestControllerEndpoint, @ServletEndpoint, or @WebEndpoint #25388

    :notebook_with_decorative_cover: Documentation

    • Document limitations of using deferred JPA bootstrap and early access to JPA #26110
    • Mention special behavior of spring.config.additional-location in docs #26085
    • Provide package info for org.springframework.boot.test.autoconfigure.data.cassandra #26081
    • Document more prominently that DataJpaTest sets spring.jpa.show-sql=true by default #26024
    • Document how to provide runtime JVM arguments when building an image #25992
    • Javadoc link for non-public autoconfiguration classes does not exist #25987
    • Fix typos in docs #25947
    • Use main as the branch name in info endpoint example #25866
    • Document how to configure Maven's Failsafe plugin when not using spring-boot-starter-parent #25832
    • Update deprecation warnings with for removal targets #25825

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.88 #26006
    • Upgrade to Dropwizard Metrics 4.1.19 #26007
    • Upgrade to Glassfish JAXB 2.3.4 #26100
    • Upgrade to Hibernate 5.4.30.Final #26008
    • Upgrade to HSQLDB 2.5.2 #26101
    • Upgrade to Jakarta Mail 1.6.7 #26009
    • Upgrade to Jaybird 3.0.11 #26010
    • Upgrade to Jetty 9.4.39.v20210325 #26012
    • Upgrade to Jetty Reactive HTTPClient 1.1.7 #26011
    • Upgrade to Kotlin 1.4.32 #26013
    • Upgrade to Lettuce 6.0.4.RELEASE #26102
    • Upgrade to Lombok 1.18.20 #26014
    • Upgrade to Micrometer 1.6.6 #26103
    • Upgrade to MIMEPull 1.9.14 #26015
    • Upgrade to Netty 4.1.63.Final #26016
    • Upgrade to Netty tcNative 2.0.38.Final #26017
    • Upgrade to Reactor 2020.0.6 #25908
    • Upgrade to SAAJ Impl 1.5.3 #26104
    • Upgrade to Spring Data 2020.0.8 #25910
    • Upgrade to Spring Framework 5.3.6 #25909
    • Upgrade to Spring Integration 5.4.6 #26113
    • Upgrade to Spring Security 5.4.6 #25911
    • Upgrade to Spring Session 2020.0.4 #25912
    • Upgrade to Sun Mail 1.6.7 #26018
    • Upgrade to Tomcat 9.0.45 #26019
    • Upgrade to Undertow 2.2.7.Final #26020

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.3.10.RELEASE(Apr 15, 2021)

    :beetle: Bug Fixes

    • Gradle bootBuildImage does not preserve file permissions for resources #25915
    • Keystore.load calls do not close InputStream #25884
    • Unlike Micrometer's PushMeterRegistry, PrometheusPushGatewayManager stops publishing when an UnknownHostException is caught #25804
    • When running with a context hierarchy, PrimaryDefaultValidatorPostProcessor causes a NoSuchBeanDefinitionException when a Validator is in an ancestor context #25800
    • java.util.concurrent.RejectedExecutionException is logged when shutting down Spring Boot app with Cassandra #25796
    • DefaultErrorWebExceptionHandler does not remove MetaType.ALL when a quality values is present #25778
    • Unpacked jars are not deleted when the JVM exits #25773
    • TldPatterns are not aligned with Tomcat #25764
    • URI tag of http.client.requests metric ignores REST template's root URI #25744
    • Actuator's rest template metrics customization prevents RootUriRequestExpectationManager.forRestTemplate from identifying that the template has had a root URI configured #25741
    • spring-boot:build-image hangs when classifier is specified in configuration #25736
    • An EnvironmentAware FailureAnalyzer may be configured with the wrong Environment #25691
    • AbstractWebMvcEndpointHandlerMapping does not chain InvalidEndpointRequestExceptions #25642
    • When multiple schema or data script locations are configured and no resources can be found at a location, you can't tell which location is faulty #25620
    • spring-boot:build-image hangs if finalName is specified in Spring Boot plugin configuration #25590
    • EmbeddedDatabaseConnection#h2 should not specify a host name #25560
    • RSocket's EmbeddedServerAutoConfiguration does not back off if spring-web is absent #25551
    • Incorrect ConfigurationMetadataRepository when loaded from json files containing properties of the same group #25507
    • Layertools may extract entries outside of the destination path #25505
    • Default fork value for spring-boot:stop is not consistent #25472
    • CloudPlatform.isActive can return true when spring.main.cloud-platform is set to NONE #25455
    • @ConfigurationProperties class's default values are not visible in the Errors instance passed to Validator.validate(Object target, Errors errors) #25356
    • Application fails to start when using Actuator and Jersey configured as a Filter #25262
    • javax.persistence.schema-generation.database.action is ignored when checking if default DDL auto setting should be applied #25129
    • Elasticsearch auto-configuration does not configure default converters #25087

    :notebook_with_decorative_cover: Documentation

    • Javadoc link for non-public autoconfiguration classes does not exist #25948
    • Use main as the branch name in info endpoint example #25865
    • Document more prominently that DataJpaTest sets spring.jpa.show-sql=true by default #25843
    • Update deprecation warnings with for removal targets #25808
    • Description of management.metrics.export.influx.db is wrong #25723
    • Document how to configure Maven's Failsafe plugin when not using spring-boot-starter-parent #25621
    • Fix typos in README #25597
    • Highlight link to Actuator API docs in the reference docs #25486
    • Correct javadoc for ON_PARAM to accurately describe its behavior #25480
    • Fix wording error in build-info goal description #25382
    • Improve documentation of Mockito test execution listeners #25375
    • Polish HTTP client metrics documentation wording #25353
    • Document limitations of using deferred JPA bootstrap and early access to JPA #24027
    • Document how to provide runtime JVM arguments when building an image #21478

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.88 #25953
    • Upgrade to Byte Buddy 1.10.22 #25954
    • Upgrade to Dropwizard Metrics 4.1.19 #25955
    • Upgrade to Flatten Maven Plugin 1.2.7 #26094
    • Upgrade to Glassfish JAXB 2.3.4 #26095
    • Upgrade to Hibernate 5.4.30.Final #25956
    • Upgrade to HSQLDB 2.5.2 #26096
    • Upgrade to Jakarta Mail 1.6.7 #25957
    • Upgrade to Jaybird 3.0.11 #25958
    • Upgrade to Jetty 9.4.39.v20210325 #25960
    • Upgrade to Jetty Reactive HTTPClient 1.1.7 #25959
    • Upgrade to Lettuce 5.3.7.RELEASE #26097
    • Upgrade to Lombok 1.18.20 #25961
    • Upgrade to Maven Invoker Plugin 3.2.2 #25962
    • Upgrade to Micrometer 1.5.13 #26098
    • Upgrade to MIMEPull 1.9.14 #25964
    • Upgrade to MongoDB 4.0.6 #25965
    • Upgrade to Neo4j OGM 3.2.21 #25966
    • Upgrade to Netty 4.1.63.Final #25967
    • Upgrade to Netty tcNative 2.0.38.Final #25968
    • Upgrade to OAuth2 OIDC SDK 7.1.3 #25969
    • Upgrade to Postgresql 42.2.19 #25970
    • Upgrade to R2DBC Bom Arabba-SR9 #25971
    • Upgrade to Reactor Dysprosium-SR19 #25902
    • Upgrade to RSocket 1.0.4 #25972
    • Upgrade to SAAJ Impl 1.5.3 #26099
    • Upgrade to Spring AMQP 2.2.16.RELEASE #25973
    • Upgrade to Spring Batch 4.2.6.RELEASE #25974
    • Upgrade to Spring Data Neumann-SR9 #25905
    • Upgrade to Spring Framework 5.2.14 #25903
    • Upgrade to Spring HATEOAS 1.1.5 #25904
    • Upgrade to Spring Integration 5.3.7 #26112
    • Upgrade to Spring Kafka 2.5.12.RELEASE #25975
    • Upgrade to Spring Security 5.3.9 #25906
    • Upgrade to Spring Session Dragonfruit-SR3 #25907
    • Upgrade to Sun Mail 1.6.7 #25976
    • Upgrade to Tomcat 9.0.45 #25977
    • Upgrade to Undertow 2.1.7.Final #25978

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-M3(Mar 19, 2021)

    :star: New Features

    • Allow actuator endpoints to inject an enum indicating what to produce #25738
    • Support sending metrics to InfluxDB v2 #25721
    • Support Maven's reproducible build feature for war repackaging #25571
    • Support OpenMetrics text format in Prometheus Actuator endpoint #25564
    • Replace spring.datasource.initialization-order with a JPA-specific property #25559
    • Move R2DBC ConnectionFactoryBuilder and associated classes into spring-boot #25492
    • Deprecate support for checking Flyway locations #25488
    • Provide configuration properties for Flyway's Vault and Conjur support #25456
    • Allow PersistenceUnitPostProcessor to be configured on EntityManagerFactoryBuilder #25443
    • Sanitize the value of url and urls keys in the same way that the values of uri and uris keys are sanitized #25387
    • Support defining additional keys to sanitize for actuator endpoints #25384
    • Add InfluxDB customizer hook point #25319
    • Allow JMX endpoint ObjectNames to be customized by providing an EndpointObjectNameFactory bean #25317
    • Deprecate our Gradle plugin's integration with Gradle's maven plugin #25267
    • Register logging system's shutdown hook by default #25046
    • Allow configuring Cassandra configuration file #24065
    • Support building an image when using war packaging with Gradle #23825
    • Support building an image when using war packaging with Maven #23823
    • Leave jar and war tasks enabled by default and differentiate their output locations from those of bootJar and bootWar by configuring them with a classifier #23797
    • Add bindings option for image building #23518
    • Consider a generic way of indicating database setup #17619
    • Add prefix support for environment variables #3450

    :beetle: Bug Fixes

    • JooqExceptionTranslator passes null exception to jOOQ when SQLException cannot be translated #25718
    • When multiple schema or data script locations are configured and no resources can be found at a location, you can't tell which location is faulty #25693
    • When creating an initialization-specific DataSource, Flyway, Liquibase and our script-based auto-configuration all incorrectly assume that the primary DataSource will always have been derived from DataSourceProperties #25643
    • @ConfigurationProperties class's default values are not visible in the Errors instance passed to Validator.validate(Object target, Errors errors) #25615
    • Including spring-boot-devtools causes package-private getter on proxied class to return null #25585
    • Start up failure when creating an Aspect targeted at ServerHttpSecurity with devtools on the classpath. #25584
    • EmbeddedDatabaseConnection#h2 should not specify a host name #25570
    • RSocket's EmbeddedServerAutoConfiguration does not back off if spring-web is absent #25556
    • Bootstrapper's intitialize method should be named initialize #25517
    • Incorrect ConfigurationMetadataRepository when loaded from json files containing properties of the same group #25516
    • Layertools may extract entries outside of the destination path #25509
    • SpringApplication can replace existing default property source #25495
    • In Spring Boot 2.4 @EntityScan does not support property substitution #25491
    • Default fork value for spring-boot:stop is not consistent #25484
    • Application fails to start when using Actuator and Jersey configured as a Filter #25450
    • Image is not built when a buildpack is used #25378
    • The auto-configured WebFluxConfigurer is unordered so it may override customizations made in a user's WebFluxConfigurer #25302

    :notebook_with_decorative_cover: Documentation

    • Description of management.metrics.export.influx.db is wrong #25725
    • Document Java 16 support #25645
    • Document DataSource implementations supported by DataSourceBuilder #25644
    • Correct javadoc for ON_PARAM to accurately describe its behavior #25604
    • Fix typos in README #25601
    • Improve documentation of Mockito test execution listeners #25514
    • Highlight link to Actuator API docs in the reference docs #25511
    • Warn that multi-document property files cannot be loaded by using @PropertySource or @TestPropertySource #25502
    • Document how to import a Docker secret as a configtree #25500
    • Add note concerning application yml and properties file precedence #25464
    • Fix property name in gradle plugin documentation #25463
    • Fix grammatical error in documentation #25432
    • Fix wording error in build-info goal description #25386
    • Polish HTTP client metrics documentation wording #25372
    • Polish README #24981

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.87 #25654
    • Upgrade to Byte Buddy 1.10.22 #25655
    • Upgrade to Commons Lang3 3.12.0 #25656
    • Upgrade to Couchbase Client 3.1.3 #25657
    • Upgrade to Dropwizard Metrics 4.1.18 #25658
    • Upgrade to Ehcache3 3.9.2 #25659
    • Upgrade to Flyway 7.7.0 #25660
    • Upgrade to Hazelcast 4.1.2 #25661
    • Upgrade to Hibernate 5.4.29.Final #25662
    • Upgrade to HikariCP 4.0.3 #25663
    • Upgrade to Infinispan 12.0.2.Final #25664
    • Upgrade to Jackson Bom 2.12.2 #25665
    • Upgrade to Jakarta Mail 1.6.6 #25666
    • Upgrade to Jedis 3.5.2 #25667
    • Upgrade to Jetty 9.4.38.v20210224 #25462
    • Upgrade to Jetty Reactive HTTPClient 1.1.6 #25668
    • Upgrade to jOOQ 3.14.8 #25669
    • Upgrade to Kotlin 1.4.31 #25670
    • Upgrade to Kotlin Coroutines 1.4.3 #25671
    • Upgrade to Lettuce 6.1.0.RC1 #25722
    • Upgrade to Log4j2 2.14.1 #25672
    • Upgrade to Micrometer 1.7.0-M1 #25707
    • Upgrade to Mockito 3.8.0 #25674
    • Upgrade to MongoDB 4.2.2 #25675
    • Upgrade to MSSQL JDBC 9.2.1.jre8 #25676
    • Upgrade to Neo4j Java Driver 4.2.3 #25677
    • Upgrade to Netty 4.1.60.Final #25678
    • Upgrade to Nimbus JOSE JWT 9.7 #25653
    • Upgrade to OAuth2 OIDC SDK 9.2.2 #25652
    • Upgrade to Postgresql 42.2.19 #25679
    • Upgrade to R2DBC Bom Arabba-SR9 #25680
    • Upgrade to Rabbit AMQP Client 5.11.0 #25681
    • Upgrade to Reactor 2020.0.5 #25540
    • Upgrade to SendGrid 4.7.2 #25682
    • Upgrade to SnakeYAML 1.28 #25683
    • Upgrade to Solr 8.8.1 #25684
    • Upgrade to Spring AMQP 2.3.6 #25648
    • Upgrade to Spring Batch 4.3.2 #25580
    • Upgrade to Spring Data 2021.0.0-M5 #25548
    • Upgrade to Spring Framework 5.3.5 #25542
    • Upgrade to Spring HATEOAS 1.3.0-M3 #25546
    • Upgrade to Spring Integration 5.5.0-M3 #25577
    • Upgrade to Spring Kafka 2.7.0-RC1 #25582
    • Upgrade to Spring Security 5.5.0-M3 #25581
    • Upgrade to Spring WS 3.1.0-M2 #25694
    • Upgrade to Sun Mail 1.6.6 #25686
    • Upgrade to Tomcat 9.0.44 #25687
    • Upgrade to Undertow 2.2.5.Final #25688

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.4(Mar 18, 2021)

    :beetle: Bug Fixes

    • JooqExceptionTranslator passes null exception to jOOQ when SQLException cannot be translated #25717
    • When multiple schema or data script locations are configured and no resources can be found at a location, you can't tell which location is faulty #25692
    • @ConfigurationProperties class's default values are not visible in the Errors instance passed to Validator.validate(Object target, Errors errors) #25614
    • EmbeddedDatabaseConnection#h2 should not specify a host name #25569
    • RSocket's EmbeddedServerAutoConfiguration does not back off if spring-web is absent #25555
    • Incorrect ConfigurationMetadataRepository when loaded from json files containing properties of the same group #25515
    • Layertools may extract entries outside of the destination path #25508
    • Default fork value for spring-boot:stop is not consistent #25483
    • Application fails to start when using Actuator and Jersey configured as a Filter #25449
    • In Spring Boot 2.4 @EntityScan does not support property substitution #25436
    • SpringApplication can replace existing default property source #25408
    • Bootstrapper's intitialize method should be named initialize #25400
    • Including spring-boot-devtools causes package-private getter on proxied class to return null #25367
    • Start up failure when creating an Aspect targeted at ServerHttpSecurity with devtools on the classpath. #19010

    :notebook_with_decorative_cover: Documentation

    • Description of management.metrics.export.influx.db is wrong #25724
    • Correct javadoc for ON_PARAM to accurately describe its behavior #25603
    • Fix typos in README #25600
    • Document Java 16 support #25527
    • Improve documentation of Mockito test execution listeners #25513
    • Highlight link to Actuator API docs in the reference docs #25510
    • Fix property name in gradle plugin documentation #25454
    • Fix grammatical error in documentation #25411
    • Fix wording error in build-info goal description #25385
    • Polish HTTP client metrics documentation wording #25371
    • Document DataSource implementations supported by DataSourceBuilder #25333
    • Add note concerning application yml and properties file precedence #25300
    • Document how to import a Docker secret as a configtree #25095
    • Warn that multi-document property files cannot be loaded by using @PropertySource or @TestPropertySource #24945

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.87 #25623
    • Upgrade to Byte Buddy 1.10.22 #25624
    • Upgrade to Dropwizard Metrics 4.1.18 #25625
    • Upgrade to Ehcache3 3.9.2 #25626
    • Upgrade to Hibernate 5.4.29.Final #25627
    • Upgrade to Infinispan 11.0.10.Final #25628
    • Upgrade to Jakarta Mail 1.6.6 #25629
    • Upgrade to Jetty 9.4.38.v20210224 #25461
    • Upgrade to Jetty Reactive HTTPClient 1.1.6 #25630
    • Upgrade to jOOQ 3.14.8 #25631
    • Upgrade to Kotlin 1.4.31 #25632
    • Upgrade to Kotlin Coroutines 1.4.3 #25719
    • Upgrade to Lettuce 6.0.3.RELEASE #25720
    • Upgrade to Maven Invoker Plugin 3.2.2 #25633
    • Upgrade to Micrometer 1.6.5 #25543
    • Upgrade to MongoDB 4.1.2 #25634
    • Upgrade to Netty 4.1.60.Final #25635
    • Upgrade to OAuth2 OIDC SDK 8.36.1 #25636
    • Upgrade to Postgresql 42.2.19 #25637
    • Upgrade to R2DBC Bom Arabba-SR9 #25638
    • Upgrade to Reactor 2020.0.5 #25539
    • Upgrade to Spring AMQP 2.3.6 #25647
    • Upgrade to Spring Batch 4.3.2 #25579
    • Upgrade to Spring Data 2020.0.6 #25547
    • Upgrade to Spring Framework 5.3.5 #25541
    • Upgrade to Spring HATEOAS 1.2.5 #25545
    • Upgrade to Spring Integration 5.4.5 #25646
    • Upgrade to Spring Kafka 2.6.7 #25578
    • Upgrade to Sun Mail 1.6.6 #25639
    • Upgrade to Tomcat 9.0.44 #25640
    • Upgrade to Undertow 2.2.5.Final #25641

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-M2(Feb 18, 2021)

    :star: New Features

    • Group JDBC-related batch properties beneath spring.batch.jdbc #25316
    • Auto-configure javax.jms.ExceptionListener #25278
    • Align default values for Cassandra's throttling properties #25149
    • Make Scheduler consistent for Spring Integration #25109
    • Use SimpleDriverDataSource when creating a Liquibase-specific DataSource #24944
    • Support Jetty 10.0.x #24886
    • Allow the configprops endpoint to return properties with a particular prefix #24718
    • Remove message attribute instead of blanking it when Include.MESSAGE is not set #24712
    • Provide a property to disable the /actuator discovery page #24693
    • Add support for creating layered war files with Maven #22821
    • Add support for creating layered war files with Gradle #22195
    • Add buildpack option for image building #21722

    :beetle: Bug Fixes

    • DataSourceBuilder no longer invokes setUser on org.postgresql.ds.PGSimpleDataSource #25364
    • Remote application from devtools does not work with security filter in WebSecurityConfigurerAdapter #25351
    • No error message when using spring.profiles.include in a profile-specific config file if it's written as a YAML list #25348
    • BeanCreationException thrown creating 'neo4jMappingContext' with Spring Boot 2.4.2 when combined with MongoDB #25347
    • DataSourceBuilder no longer invokes setUser on org.h2.jdbcx.JdbcDataSource #25342
    • DatabaseDriver does not detect Amazon Redshift correctly #25313
    • Migrations performed by Flyway or Liquibase may not have completed before the database is accessed via jOOQ #25311
    • Dependency management for Hibernate's new hibernate-micrometer module is missing #25306
    • Asynchronous deserialization performed by Hazelcast may fail due to the wrong ClassLoader being used #25296
    • Since 2.4.2, the Logback charset defaults to UTF-8 rather than the OS's default #25259
    • Missing RabbitMQ metrics if bean is defined as a ConnectionFactory #25186
    • Illegal reflective access by org.springframework.cglib.core.ReflectUtils #25184
    • A ContextRefreshedEvent from a child context may result in deadlock when using JPA deferred repositories #25175
    • Fix MariaDB driver product name #25173
    • Gradle plugin does not include transitive project dependencies into application layer #25168
    • initQueryTimeout and ildeTimeout defaults are not aligned with Cassandra defaults #25164
    • TestRestTemplate exchange triggers UnsupportedOperationException in RequestEntity #25106
    • WebMvcTest and WebFluxTest ignore user-provided Thymeleaf IDialect beans #25073
    • Collection conversion doesn't work for configtree properties #25060
    • ConfigData with Option.IGNORE_IMPORTS can cause NPE #25031
    • spring.config.activate.on-profile cannot be used in profile specific file #25030
    • ConfigDataLoaders cannot have a DeferredLogFactory injected preventing their subcomponents from logging accurately #24996
    • spring-boot-dependencies still contains dependency management for spring-boot-starter-data-solr #24977
    • DataSource initialization does not see the result of wrapping or proxying a DataSource via a BeanPostProcessor #23736
    • Unexpected constructor-based initialization of @ConfigurationProperties leads to inconsistent behavior #16038
    • Circular reference in JPA, DataSource, initializers #13042

    :notebook_with_decorative_cover: Documentation

    • Remove YAML shortcomings section as it no longer applies #25346
    • Update the Gradle plugin documentation to recommend the maven-publish plugin over the maven plugin #25308
    • Document Kafka Streams metrics support #25298
    • Default values of integer properties in the application properties appendix are rendered as decimals #25177
    • Clarify usage of BufferingApplicationStartup #25136
    • Since 2.3.8 and 2.4.2, the documented index format does not match the implementation #25067
    • Clarify when retaining . characters in property keys requires bracket notation to be used #25065
    • Highlight that Duration and Period conversion is provided by the ApplicationConversionService and, by default, is not available for web conversion #25062
    • Document logging.register-shutdown-hook and why you may want to enable it #25045
    • bootRun project property command line example is incomplete #25043
    • Document the need to use the launcher to be able to use application.* properties in a custom banner #25041
    • Add some guidance to the reference documentation about diagnosing unexpected property values #25039
    • Add reference to Ogham Spring Boot starters #24964

    :hammer: Dependency Upgrades

    • Upgrade to Spring Data 2021.0.0-M4 #25004
    • Upgrade to AppEngine SDK 1.9.86 #25228
    • Upgrade to Artemis 2.17.0 #25324
    • Upgrade to AssertJ 3.19.0 #25229
    • Upgrade to Byte Buddy 1.10.20 #25230
    • Upgrade to Caffeine 2.9.0 #25325
    • Upgrade to Couchbase Client 3.1.2 #25231
    • Upgrade to Elasticsearch 7.11.1 #25359
    • Upgrade to Flyway 7.5.3 #25232
    • Upgrade to FreeMarker 2.3.31 #25326
    • Upgrade to Hibernate 5.4.28.Final #25233
    • Upgrade to HikariCP 4.0.1 #25234
    • Upgrade to HikariCP 4.0.2 #25327
    • Upgrade to HtmlUnit 2.47.1 #25235
    • Upgrade to Infinispan 12.0.1.Final #25328
    • Upgrade to Janino 3.1.3 #25237
    • Upgrade to Jedis 3.5.1 #25238
    • Upgrade to Johnzon 1.2.10 #25239
    • Upgrade to jOOQ 3.14.7 #25240
    • Upgrade to JUnit 4.13.2 #25329
    • Upgrade to JUnit Jupiter 5.7.1 #25241
    • Upgrade to Kotlin 1.4.30 #25242
    • Upgrade to Lettuce 6.1.0.M1 #25360
    • Upgrade to Liquibase 4.3.1 #25330
    • Upgrade to Lombok 1.18.18 #25244
    • Upgrade to MariaDB 2.7.2 #25245
    • Upgrade to Micrometer 1.6.4 #25331
    • Upgrade to MongoDB 4.2.0-beta1 #25361
    • Upgrade to MSSQL JDBC 9.2.0.jre8 #25246
    • Upgrade to Netty 4.1.59.Final #25247
    • Upgrade to Nimbus JOSE JWT 9.5 #25249
    • Upgrade to OAuth2 OIDC SDK 9.1 #25248
    • Upgrade to Prometheus PushGateway 0.10.0 #25250
    • Upgrade to Reactor 2020.0.4 #25301
    • Upgrade to RxJava2 2.2.21 #25332
    • Upgrade to Selenium HtmlUnit 2.47.1 #25251
    • Upgrade to Solr 8.8.0 #25252
    • Upgrade to Spring AMQP 2.3.5 #25362
    • Upgrade to Spring Framework 5.3.4 #25293
    • Upgrade to Spring Integration 5.5.0-M2 #25294
    • Upgrade to Spring Kafka 2.7.0-M2 #25295
    • Upgrade to Spring Security 5.5.0-M2 #25255
    • Upgrade to Tomcat 9.0.43 #25253
    • Upgrade to Undertow 2.2.4.Final #25254

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.3(Feb 18, 2021)

    🗒️ Noteworthy Changes

    Nimbus JOSE JWT

    In versions 5.4.4 and earlier, Spring Security 5.4.x depended on versions of oauth2-oidc-sdk and nimbus-jose-jwt that were not compatible with each other. This was corrected in Spring Security 5.4.5 by downgrading from nimbus-jose-jwt 9.x to 8.x. A similar change has been made to Spring Boot's dependency management in this release. If you were relying on nimbus-jose-jwt 9.x, you can restore the 9.x version using the nimbus-jose-jwt.version property.

    :beetle: Bug Fixes

    • DataSourceBuilder no longer invokes setUser on org.postgresql.ds.PGSimpleDataSource #25363
    • DatabaseDriver does not detect Amazon Redshift correctly #25312
    • Migrations performed by Flyway or Liquibase may not have completed before the database is accessed via jOOQ #25310
    • No error message when using spring.profiles.include in a profile-specific config file if it's written as a YAML list #25309
    • Dependency management for Hibernate's new hibernate-micrometer module is missing #25305
    • DataSourceBuilder no longer invokes setUser on org.h2.jdbcx.JdbcDataSource #25263
    • Missing RabbitMQ metrics if bean is defined as a ConnectionFactory #25185
    • A ContextRefreshedEvent from a child context may result in deadlock when using JPA deferred repositories #25174
    • Gradle plugin does not include transitive project dependencies into application layer #25163
    • initQueryTimeout and ildeTimeout defaults are not aligned with Cassandra defaults #25150
    • Remote application from devtools does not work with security filter in WebSecurityConfigurerAdapter #25147
    • TestRestTemplate exchange triggers UnsupportedOperationException when using a UriTemplateRequestEntity #25097
    • WebMvcTest and WebFluxTest ignore user-provided Thymeleaf IDialect beans #25072
    • Managed versions of oauth2-oidc-sdk and nimbus-jose-jwt are incompatible #25070
    • BeanCreationException thrown creating 'neo4jMappingContext' with Spring Boot 2.4.2 when combined with MongoDB #25069
    • Collection conversion doesn't work for configtree properties #25057
    • ConfigData with Option.IGNORE_IMPORTS can cause NPE #25029
    • spring.config.activate.on-profile cannot be used in profile specific file #24990
    • ConfigDataLoaders cannot have a DeferredLogFactory injected preventing their subcomponents from logging accurately #24988
    • Spring Data Solr support is not flagged as deprecated #24943
    • Since 2.4.2, the Logback charset defaults to UTF-8 rather than the OS's default #24894
    • InvalidConfigDataPropertyException thrown when server processed ConfigData contains profiles #24890
    • When spring.mvc.pathmatch.matching-strategy is set to path-pattern-parser, the error handling of a management server listening on a separate port is broken #24877
    • mappings endpoint fails due to an NPE when spring.mvc.pathmatch.matching-strategy is set to path-pattern-parser #24874
    • Failures when recording metrics in MetricsClientHttpRequestInterceptor may interfere with RestTemplate's main behaviour #24872
    • Auto-configured DataSourceTransactionManager uses spring.dao.exceptiontranslation.enable rather than spring.dao.exceptiontranslation.enabled to control exception translation #24867
    • Illegal reflective access by org.springframework.cglib.core.ReflectUtils #24857
    • Configuration metadata for logging.charset.* has invalid reference for java.nio.charset.Charset #24851
    • Asynchronous deserialization performed by Hazelcast may fail due to the wrong ClassLoader being used #24836

    :notebook_with_decorative_cover: Documentation

    • Update the Gradle plugin documentation to recommend the maven-publish plugin over the maven plugin #25307
    • Document Kafka Streams metrics support #25297
    • Default values of integer properties in the application properties appendix are rendered as decimals #25176
    • Clarify usage of BufferingApplicationStartup #25075
    • Since 2.3.8 and 2.4.2, the documented index format does not match the implementation #25066
    • Clarify when retaining . characters in property keys requires bracket notation to be used #25064
    • Highlight that Duration and Period conversion is provided by the ApplicationConversionService and, by default, is not available for web conversion #25061
    • Document logging.register-shutdown-hook and why you may want to enable it #25044
    • bootRun project property command line example is incomplete #25042
    • Document the need to use the launcher to be able to use application.* properties in a custom banner #25040
    • Add some guidance to the reference documentation about diagnosing unexpected property values #25038
    • WebMvcProperties.MatchingStrategy should be documented as being since 2.4.0 #24875
    • CONTRIBUTING.adoc contains broken link to spring-javaformat-intellij-idea-plugin #24869
    • Add version to reference docs index #24854
    • Remove YAML shortcomings section as it no longer applies #24620

    :hammer: Dependency Upgrades

    • Upgrade to ActiveMQ 5.16.1 #25205
    • Upgrade to AppEngine SDK 1.9.86 #25206
    • Upgrade to Byte Buddy 1.10.20 #25207
    • Upgrade to FreeMarker 2.3.31 #25338
    • Upgrade to Hibernate 5.4.28.Final #25208
    • Upgrade to Infinispan 11.0.9.Final #25209
    • Upgrade to Janino 3.1.3 #25210
    • Upgrade to Jaybird 3.0.10 #25211
    • Upgrade to Jetty 9.4.36.v20210114 #25212
    • Upgrade to Johnzon 1.2.10 #25213
    • Upgrade to jOOQ 3.14.7 #25214
    • Upgrade to JUnit 4.13.2 #25339
    • Upgrade to JUnit Jupiter 5.7.1 #25215
    • Upgrade to Kotlin 1.4.30 #25216
    • Upgrade to Lombok 1.18.18 #25217
    • Upgrade to MariaDB 2.7.2 #25218
    • Upgrade to Micrometer 1.6.4 #25291
    • Upgrade to MySQL 8.0.23 #25219
    • Upgrade to Netty 4.1.59.Final #25220
    • Upgrade to Reactor 2020.0.4 #25286
    • Upgrade to RxJava2 2.2.21 #25340
    • Upgrade to Spring AMQP 2.3.5 #25290
    • Upgrade to Spring Data 2020.0.5 #25002
    • Upgrade to Spring Framework 5.3.4 #24998
    • Upgrade to Spring HATEOAS 1.2.4 #25341
    • Upgrade to Spring Integration 5.4.4 #25289
    • Upgrade to Spring Kafka 2.6.6 #25292
    • Upgrade to Spring Security 5.4.5 #25221
    • Upgrade to Spring Session Bom 2020.0.3 #25222
    • Upgrade to Tomcat 9.0.43 #25223
    • Upgrade to Undertow 2.2.4.Final #25224

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.3.9.RELEASE(Feb 18, 2021)

    :beetle: Bug Fixes

    • Migrations performed by Flyway or Liquibase may not have completed before the database is accessed via jOOQ #25279
    • Dependency management for Hibernate's new hibernate-micrometer module is missing #25277
    • DatabaseDriver does not detect Amazon Redshift correctly #25265
    • Missing RabbitMQ metrics if bean is defined as a ConnectionFactory #25138
    • A ContextRefreshedEvent from a child context may result in deadlock when using JPA deferred repositories #24966
    • Spring Data Solr support is not flagged as deprecated #24942
    • Failures when recording metrics in MetricsClientHttpRequestInterceptor may interfere with RestTemplate's main behaviour #24753
    • WebMvcTest and WebFluxTest ignore user-provided Thymeleaf IDialect beans #24149

    :notebook_with_decorative_cover: Documentation

    • Update the Gradle plugin documentation to recommend the maven-publish plugin over the maven plugin #25299
    • Document Kafka Streams metrics support #25272
    • Default values of integer properties in the application properties appendix are rendered as decimals #25172
    • bootRun project property command line example is incomplete #25012
    • Document the need to use the launcher to be able to use application.* properties in a custom banner #24982
    • CONTRIBUTING.adoc contains broken link to spring-javaformat-intellij-idea-plugin #24864
    • Since 2.3.8 and 2.4.2, the documented index format does not match the implementation #24856
    • Add version to reference docs index #24848
    • Document logging.register-shutdown-hook and why you may want to enable it #24507
    • Add some guidance to the reference documentation about diagnosing unexpected property values #24336
    • Clarify when retaining . characters in property keys requires bracket notation to be used #23390
    • Highlight that Duration and Period conversion is provided by the ApplicationConversionService and, by default, is not available for web conversion #22718

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.86 #25189
    • Upgrade to Byte Buddy 1.10.20 #25190
    • Upgrade to FreeMarker 2.3.31 #25334
    • Upgrade to Hazelcast 3.12.12 #25191
    • Upgrade to Hibernate 5.4.28.Final #25192
    • Upgrade to Janino 3.1.3 #25193
    • Upgrade to Jaybird 3.0.10 #25194
    • Upgrade to Jetty 9.4.36.v20210114 #25195
    • Upgrade to Johnzon 1.2.10 #25196
    • Upgrade to JUnit 4.13.2 #25335
    • Upgrade to Lombok 1.18.18 #25197
    • Upgrade to Micrometer 1.5.11 #25285
    • Upgrade to MySQL 8.0.23 #25198
    • Upgrade to Neo4j OGM 3.2.20 #25199
    • Upgrade to Netty 4.1.59.Final #25200
    • Upgrade to Reactor Dysprosium-SR17 #25280
    • Upgrade to RxJava2 2.2.21 #25336
    • Upgrade to Spring AMQP 2.2.15.RELEASE #25284
    • Upgrade to Spring Data Neumann-SR7 #25282
    • Upgrade to Spring Framework 5.2.13 #25281
    • Upgrade to Spring HATEOAS 1.1.4.RELEASE #25337
    • Upgrade to Spring Integration 5.3.6.RELEASE #25283
    • Upgrade to Spring Security 5.3.8.RELEASE #25201
    • Upgrade to Spring Session Bom Dragonfruit-SR2 #25202
    • Upgrade to Tomcat 9.0.43 #25203
    • Upgrade to Undertow 2.1.6.Final #25204

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-M1(Jan 21, 2021)

    :star: New Features

    • Remove Spring Data Solr support #24939
    • Automatically register HttpSessionIdListener beans with the servlet context #24879
    • Register default resource path using ServletContextResource #24749
    • Switch to Apache EL implementation by default #24744
    • Add customizer for jOOQ's DefaultConfiguration #24732
    • Support get requests for /actuator/startup #24717
    • Change info endpoint to be secure and unexposed by default #24715
    • Configure Couchbase to use the application's ObjectMapper #24616
    • Provide a configuration property for endpoints' CORS origin patterns #24608
    • Add configuration option to configure Kafka Listener's onlyLogRecordMetadata #24582
    • Improve performance of Tomcat 'jar:war:file' URLs #24553
    • Add API for PropertySource resource location retrieval #24524
    • Move EntityManagerFactoryDependsOnPostProcessor from o.s.b.autoconfigure.data.jpa to o.s.b.autoconfigure.orm.jpa #24452
    • Allow to configure ActiveMQ Artemis using broker url #24302
    • Reduce the overhead of char[] creation #24204
    • Expose configuration property for Cassandra's control queries timeout #24189
    • Provide out-of-the-box support for Elasticsearch Sniffer #24174
    • Add support for Apache Phoenix's jdbc:phoenix: JDBC URL prefix #24114
    • Add keyStoreAlgorithm and trustStoreAlgorithm configuration option to configure RabbitConnectionFactory #24076
    • Disable mappings endpoint related infrastructure when endpoint isn't available #23977

    :beetle: Bug Fixes

    • When spring.mvc.pathmatch.matching-strategy is set to path-pattern-parser, the error handling of a management server listening on a separate port is broken #24949
    • InvalidConfigDataPropertyException thrown when server processed ConfigData contains profiles #24893
    • mappings endpoint fails due to an NPE when spring.mvc.pathmatch.matching-strategy is set to path-pattern-parser #24882
    • Failures when recording metrics in MetricsClientHttpRequestInterceptor may interfere with RestTemplate's main behaviour #24873
    • Auto-configured DataSourceTransactionManager uses spring.dao.exceptiontranslation.enable rather than spring.dao.exceptiontranslation.enabled to control exception translation #24871
    • Configuration metadata for logging.charset.* has invalid reference for java.nio.charset.Charset #24861
    • Wrong logging pattern with multiple web applications #24846
    • DataSourceUnwrapper calls Wrapper.isWrapperFor with a interface rather than an class causing HikariDataSourceMetricsRegistry failure #24842
    • Configuration metadata json does not include spring.config.use-legacy-processing #24832
    • main application.yaml overrides test application.properties #24812
    • Setting -Dspring.devtools.restart.enabled=true has no effect when the class loader class name does not contain AppClassLoader #24800
    • Actuator 'configprops' endpoint does not show inputs for @Name parameters #24795
    • Enforce that builder and run images are pulled from the same authenticated registry #24794
    • spring.profiles.include is silently ignored when used in a profile-specific document #24793
    • Auto-configured JdbcSessionDataSourceInitializer does not use the @SpringSessionDataSource if available #24791
    • Error Invalid entry size when build application with a dependency jar larger than 2,147,483,647 bytes with Gradle #24769
    • Exceptions are still translated by JdbcTransactionManager when spring.dao.exceptiontranslation.enabled is false #24746
    • bootRun task does not use the project's toolchain by default #24739
    • BootRun does not consider configured javaLauncher when determining JVM arguments for an optimized launch #24736
    • Exploded archives launched using the launcher have an incorrectly ordered classpath that also contains non-existent jar files #24711
    • spring-boot:build-image has a layout parameter that cannot be always be honoured #24690
    • flashMapManager and themeResolver beans can no longer be configured without enabling bean overriding #24687
    • FailureAnalyzers' unmet dependency errors add noise to logs #24684
    • WebTestClient base path is not set to the application context path #24679
    • ConfigDataEnvironment doesn't register updated Binder #24674
    • JSR-305 @Nullable cannot be used to indicate that a parameter to an endpoint operation is optional #24671
    • WebServer implementations should return -1 if not listening on a port #24658
    • configtree not working with Kubernetes projected volume #24652
    • ConfigDataLocationNotFoundException thrown at application startup with configserver: config imports, that are not even meant for the current profile #24651
    • Maven resources plugin execution generates a warning with a vanilla project #24600
    • Handle missing manifest files in JarTypeFilter #24598
    • Persistent and RelationshipProperties-annotated types are not scanned with Spring Data Neo4j #24589
    • BootstrapContext Binder cannot be used if accessed early #24569
    • Opening a connection to a jar:war: URL created by Tomcat results in an illegal reflective access warning on Java 13+ #24555
    • Netty Web Server will not start if using Unix Domain Sockets #24544
    • Actuator doesn't use the CORS Configuration with default security configuration and Spring MVC #24543
    • Avoid duplicate classes in MergedContextConfiguration #24537
    • Image is built from jar file when when using war packaging with Gradle #24534
    • Application Startup Fails For Existing, Non-Optional Config Location, Resulting In ConfigDataLocationNotFoundException #24505

    :notebook_with_decorative_cover: Documentation

    • WebMvcProperties.MatchingStrategy should be documented as being since 2.4.0 #24883
    • CONTRIBUTING.adoc contains broken link to spring-javaformat-intellij-idea-plugin #24870
    • Add version to reference docs index #24855
    • Fix documentation on probes states during graceful shutdown #24844
    • Clarify behaviour of WebServerFactory in reference guide #24708
    • Fix javadoc typo in ConfigDataLocation #24685
    • Migrate away from pivotal-legacy/homebrew-tap #24682
    • Document warning about InMemoryOAuth2AuthorizedClientService #24595
    • Update documentation containing examples of WebSecurityConfigurerAdapter #24593
    • Update version of git-properties plugin in the docs #24573
    • Improve "Git Commit Information" reference documentation #24571
    • Clarify when SpEL expressions in application properties are evaluated #24566
    • Reorder documentation about building images #24564
    • Improve error message when attempting to build an image when using war packaging with Maven #24539
    • Testing Properties missing from Application Properties Appendix #24519
    • Update reference guide to refine note on excluding spring-boot-configuration-processor explicitly #24511

    :hammer: Dependency Upgrades

    • Upgrade to ActiveMQ 5.16.1 #24954
    • Upgrade to AppEngine SDK 1.9.84 #24895
    • Upgrade to Artemis 2.16.0 #24896
    • Upgrade to Byte Buddy 1.10.19 #24897
    • Upgrade to Cassandra Driver 4.10.0 #24898
    • Upgrade to Couchbase Client 3.1.1 #24899
    • Upgrade to Dependency Management Plugin 1.0.11 #24830
    • Upgrade to Dropwizard Metrics 4.1.17 #24900
    • Upgrade to Elasticsearch 7.10.2 #24901
    • Upgrade to Embedded Mongo 3.0.0 #24254
    • Upgrade to Flyway 7.5.1 #24961
    • Upgrade to Git Commit ID Plugin 4.0.3 #24955
    • Upgrade to Groovy 3.0.7 #24946
    • Upgrade to Hazelcast 4.1.1 #24902
    • Upgrade to Hazelcast Hibernate5 2.2.0 #24903
    • Upgrade to Hibernate 5.4.27.Final #24904
    • Upgrade to Hibernate Validator 6.2.0.Final #24905
    • Upgrade to HtmlUnit 2.46.0 #24906
    • Upgrade to Infinispan 11.0.9.Final #24907
    • Upgrade to InfluxDB Java 2.21 #24908
    • Upgrade to Jackson 2.12.1 #24415
    • Upgrade to Jaybird 4.0.2.java8 #24956
    • Upgrade to Jersey 2.33 #24911
    • Upgrade to Jetty 9.4.36.v20210114 #24913
    • Upgrade to Jetty EL 9.0.29 #24957
    • Upgrade to Jetty Reactive HTTPClient 1.1.5 #24912
    • Upgrade to Johnzon 1.2.9 #24914
    • Upgrade to Json Path 2.5.0 #24915
    • Upgrade to Kafka 2.7.0 #24934
    • Upgrade to Kotlin 1.4.21-2 #24958
    • Upgrade to Lettuce 6.0.2.RELEASE #24916
    • Upgrade to Liquibase 4.2.2 #24952
    • Upgrade to Log4j2 2.14.0 #24917
    • Upgrade to Micrometer 1.6.3 #24918
    • Upgrade to Mockito 3.7.7 #24919
    • Upgrade to MySQL 8.0.23 #24920
    • Upgrade to Netty 4.1.58.Final #24921
    • Upgrade to Netty tcNative 2.0.36.Final #24922
    • Upgrade to Oracle Database 21.1.0.0 #24959
    • Upgrade to Reactor 2020.0.3 #24740
    • Upgrade to REST Assured 4.3.3 #24962
    • Upgrade to Selenium HtmlUnit 2.46.0 #24924
    • Upgrade to SendGrid 4.7.1 #24925
    • Upgrade to Solr 8.7.0 #24963
    • Upgrade to Spring AMQP 2.3.4 #24926
    • Upgrade to Spring Data 2021.0.0-M2 #24931
    • Upgrade to Spring Framework 5.3.3 #24750
    • Upgrade to Spring HATEOAS 1.3.0-M1 #24935
    • Upgrade to Spring Integration 5.5.0-M1 #24932
    • Upgrade to Spring Kafka 2.7.0-M1 #24592
    • Upgrade to Spring Retry 1.3.1 #24927
    • Upgrade to Spring Security 5.5.0-M1 #24937
    • Upgrade to Spring Session 2021.0.0-M1 #24933
    • Upgrade to SQLite JDBC 3.34.0 #24928
    • Upgrade to Thymeleaf 3.0.12 #24603
    • Upgrade to Thymeleaf Layout Dialect 2.5.2 #24929
    • Upgrade to XmlUnit2 2.8.2 #24930

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.2(Jan 14, 2021)

    :star: New Features

    • Add API for PropertySource resource location retrieval #24504

    :beetle: Bug Fixes

    • DataSourceUnwrapper calls Wrapper.isWrapperFor with a interface rather than an class causing HikariDataSourceMetricsRegistry failure #24841
    • Wrong logging pattern with multiple web applications #24835
    • Configuration metadata json does not include spring.config.use-legacy-processing #24816
    • Setting -Dspring.devtools.restart.enabled=true has no effect when the class loader class name does not contain AppClassLoader #24797
    • Auto-configured JdbcSessionDataSourceInitializer does not use the @SpringSessionDataSource if available #24790
    • Error Invalid entry size when build application with a dependency jar larger than 2,147,483,647 bytes with Gradle #24768
    • Default servlet location is not registered using a ServletContextResource #24748
    • bootRun task does not use the project's toolchain by default #24738
    • BootRun does not consider configured javaLauncher when determining JVM arguments for an optimized launch #24735
    • spring.profiles.include is silently ignored when used in a profile-specific document #24733
    • main application.yaml overrides test application.properties #24719
    • Actuator 'configprops' endpoint does not show inputs for @Name parameters #24713
    • Exploded archives launched using the launcher have an incorrectly ordered classpath that also contains non-existent jar files #24710
    • spring-boot:build-image has a layout parameter that cannot be always be honoured #24689
    • FailureAnalyzers' unmet dependency errors add noise to logs #24683
    • WebTestClient base path is not set to the application context path #24678
    • Support JSR-305 @Nullable annotations on endpoint methods #24672
    • JSR-305 @Nullable cannot be used to indicate that a parameter to an endpoint operation is optional #24670
    • ConfigDataEnvironment doesn't register updated Binder #24669
    • WebServer implementations should return -1 if not listening on a port #24657
    • Support JSR-305 @Nullable annotations on endpoint methods #24654
    • Handle missing manifest files in JarTypeFilter #24597
    • ConfigDataLocationNotFoundException thrown at application startup with configserver: config imports, that are not even meant for the current profile #24584
    • Maven resources plugin execution generates a warning with a vanilla project #24576
    • BootstrapContext Binder cannot be used if accessed early #24559
    • Opening a connection to a jar:war: URL created by Tomcat results in an illegal reflective access warning on Java 13+ #24554
    • Enforce that builder and run images are pulled from the same authenticated registry #24552
    • Actuator doesn't use the CORS Configuration with default security configuration and Spring MVC #24542
    • Avoid duplicate classes in MergedContextConfiguration #24536
    • Image is built from jar file when when using war packaging with Gradle #24535
    • configtree not working with Kubernetes projected volume #24530
    • Netty Web Server will not start if using Unix Domain Sockets #24529
    • Application Startup Fails For Existing, Non-Optional Config Location, Resulting In ConfigDataLocationNotFoundException #24499
    • Exceptions are still translated by JdbcTransactionManager when spring.dao.exceptiontranslation.enabled is false #24321
    • Persistent and RelationshipProperties-annotated types are not scanned with Spring Data Neo4j #24239
    • flashMapManager and themeResolver beans can no longer be configured without enabling bean overriding #24207

    :notebook_with_decorative_cover: Documentation

    • Fix documentation on probes states during graceful shutdown #24843
    • Clarify behaviour of WebServerFactory in reference guide #24707
    • Migrate away from pivotal-legacy/homebrew-tap #24681
    • Fix javadoc typo in ConfigDataLocation #24660
    • Harmonize ActiveMQ Artemis naming #24587
    • Update version of git-properties plugin in the docs #24572
    • Improve "Git Commit Information" reference documentation #24570
    • Clarify when SpEL expressions in application properties are evaluated #24565
    • Reorder documentation about building images #24563
    • Update documentation containing examples of WebSecurityConfigurerAdapter #24551
    • Improve error message when attempting to build an image when using war packaging with Maven #24538
    • Testing Properties missing from Application Properties Appendix #24518
    • Update reference guide to refine note on excluding spring-boot-configuration-processor explicitly #24498
    • Document warning about InMemoryOAuth2AuthorizedClientService #24313

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.84 #24721
    • Upgrade to Byte Buddy 1.10.19 #24722
    • Upgrade to Dependency Management Plugin 1.0.11.RELEASE #24827
    • Upgrade to Dropwizard Metrics 4.1.17 #24723
    • Upgrade to Hibernate 5.4.27.Final #24724
    • Upgrade to Hibernate Validator 6.1.7.Final #24725
    • Upgrade to Jackson Bom 2.11.4 #24726
    • Upgrade to Jetty Reactive HTTPClient 1.1.5 #24727
    • Upgrade to Johnzon 1.2.9 #24728
    • Upgrade to Lettuce 6.0.2.RELEASE #24802
    • Upgrade to Micrometer 1.6.3 #24786
    • Upgrade to Netty 4.1.58.Final #24828
    • Upgrade to Netty tcNative 2.0.36.Final #24829
    • Upgrade to Reactor 2020.0.3 #24698
    • Upgrade to Spring AMQP 2.3.4 #24702
    • Upgrade to Spring Data 2020.0.3 #24700
    • Upgrade to Spring Framework 5.3.3 #24699
    • Upgrade to Spring HATEOAS 1.2.3 #24803
    • Upgrade to Spring Integration 5.4.3 #24701
    • Upgrade to Spring Kafka 2.6.5 #24703
    • Upgrade to Spring Retry 1.3.1 #24730
    • Upgrade to Thymeleaf 3.0.12 #24602
    • Upgrade to Thymeleaf Layout Dialect 2.5.2 #24731

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.3.8.RELEASE(Jan 14, 2021)

    :beetle: Bug Fixes

    • Default servlet location is not registered using a ServletContextResource #24747
    • DataSourceUnwrapper calls Wrapper.isWrapperFor with a interface rather than an class causing HikariDataSourceMetricsRegistry failure #24697
    • JSR-305 @Nullable cannot be used to indicate that a parameter to an endpoint operation is optional #24647
    • FailureAnalyzers' unmet dependency errors add noise to logs #24630
    • Auto-configured JdbcSessionDataSourceInitializer does not use the @SpringSessionDataSource if available #24624
    • Error Invalid entry size when build application with a dependency jar larger than 2,147,483,647 bytes with Gradle #24618
    • WebServer implementations should return -1 if not listening on a port #24606
    • Avoid duplicate classes in MergedContextConfiguration #24532
    • Image is built from jar file when when using war packaging with Gradle #24521
    • bootRun task does not use the project's toolchain by default #24517
    • BootRun does not consider configured javaLauncher when determining JVM arguments for an optimized launch #24512
    • Exploded archives launched using the launcher have an incorrectly ordered classpath that also contains non-existent jar files #24192
    • spring-boot:build-image has a layout parameter that cannot be always be honoured #24105
    • WebTestClient base path is not set to the application context path #24168
    • Opening a connection to a jar:war: URL created by Tomcat results in an illegal reflective access warning on Java 13+ #18631

    :notebook_with_decorative_cover: Documentation

    • Clarify behaviour of WebServerFactory in reference guide #24705
    • Migrate away from pivotal-legacy/homebrew-tap #24680
    • Document warning about InMemoryOAuth2AuthorizedClientService #24596
    • Harmonize ActiveMQ Artemis naming #24586
    • Update version of git-properties plugin in the docs #24567
    • Reorder documentation about building images #24560
    • Clarify when SpEL expressions in application properties are evaluated #24531
    • Improve error message when attempting to build an image when using war packaging with Maven #24522
    • Testing Properties missing from Application Properties Appendix #24486
    • Improve "Git Commit Information" reference documentation #24205

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.84 #24754
    • Upgrade to Byte Buddy 1.10.19 #24755
    • Upgrade to Dependency Management Plugin 1.0.11.RELEASE #24821
    • Upgrade to Dropwizard Metrics 4.1.17 #24756
    • Upgrade to Hazelcast 3.12.11 #24757
    • Upgrade to Hibernate 5.4.27.Final #24758
    • Upgrade to Hibernate Validator 6.1.7.Final #24759
    • Upgrade to Jackson Bom 2.11.4 #24760
    • Upgrade to Jetty Reactive HTTPClient 1.1.5 #24761
    • Upgrade to Johnzon 1.2.9 #24762
    • Upgrade to Lettuce 5.3.6.RELEASE #24801
    • Upgrade to Micrometer 1.5.10 #24785
    • Upgrade to Neo4j OGM 3.2.19 #24763
    • Upgrade to Netty 4.1.58.Final #24822
    • Upgrade to Netty tcNative 2.0.36.Final #24823
    • Upgrade to Reactor Dysprosium-SR16 #24765
    • Upgrade to Spring AMQP 2.2.14.RELEASE #24824
    • Upgrade to Spring Integration 5.3.5.RELEASE #24825
    • Upgrade to Spring Kafka 2.5.11.RELEASE #24826
    • Upgrade to Thymeleaf 3.0.12 #24599

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.2.13.RELEASE(Jan 14, 2021)

    :beetle: Bug Fixes

    • Default servlet location is not registered using a ServletContextResource #24745

    :notebook_with_decorative_cover: Documentation

    • Migrate away from pivotal-legacy/homebrew-tap #24659

    :hammer: Dependency Upgrades

    • Upgrade to Appengine Sdk 1.9.84 #24770
    • Upgrade to Byte Buddy 1.10.19 #24776
    • Upgrade to Dependency Management Plugin 1.0.11 #24742
    • Upgrade to Dropwizard Metrics 4.1.17 #24772
    • Upgrade to Hazelcast 3.12.11 #24771
    • Upgrade to Hibernate 5.4.27.Final #24778
    • Upgrade to Hibernate Validator 6.0.22.Final #24779
    • Upgrade to Joda Time 2.10.9 #24775
    • Upgrade to Johnzon Jsonb 1.2.9 #24777
    • Upgrade to Neo4j Ogm 3.2.19 #24780
    • Upgrade to Netty 4.1.56.Final #24773
    • Upgrade to Netty 4.1.58.Final #24818
    • Upgrade to Netty Tcnative 2.0.36.Final #24774
    • Upgrade to Reactor Dysprosium-SR16 #24766
    • Upgrade to Spring Amqp 2.2.14.RELEASE #24819
    • Upgrade to Spring Integration 5.2.11.RELEASE #24820
    • Upgrade to Thymeleaf 3.0.12.RELEASE #24781

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.1(Dec 11, 2020)

    :beetle: Bug Fixes

    • Wildcard config file locations from the working directory override each other #24428
    • Configuration property binding processes JavaBean methods in a non-deterministic order which may result in variable behavior #24425
    • JPA repositories mode should not be deferred by default #24401
    • @Name support for value object binding fails with Kotlin classes #24379
    • Allow recursive profile group references #24327
    • Correct external application properties load order #24308
    • Wrapper types are not displayed in actuator env endpoint #24307
    • OriginTrackedPropertiesLoader#isNewDocument has wrong visibility #24268
    • Redis health indicator requests more information than it needs resulting in unnecessarily large responses from Redis #24251
    • ErrorAttributeOptions.excluding throws IllegalArgumentException if includes is empty #24234
    • Actuator web endpoints cannot respond with custom HTTP status codes when running on MVC or WebFlux #24223
    • Missing Spring Integration metrics due to the MeterRegistry bean being looked for before it has been defined #24220
    • LocaleResolver (MVC) and LocaleContextResolver (WebFlux) beans will back off if a user provides a bean of the same type and a custom name but Framework will then use its own default #24209
    • DevTools still refers to deprecated keys #24203
    • DataSourceUnwrapper calls Wrapper.isWrapperFor with a class rather than an interface causing Oracle UCP warnings #24200
    • WebFluxTags performs unnecessary Pattern compilation when ignoring trailing slashes #24194
    • elasticsearch-rest-client-sniffer is missing from the dependency management for Elasticsearch's REST client modules #24186
    • No converter is found when binding a non-string property via config tree #24171
    • LoggingSystem calls with Log4J throws NullPointerException #24163
    • Any line that is immediately after a line that contains only a # is lost when reading application properties files #24158
    • Ensure the WebClient to be present before enabling the WebTestClientContextCustomizer #24152
    • ConfigDataResourceNotFoundException incorrectly thrown for valid classpath locations #24143

    :notebook_with_decorative_cover: Documentation

    • Document how to use Devtools without an IDE #24410
    • Add link to appendix from error handling documentation #24408
    • Document how to run unit tests #24301
    • Invalid ErrorAttributesOptions#getInclude Javadoc #24259
    • Fix typo in TomcatWebServer Javadoc #24245
    • Security properties appendix contains spring.session and spring.ldap properties that belong elsewhere #24196
    • Rename "sla" to "slo" in reference documentation #24162
    • Document the granularity for property document imports #22987

    :hammer: Dependency Upgrades

    • Upgrade to Caffeine 2.8.8 #24443
    • Upgrade to DB2 JDBC 11.5.5.0 #24383
    • Upgrade to Dropwizard Metrics 4.1.16 #24384
    • Upgrade to Groovy 2.5.14 #24385
    • Upgrade to Hibernate 5.4.25.Final #24386
    • Upgrade to HttpCore 4.4.14 #24387
    • Upgrade to Infinispan 11.0.8.Final #24388
    • Upgrade to Jetty 9.4.35.v20201120 #24389
    • Upgrade to jOOQ 3.14.4 #24390
    • Upgrade to Kotlin 1.4.21 #24391
    • Upgrade to Kotlin Coroutines 1.4.2 #24392
    • Upgrade to MariaDB 2.7.1 #24393
    • Upgrade to Micrometer 1.6.2 #24281
    • Upgrade to Mockito 3.6.28 #24394
    • Upgrade to Netty 4.1.55.Final #24444
    • Upgrade to Netty tcNative 2.0.35.Final #24445
    • Upgrade to Nimbus JOSE JWT 9.1.3 #24395
    • Upgrade to Reactor 2020.0.2 #24275
    • Upgrade to Spring AMQP 2.3.2 #24288
    • Upgrade to Spring Batch 4.3.1 #24291
    • Upgrade to Spring Data 2020.0.2 #24284
    • Upgrade to Spring Framework 5.3.2 #24278
    • Upgrade to Spring HATEOAS 1.2.2 #24285
    • Upgrade to Spring Integration 5.4.2 #24442
    • Upgrade to Spring Kafka 2.6.4 #24294
    • Upgrade to Spring Security 5.4.2 #24297
    • Upgrade to SQLite JDBC 3.32.3.3 #24446
    • Upgrade to Tomcat 9.0.41 #24447
    • Upgrade to Undertow 2.2.3.Final #24397

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.3.7.RELEASE(Dec 11, 2020)

    :beetle: Bug Fixes

    • Configuration property binding processes JavaBean methods in a non-deterministic order which may result in variable behavior #24424
    • Redis health indicator requests more information than it needs resulting in unnecessarily large responses from Redis #24250
    • JPA repositories mode should not be deferred by default #24249
    • ErrorAttributeOptions.excluding throws IllegalArgumentException if includes is empty #24230
    • Actuator web endpoints cannot respond with custom HTTP status codes when running on MVC or WebFlux #24222
    • Missing Spring Integration metrics due to the MeterRegistry bean being looked for before it has been defined #24219
    • WebFluxTags performs unnecessary Pattern compilation when ignoring trailing slashes #24193
    • elasticsearch-rest-client-sniffer is missing from the dependency management for Elasticsearch's REST client modules #24185
    • DataSourceUnwrapper calls Wrapper.isWrapperFor with a class rather than an interface causing Oracle UCP warnings #24154

    :notebook_with_decorative_cover: Documentation

    • Document how to use Devtools without an IDE #24409
    • Add link to appendix from error handling documentation #24407
    • Invalid ErrorAttributesOptions#getInclude Javadoc #24257
    • Security properties appendix contains spring.session and spring.ldap properties that belong elsewhere #24195
    • Rename "sla" to "slo" in reference documentation #24160

    :hammer: Dependency Upgrades

    • Upgrade to ActiveMQ 5.15.14 #24436
    • Upgrade to Caffeine 2.8.8 #24437
    • Upgrade to DB2 JDBC 11.5.5.0 #24369
    • Upgrade to Dropwizard Metrics 4.1.16 #24370
    • Upgrade to Groovy 2.5.14 #24371
    • Upgrade to Hibernate 5.4.25.Final #24372
    • Upgrade to HttpCore 4.4.14 #24373
    • Upgrade to Jetty 9.4.35.v20201120 #24374
    • Upgrade to Micrometer 1.5.9 #24427
    • Upgrade to Netty 4.1.55.Final #24438
    • Upgrade to Netty tcNative 2.0.35.Final #24439
    • Upgrade to Reactor Dysprosium-SR15 #24274
    • Upgrade to Spring AMQP 2.2.13 #24287
    • Upgrade to Spring Batch 4.2.5 #24290
    • Upgrade to Spring Data Neumann-SR6 #24283
    • Upgrade to Spring Framework 5.2.12 #24277
    • Upgrade to Spring HATEOAS 1.1.3 #24419
    • Upgrade to Spring Kafka 2.5.10 #24293
    • Upgrade to Spring Security 5.3.6 #24296
    • Upgrade to Tomcat 9.0.41 #24440
    • Upgrade to Undertow 2.1.5.Final #24441

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.2.12.RELEASE(Dec 10, 2020)

    :beetle: Bug Fixes

    • Redis health indicator requests more information than it needs resulting in unnecessarily large responses from Redis #24208
    • elasticsearch-rest-client-sniffer is missing from the dependency management for Elasticsearch's REST client modules #24173
    • WebFluxTags performs unnecessary Pattern compilation when ignoring trailing slashes #24147
    • Actuator web endpoints cannot respond with custom HTTP status codes when running on MVC or WebFlux #24123
    • Missing Spring Integration metrics due to the MeterRegistry bean being looked for before it has been defined #24095
    • Configuration property binding processes JavaBean methods in a non-deterministic order which may result in variable behavior #24068
    • When using Tomcat, key and trust store passwords set via javax.net.ssl system properties are overwritten with null when Spring Boot's equivalent properties have not been set #24041
    • Configuration metadata annotation processor may use the wrong accessor for boolean properties #24002
    • TestTypeExcludeFilter does not implement hashCode and equals as required by its super-class #23978
    • Configuration property annotation processor does not notice overriding getter methods #23966
    • Our auto-configuration should not use @PostConstruct as it's ignored on Java 11+ without a dependency on jakarta-annotation-api #23723
    • JdbcStoreTypeConfiguration picks transaction of primary data source when Quartz data source is not the primary data source #20184
    • @DataJpaTest using H2 with schema.sql and spring.datasource.schema-username fails #19321

    :notebook_with_decorative_cover: Documentation

    • Document how to use Devtools without an IDE #24271
    • Add link to appendix from error handling documentation #24265
    • Fix link to Flyway callback docs #24119
    • Provide more details about overriding SpringPhysicalNamingStrategy's case insensitive flag #24045
    • Clarify the javadoc of AutoConfigureTestDatabase to make it clearer that it only replaces the main DataSource #23808
    • Security properties appendix contains spring.session and spring.ldap properties that belong elsewhere #23558
    • Improve Spring Session back off documentation #23151
    • Clarify documentation regarding relaxed binding of environment variables #22974
    • Recommend that bean definitions provide as much type information as possible #22925
    • Recommend disabling context path redirects when using proxy-terminated SSL with Tomcat #22908
    • Enhance spring.datasource.initialization-mode property description #21121

    :hammer: Dependency Upgrades

    • Upgrade to Activemq 5.15.14 #24434
    • Upgrade to Appengine Sdk 1.9.83 #24354
    • Upgrade to Byte Buddy 1.10.18 #24358
    • Upgrade to Caffeine 2.8.8 #24430
    • Upgrade to Couchbase Client 2.7.18 #24351
    • Upgrade to Db2 Jdbc 11.5.5.0 #24355
    • Upgrade to Dropwizard Metrics 4.1.16 #24356
    • Upgrade to Groovy 2.5.14 #24361
    • Upgrade to Hibernate 5.4.25.Final #24363
    • Upgrade to Httpcore 4.4.14 #24359
    • Upgrade to Infinispan 9.4.21.Final #24364
    • Upgrade to Jackson 2.10.5.20201202 #24352
    • Upgrade to Jetty 9.4.35.v20201120 #24362
    • Upgrade to Micrometer 1.3.16 #24279
    • Upgrade to Neo4j Ogm 3.2.18 #24365
    • Upgrade to Netty 4.1.55.Final #24431
    • Upgrade to Netty Tcnative 2.0.35.Final #24432
    • Upgrade to Reactor Dysprosium-SR15 #24273
    • Upgrade to Spring AMQP 2.2.13 #24286
    • Upgrade to Spring Batch 4.2.5 #24289
    • Upgrade to Spring Data Moore-SR12 #24282
    • Upgrade to Spring Framework 5.2.12 #24276
    • Upgrade to Spring Integration 5.2.10 #24429
    • Upgrade to Spring Kafka 2.3.13 #24292
    • Upgrade to Spring Security 5.2.8.RELEASE #24366
    • Upgrade to Tomcat 9.0.41 #24435
    • Upgrade to Undertow 2.0.33.Final #24433

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.0(Nov 12, 2020)

    :star: New Features

    • Provide a property or environment variable to enable DevTools' restarter irrespective of how the application was launched #21424

    :beetle: Bug Fixes

    • Using last modified for static resources in reproducible archives and images causes unwanted browser caching #24099
    • BootJar's afterResolve action causes resolution failures with the Versions plugin due to configurations being copied and made resolvable #24072
    • Configuration metadata annotation processor may use the wrong accessor for boolean properties #24059
    • When using Tomcat, key and trust store passwords set via javax.net.ssl system properties are overwritten with null when Spring Boot's equivalent properties have not been set #24053
    • Config files no longer loaded if they contain a hidden path element #24043
    • @DataJpaTest using H2 with schema.sql and spring.datasource.schema-username fails #24024
    • "java.lang.IllegalStateException: zip file closed" when call JarFileWrapper.stream() of spring-boot-loader #24017
    • JdbcStoreTypeConfiguration picks transaction of primary data source when Quartz data source is not the primary data source #24015
    • TestTypeExcludeFilter does not implement hashCode and equals as required by its super-class #24013
    • Our auto-configuration should not use @PostConstruct as it's ignored on Java 11+ without a dependency on jakarta-annotation-api #24010
    • @MockBean fields are not reset for JUnit 5 @Nested tests using @WebMvcTest #23984
    • ClasspathLoggingApplicationListener logs the classpath as unknown on Java 11 and later #23138

    :notebook_with_decorative_cover: Documentation

    • Fix link to Flyway callback docs #24122
    • Fix deprecation warnings in javadoc comments #24120
    • Provide more details about overriding SpringPhysicalNamingStrategy's case insensitive flag #24062
    • Clarify documentation regarding relaxed binding of environment variables #24033
    • Enhance spring.datasource.initialization-mode property description #24030
    • Recommend disabling context path redirects when using proxy-terminated SSL with Tomcat #24026
    • Improve Spring Session back off documentation #24019
    • Clarify the javadoc of AutoConfigureTestDatabase to make it clearer that it only replaces the main DataSource #24007
    • Recommend that bean definitions provide as much type information as possible #24005
    • logging.file.* properties flagged with error level while they are still honoured #23995
    • Add missing default value for enum-based configuration properties #23992
    • Configuration property replacement metadata for spring.resources.cache.cachecontrol.stale-while-revalidate is invalid #23980

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.83 #24082
    • Upgrade to AssertJ 3.18.1 #24126
    • Upgrade to Byte Buddy 1.10.18 #24083
    • Upgrade to Couchbase Client 3.0.10 #24084
    • Upgrade to Hibernate 5.4.23.Final #24085
    • Upgrade to Infinispan 11.0.5.Final #24127
    • Upgrade to Jetty 9.4.34.v20201102 #24047
    • Upgrade to jOOQ 3.14.3 #24128
    • Upgrade to Kotlin Coroutines 1.4.1 #24087
    • Upgrade to Micrometer 1.6.1 #24051
    • Upgrade to Netty 4.1.54.Final #24129
    • Upgrade to Nimbus JOSE JWT 9.1.2 #24088
    • Upgrade to Pooled JMS 1.2.1 #24089
    • Upgrade to Reactor 2020.0.1 #24110
    • Upgrade to SendGrid 4.6.8 #24090
    • Upgrade to Spring AMQP 2.3.1 #24073
    • Upgrade to Spring Data 2020.0.1 #24036
    • Upgrade to Spring Framework 5.3.1 #24035
    • Upgrade to Spring HATEOAS 1.2.1 #24091
    • Upgrade to Spring Integration 5.4.1 #24097
    • Upgrade to Spring Kafka 2.6.3 #24074
    • Upgrade to Spring Session 2020.0.1 #24098

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.3.6.RELEASE(Nov 12, 2020)

    :beetle: Bug Fixes

    • Configuration metadata annotation processor may use the wrong accessor for boolean properties #24058
    • When using Tomcat, key and trust store passwords set via javax.net.ssl system properties are overwritten with null when Spring Boot's equivalent properties have not been set #24052
    • @DataJpaTest using H2 with schema.sql and spring.datasource.schema-username fails #24023
    • JdbcStoreTypeConfiguration picks transaction of primary data source when Quartz data source is not the primary data source #24014
    • TestTypeExcludeFilter does not implement hashCode and equals as required by its super-class #24012
    • Our auto-configuration should not use @PostConstruct as it's ignored on Java 11+ without a dependency on jakarta-annotation-api #24009
    • Config files no longer loaded if they contain a hidden path element #23983
    • "java.lang.IllegalStateException: zip file closed" when call JarFileWrapper.stream() of spring-boot-loader #23821

    :notebook_with_decorative_cover: Documentation

    • Fix link to Flyway callback docs #24121
    • Provide more details about overriding SpringPhysicalNamingStrategy's case insensitive flag #24060
    • Clarify documentation regarding relaxed binding of environment variables #24032
    • Enhance spring.datasource.initialization-mode property description #24029
    • Recommend disabling context path redirects when using proxy-terminated SSL with Tomcat #24025
    • Improve Spring Session back off documentation #24018
    • Clarify the javadoc of AutoConfigureTestDatabase to make it clearer that it only replaces the main DataSource #24006
    • Recommend that bean definitions provide as much type information as possible #24004
    • Add missing default value for enum-based configuration properties #23991

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.83 #24077
    • Upgrade to Byte Buddy 1.10.18 #24078
    • Upgrade to Couchbase Client 3.0.10 #24079
    • Upgrade to Hibernate 5.4.23.Final #24080
    • Upgrade to Jetty 9.4.34.v20201102 #24046
    • Upgrade to jOOQ 3.13.6 #24081
    • Upgrade to Micrometer 1.5.7 #24050
    • Upgrade to Neo4j OGM 3.2.18 #24125
    • Upgrade to Netty 4.1.54.Final #24124
    • Upgrade to Reactor Dysprosium-SR14 #24109
    • Upgrade to Spring Framework 5.2.11 #24034
    • Upgrade to Spring Integration 5.3.4 #24096
    • Upgrade to Spring Kafka 2.5.8.RELEASE #24075

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.0-RC1(Oct 29, 2020)

    :star: New Features

    • Provide dependency management for jOOQ's new jooq-kotlin module #23964
    • Provide a configuration property for the driverClassName of the Liquibase DataSource #23958
    • Move spring.resources.* properties to spring.web.resources.* #23917
    • Provide configuration properties for setting the logging charsets #23827
    • Add auto-trimming support to configtree property sources #23826
    • Add configuration properties for RabbitMQ's batch listener config #23766
    • Expose BootBuildImage's cleanCache property as a command-line option #23753
    • Allow a SAML2 relying party registration's assertion consumer service binding and location to be configured via application properties #23746
    • Rename spring.security.saml2.relyingparty.*.relying-party-entity-id to spring.security.saml2.relyingparty.*.entityId #23745
    • Add a command line option for image.cleanCache when building with Maven #23719
    • Allow a SAML2 relying party registration's decryption X509 credentials to be configured via application properties #23705
    • Add support for CNB platform API 0.4 #23692
    • Allow TestPropertyValues.of to take a Map source #23685
    • Rationalize Logback logging properties #23609
    • When building with Maven, include project dependencies in the application layer by default #23463
    • Provide properties to configure WebFlux's locale and how it's resolved #23449
    • Remove skipping of spring-boot-* projects when determining what is eligible for DevTools restart #23158
    • Make @PropertyMapping support nested annotations #23146
    • Change favicon default StaticResourceLocation #23126
    • Update TextResourceOrigin to show the source jar of a ClasspathResource #23019
    • Use stricter multi-document properties separator logic #22963
    • Support wildcard configtree imports #22958
    • Support Gradle's configuration cache with Gradle 6.7 and later #22922
    • Provide a property for configuring the base path of the Actuator's endpoints when using WebFlux #22906
    • Allow proxied @SpyBeans to be used with Mockito's inline mock maker #22416
    • Fail with exception if management.server.address is set but actuator is on the same port #22187
    • Don't adapt RandomPropertySource to ConfigurationPropertySource #21659
    • Auto-configuration of MethodValidationPostProcessor prevents the use of @Validated on final @ConfigurationProperties classes #21454
    • Allow @WebListener ServletContextListeners to programmatically add servlets and filters #18303

    :beetle: Bug Fixes

    • Configuration property annotation processor does not notice overriding getter methods #23970
    • Incremental compilation does not keep metadata for inner classes #23960
    • Maven plugin build-image creator step fails in Bitbucket pipelines #23957
    • Datasource initialisation with JPA schema configured in deferred mode happens asynchronously #23933
    • ConfigurationMetadataAnnotationProcessor can add duplicate entries #23916
    • Jar entries are duplicated in BOOT-INF/lib with layered jars and Maven #23819
    • HttpEncodingAutoConfiguration is not added to the WebMvcTest slice #23817
    • Wildcard locations for configs causes files to be parsed multiple times on k8s #23815
    • Exception thrown from /actuator/env endpoint when spring.config.import=configtree:xxxx is used #23805
    • Exceptions when initializing logging system are not shown #23802
    • excludeProjectDependencies() does not work when customising a jar's layers with Gradle #23763
    • A reactive web application using Spring Session uses server.servlet.session.timeout to configure its session timeout #23752
    • server.servlet.session.timeout not in effect when using Jetty starter without jakarta.annotation and javax.annotation #23751
    • If the JVM is killed while refresh is in progress, the shutdown hook does not close the context #23744
    • Hang on AbstractEntityManagerFactoryBean.getNativeEntityManagerFactory() #23735
    • BootJar.getConfigurations() should not be public API #23732
    • Renaming of CompositeMeterRegistryAutoConfiguration breaks code that was excluding it or referring to it from @AutoConfigureBefore/After #23724
    • Databases that support embedded and non-embedded modes are always detected as embedded #23693
    • @MockBean fields are not reset for JUnit 5 @Nested tests #12470

    :notebook_with_decorative_cover: Documentation

    • Remove version elements from Maven plugin documentation #23931
    • Polish HTTP/2 Cleartext documentation #23820
    • Document how to enable h2c via programmatic configuration #23816
    • Note that using LiveReload requires Devtools restart to be enabled #23765
    • Fix links to Spring Framework documentation #23737
    • Maven layers documentation is incomplete #23731
    • Add reference to JobRunr Spring Boot starter #23725
    • Polish titles on configblocks #23722
    • Document how to override attributes already specified in Maven plugin configuration #23718
    • Block selection in docs only works in single page HTML #23709

    :hammer: Dependency Upgrades

    • Upgrade to AssertJ 3.18.0 #23888
    • Upgrade to Commons Pool2 2.9.0 #23889
    • Upgrade to Dropwizard Metrics 4.1.14 #23890
    • Upgrade to Elasticsearch 7.9.3 #23891
    • Upgrade to Flyway 7.1.1 #23932
    • Upgrade to Jetty 9.4.33.v20201020 #23893
    • Upgrade to jOOQ 3.14.0 #23894
    • Upgrade to Kotlin Coroutines 1.4.0 #23913
    • Upgrade to Lettuce 6.0.1.RELEASE #23923
    • Upgrade to Lombok 1.18.16 #23895
    • Upgrade to Micrometer 1.6.0 #23525
    • Upgrade to Mockito 3.6.0 #23924
    • Upgrade to MongoDB 4.1.1 #23897
    • Upgrade to MSSQL JDBC 8.4.1.jre8 #23742
    • Upgrade to MySQL 8.0.22 #23898
    • Upgrade to Netty 4.1.53.Final #23899
    • Upgrade to Nimbus JOSE JWT 9.1.1 #23901
    • Upgrade to OAuth2 OIDC SDK 8.23.1 #23900
    • Upgrade to Oracle Database 19.8.0.0 #23902
    • Upgrade to Postgresql 42.2.18 #23903
    • Upgrade to R2DBC Bom Arabba-SR8 #23904
    • Upgrade to Rabbit AMQP Client 5.10.0 #23905
    • Upgrade to Reactor 2020.0.0 #23771
    • Upgrade to RSocket 1.1.0 #23912
    • Upgrade to SendGrid 4.6.7 #23906
    • Upgrade to Spring AMQP 2.3.0 #23785
    • Upgrade to Spring Batch 4.3.0 #23963
    • Upgrade to Spring Data 2020.0.0 #23778
    • Upgrade to Spring Framework 5.3.0 #23774
    • Upgrade to Spring HATEOAS 1.2.0 #23779
    • Upgrade to Spring Integration 5.4.0 #23781
    • Upgrade to Spring Session 2020.0.0 #23788

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.3.5.RELEASE(Oct 29, 2020)

    :beetle: Bug Fixes

    • Configuration property annotation processor does not notice overriding getter methods #23969
    • Incremental compilation does not keep metadata for inner classes #23959
    • HttpEncodingAutoConfiguration is not added to the WebMvcTest slice #23813
    • Jar entries are duplicated in BOOT-INF/lib with layered jars and Maven #23801
    • server.servlet.session.timeout not in effect when using Jetty starter without jakarta.annotation and javax.annotation #23750
    • If the JVM is killed while refresh is in progress, the shutdown hook does not close the context #23743
    • Setting server.undertow.eager-filter-init has no effect #23676
    • @ConfigurationPropertiesBinding does not apply Formatter beans #23614
    • H2 Console error with AbstractRoutingDataSource #23569
    • When using embedded Jetty, an error response to a HEAD request has a body #23555
    • Custom layer definition does not pick up snapshots #23533
    • BootJar.getConfigurations() should not be public API #23527
    • Dependency management for Netty tcNative does not include its netty-tcnative module #23508
    • PropertiesLauncher requires spring-core on the classpath #23500
    • Log4j's tag library doesn't work out of the box as log4j-*.jar is skipped by default #23481
    • Unexpected application context cache hit when testing with SpringBootTest webEnvironment MOCK and DEFINED_PORT #23477
    • Log4j2 configuration is not picking up some properties #23428
    • Flyway configuration ignores init-sqls when using spring.datasource.* properties #23408
    • Wildcard locations for configs causes files to be parsed multiple times on k8s #23160
    • Datasource initialisation with JPA schema configured in deferred mode happens asynchronously #22852
    • Maven plugin build-image creator step fails in Bitbucket pipelines #22840

    :notebook_with_decorative_cover: Documentation

    • Remove version elements from Maven plugin documentation #23930
    • Document how to enable h2c via programmatic configuration #23812
    • Note that using LiveReload requires Devtools restart to be enabled #23764
    • Add upgrading section to reference docs with a link to the wiki #23611
    • Add example of setting system property in gradle bootRun #23598
    • Update configuration metadata appendix to remove description for Gradle 4.5 and earlier as it is no longer supported #23567
    • Fix typos in reference documentation and contributing guidelines #23561
    • Fix link to Log4j's JDK Logging Adapter in reference documentation #23461
    • Revisit hint on using classpath* for retrieving templates #23452
    • Document support for Java 15 #23448
    • Note the Kt class name suffix when describing how to configure a Kotlin application's main class name #23422
    • Add anchor links to section headers in Gradle and Maven plugin reference docs #23406
    • Document how JAVA_OPTS can be used with the buildpack #21582
    • Maven layers documentation is incomplete #21555
    • Document how to override attributes already specified in Maven plugin configuration #21536
    • Add example of default Cloud Native Buildpacks Builder #19967

    :hammer: Dependency Upgrades

    • Upgrade to Byte Buddy 1.10.17 #23865
    • Upgrade to Caffeine 2.8.6 #23866
    • Upgrade to Couchbase Client 3.0.9 #23867
    • Upgrade to Dropwizard Metrics 4.1.14 #23868
    • Upgrade to Hazelcast 3.12.10 #23869
    • Upgrade to Hibernate 5.4.22.Final #23870
    • Upgrade to Hibernate Validator 6.1.6.Final #23871
    • Upgrade to HttpClient 4.5.13 #23872
    • Upgrade to Jackson Bom 2.11.3 #23873
    • Upgrade to Jetty 9.4.33.v20201020 #23874
    • Upgrade to jOOQ 3.13.5 #23875
    • Upgrade to JUnit 4.13.1 #23876
    • Upgrade to JUnit Jupiter 5.6.3 #23915
    • Upgrade to Lettuce 5.3.5.RELEASE #23922
    • Upgrade to Lombok 1.18.16 #23877
    • Upgrade to Micrometer 1.5.6 #23791
    • Upgrade to MySQL 8.0.22 #23878
    • Upgrade to Neo4j OGM 3.2.17 #23879
    • Upgrade to Netty 4.1.53.Final #23880
    • Upgrade to Postgresql 42.2.18 #23881
    • Upgrade to R2DBC Bom Arabba-SR8 #23882
    • Upgrade to Reactor Dysprosium-SR13 #23770
    • Upgrade to RSocket 1.0.3 #23911
    • Upgrade to RxJava2 2.2.20 #23883
    • Upgrade to Spring AMQP 2.2.12 #23784
    • Upgrade to Spring Data Neumann-SR5 #23777
    • Upgrade to Spring Framework 5.2.10 #23526
    • Upgrade to Spring Integration 5.3.3 #23780
    • Upgrade to Spring Kafka 2.5.7 #23787
    • Upgrade to Spring Security 5.3.5.RELEASE #23884
    • Upgrade to Tomcat 9.0.39 #23885

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.2.11.RELEASE(Oct 29, 2020)

    :beetle: 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
    • 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

    :notebook_with_decorative_cover: 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

    :hammer: 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

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.1.18.RELEASE(Oct 29, 2020)

    :beetle: Bug Fixes

    • @ConfigurationPropertiesBinding does not apply Formatter beans #23576

    :notebook_with_decorative_cover: Documentation

    • Add upgrading section to reference docs with a link to the wiki #23529

    :hammer: Dependency Upgrades

    • Upgrade to Hibernate Validator 6.0.21.Final #23840
    • Upgrade to Httpclient 4.5.13 #23837
    • Upgrade to Jetty 9.4.33.v20201020 #23839
    • Upgrade to Joda Time 2.10.8 #23835
    • Upgrade to Lombok 1.18.16 #23842
    • Upgrade to Micrometer 1.1.19 #23789
    • Upgrade to Mysql 8.0.22 #23836
    • Upgrade to Netty 4.1.53.Final #23832
    • Upgrade to Postgresql 42.2.18 #23841
    • Upgrade to Reactor Californium-SR22 #23792
    • Upgrade to Rxjava2 2.2.20 #23833
    • Upgrade to Spring Data Lovelace-SR21 #23775
    • Upgrade to Spring Framework 5.1.19 #23772
    • Upgrade to Spring Integration 5.1.13 #23798
    • Upgrade to Spring Security 5.1.13.RELEASE #23843
    • Upgrade to Tomcat 9.0.39 #23838
    • Upgrade to Undertow 2.0.32.Final #23834
    Source code(tar.gz)
    Source code(zip)
  • v2.4.0-M4(Oct 15, 2020)

    :star: New Features

    • Improve ConfigData processing code #23711
    • Apply FailureAnalyzers even if the ApplicationContext was not created #23710
    • Set platform API version when invoking image builder #23682
    • Align name of UndertowServletWebServerFactory's eagerInitFilters with Undertow's naming #23674
    • Add KafkaStream's CleanupConfig properties #23636
    • Add a FailureAnalyzer for ConfigDataNotFoundException #23633
    • Update default builder image for image builds with buildpacks #23628
    • Override Undertow's defaults so that the request URL of a forwarded request is spec-compliant and make it configurable via an application property #23619
    • Use a Property named mainClass to configure the main class name in the Gradle plugin #23608
    • Remove org.synchronoss.cloud:nio-multipart-parser from spring-boot-starter-webflux in favour of WebFlux's own parser #23601
    • Address inconsistencies in enabling configuration properties #23593
    • Add configuration properties for Flyway 7.0's new configuration options #23579
    • Use JdbcTransactionManager in favor of DatasourceTransactionManager #23572
    • Deprecate HSQL in EmbeddedDatabaseConnection and add HSQLDB as its preferred replacement #23565
    • Add configuration option to configure RabbitConnectionFactory's channelRpcTimeout #23564
    • Avoid resolving configurations unnecessarily when building a layered jar #23528
    • Add BootstrapContext methods that deal with missing registrations #23438
    • Configure the bootBuildInfo task lazily #23435
    • When building with Gradle, include project dependencies in the application layer by default and make it easer to customise their location #23431
    • Allow users to define their own LocaleContextResolver bean when using WebFlux #23419
    • Add support for Oracle UCP #23403
    • Configure Docker host in build plugins #23400
    • Allow to create a custom RestTemplateBuilder whilst retaining default auto-configuration #23389
    • Don't apply MeterFilter to auto-configured composite registry #23381
    • Add configuration option to customize RSocketServer's fragment size #23247
    • Improve CassandraHealthIndicator with more robust mechanism #23041
    • Allow binding to collections when a boolean 'is' method also exists #23007
    • Stop registering the default servlet by default #22915
    • Add support for Redis 6 authentication with username #22702
    • Expose cache metrics for RedisCache #22701
    • Configure ApplicationContext's ResourceLoader on RabbitConnectionFactory #22332
    • Add origin support for empty YAML list and map #21704
    • Add support for publishing docker images to a registry #21001
    • Add support for Hazelcast 4 #20856

    :beetle: Bug Fixes

    • Setting server.undertow.eager-filter-init has no effect #23677
    • @ConfigurationPropertiesBinding does not apply Formatter beans #23615
    • spring-boot-configuration-processor prevents builds from being incremental when source retention annotations are present #23580
    • H2 Console error with AbstractRoutingDataSource #23570
    • When using embedded Jetty, an error response to a HEAD request has a body #23557
    • Custom layer definition does not pick up snapshots #23541
    • Datasource initialisation with JPA schema configured in deferred mode happens asynchronously #23535
    • Dependency management for Netty tcNative does not include its netty-tcnative module #23509
    • PropertiesLauncher requires spring-core on the classpath #23501
    • Log4j's tag library doesn't work out of the box as log4j-*.jar is skipped by default #23482
    • DataSourceBuilder should only alias a property when the expected DataSource is configured #23480
    • Unexpected application context cache hit when testing with SpringBootTest webEnvironment MOCK and DEFINED_PORT #23478
    • Log4j2 configuration is not picking up some properties #23430
    • Flyway configuration ignores init-sqls when using spring.datasource.* properties #23409
    • Kubernetes configmap hidden files are exposed as property sources #23232

    :notebook_with_decorative_cover: Documentation

    • Fix XML tag in image publishing example #23632
    • Document that @DataNeo4jTest does not support transactional tests with a reactive setup #23630
    • Document that a reactive transaction manager is not auto-configured with Spring Data Neo4j #23629
    • Document how JAVA_OPTS can be used with the buildpack #23626
    • Add example of default Cloud Native Buildpacks Builder #23623
    • Add upgrading section to reference docs with a link to the wiki #23612
    • Add example of setting system property in gradle bootRun #23599
    • Fix typos in reference documentation and contributing guidelines #23573
    • Update configuration metadata appendix to remove description for Gradle 4.5 and earlier as it is no longer supported #23568
    • Provide both properties and YAML for each configuration properties example #23515
    • Add reference to desensitization spring boot starter #23507
    • Fix typos #23465
    • Fix link to Log4j's JDK Logging Adapter in reference documentation #23462
    • Fix typo #23456
    • Revisit hint on using classpath* for retrieving templates #23453
    • Note the Kt class name suffix when describing how to configure a Kotlin application's main class name #23423
    • Add anchor links to section headers in Gradle and Maven plugin reference docs #23407

    :hammer: Dependency Upgrades

    • Upgrade to Byte Buddy 1.10.17 #23639
    • Upgrade to Caffeine 2.8.6 #23640
    • Upgrade to Commons DBCP2 2.8.0 #23641
    • Upgrade to Couchbase Client 3.0.9 #23642
    • Upgrade to Dropwizard Metrics 4.1.13 #23643
    • Upgrade to Elasticsearch 7.9.2 #23644
    • Upgrade to Flyway 7.0.2 #23645
    • Upgrade to Hazelcast 4.0.3 #23475
    • Upgrade to Hazelcast Hibernate5 2.1.1 #23476
    • Upgrade to Hibernate 5.4.22.Final #23646
    • Upgrade to Hibernate Validator 6.1.6.Final #23647
    • Upgrade to HtmlUnit 2.44.0 #23648
    • Upgrade to HttpClient 4.5.13 #23649
    • Upgrade to Infinispan 11.0.4.Final #23650
    • Upgrade to Jackson Bom 2.11.3 #23651
    • Upgrade to Jersey 2.32 #23652
    • Upgrade to Jetty 9.4.32.v20200930 #23653
    • Upgrade to jOOQ 3.13.5 #23654
    • Upgrade to JUnit 4.13.1 #23655
    • Upgrade to Kotlin 1.4.10 #23656
    • Upgrade to Kotlin Coroutines 1.4.0-M1 #23678
    • Upgrade to Lettuce 6.0.0.RELEASE #23657
    • Upgrade to Liquibase 3.10.3 #23658
    • Upgrade to Lombok 1.18.14 #23659
    • Upgrade to MariaDB 2.7.0 #23660
    • Upgrade to Mockito 3.5.13 #23661
    • Upgrade to OAuth2 OIDC SDK 8.22 #23673
    • Upgrade to Postgresql 42.2.17 #23662
    • Upgrade to QueryDSL 4.4.0 #23663
    • Upgrade to Reactor 2020.0.0-RC2 #23621
    • Upgrade to RSocket 1.1.0-RC1 #23637
    • Upgrade to RxJava2 2.2.20 #23664
    • Upgrade to Selenium HtmlUnit 2.44.0 #23665
    • Upgrade to SendGrid 4.6.6 #23666
    • Upgrade to Spring AMQP 2.3.0-RC1 #23680
    • Upgrade to Spring Data 2020.0.0-RC2 #23594
    • Upgrade to Spring Framework 5.3.0-RC2 #23534
    • Upgrade to Spring Integration 5.4.0-RC1 #23695
    • Upgrade to Spring Kafka 2.6.2 #23679
    • Upgrade to Spring Security 5.4.1 #23667
    • Upgrade to Tomcat 9.0.39 #23668
    • Upgrade to Undertow 2.2.2.Final #23669

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.0-M3(Sep 17, 2020)

    :star: New Features

    • Allow trailing whitespace on properties document split marker #23399
    • Add startup Actuator endpoint #23213
    • Support constructor binding on 3rd party classes #23172
    • Add mainApplicationClass information as a tag to "starting" StartupStep #23162
    • Allow EntityScanner to be extended to provide a custom ClassPathScanningCandidateComponentProvider #23154
    • Allow redis's connect and read/command timeouts to be configured separately #23137
    • Allow default binder to work with multiple constructors #23117
    • Avoid unnecessary reflection in TaskExecutorBuilder #23107
    • Add global optional config data opt-out #23097
    • Provide a property for configuring Spring AMQP's address shuffle mode #23091
    • Generate a default value in the metadata for configuration properties initialised with Period.ZERO and Duration.ZERO #23082
    • Fix some typos in tests #23050
    • Provide a configuration property for Kafka listener container's idleBetweenPolls #23048
    • Configure SAML 2.0 Service Provider via Metadata #23045
    • Fail if import locations are not found #23032
    • Provide a simple Instantiator utility class #23029
    • Allow placeholders to be used in config import locations #23020
    • Improve origin of imported config #23018
    • Rename CompositeMeterRegistryAutoConfiguration #22988
    • Auto-configure ConcurrentKafkaListenerContainerFactory with a user-provided RecordFilterStrategy bean if available #22973
    • Support authentication from Docker daemon to private docker registry. #22972
    • Add a registry to support long lived instances during environment processing #22956
    • Rename neo4j.version to neo4j-java-driver.version #22952
    • Restore support for spring.profiles.include for non profile specific documents #22944
    • Mark bootArchives as nonresolvable configuration in Gradle plugin to better convey its purpose #22943
    • Make GridFsTemplate's bucket configurable #22854
    • Align WebClient uri metric tag with RestTemplate's #22832
    • Disable default security configuration when SecurityFilterChain bean is present #22739
    • Provide a buffering implementation for application startup metrics #22603
    • Remove Elasticsearch RestClient auto-configuration #22358
    • Support loading external configuration from files with no file extension #22280
    • Exclude empty starters jars and annotation processors when running or packaging with Maven and Gradle #22036
    • Make Devtools file detection more resilient across application restarts #19543
    • Add SSL support to RSocketServer #19399

    :beetle: Bug Fixes

    • spring-boot-dependencies should not define a spring-boot.version property #23378
    • @ManagementContextConfiguration is meta-annotated with @Configuration(proxyBeanMethods=false) which does not disable proxying #23306
    • Signed jar dependency performance problem when repackaged in a single jar #23265
    • ValidationHandler no longer works with certain map keys #23261
    • MVC error model unnecessarily requires timestamp entry to be a java.util.Date #23259
    • Missing sanitization in lists of URIs properties on actuator endpoints #23253
    • Cassandra's pool duration mapping uses a wrong duration unit #23251
    • PropertiesLauncher fails to load PBKDF-OpenSSL of bcprov-jdk15on-1.64.jar #23241
    • ErrorPageFilter is no longer ordered at HIGHEST_PRECEDENCE + 1 #23205
    • When using HSQLDB, Hikari logs a warning message about the driver class name when the first connection is retrieved from the pool #23204
    • Large files can throw YAMLException due to node limits #23153
    • Configurable SSL Logback extensions can't be supported due to URL checks #23136
    • Image building support does not zero-pad digest hashes to 64 characters #23134
    • Image builder fails silently when there's an error loading the ephemeral image #23133
    • RSocketPortInfoApplicationContextInitializer can throw NPE #23089
    • Dependency convergence error for nimbus-jose-jwt when depending on spring-boot-starter-oauth2-client #23072
    • UndertowWebServerFactoryCustomizer requires commons lang via an unintended import on ClassUtils #23064
    • Freemarker is configured to prefer filesystem access by default #23051
    • Too much logging when building an OCI image with Maven #23015
    • LayoutFactory can be presented with empty source file #23001
    • Extracting layers with layertools doesn't work with executable JAR files #23000
    • JarFile can cause memory issues when running on Java 11+ #22999
    • Metrics auto-configurations are not ordered correctly #22990
    • Exception inclusion cannot be disabled when sub-classing DefaultErrorAttributes and using its deprecated constructor #22984
    • The @TypeExcludeFilters annotation is not @Inherited #22967
    • Update transaction auto-configuration to backoff if a TransactionManager is defined #22851
    • MongoClientFactorySupport overrides existing uuidRepresentation with MongoProperties default value #22321

    :notebook_with_decorative_cover: Documentation

    • Document that @ConfigurationProperties beans are not scanned in sliced tests #23244
    • Document that buildpacks use non-root users for building container images and running containers #23201
    • Add reference to AOProfiling Spring Boot starter #23161
    • Document setting buildpack Java version from compiler plugin version #23148
    • Document how to perform tasks after application startup #23145
    • Fix documentation on Elasticsearch client configuration #23144
    • Update Maven Plugin's documentation to note the importance of configuring start and stop goals with the same JMX port #23143
    • Document how to use spring.factories to add auto-configuration to a test slice #23142
    • Document that graceful shutdown may not work from IDEs #23140
    • Provide examples of Actuator custom endpoints in the reference documentation #23061
    • Add Hyperledger Fabric for Spring Boot Starter to the community starters #23058
    • Mention correct JUnit 5 annotations in Kotlin testing section #23005
    • Fix Gradle Plugin custom image name example and documentation #22980
    • Javadoc inaccuracy in SpringApplicationBuilder.properties(Properties) #22965
    • Fix typo Assert4J -> AssertJ #22961
    • Document that Java 15 is a supported version #22366
    • Publish Actuator API and Maven/Gradle plugin reference documentation under htmlsingle #21585
    • Add more anchors in the properties appendix #16267

    :hammer: Dependency Upgrades

    • Upgrade to SendGrid 4.6.5 #23397
    • Upgrade to Micrometer 1.5.5 #23396
    • Upgrade to Flyway 6.5.6 #23395
    • Upgrade to Spring Kafka 2.6.1 #23382
    • Upgrade to Spring REST Docs 2.0.5.RELEASE #23377
    • Upgrade to Mockito 3.5.10 #23368
    • Upgrade to Undertow 2.2.0.Final #23367
    • Upgrade to Thymeleaf Layout Dialect 2.5.1 #23366
    • Upgrade to SnakeYAML 1.27 #23365
    • Upgrade to Postgresql 42.2.16 #23364
    • Upgrade to Pooled JMS 1.2.0 #23363
    • Upgrade to InfluxDB Java 2.20 #23362
    • Upgrade to Artemis 2.15.0 #23361
    • Upgrade to Lettuce 6.0.0.RC2 #23360
    • Upgrade to Tomcat 9.0.38 #23359
    • Upgrade to Spring WS 3.0.10.RELEASE #23358
    • Upgrade to SendGrid 4.6.4 #23357
    • Upgrade to R2DBC Bom Arabba-SR7 #23356
    • Upgrade to Nimbus JOSE JWT 9.0.1 #23355
    • Upgrade to OAuth2 OIDC SDK 8.19.2 #23354
    • Upgrade to Netty tcNative 2.0.34.Final #23353
    • Upgrade to Netty 4.1.52.Final #23352
    • Upgrade to JUnit Jupiter 5.7.0 #23351
    • Upgrade to Hibernate 5.4.21.Final #23350
    • Upgrade to Hazelcast 3.12.9 #23349
    • Upgrade to Flyway 6.5.5 #23348
    • Upgrade to Elasticsearch 7.9.1 #23347
    • Upgrade to Ehcache3 3.9.0 #23346
    • Upgrade to Couchbase Client 3.0.8 #23345
    • Upgrade to Commons Codec 1.15 #23344
    • Upgrade to Cassandra Driver 4.9.0 #23343
    • Upgrade to AppEngine SDK 1.9.82 #23342
    • Upgrade to Spring Security 5.4.0 #23225
    • Upgrade to RSocket 1.1.0-M2 #23214
    • Upgrade to Spring Data 2020.0.0-RC1 #23197
    • Upgrade to Spring Batch 4.3.0-RC1 #23189
    • Upgrade to Spring Session 2020.0.0-RC1 #23188
    • Upgrade to Assertj 3.17.2 #23179
    • Upgrade to Spring Framework 5.3 RC1 #23170
    • Upgrade to Reactor 2020.0.0-RC1 #23065
    • Upgrade to Kotlin Coroutines 1.3.9 #23025
    • Upgrade to Kotlin 1.4.0 #23024
    • Upgrade to Spring AMQP 2.3.0-M3 #23011
    • Upgrade to Spring Integration 5.4.0-M3 #23010

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.3.4.RELEASE(Sep 17, 2020)

    :beetle: Bug Fixes

    • @ManagementContextConfiguration is meta-annotated with @Configuration(proxyBeanMethods=false) which does not disable proxying #23305
    • Signed jar dependency performance problem when repackaged in a single jar #23264
    • ValidationHandler no longer works with certain map keys #23260
    • MVC error model unnecessarily requires timestamp entry to be a java.util.Date #23258
    • Missing sanitization in lists of URIs properties on actuator endpoints #23252
    • Cassandra's pool duration mapping uses a wrong duration unit #23249
    • When using HSQLDB, Hikari logs a warning message about the driver class name when the first connection is retrieved from the pool #23203
    • ErrorPageFilter is no longer ordered at HIGHEST_PRECEDENCE + 1 #23200
    • spring-boot-dependencies should not define a spring-boot.version property #23174
    • PropertiesLauncher fails to load PBKDF-OpenSSL of bcprov-jdk15on-1.64.jar #23165
    • Configurable SSL Logback extensions can't be supported due to URL checks #23135
    • Image building support does not zero-pad digest hashes to 64 characters #23132
    • Image builder fails silently when there's an error loading the ephemeral image #23130
    • Large files can throw YAMLException due to node limits #23096
    • RSocketPortInfoApplicationContextInitializer can throw NPE #23087
    • UndertowWebServerFactoryCustomizer requires commons lang via an unintended import on ClassUtils #23063
    • JarFile can cause memory issues when running on Java 11+ #22998
    • Dependency convergence error for nimbus-jose-jwt when depending on spring-boot-starter-oauth2-client #22996
    • LayoutFactory can be presented with empty source file #22995
    • Metrics auto-configurations are not ordered correctly #22989
    • The @TypeExcludeFilters annotation is not @Inherited #22966
    • Exception inclusion cannot be disabled when sub-classing DefaultErrorAttributes and using its deprecated constructor #22750
    • Too much logging when building an OCI image with Maven #22674

    :notebook_with_decorative_cover: Documentation

    • Document that @ConfigurationProperties beans are not scanned in sliced tests #23243
    • Fix documentation on Elasticsearch client configuration #23074
    • Provide examples of Actuator custom endpoints in the reference documentation #23060
    • Mention correct JUnit 5 annotations in Kotlin testing section #23004
    • Document that extracting layers with layertools doesn't work with executable JAR files #22993
    • Javadoc inaccuracy in SpringApplicationBuilder.properties(Properties) #22964
    • Fix typo Assert4J -> AssertJ #22960
    • Document that graceful shutdown may not work from IDEs #22959
    • Fix typos in docs #22945
    • Fix Gradle Plugin custom image name example and documentation #22918
    • Document how to use spring.factories to add auto-configuration to a test slice #22531
    • Update Maven Plugin's documentation to note the importance of configuring start and stop goals with the same JMX port #22401
    • Document how to perform tasks after application startup #22100
    • Document setting buildpack Java version from compiler plugin version #21796
    • Document that buildpacks use non-root users for building container images and running containers #21122

    :hammer: Dependency Upgrades

    • Upgrade to Micrometer 1.5.5 #23393
    • Upgrade to Spring REST Docs 2.0.5.RELEASE #23376
    • Upgrade to Spring AMQP 2.2.11 #23373
    • Upgrade to Spring WS 3.0.10.RELEASE #23339
    • Upgrade to Spring HATEOAS 1.1.2.RELEASE #23338
    • Upgrade to Lettuce 5.3.4.RELEASE #23337
    • Upgrade to Undertow 2.1.4.Final #23318
    • Upgrade to Tomcat 9.0.38 #23317
    • Upgrade to R2DBC Bom Arabba-SR7 #23316
    • Upgrade to Postgresql 42.2.16 #23315
    • Upgrade to Netty tcNative 2.0.34.Final #23314
    • Upgrade to Netty 4.1.52.Final #23313
    • Upgrade to Neo4j OGM 3.2.16 #23312
    • Upgrade to Hibernate 5.4.21.Final #23311
    • Upgrade to Hazelcast 3.12.9 #23310
    • Upgrade to Flatten Maven Plugin 1.2.5 #23309
    • Upgrade to Couchbase Client 3.0.8 #23308
    • Upgrade to AppEngine SDK 1.9.82 #23307
    • Upgrade to Spring Kafka 2.5.6 #23199
    • Upgrade to Spring Data Neumann-SR4 #23196
    • Upgrade to Reactor Dysprosium-SR12 #23192
    • Upgrade to Spring Session Dragonfruit-SR1 #23187
    • Upgrade to Spring Framework 5.2.9 #23183

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.2.10.RELEASE(Sep 17, 2020)

    :beetle: 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

    :notebook_with_decorative_cover: 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

    :hammer: 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

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.1.17.RELEASE(Sep 17, 2020)

    :beetle: Bug Fixes

    • Signed jar dependency performance problem when repackaged in a single jar #19041

    :notebook_with_decorative_cover: Documentation

    • Fix broken links to Micrometer registry docs #22704

    :hammer: Dependency Upgrades

    • Upgrade to Micrometer 1.1.18 #23384
    • Upgrade to Spring AMQP 2.1.17 #23371
    • Upgrade to Spring Ws 3.0.10.RELEASE #23333
    • Upgrade to Neo4j Ogm 3.1.22 #23332
    • Upgrade to Tomcat 9.0.38 #23331
    • Upgrade to Spring Security 5.1.12.RELEASE #23278
    • Upgrade to Postgresql 42.2.16 #23277
    • Upgrade to Infinispan 9.4.20.Final #23275
    • Upgrade to Hibernate 5.3.18.Final #23274
    • Upgrade to Jetty 9.4.31.v20200723 #23273
    • Upgrade to Undertow 2.0.31.Final #23272
    • Upgrade to Dependency Management Plugin 1.0.10.RELEASE #23271
    • Upgrade to Netty Tcnative 2.0.34.Final #23270
    • Upgrade to Netty 4.1.52.Final #23269
    • Upgrade to Appengine Sdk 1.9.82 #23267
    • Upgrade to Jackson 2.9.10.20200824 #23266
    • Upgrade to Spring Data Lovelace-SR20 #23194
    • Upgrade to Reactor Californium-SR21 #23190
    • Upgrade to Spring Session Bean-SR12 #23185
    • Upgrade to Spring Framework 5.1.18 #23181

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.0-M2(Aug 13, 2020)

    :star: New Features

    • Prefer non-reflective access to ConfigurationClassPostProcessor #22858
    • Do not include cookie headers in HTTP traces by default #22829
    • Jetty with Conscrypt no longer a requirement for easy HTTP/2 #22826
    • Add no-pull option for image building #22736
    • Use new core framework r2dbc support #22708
    • Fail hard if spring.profiles.include is used with new config processing #22693
    • Allow DurationFormat and PeriodFormat to be used on parameters #22646
    • Allow for programatic access to new ConfigDataEnvironment processing #22601
    • Instrument SpringBootApplication for application startup metrics #22600
    • Add configuration to disable Redis Cluster dynamic sources refresh #22571
    • Allow Jedis to be selected when both Jedis and Lettuce are on the classpath #22569
    • Add basic auth support for Prometheus pushgateway #22548
    • Add functional constructor to EnvironmentPostProcessorApplicationListener #22529
    • Add support for profile groups #22522
    • Extract DefaultPropertiesPropertySource class #22520
    • Add plugin management for liquibase-maven-plugin #22499
    • Add CloudPlatform.isEnforced that uses a Binder #22498
    • Replace ConfigFileApplicationListener and rework application properties support #22497
    • Add DeferredLogFactory support #22496
    • Add multi-document properties file support #22495
    • Add ConfigurationPropertySource.from factory method #22494
    • Add @Name support for value object binding #22492
    • Improve Liveness/Readiness health indicators and probes configuration #22483
    • Remove version management for exec-maven plugin #22397
    • Make DefaultErrorAttributes easier to subclass for message customization #22378
    • Add properties for Netty HttpDecoderSpec #22367
    • Avoid unnecessary allocations in ConditionMessage for NORMAL style #22331
    • Allow SpringApplication to create its application context without requiring reflection #22322
    • Add failure analyzer for missing Liquibase changelog #22320
    • Switch Neo4j health checks to the new Neo4j driver #22302
    • Add auto-configuration for Neo4j driver #22301
    • Upgrade to Spring Data Neo4j 6 #22299
    • Measure with nanoseconds in HttpExchangeTracer #22266
    • Support configuration of localEntityIdTemplate for a SAML Relying Party #22258
    • Add a property to not create HealthIndicators from AbstractRoutingDatasources #22222
    • Add support for reactive Elasticsearch healthcheck #22215
    • Support incremental annotation processing with Gradle #22150
    • Allow exclude only health groups #22053
    • Auto-configure Rabbit connection factory with CredentialsProvider and CredentialsRefreshService when available #22016
    • Allow specifying unit type of configuration property when injected via constructor #21746
    • Add option to configure PathPatternParser in Spring MVC #21694
    • Add support for easily disabling metrics export #21658
    • Support iso offset time and date-time conversion with MVC and WebFlux by setting time or date-time properties to iso-offset #21630
    • Add properties to control exceptions ignored by LdapTemplate #21289
    • Support additional R2DBC pool properties #21219
    • Switching default to include layers index for fat jar #20983
    • Add support for creating property sources from volume-mounted Kubernetes ConfigMaps and Secrets #19990
    • Add a test slice for Spring Data Cassandra #17490
    • Consider spring.profiles.default when processing configuration files #15994
    • Application properties outside of jar should take precedence over profile-specific variants inside the jar #3845

    :beetle: Bug Fixes

    • MustacheEnvironmentCollector with nullValue compiler option no longer works in version 2.3.1 #22938
    • Externalized Configuration ignores null values in SPRING_APPLICATION_JSON #22897
    • CouchbaseCacheManager can no longer be customized using CacheManagerCustomizer #22874
    • Requests that should be handled by an additional DispatcherServlet result in a 404 response #22856
    • Legacy endpoint ids with '-' do not migrate cleanly #22850
    • When Reactor's debug agent fails to initialize, the cause of the failure is discarded #22848
    • StartupStep are closed twice in SpringApplicationRunListeners #22776
    • OCI image build fails if environment has any empty properties #22735
    • Kubernetes readiness probe endpoint returning 404 #22698
    • NPE in BeanDefinitionLoader when loading non-Class sources and XML support is disabled #22696
    • LiquibaseEndpoint does not report change sets from ancestor contexts #22687
    • Async exceptions not handled by error pages in war deployments #22673
    • XADataSourceAutoConfiguration is difficult to use with DB2XADataSource as it does not have a URL property #22642
    • TaskExecutorBuilder only uses second-precision when configuring the await termination period #22612
    • Profile groups are not applied to the environment #22605
    • Setting ignoreInvalidFields=true on @ConfigurationProperties causes unknown fields to be ignored as well #22586
    • Spring Boot 2.3.2: new context is created for every IT class if SpyBean is used #22584
    • Background preinitialisation may cause Jackson2ObjectMapperBuilder's Kotlin detection warning to be silently dropped #22581
    • UndertowWebServerFactoryCustomizer does not support Options but only UndertowOptions #22579
    • WebMvcTest and WebFluxTest do not include Jackson Module beans #22577
    • CouchbaseCacheConfiguration is not ordered properly #22568
    • AbstractRepositoryConfigurationSourceSupport does not override registerBeanDefinitions(AnnotationMetadata, BeanDefinitionRegistry) #22546
    • Filter empty YAML documents #22493
    • Numerous logs mentioning a failed JNDI lookup when using Jetty #22419
    • ConditionMessage#items throws an NPE with a null list of items although the Javadoc states it is tolerated #22357
    • Image building fails with an unhelpful error message when building an image from a jar that includes the launch script #22349
    • Temporary files not cleaned up after Maven plugin execution #22328
    • OnClassCondition tries to determine the outcome for single auto-configuration classes in parallel #22327
    • ConfigurationPropertiesBeanDefinitionValidator interferes with EclipseLink load-time weaving #22326
    • Image building fails when DOCKER_HOST is set to a local socket prefixed with unix:// #22304
    • A WebFlux app that depends on com.amazonaws:DynamoDBLocal fails to start #22283
    • The failure when spring.redis.url is configured with a redis-sentinel:// URL is hard to diagnose #22272
    • Property spring.autoconfigure.exclude ignored by test slices #22263
    • OAuth2ResourceServerAutoConfiguration does not back off completely when spring-security-oauth2-resource-server is not on the classpath #22255
    • NullPointerException in ErrorPageFilter when a MissingServletRequestParameterException is thrown and there's no DefaultHandlerExceptionResolver #22250
    • Period conversion does not support a ChronoUnit of WEEKS but supports weeks in ISO-8601 (e.g. P2W) and simple (e.g. 2w) formats #22238
    • Layered bootJar task causes warnings when custom source set is present in the project #22202
    • @ConditionalOnSingleCandidate does not match when there is a single candidate that is a scoped bean #22198
    • Kafka Stream consumer metrics were lost in the move away from KafkaConsumerMetrics #22196
    • NPE in spring-boot-maven-plugin:build-image when setting custom builder that is not a builder #22180
    • Accept empty filter dispatcher types in auto-configurations #22176
    • TomcatMetricsBinder may log a warning for an NPE if the context is closed before the ApplicationStartedEvent is published #22168
    • Resource loading fails in Tomcat when Spring Boot is loaded from the common class loader #22160
    • Inconsistent configuration ordering with profiles #18199
    • Conditional documents in profile specific file are not loaded consistently #11109

    :notebook_with_decorative_cover: Documentation

    • PushGateway documentation does not document enabled flag properly #22931
    • Default value of server.jetty.accesslog.format is wrongly associated to server.forward-headers-strategy #22928
    • Use wildcard in BP_JVM_VERSION with image building #22923
    • Kotlin examples for configuring bootBuildImage's environment use wrong map configuration syntax #22917
    • Mention configuration customizers for WebTestClient and RestAssured in AutoConfigureRestDocs' javadoc #22911
    • Document how to discover the HTTP Port at Runtime for both Servlet and Reactive web apps #22900
    • Document that spring-boot-configuration-processor cannot detect default value defined externally #22891
    • Document that application.conf is not read by default when using the Cassandra auto-configuration #22889
    • Fix wrong reference in ReadinessStateHealthIndicator javadoc #22846
    • Docs say Health's inner details section may contain components #22775
    • Recommend the use of AopTestUtils.getTargetObject() when setting expectations on a spied bean that Spring has proxied #22759
    • Document that schema.sql and data.sql will still be run when using Flyway or Liquibase but discourage their use #22749
    • Fix broken links to Micrometer registry docs #22707
    • Document properties to enable probe health indicators #22697
    • Document how to use Gradle's native bom support as an alternative to the dependency management plugin #22678
    • Document how to opt back in to DataSource auto-configuration when using R2DBC #22677
    • Clarify documentation on use of @AutoConfigureRestDocs with WebTestClient #22670
    • Document Spring Data Neo4j 6 support #22652
    • Update metrics documentation to note the benefits of using a MeterBinder when registering a metric that relies on other beans #22630
    • Include a hint where to find documentation for DevTools in docs overview #22623
    • Add ElasticsearchReactiveHealthIndicator to docs #22619
    • Fix link to Elasticsearch health indicator #22618
    • Link to App Engine Standard sample not working #22609
    • Improve documentation about swapping one technical starter for another #22597
    • Document how to use MongoClientSettingsBuilderCustomizer #22590
    • Document the need for configuration files to have a file extension #22588
    • Document that java.util.Optional is not recommended with ConfigurationProperties #22575
    • Typo in metadata for "management.health.readinessstate.enabled" #22561
    • Overhaul "externalized configuration" documentation #22521
    • Update the documentation to avoid trivialising what the reader's learning about #22411
    • Restructure "Building Container Images" section #22360
    • Clarify the effect of ordering auto-configuration #22340
    • Update documentation to reflect the web server now being started immediately before the ContextRefreshedEvent is published #22316
    • Fix dead link url and name of the STS download link #22274
    • Clarify locations inside and outside the jar from which properties are loaded #22265
    • Rename NoneOfNestedConditions to NoneNestedConditions in example docs #22247
    • Update metadata for WebFlux time and date-time properties to offer iso-offset as a suggested value #22174
    • Add package info for org.springframework.boot.autoconfigure.elasticsearch.rest #22173
    • Update layers.idx file example in docs #22152

    :hammer: Dependency Upgrades

    • Upgrade to Selenium HtmlUnit 2.43.1 #22937
    • Upgrade to Micrometer 1.5.4 #22936
    • Upgrade to Flyway 6.5.4 #22935
    • Upgrade to Spring HATEOAS 1.2.0-M1 #22893
    • Upgrade to Spring Batch 4.3.0-M2 #22892
    • Upgrade to Versions Maven Plugin 2.8.1 #22884
    • Upgrade to Selenium HtmlUnit 2.43.0 #22883
    • Upgrade to Pooled JMS 1.1.2 #22882
    • Upgrade to Maven Resources Plugin 3.2.0 #22881
    • Upgrade to Lettuce 5.3.3.RELEASE #22880
    • Upgrade to Kotlin Coroutines 1.3.8 #22879
    • Upgrade to HtmlUnit 2.43.0 #22878
    • Upgrade to Hibernate 5.4.20.Final #22877
    • Upgrade to Dropwizard Metrics 4.1.12.1 #22876
    • Upgrade to Dependency Management Plugin 1.0.10.RELEASE #22875
    • Upgrade to Mockito 3.4.6 #22838
    • Upgrade to Tomcat 9.0.37 #22818
    • Upgrade to SQLite JDBC 3.32.3.2 #22817
    • Upgrade to Spring HATEOAS 1.1.1.RELEASE #22816
    • Upgrade to Solr 8.5.2 #22815
    • Upgrade to SendGrid 4.6.3 #22814
    • Upgrade to Netty 4.1.51.Final #22812
    • Upgrade to MySQL 8.0.21 #22811
    • Upgrade to MongoDB 4.1.0 #22810
    • Upgrade to Micrometer 1.5.3 #22809
    • Upgrade to Maven War Plugin 3.3.1 #22808
    • Upgrade to MariaDB 2.6.2 #22807
    • Upgrade to Liquibase 3.10.2 #22806
    • Upgrade to Spring AMQP 2.3.0-M2 #22761
    • Upgrade to RSocket 1.1.0-M1 #22751
    • Upgrade to Spring Kafka 2.6.0-M1 #22730
    • Upgrade to Spring Integration 5.4.0-M2 #22729
    • Upgrade to Couchbase Client 3.0.7 #22688
    • Upgrade to Spring Security 5.4.0-RC1 #22668
    • Upgrade to Reactor 2020.0.0-M2 #22667
    • Upgrade to Elasticsearch 7.8.1 #22648
    • Upgrade to Spring Data 2020.0.0-M2 #22647
    • Upgrade to Spring Framework 5.3.0-M2 #22640
    • Upgrade to Groovy 2.5.13 #22527
    • Upgrade to R2DBC Arabba-SR6 #22395
    • Upgrade to Infinispan 11.0.1.Final #22286
    • Upgrade to Maven Shade Plugin 3.2.4 #22228

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.3.3.RELEASE(Aug 13, 2020)

    :warning: Upgrading from 2.3.2.RELEASE

    • If you've applied a configuration workaround for an issue about missing liveness/readiness probes #22562, you should ensure that this workaround is removed when upgrading to 2.3.3.RELEASE.

    :star: New Features

    • Jetty with Conscrypt no longer a requirement for easy HTTP/2 #22188

    :beetle: Bug Fixes

    • Externalized Configuration ignores null values in SPRING_APPLICATION_JSON #22895
    • Legacy endpoint ids with '-' do not migrate cleanly #22849
    • When Reactor's debug agent fails to initialize, the cause of the failure is discarded #22847
    • OCI image build fails if environment has any empty properties #22703
    • LiquibaseEndpoint does not report change sets from ancestor contexts #22686
    • Requests that should be handled by an additional DispatcherServlet result in a 404 response #22682
    • Async exceptions not handled by error pages in war deployments #22672
    • XADataSourceAutoConfiguration is difficult to use with DB2XADataSource as it does not have a URL property #22641
    • TaskExecutorBuilder only uses second-precision when configuring the await termination period #22611
    • Setting ignoreInvalidFields=true on @ConfigurationProperties causes unknown fields to be ignored as well #22585
    • Spring Boot 2.3.2: new context is created for every IT class if SpyBean is used #22583
    • Background preinitialisation may cause Jackson2ObjectMapperBuilder's Kotlin detection warning to be silently dropped #22580
    • UndertowWebServerFactoryCustomizer does not support Options but only UndertowOptions #22578
    • WebMvcTest and WebFluxTest do not include Jackson Module beans #22576
    • CouchbaseCacheManager can no longer be customized using CacheManagerCustomizer #22573
    • Kubernetes readiness probe endpoint returning 404 #22562
    • CouchbaseCacheConfiguration is not ordered properly #22542
    • MustacheEnvironmentCollector with nullValue compiler option no longer works in version 2.3.1 #22039

    :notebook_with_decorative_cover: Documentation

    • PushGateway documentation does not document enabled flag properly #22930
    • Default value of server.jetty.accesslog.format is wrongly associated to server.forward-headers-strategy #22921
    • Use wildcard in BP_JVM_VERSION with image building #22916
    • Kotlin examples for configuring bootBuildImage's environment use wrong map configuration syntax #22913
    • Mention configuration customizers for WebTestClient and RestAssured in AutoConfigureRestDocs' javadoc #22910
    • Document how to discover the HTTP Port at Runtime for both Servlet and Reactive web apps #22899
    • Document that spring-boot-configuration-processor cannot detect default value defined externally #22890
    • Docs say Health's inner details section may contain components #22774
    • Fix wrong reference in ReadinessStateHealthIndicator javadoc #22760
    • Recommend the use of AopTestUtils.getTargetObject() when setting expectations on a spied bean that Spring has proxied #22758
    • Document that schema.sql and data.sql will still be run when using Flyway or Liquibase but discourage their use #22748
    • Fix broken links to Micrometer registry docs #22706
    • Clarify documentation on use of @AutoConfigureRestDocs with WebTestClient #22669
    • Document that constructor binding does not support @DurationUnit and @DataSizeUnit #22665
    • Document properties to enable probe health indicators #22631
    • Update metrics documentation to note the benefits of using a MeterBinder when registering a metric that relies on other beans #22629
    • Include a hint where to find documentation for DevTools in docs overview #22622
    • Fix link to Elasticsearch health indicator #22617
    • Add ElasticsearchReactiveHealthIndicator to docs #22616
    • Link to App Engine Standard sample not working #22608
    • Improve documentation about swapping one technical starter for another #22596
    • Document how to use MongoClientSettingsBuilderCustomizer #22589
    • Document the need for configuration files to have a file extension #22587
    • Document that java.util.Optional is not recommended with ConfigurationProperties #22574
    • Typo in metadata for "management.health.readinessstate.enabled" #22560
    • Document how to opt back in to DataSource auto-configuration when using R2DBC #22094
    • Document that application.conf is not read by default when using the Cassandra auto-configuration #21787
    • Document how to use Gradle's native bom support as an alternative to the dependency management plugin #21570

    :hammer: Dependency Upgrades

    • Upgrade to Micrometer 1.5.4 #22932
    • Upgrade to Spring Security 5.3.4.RELEASE #22873
    • Upgrade to Spring HATEOAS 1.1.1.RELEASE #22872
    • Upgrade to RSocket 1.0.2 #22871
    • Upgrade to Pooled JMS 1.1.2 #22870
    • Upgrade to Lettuce 5.3.3.RELEASE #22869
    • Upgrade to Kafka 2.5.1 #22868
    • Upgrade to jOOQ 3.13.4 #22867
    • Upgrade to Jetty 9.4.31.v20200723 #22866
    • Upgrade to Jackson Bom 2.11.2 #22865
    • Upgrade to Hibernate 5.4.20.Final #22864
    • Upgrade to Dropwizard Metrics 4.1.12.1 #22863
    • Upgrade to Dependency Management Plugin 1.0.10.RELEASE #22862
    • Upgrade to Couchbase Client 3.0.7 #22861
    • Upgrade to Commons Pool2 2.8.1 #22860
    • Upgrade to Byte Buddy 1.10.14 #22859
    • Upgrade to Spring Data Neumann SR3 #22844
    • Upgrade to Spring Kafka 2.5.5 #22843
    • Upgrade to Spring AMQP 2.2.10 #22842
    • Upgrade to Reactor Dysprosium-SR11 #22841

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.3.2.RELEASE(Jul 24, 2020)

    :star: 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

    :beetle: 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
    • 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

    :notebook_with_decorative_cover: 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

    :hammer: 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

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.2.9.RELEASE(Jul 24, 2020)

    :beetle: Bug Fixes

    • A WebFlux app that depends on com.amazonaws:DynamoDBLocal fails to start #22275
    • NullPointerException in ErrorPageFilter when a MissingServletRequestParameterException is thrown and there's no DefaultHandlerExceptionResolver #22248
    • TomcatMetricsBinder may log a warning for an NPE if the context is closed before the ApplicationStartedEvent is published #22141
    • Accept empty filter dispatcher types in auto-configurations #22138
    • RedisReactiveHealthIndicator is broken with Redis cluster mode #22061
    • @ConditionalOnSingleCandidate does not match when there is a single candidate that is a scoped bean #22038
    • Management health group does not inherit show-details property #22022
    • LOGBACK: No context given for c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy #21056
    • MockBean does not resolve the right type for abstract test class #20916
    • ConfigurationPropertiesBeanDefinitionValidator interferes with EclipseLink load-time weaving #20798

    :notebook_with_decorative_cover: Documentation

    • Update the documentation to avoid trivialising what the reader's learning about #22409
    • Clarify the effect of ordering auto-configuration #22337
    • Clarify locations inside and outside the jar from which properties are loaded #22262
    • Rename NoneOfNestedConditions to NoneNestedConditions in example docs #22207
    • Document how to exclude an annotation processor with Maven #22000
    • Fix wrong property reference to keys-to-sanitize in Javadoc #21906
    • Some entries in the tables of configuration properties are incomplete #21131

    :hammer: Dependency Upgrades

    • Upgrade to Aspectj 1.9.6 #22539
    • Upgrade to Micrometer 1.3.11 #22538
    • Upgrade to Groovy 2.5.13 #22525
    • Upgrade to Spring Session Bom Corn-SR3 #22451
    • Upgrade to Neo4j Ogm 3.2.14 #22450
    • Upgrade to Kotlin Coroutines 1.3.8 #22449
    • Upgrade to Hsqldb 2.5.1 #22448
    • Upgrade to Hibernate 5.4.18.Final #22447
    • Upgrade to Jetty 9.4.30.v20200611 #22446
    • Upgrade to Tomcat 9.0.37 #22445
    • Upgrade to Johnzon Jsonb 1.2.8 #22444
    • Upgrade to Activemq 5.15.13 #22443
    • Upgrade to Byte Buddy 1.10.13 #22442
    • Upgrade to Mysql 8.0.21 #22441
    • Upgrade to Jakarta Servlet 4.0.4 #22440
    • Upgrade to Netty 4.1.51.Final #22439
    • Upgrade to Dropwizard Metrics 4.1.11 #22437
    • Upgrade to Db2 Jdbc 11.5.4.0 #22436
    • Upgrade to Hazelcast 3.12.8 #22435
    • Upgrade to Appengine Sdk 1.9.81 #22434
    • Upgrade to Caffeine 2.8.5 #22433
    • Upgrade to Jackson 2.10.5 #22432
    • Upgrade to Couchbase Client 2.7.16 #22431
    • Upgrade to Spring Kafka 2.3.10 #22386
    • Upgrade to Spring Integration 5.2.8 #22385
    • Upgrade to Spring Data Moore-SR9 #22384
    • Upgrade to Spring AMQP 2.2.9 #22383
    • Upgrade to Reactor Dysprosium-SR10 #22374
    • Upgrade to Spring Framework 5.2.8 #22372

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
Spring Framework

Spring Framework This is the home of the Spring Framework: the foundation for all Spring projects. Collectively the Spring Framework and the family of

Spring 41.8k Mar 13, 2021
🚀 The best rbac web framework. base on Spring Boot 2.4、 Spring Cloud 2020、 OAuth2 . Thx Give a star

?? The best rbac web framework. base on Spring Boot 2.4、 Spring Cloud 2020、 OAuth2 . Thx Give a star

pig-mesh 1k Apr 10, 2021
Apache Wicket - Component-based Java web framework

What is Apache Wicket? Apache Wicket is an open source, java, component based, web application framework. With proper mark-up/logic separation, a POJO

The Apache Software Foundation 549 Mar 10, 2021
Realtime Client Server Framework for the JVM, supporting WebSockets with Cross-Browser Fallbacks

Welcome to Atmosphere: The Event Driven Framework supporting WebSocket and HTTP The Atmosphere Framework contains client and server side components fo

Atmosphere Framework 3.5k Mar 13, 2021
DEPRECATED: use https://github.com/jhipster/jhipster-bom instead

JHipster BOM and server-side library - DEPRECATED Full documentation and information is available on our website at https://www.jhipster.tech/ This pr

JHipster 399 Mar 21, 2021
ZK is a highly productive Java framework for building amazing enterprise web and mobile applications

ZK ZK is a highly productive Java framework for building amazing enterprise web and mobile applications. Resources Documentation Tutorial ZK Essential

ZK 329 Mar 12, 2021