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.

    type: enhancement theme: kubernetes 
    opened by LutzStrobel 103
  • 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
  • @SpyBean does not work when used to spy on a Spring Data Repository

    @SpyBean does not work when used to spy on a Spring Data Repository

    Version: Spring Boot 1.4.1 Subject: @SpyBean on Data Jpa Repository bean isn't working Exception thrown:

    UnsatisfiedDependencyException: Error creating bean with name 'cityService' defined in file [...\target\classes\com\example\CityService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cityRepository': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Object of class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean] must be an instance of interface com.example.CityRepository
    

    Demonstration project: https://github.com/igormukhin/spring-boot-issue-6871 USE BRANCH: spybean-on-jparepository

    type: bug 
    opened by igormukhin 60
  • 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.

    type: enhancement theme: config-data 
    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.
    type: enhancement status: first-timers-only status: superseded 
    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
  • Expose database initialization settings creator #26657

    Expose database initialization settings creator #26657

    ~~I've created a class to provide exposing of SettingsCreator#createFrom. As it is now public, name SettingsCreator is not very helpful, and that's why I created another class for exposing purpose (backward compatibility is kept)~~

    Link: https://github.com/spring-projects/spring-boot/issues/26657

    status: waiting-for-triage 
    opened by radoslawdabrowski 2
  • Upgrade to Spring HATEOAS 1.4.0-M3

    Upgrade to Spring HATEOAS 1.4.0-M3

    null

    type: dependency-upgrade 
    opened by snicoll 0
  • Upgrade to Spring HATEOAS 1.3.4

    Upgrade to Spring HATEOAS 1.3.4

    null

    type: dependency-upgrade 
    opened by snicoll 0
  • Upgrade to Spring HATEOAS 1.2.9

    Upgrade to Spring HATEOAS 1.2.9

    null

    type: dependency-upgrade 
    opened by snicoll 0
  • Fix some typos in docs

    Fix some typos in docs

    Only a couple of minor changes.

    @pivotal-cla This is an Obvious Fix

    type: documentation 
    opened by di72nn 0
  • ReactiveMethodSecurityConfiguration not eligible for auto-proxying

    ReactiveMethodSecurityConfiguration not eligible for auto-proxying

    Getting this while deployment

    [main] INFO  org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization():376 {} - Bean 'org.springframework.security.config.annotation.method.configuration.ReactiveMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.ReactiveMethodSecurityConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    

    I faced this issue after upgrading to 2.5.1 Earlier, I was using 2.3.4.RELEASE version.

    status: waiting-for-feedback status: waiting-for-triage 
    opened by anmolgarg552 1
  • Upgrade to Spring Integration 5.5.4

    Upgrade to Spring Integration 5.5.4

    null

    type: dependency-upgrade 
    opened by snicoll 0
  • Upgrade to Spring Integration 5.5.4

    Upgrade to Spring Integration 5.5.4

    null

    type: dependency-upgrade 
    opened by snicoll 0
  • Upgrade to Spring Integration 5.4.11

    Upgrade to Spring Integration 5.4.11

    null

    type: dependency-upgrade 
    opened by snicoll 0
Releases(v2.6.0-M2)
  • v2.6.0-M2(Aug 19, 2021)

    :star: New Features

    • Make it easier to add new configuration options to ApplicationContextRunners #27690
    • Move the auto-configuration of DiskSpaceMetrics to SystemMetricsAutoConfiguration #27688
    • Added property to customise Jackson default leniency #27659
    • Prohibit circular references by default #27652
    • Apply ContainerCustomizer beans to the auto-configured AMQP MessageListenerContainers #27625
    • Provide expiry and bufferLength configuration properties for configuring a distribution statistic #27584
    • Add network option for image building #27486
    • Provide auto-configuration for spring-rabbit-stream #27480
    • @ConstructorBinding behavior by default for @ConfigurationProperties annotated records #27216
    • Add Jackson ConstructorDetector properties support #27178
    • Drop dependency management for org.jboss:jboss-transaction-spi #26574
    • Add support for dumping the heap when running on Open J9 #26466
    • Add spring.webflux.multipart configuration properties #26254
    • Allow health groups to be configured at an additional path #25471
    • Configure WebTestClient for @AutoConfigureMockMvc tests #23067
    • Add ability to include/exclude part of a composite contributor in a health group #23027
    • Use MessageSource to interpolate bean validation messages #17530

    :lady_beetle: Bug Fixes

    • spring-boot-configuration-metadata leaks enforced dependency constraints into consuming builds #27731
    • Cyclic bean definition when a Spring Data repository is a dependency of a MeterBinder #27636
    • Potential NPE in TomcatMetricsBinder.findContext() #27617
    • spring-boot:build-image hangs when exceptions are thrown during upload #27536
    • WebTestClientContextCustomizerFactory causes an IllegalStateException when WebClient is on the classpath without a supported HTTP client #27528
    • spring.security.dispatcher-types is not applied to Spring Security's filter when running in a separate management context #27506
    • A URI with non-alpha characters in its scheme is not sanitized #27489

    :notebook_with_decorative_cover: Documentation

    • Fix broken links in docs #27761
    • Mention productionRuntimeClasspath in Gradle plugin's documentation #27621
    • Fix typo in javadoc #27619

    :hammer: Dependency Upgrades

    • Upgrade to Artemis 2.18.0 #27703
    • Upgrade to Byte Buddy 1.11.12 #27704
    • Upgrade to Commons DBCP2 2.9.0 #27641
    • Upgrade to Commons Pool2 2.11.0 #27642
    • Upgrade to Couchbase Client 3.2.0 #27643
    • Upgrade to Ehcache3 3.9.5 #27705
    • Upgrade to Elasticsearch 7.13.4 #27706
    • Upgrade to Flyway 7.13.0 #27644
    • Upgrade to Git Commit ID Plugin 4.9.10 #27707
    • Upgrade to Glassfish JAXB 2.3.5 #27708
    • Upgrade to Hazelcast 4.2.2 #27709
    • Upgrade to Hazelcast Hibernate5 2.2.1 #27710
    • Upgrade to Hibernate 5.5.6.Final #27702
    • Upgrade to HtmlUnit 2.52.0 #27645
    • Upgrade to Janino 3.1.6 #27711
    • Upgrade to Jedis 3.6.3 #27712
    • Upgrade to Jolokia 1.7.0 #27646
    • Upgrade to Liquibase 4.4.3 #27713
    • Upgrade to Logback 1.2.5 #27714
    • Upgrade to MariaDB 2.7.4 #27715
    • Upgrade to Maven AntRun Plugin 3.0.0 #27716
    • Upgrade to Maven Enforcer Plugin 3.0.0 #27717
    • Upgrade to Micrometer 1.8.0-M2 #27607
    • Upgrade to MIMEPull 1.9.15 #27718
    • Upgrade to MSSQL JDBC 9.4.0.jre8 #27719
    • Upgrade to MySQL 8.0.26 #27720
    • Upgrade to Netty 4.1.67.Final #27721
    • Upgrade to QueryDSL 5.0.0 #27647
    • Upgrade to Reactor 2020.0.10 #27606
    • Upgrade to Selenium HtmlUnit 2.52.0 #27648
    • Upgrade to SendGrid 4.7.4 #27722
    • Upgrade to SLF4J 1.7.32 #27723
    • Upgrade to Spring AMQP 2.4.0-M2 #27622
    • Upgrade to Spring Data 2021.1.0-M2 #27608
    • Upgrade to Spring HATEOAS 1.4.0-M2 #27649
    • Upgrade to Spring Integration 5.5.3 #27611
    • Upgrade to Spring Kafka 2.8.0-M2 #27609
    • Upgrade to Spring Security 5.6.0-M2 #27610
    • Upgrade to Spring Session 2021.1.0-M1 #27612
    • Upgrade to Tomcat 9.0.52 #27724
    • Upgrade to Undertow 2.2.10.Final #27725

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.5.4(Aug 19, 2021)

    :lady_beetle: Bug Fixes

    • spring-boot-configuration-metadata leaks enforced dependency constraints into consuming builds #27730
    • Potential NPE in TomcatMetricsBinder.findContext() #27616
    • Cyclic bean definition when a Spring Data repository is a dependency of a MeterBinder #27591
    • spring-boot:build-image hangs when exceptions are thrown during upload #27535
    • WebTestClientContextCustomizerFactory causes an IllegalStateException when WebClient is on the classpath without a supported HTTP client #27527
    • spring.security.dispatcher-types is not applied to Spring Security's filter when running in a separate management context #27505
    • A URI with non-alpha characters in its scheme is not sanitized #27488

    :notebook_with_decorative_cover: Documentation

    • Mention productionRuntimeClasspath in Gradle plugin's documentation #27620
    • Fix typo in javadoc #27618

    :hammer: Dependency Upgrades

    • Upgrade to ActiveMQ 5.16.3 #27742
    • Upgrade to AppEngine SDK 1.9.91 #27743
    • Upgrade to Cassandra Driver 4.11.3 #27674
    • Upgrade to Couchbase Client 3.1.7 #27675
    • Upgrade to Ehcache3 3.9.5 #27676
    • Upgrade to Glassfish JAXB 2.3.5 #27677
    • Upgrade to Hazelcast 4.1.5 #27744
    • Upgrade to Hazelcast Hibernate5 2.2.1 #27678
    • Upgrade to Janino 3.1.6 #27679
    • Upgrade to Logback 1.2.5 #27680
    • Upgrade to MariaDB 2.7.4 #27681
    • Upgrade to Maven Enforcer Plugin 3.0.0 #27682
    • Upgrade to Micrometer 1.7.3 #27601
    • Upgrade to MIMEPull 1.9.15 #27683
    • Upgrade to Netty 4.1.67.Final #27745
    • Upgrade to Nimbus JOSE JWT 9.10.1 #27701
    • Upgrade to OAuth2 OIDC SDK 9.9.1 #27700
    • Upgrade to Reactor 2020.0.10 #27600
    • Upgrade to SendGrid 4.7.4 #27684
    • Upgrade to Spring Data 2021.0.4 #27633
    • Upgrade to Spring Integration 5.5.3 #27604
    • Upgrade to Spring Kafka 2.7.6 #27602
    • Upgrade to Spring Security 5.5.2 #27603
    • Upgrade to Spring Session 2021.0.2 #27605
    • Upgrade to Tomcat 9.0.52 #27685
    • Upgrade to Undertow 2.2.10.Final #27686

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.10(Aug 19, 2021)

    :lady_beetle: Bug Fixes

    • spring-boot-configuration-metadata leaks enforced dependency constraints into consuming builds #27726
    • Potential NPE in TomcatMetricsBinder.findContext() #27576
    • WebTestClientContextCustomizerFactory causes an IllegalStateException when WebClient is on the classpath without a supported HTTP client #27520
    • spring-boot:build-image hangs when exceptions are thrown during upload #27515
    • A URI with non-alpha characters in its scheme is not sanitized #27482
    • spring.security.dispatcher-types is not applied to Spring Security's filter when running in a separate management context #27372

    :notebook_with_decorative_cover: Documentation

    • Fix typo in javadoc #27614
    • Mention productionRuntimeClasspath in Gradle plugin's documentation #27558

    :hammer: Dependency Upgrades

    • Upgrade to ActiveMQ 5.16.3 #27739
    • Upgrade to AppEngine SDK 1.9.91 #27740
    • Upgrade to Ehcache3 3.9.5 #27665
    • Upgrade to Glassfish JAXB 2.3.5 #27666
    • Upgrade to Janino 3.1.6 #27667
    • Upgrade to Logback 1.2.5 #27668
    • Upgrade to MariaDB 2.7.4 #27669
    • Upgrade to Maven Enforcer Plugin 3.0.0 #27670
    • Upgrade to Micrometer 1.6.10 #27596
    • Upgrade to MIMEPull 1.9.15 #27671
    • Upgrade to Netty 4.1.67.Final #27741
    • Upgrade to Nimbus JOSE JWT 8.22.1 #27699
    • Upgrade to Reactor 2020.0.10 #27595
    • Upgrade to Spring Data 2020.0.12 #27632
    • Upgrade to Spring Integration 5.4.10 #27598
    • Upgrade to Spring Integration 5.4.9 #27500
    • Upgrade to Spring Kafka 2.6.10 #27501
    • Upgrade to Spring Security 5.4.8 #27597
    • Upgrade to Spring Session 2020.0.6 #27599
    • Upgrade to Tomcat 9.0.52 #27672
    • Upgrade to Undertow 2.2.10.Final #27673

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.6.0-M1(Jul 22, 2021)

    For upgrade instructions please see the release notes.

    :star: New Features

    • Add Java 17 to JavaVersion enum #27416
    • Make setters on RabbitTemplateConfigurer public #27376
    • Add configuration property for Reactor Netty's idle timeout #27371
    • Support comma-separated values in EntityScan's basePackages placeholders #27355
    • Deprecate SpringPhysicalNamingStrategy in favor of Hibernate 5.5's CamelCaseToUnderscoresNamingStrategy #27352
    • Update version property for Prometheus to reflect that it covers the whole Java client and not just the Pushgateway #27350
    • Update RabbitTemplateConfigurer to take its required settings as constructor arguments #27313
    • Update AbstractRabbitListenerContainerFactoryConfigurer and its subclasses to take their required settings as constructor arguments #27311
    • Use server version from database in Neo4j health details #27294
    • Deprecate AbstractDataSourceInitializer and its subclasses in favour of DataSourceScriptDatabaseInitializer-based equivalents #27206
    • Remove default spring.mongodb.embedded.version #27108
    • Add @WebServiceServerTest annotation that can be used when testing SOAP server #27091
    • Add Rabbit connection factory configurers #26982
    • Add resource labels to Stackdriver metrics configuration properties #26961
    • Include information about where the caller was loaded from in NoSuchMethodError failure analysis #26895
    • Rely on Spring Security to determine the version of nimbus dependencies #26819
    • Introduce builder customizer for Lettuce ClientResources #26792
    • Allow to chain ContextConsumer implementations #26723
    • Add SpringApplicationBuilder constructor with ResourceLoader parameter #26690
    • Add properties for configuring Flyway's ignoreMigrationPatterns, detectEncoding, and failOnMissingLocations #26456
    • Allow the WebSessionManager's session ID resolver to be customized using a WebSessionIdResolver bean #26437
    • Allow to configure StartMojo's wait and maxAttempts attributes from the command-line #26422
    • Auto-configure binding of Micrometer's JettyConnectionMetrics and JettySslHandshakeMetrics #26418
    • Apply RSocketConnectorConfigurer beans to the RSocketRequester.Builder #26341
    • Add Lombok @Value support for configuration metadata generation #26337
    • Enable Redis connection pool if commons-pool2 is on the classpath #26326
    • Add configuration property for Tomcat's rejectIllegalHeader #26311
    • Add support for Dynatrace metrics v2 API #26258
    • Reproducible build for spring-boot-maven-plugin:build-info #26221
    • Remove dependency management for org.webjars:hal-browser #26192
    • Add auto-configuration for Micrometer DiskSpaceMetrics #26001
    • Add metrics support for ThreadPoolTaskExecutor and ThreadPoolTaskScheduler #23818
    • Add auto-configuration for Spring Data Envers #22610
    • Adjust fat jar central directory to account for launch script #22336
    • Use a configurable location to load global Devtools settings #17924

    :beetle: Bug Fixes

    • DataSourceBuilder throws an UnsupportedDataSourcePropertyException when trying to derive a DataSource from an unknown DataSource type #27455
    • DatabaseInitializerDetector and DependsOnDatabaseInitializationDetector implementations may be instantiated with the wrong ClassLoader #27425
    • YamlPropertySourceLoader may not use the right ClassLoader to check if SnakeYAML is present #27420
    • Since 2.5.1, a circular reference is created when one SpringLiquibase bean is configured to depend on another #27408
    • Setting Gson as preferred mapper breaks controller methods returning JSON Strings #27362
    • @SpyBean does not work when used to spy on a Spring Data Repository #27353
    • Dependency management for Prometheus's Pushgateway is incomplete #27351
    • Exception thrown from /actuator/configprops endpoint when spring.config.import=configtree:xxxx is used #27347
    • Layers configuration XSD is not available #27326
    • Redis health indicators report that Redis is up when the cluster's state is fail #27305
    • Spring Session JDBC does not work when lazy initialization is enabled #27226
    • App fails to start when using Spring Batch with JDBC and lazy initialization is enabled #27224
    • AbstractDataSourceInitializers are not detected as database initializers #27223
    • File named "config" in working directory causes IllegalStateException #27213
    • Optional file search locations with pattern throws exception if not present #27212
    • "Cannot determine database's type as ConnectionFactory is not options-capable" error message doesn't provide enough detail #27186
    • DurationStyle.SIMPLE.print does not work correctly with ChronoUnit.MICROS #27155
    • Configuration property metadata has the wrong default value for spring.netty.leak-detection #27106
    • Deadlock when the application context is closed and System.exit(int) is then called during application context refresh #27076
    • Default value for NettyProperties.leakDetection is not aligned with Netty's default #27050
    • SpringApplicationShutdownHook throws ClassCastException when use log4j2 #27018
    • Gradle 6.9.x is not listed as a supported version when the Gradle version is < 6.8 #27001
    • Gradle build fails with "invocation of 'Task.project' at execution time is unsupported" when using the configuration cache in a project that depends on org.springframework.boot:spring-boot-configuration-processor #26998
    • NoSuchMethodError with Jetty 10 when trying to use HTTP/2 over TLS (h2) #26989
    • A bean factory post processor cannot be configured to run after DependsOnDatabaseInitializationPostProcessor #26951
    • Kotlin plugin's version shouldn't be read if the kotlin.version extra property has been set #26948
    • SQL initialization in 2.5 does not handle connection errors gracefully anymore #26943
    • Script-based database initialization should not check the database's type unless it has scripts to apply #26942
    • Profile-specific files should still be considered when processing 'spring.config.import' properties #26940
    • Misleading type information reported by BeanNotOfRequiredTypeFailureAnalyzer #26936
    • WebSocket auto-configuration throws a CNFE with Jetty 10 #26929
    • Memory leak in MetricsClientHttpRequestInterceptor when auto-timing is disabled #26924
    • App fails to start when using Flyway or Liquibase with a spring.flyway.url or spring.liquibase.url without spring-jdbc on the classpath #26918

    :notebook_with_decorative_cover: Documentation

    • Fix reference to a configuration property in cloud.adoc #27358
    • Document auto-configured Jetty metrics #27302
    • Document that hateoas starter is spring MVC specific #27140
    • Improve javadoc of @DefaultValue #27138
    • Remove unnecessary unit for spring.datasource.tomcat.max-active #27117
    • Fix anchor rewrites containing a question mark #27116
    • Fix typo in section title #27112
    • Misleading doc about application startup exposure #27065
    • Update reference documentation to reflect @SpringBootApplication's use of @SpringBootConfiguration #27025
    • Document uuid support in RandomValuePropertySource #27011
    • Add missing space for asciidoc ordered list #26957
    • Add Azure info to the cloud deployment docs #26912
    • Make the documentation versions more apparent #26892

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.90 #27394
    • Upgrade to AspectJ 1.9.7 #27250
    • Upgrade to AssertJ 3.20.2 #27251
    • Upgrade to Awaitility 4.1.0 #27252
    • Upgrade to Byte Buddy 1.11.8 #27395
    • Upgrade to Caffeine 2.9.2 #27254
    • Upgrade to Cassandra Driver 4.12.0 #27255
    • Upgrade to Commons Pool2 2.10.0 #27256
    • Upgrade to DB2 JDBC 11.5.6.0 #27257
    • Upgrade to Dropwizard Metrics 4.2.3 #27396
    • Upgrade to Elasticsearch 7.13.3 #27259
    • Upgrade to Flyway 7.11.2 #27397
    • Upgrade to Git Commit ID Plugin 4.9.9 #27398
    • Upgrade to Hazelcast 4.2.1 #27260
    • Upgrade to Hibernate 5.5.4.Final #27399
    • Upgrade to HtmlUnit 2.51.0 #27261
    • Upgrade to HttpClient5 5.1 #27262
    • Upgrade to Infinispan 12.1.7.Final #27400
    • Upgrade to Jackson Bom 2.12.4 #27264
    • Upgrade to Jedis 3.6.2 #27401
    • Upgrade to Jersey 2.34 #27266
    • Upgrade to Jetty 9.4.43.v20210629 #27269
    • Upgrade to Jetty EL 9.0.48 #27267
    • Upgrade to Jetty Reactive HTTPClient 1.1.10 #27268
    • Upgrade to Johnzon 1.2.14 #27270
    • Upgrade to jOOQ 3.14.13 #27402
    • Upgrade to Json Path 2.6.0 #27272
    • Upgrade to Kafka 2.8.0 #27247
    • Upgrade to Kotlin 1.5.21 #27318
    • Upgrade to Kotlin Coroutines 1.5.1 #27273
    • Upgrade to Lettuce 6.1.4.RELEASE #27343
    • Upgrade to Liquibase 4.4.1 #27291
    • Upgrade to Maven Dependency Plugin 3.2.0 #27275
    • Upgrade to Maven Javadoc Plugin 3.3.0 #27276
    • Upgrade to Micrometer 1.8.0-M1 #27169
    • Upgrade to Mockito 3.11.2 #27277
    • Upgrade to MongoDB 4.3.0 #27344
    • Upgrade to Neo4j Java Driver 4.3.3 #27278
    • Upgrade to Netty 4.1.66.Final #27403
    • Upgrade to Netty tcNative 2.0.40.Final #27279
    • Upgrade to Postgresql 42.2.23 #27280
    • Upgrade to Prometheus PushGateway 0.11.0 #27281
    • Upgrade to QueryDSL 5.0.0.M1 #26956
    • Upgrade to Rabbit AMQP Client 5.13.0 #27404
    • Upgrade to Reactor 2020.0.8 #27027
    • Upgrade to Reactor 2020.0.9 #27167
    • Upgrade to REST Assured 4.4.0 #27293
    • Upgrade to Selenium HtmlUnit 2.51.0 #27282
    • Upgrade to SLF4J 1.7.31 #27283
    • Upgrade to SnakeYAML 1.29 #27284
    • Upgrade to Spring AMQP 2.4.0-M1 #27171
    • Upgrade to Spring Data 2021.1.0-M1 #27170
    • Upgrade to Spring Framework 5.3.9 #27168
    • Upgrade to Spring HATEOAS 1.4.0-M1 #27185
    • Upgrade to Spring Integration 5.5.2 #27174
    • Upgrade to Spring Kafka 2.8.0-M1 #27177
    • Upgrade to Spring Security 5.6.0-M1 #27173
    • Upgrade to Spring Session Bom 2021.0.1 #27285
    • Upgrade to SQLite JDBC 3.36.0.1 #27286
    • Upgrade to Tomcat 9.0.50 #27287
    • Upgrade to WebJars Locator Core 0.47 #27288

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.5.3(Jul 22, 2021)

    :star: New Features

    • Add Java 17 to JavaVersion enum #26769

    :beetle: Bug Fixes

    • DataSourceBuilder throws an UnsupportedDataSourcePropertyException when trying to derive a DataSource from an unknown DataSource type #27453
    • DatabaseInitializerDetector and DependsOnDatabaseInitializationDetector implementations may be instantiated with the wrong ClassLoader #27422
    • YamlPropertySourceLoader may not use the right ClassLoader to check if SnakeYAML is present #27419
    • Setting Gson as preferred mapper breaks controller methods returning JSON Strings #27361
    • Dependency management for Prometheus's Pushgateway is incomplete #27349
    • Exception thrown from /actuator/configprops endpoint when spring.config.import=configtree:xxxx is used #27346
    • Layers configuration XSD is not available #27321
    • Redis health indicators report that Redis is up when the cluster's state is fail #27304
    • App fails to start when using Spring Batch with JDBC and lazy initialization is enabled #27221
    • Spring Session JDBC does not work when lazy initialization is enabled #27220
    • AbstractDataSourceInitializers are not detected as database initializers #27215
    • Optional file search locations with pattern throws exception if not present #27211
    • File named "config" in working directory causes IllegalStateException #27210
    • Live Reload using Devtools no longer connects #27205
    • Live Reload using Devtools no longer connects #27204
    • DurationStyle.SIMPLE.print does not work correctly with ChronoUnit.MICROS #27154
    • Since 2.5.1, a circular reference is created when one SpringLiquibase bean is configured to depend on another #27131
    • Configuration property metadata has the wrong default value for spring.netty.leak-detection #27104
    • "Cannot determine database's type as ConnectionFactory is not options-capable" error message doesn't provide enough detail #26977
    • @SpyBean does not work when used to spy on a Spring Data Repository #7033

    :notebook_with_decorative_cover: Documentation

    • Fix reference to a configuration property in cloud.adoc #27357
    • Document auto-configured Jetty metrics #27301
    • Document that hateoas starter is spring MVC specific #27139
    • Improve javadoc of @DefaultValue #27137
    • Fix anchor rewrites containing a question mark #27107
    • Remove unnecessary unit for spring.datasource.tomcat.max-active #27103
    • Fix typo in section title #27102

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.90 #27384
    • Upgrade to AspectJ 1.9.7 #27194
    • Upgrade to Caffeine 2.9.2 #27195
    • Upgrade to DB2 JDBC 11.5.6.0 #27196
    • Upgrade to Dropwizard Metrics 4.1.25 #27385
    • Upgrade to Infinispan 12.1.7.Final #27386
    • Upgrade to Jackson Bom 2.12.4 #27198
    • Upgrade to Jedis 3.6.3 #27448
    • Upgrade to Jetty 9.4.43.v20210629 #27199
    • Upgrade to Jetty Reactive HTTPClient 1.1.10 #27388
    • Upgrade to Johnzon 1.2.14 #27200
    • Upgrade to jOOQ 3.14.13 #27389
    • Upgrade to Kotlin 1.5.21 #27316
    • Upgrade to Kotlin Coroutines 1.5.1 #27317
    • Upgrade to Lettuce 6.1.4.RELEASE #27341
    • Upgrade to Logback 1.2.4 #27449
    • Upgrade to Micrometer 1.7.2 #27342
    • Upgrade to MySQL 8.0.26 #27450
    • Upgrade to Netty 4.1.66.Final #27390
    • Upgrade to Postgresql 42.2.23 #27202
    • Upgrade to Reactor 2020.0.9 #27162
    • Upgrade to SLF4J 1.7.32 #27451
    • Upgrade to Spring AMQP 2.3.10 #27392
    • Upgrade to Spring Data 2021.0.3 #27164
    • Upgrade to Spring Framework 5.3.9 #27163
    • Upgrade to Spring HATEOAS 1.3.3 #27184
    • Upgrade to Spring Integration 5.5.2 #27166
    • Upgrade to Spring Kafka 2.7.4 #27165
    • Upgrade to Tomcat 9.0.50 #27203
    • Upgrade to Undertow 2.2.9.Final #27452

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.9(Jul 22, 2021)

    :beetle: Bug Fixes

    • Setting Gson as preferred mapper breaks controller methods returning JSON Strings #27354
    • Exception thrown from /actuator/configprops endpoint when spring.config.import=configtree:xxxx is used #27327
    • Redis health indicators report that Redis is up when the cluster's state is fail #27300
    • Optional file search locations with pattern throws exception if not present #27209
    • Spring Session JDBC does not work when lazy initialization is enabled #27208
    • App fails to start when using Spring Batch with JDBC and lazy initialization is enabled #27193
    • DurationStyle.SIMPLE.print does not work correctly with ChronoUnit.MICROS #27149
    • Live Reload using Devtools no longer connects #27147
    • YamlPropertySourceLoader may not use the right ClassLoader to check if SnakeYAML is present #27133
    • File named "config" in working directory causes IllegalStateException #27120

    :notebook_with_decorative_cover: Documentation

    • Document auto-configured Jetty metrics #27299
    • Document that hateoas starter is spring MVC specific #26897
    • Improve javadoc of @DefaultValue #26742

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.90 #27377
    • Upgrade to AspectJ 1.9.7 #27238
    • Upgrade to DB2 JDBC 11.5.6.0 #27239
    • Upgrade to Dropwizard Metrics 4.1.25 #27378
    • Upgrade to Jetty 9.4.43.v20210629 #27241
    • Upgrade to Jetty Reactive HTTPClient 1.1.10 #27240
    • Upgrade to Johnzon 1.2.14 #27242
    • Upgrade to jOOQ 3.14.13 #27379
    • Upgrade to Lettuce 6.0.7.RELEASE #27339
    • Upgrade to Logback 1.2.4 #27380
    • Upgrade to Micrometer 1.6.9 #27340
    • Upgrade to MySQL 8.0.26 #27444
    • Upgrade to Netty 4.1.66.Final #27381
    • Upgrade to Postgresql 42.2.23 #27244
    • Upgrade to Reactor 2020.0.9 #27159
    • Upgrade to SLF4J 1.7.32 #27445
    • Upgrade to Spring AMQP 2.3.10 #27391
    • Upgrade to Spring Data 2020.0.11 #27161
    • Upgrade to Spring Framework 5.3.9 #27160
    • Upgrade to Spring HATEOAS 1.2.8 #27183
    • Upgrade to Tomcat 9.0.50 #27245
    • Upgrade to Undertow 2.2.9.Final #27446

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.5.2(Jun 24, 2021)

    :beetle: Bug Fixes

    • Instantiator is called without a classloader #27074
    • EnvironmentPostProcessors aren't instantiated with correct ClassLoader #27073
    • EnvironmentPostProcessors aren't instantiated with correct ClassLoader #27072
    • Instantiator is called without a classloader #27071
    • Failure when binding the name of a non-existent class to a Class<?> property isn't very helpful #27061
    • Failure when binding the name of a non-existent class to a Class<?> property isn't very helpful #27060
    • Unable to exclude dependencies on repackaging war #27057
    • Unable to exclude dependencies on repackaging war #27056
    • Deadlock when the application context is closed and System.exit(int) is then called during application context refresh #27049
    • Default value for NettyProperties.leakDetection is not aligned with Netty's default #27046
    • Profile-specific resolution should still happen when processing 'spring.config.import' properties #27006
    • Profile-specific resolution should still happen when processing 'spring.config.import' properties #27005
    • Gradle build fails with "invocation of 'Task.project' at execution time is unsupported" when using the configuration cache in a project that depends on org.springframework.boot:spring-boot-configuration-processor #26997
    • NoSuchMethodError with Jetty 10 when trying to use HTTP/2 over TLS (h2) #26988
    • SpringApplicationShutdownHook throws ClassCastException when use log4j2 #26953
    • Gradle 6.9.x is not listed as a supported version when the Gradle version is < 6.8 #26952
    • Kotlin plugin's version shouldn't be read if the kotlin.version extra property has been set #26947
    • Profile-specific files should still be considered when processing 'spring.config.import' properties #26939
    • Misleading type information reported by BeanNotOfRequiredTypeFailureAnalyzer #26935
    • SQL initialization in 2.5 does not handle connection errors gracefully anymore #26926
    • Script-based database initialization should not check the database's type unless it has scripts to apply #26925
    • Memory leak in MetricsClientHttpRequestInterceptor when auto-timing is disabled #26923
    • DevTools' LiveReload support's HTTP header handling is case sensitive #26920
    • DevTools' LiveReload support's HTTP header handling is case sensitive #26919
    • App fails to start when using Flyway or Liquibase with a spring.flyway.url or spring.liquibase.url without spring-jdbc on the classpath #26917
    • A bean factory post processor cannot be configured to run after DependsOnDatabaseInitializationPostProcessor #26899
    • WebSocket auto-configuration throws a CNFE with Jetty 10 #26847

    :notebook_with_decorative_cover: Documentation

    • Description of spring.datasource.name property is inaccurate #27063
    • Description of spring.datasource.name property is inaccurate #27062
    • Update reference documentation to reflect @SpringBootApplication's use of @SpringBootConfiguration #27024
    • Document uuid support in RandomValuePropertySource #27010
    • Misleading doc about application startup exposure #26978
    • Add missing space for asciidoc ordered list #26955
    • Add Azure info to the cloud deployment docs #26910
    • Make the documentation versions more apparent #26891

    :hammer: Dependency Upgrades

    • Upgrade to Cassandra Driver 4.11.2 #26990
    • Upgrade to Dropwizard Metrics 4.1.24 #27035
    • Upgrade to Hazelcast 4.1.4 #27069
    • Upgrade to Jedis 3.6.1 #26992
    • Upgrade to Jetty EL 9.0.48 #26993
    • Upgrade to Kotlin 1.5.20 #27088
    • Upgrade to Kotlin 1.5.20 #27086
    • Upgrade to Lettuce 6.1.3.RELEASE #27036
    • Upgrade to Micrometer 1.7.1 #27015
    • Upgrade to Neo4j Java Driver 4.2.7 #27037
    • Upgrade to Netty tcNative 2.0.40.Final #27070
    • Upgrade to Nimbus JOSE JWT 9.10 #27039
    • Upgrade to OAuth2 OIDC SDK 9.9 #27038
    • Upgrade to Postgresql 42.2.22 #26994
    • Upgrade to Reactor 2020.0.8 #26968
    • Upgrade to SLF4J 1.7.31 #26995
    • Upgrade to Spring AMQP 2.3.9 #26972
    • Upgrade to Spring Data 2021.0.2 #26970
    • Upgrade to Spring HATEOAS 1.3.2 #26969
    • Upgrade to Spring Integration 5.5.1 #26974
    • Upgrade to Spring Kafka 2.7.3 #26973
    • Upgrade to Spring Security 5.5.1 #26945
    • Upgrade to Spring Session 2021.0.1 #26971
    • Upgrade to Tomcat 9.0.48 #26996

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.8(Jun 24, 2021)

    :beetle: Bug Fixes

    • EnvironmentPostProcessors aren't instantiated with correct ClassLoader #27043
    • Failure when binding the name of a non-existent class to a Class<?> property isn't very helpful #27028
    • Profile-specific resolution should still happen when processing 'spring.config.import' properties #26960
    • Kotlin plugin's version shouldn't be read if the kotlin.version extra property has been set #26946
    • Memory leak in MetricsClientHttpRequestInterceptor when auto-timing is disabled #26915
    • Gradle build fails with "invocation of 'Task.project' at execution time is unsupported" when using the configuration cache in a project that depends on org.springframework.boot:spring-boot-configuration-processor #26880
    • Profile-specific files should still be considered when processing 'spring.config.import' properties #26858
    • App fails to start when using Flyway or Liquibase with a spring.flyway.url or spring.liquibase.url without spring-jdbc on the classpath #26849
    • Misleading type information reported by BeanNotOfRequiredTypeFailureAnalyzer #26821
    • DevTools' LiveReload support's HTTP header handling is case sensitive #26813
    • Unable to exclude dependencies on repackaging war #15808

    :notebook_with_decorative_cover: Documentation

    • Description of spring.datasource.name property is inaccurate #27026
    • Document uuid support in RandomValuePropertySource #26975
    • Update reference documentation to reflect @SpringBootApplication's use of @SpringBootConfiguration #26937
    • Make the documentation versions more apparent #26851

    :hammer: Dependency Upgrades

    • Upgrade to Dropwizard Metrics 4.1.24 #27031
    • Upgrade to Jetty EL 8.5.68 #26984
    • Upgrade to Lettuce 6.0.6.RELEASE #27032
    • Upgrade to Micrometer 1.6.8 #27014
    • Upgrade to Neo4j Java Driver 4.1.4 #27033
    • Upgrade to Netty tcNative 2.0.40.Final #27066
    • Upgrade to Nimbus JOSE JWT 8.22 #27068
    • Upgrade to OAuth2 OIDC SDK 8.36.2 #27067
    • Upgrade to Postgresql 42.2.22 #26985
    • Upgrade to Reactor 2020.0.8 #26962
    • Upgrade to SLF4J 1.7.31 #26986
    • Upgrade to Spring AMQP 2.3.9 #26966
    • Upgrade to Spring Data 2020.0.10 #26963
    • Upgrade to Spring HATEOAS 1.2.7 #27013
    • Upgrade to Spring Integration 5.4.8 #26967
    • Upgrade to Spring Security 5.4.7 #26965
    • Upgrade to Spring Session 2020.0.5 #26964
    • Upgrade to Tomcat 9.0.48 #26987

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.5.1(Jun 10, 2021)

    :beetle: Bug Fixes

    • SqlInitializationAutoConfiguration fails when there is a DataSource bean and no spring-jdbc or a ConnectionFactory bean and no spring-r2dbc #26850
    • MetricsRestTemplateCustomizer and LocalHostUriTemplateHandler cannot be used together when building a RestTemplate with RestTemplateBuilder #26827
    • CompositeHealth.getDetails() does not serialize if MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS is disabled #26823
    • ConnectionFactoryBuilder.derivefrom should be named derivedFrom to align with DataSourceBuilder #26810
    • Profile-specific property files are incorrectly ordered when both '.' and './config' folders are used in the same application #26782
    • A spring.config.import declared in an application-.properties file calls ConfigDataLocationResolver.resolveProfileSpecific #26755
    • A spring.config.import declared in an application.properties file also attempts to import profile-specific files #26754
    • Jar startup fails on JDK 11 with a SecurityManager enabled #26744
    • Possible divide by zero bugs when using RandomValuePropertySource #26739
    • Resolving properties with a target type can cause ConversionFailedException #26732
    • Upgrading to Spring Boot 2.5.0 leads to a startup warning from Jackson about Kotlin #26727
    • LoggingSystem should not return LogbackLoggingSystem if logback-classic is not available #26725
    • bootBuildImage runs forever when a custom image name is used and the version contains an illegal character #26703
    • Non-static nested @Configuration in JerseySameManagementContextConfiguration #26697
    • Restore run order of data.sql/schema.sql against high-level database migration tools #26692
    • Gradle plugin does not provided public constant for the productionRuntimeClasspath configuration #26687
    • Non-embedded databases have schema/data.sql scripts applied by default #26682
    • Custom username/password properties are not picked up by DataSourceInitializationConfiguration #26676
    • No subdirectories found for mandatory directory location 'file:./config/*/' is thrown when config dir exists #26672
    • LoggingSystem not available on shutdown to log DisposableBean#destroy invocations #26660
    • Image Building with custom buildpacks fails with permission denied on Arch Linux #26658
    • SingleSignOnService Binding from SAML IdP metadata gets overridden by default #26649
    • UnsupportedDataSourcePropertyException is thrown when attempting to set URL for SQL Server #26647
    • Flyway and Liquibase custom datasource without an url leads to java.lang.ClassCastException #26644
    • Empty value for spring.datasource.password can cause NullPointerException #26633
    • UnsupportedDataSourcePropertyException is thrown when attempting to set driverClassName for H2 #26631
    • Some metrics are lost when Spring Data is on the classpath #26630
    • ApplicationAvailabilityBean should log at debug level #26624

    :notebook_with_decorative_cover: Documentation

    • Update optaplanner spring boot starter url #26816
    • Fix typo in 'Reacting to the Maven plugin' title #26751
    • Link to Spring Data JPA points to Spring Data JDBC #26741
    • Clarify when a connection pool is created for Redis #26735
    • Polish description of server.servlet.session.cookie.domain #26717
    • Document Kubernetes terminationGracePeriodSeconds #26701
    • Correct Kotlin version requirements in documentation #26655
    • Document spring.profiles.default property #26654
    • Add link to Maven Git Commit Id Plugin #26635
    • Rework build-image-customization table in docs #25739

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.89 #26798
    • Upgrade to Couchbase Client 3.1.6 #26799
    • Upgrade to Dropwizard Metrics 4.1.22 #26800
    • Upgrade to Ehcache3 3.9.4 #26801
    • Upgrade to Git Commit ID Plugin 4.0.5 #26845
    • Upgrade to Gson 2.8.7 #26802
    • Upgrade to Hibernate 5.4.32.Final #26803
    • Upgrade to Infinispan 12.1.4.Final #26804
    • Upgrade to JBoss Logging 3.4.2.Final #26805
    • Upgrade to Jetty 9.4.42.v20210604 #26838
    • Upgrade to Jetty Reactive HTTPClient 1.1.9 #26837
    • Upgrade to Johnzon 1.2.13 #26806
    • Upgrade to jOOQ 3.14.11 #26807
    • Upgrade to Kotlin 1.5.10 #26652
    • Upgrade to Neo4j Java Driver 4.2.6 #26808
    • Upgrade to RSocket 1.1.1 #26839
    • Upgrade to Spring AMQP 2.3.8 #26764
    • Upgrade to Spring Framework 5.3.8 #26761
    • Upgrade to Spring Kafka 2.7.2 #26765
    • Upgrade to Undertow 2.2.8.Final #26809

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.7(Jun 10, 2021)

    :beetle: Bug Fixes

    • MetricsRestTemplateCustomizer and LocalHostUriTemplateHandler cannot be used together when building a RestTemplate with RestTemplateBuilder #26826
    • CompositeHealth.getDetails() does not serialize if MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS is disabled #26822
    • A spring.config.import declared in an application-.properties file calls ConfigDataLocationResolver.resolveProfileSpecific #26753
    • A spring.config.import declared in an application.properties file also attempts to import profile-specific files #26752
    • Jar startup fails on JDK 11 with a SecurityManager enabled #26743
    • Possible divide by zero bugs when using RandomValuePropertySource #26738
    • LoggingSystem should not return LogbackLoggingSystem if logback-classic is not available #26724
    • bootBuildImage runs forever when a custom image name is used and the version contains an illegal character #26702
    • Non-static nested @Configuration in JerseySameManagementContextConfiguration #26696
    • Gradle plugin does not provided public constant for the productionRuntimeClasspath configuration #26686
    • No subdirectories found for mandatory directory location 'file:./config/*/' is thrown when config dir exists #26627
    • Auto-configured resource handlers don't get applied to child contexts #26622
    • Profile-specific property files are incorrectly ordered when both '.' and './config' folders are used in the same application #26593
    • SingleSignOnService Binding from SAML IdP metadata gets overridden by default #26454

    :notebook_with_decorative_cover: Documentation

    • Link to Spring Data JPA points to Spring Data JDBC #26740
    • Clarify when a connection pool is created for Redis #26734
    • Polish description of server.servlet.session.cookie.domain #26716
    • Document Kubernetes terminationGracePeriodSeconds #26700
    • Document spring.profiles.default property #26653
    • Correct Kotlin version requirements in documentation #26421

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.89 #26783
    • Upgrade to Dropwizard Metrics 4.1.22 #26784
    • Upgrade to Ehcache3 3.9.4 #26785
    • Upgrade to Gson 2.8.7 #26786
    • Upgrade to Hibernate 5.4.32.Final #26787
    • Upgrade to JBoss Logging 3.4.2.Final #26788
    • Upgrade to Jetty 9.4.42.v20210604 #26834
    • Upgrade to Jetty Reactive HTTPClient 1.1.9 #26833
    • Upgrade to Johnzon 1.2.13 #26789
    • Upgrade to jOOQ 3.14.11 #26790
    • Upgrade to Neo4j Java Driver 4.1.3 #26835
    • Upgrade to RSocket 1.1.1 #26836
    • Upgrade to Spring AMQP 2.3.8 #26762
    • Upgrade to Spring Framework 5.3.8 #26760
    • Upgrade to Spring Kafka 2.6.9 #26763
    • Upgrade to Undertow 2.2.8.Final #26791

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.3.12.RELEASE(Jun 10, 2021)

    :beetle: Bug Fixes

    • MetricsRestTemplateCustomizer and LocalHostUriTemplateHandler cannot be used together when building a RestTemplate with RestTemplateBuilder #26812
    • CompositeHealth.getDetails() does not serialize if MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS is disabled #26797
    • LoggingSystem should not return LogbackLoggingSystem if logback-classic is not available #26711
    • Non-static nested @Configuration in JerseySameManagementContextConfiguration #26695
    • Possible divide by zero bugs when using RandomValuePropertySource #26628
    • Auto-configured resource handlers don't get applied to child contexts #25743
    • Jar startup fails on JDK 11 with a SecurityManager enabled #25538
    • bootBuildImage runs forever when a custom image name is used and the version contains an illegal character #23115

    :notebook_with_decorative_cover: Documentation

    • Link to Spring Data JPA points to Spring Data JDBC #26736
    • Clarify when a connection pool is created for Redis #26733
    • Polish description of server.servlet.session.cookie.domain #26713
    • Document spring.profiles.default property #26592
    • Document Kubernetes terminationGracePeriodSeconds #26469

    :hammer: Dependency Upgrades

    • Upgrade to AppEngine SDK 1.9.89 #26776
    • Upgrade to Dropwizard Metrics 4.1.22 #26777
    • Upgrade to Gson 2.8.7 #26778
    • Upgrade to Hibernate 5.4.32.Final #26779
    • Upgrade to JBoss Logging 3.4.2.Final #26780
    • Upgrade to Jetty 9.4.42.v20210604 #26830
    • Upgrade to Jetty Reactive HTTPClient 1.1.9 #26829
    • Upgrade to Johnzon 1.2.13 #26781
    • Upgrade to Neo4j OGM 3.2.24 #26831
    • Upgrade to RSocket 1.0.5 #26832
    • Upgrade to Spring AMQP 2.2.18 #26770
    • Upgrade to Spring Integration 5.3.8 #26772
    • Upgrade to Spring Kafka 2.5.14 #26771

    :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(May 20, 2021)

    For full upgrade instructions and new and noteworthy features please see the release notes.

    :beetle: Bug Fixes

    • Auto-configured resource handlers don't get applied to child contexts #26623
    • Actuator doesn't use the CORS Configuration with default security configuration and Spring Webflux #26614
    • Actuator doesn't use the CORS Configuration with default security configuration and Spring MVC #26612
    • SpringApplication additional profiles and active profiles ordering changed with Spring Boot 2.4 #26610
    • An active request delays Jetty's shutdown by 30 seconds #26608
    • SmartInitializingSingleton beans are not working with lazy initialization #26606
    • MVC and WebFlux metrics filters adversely affect the response when metrics recording fails #26596
    • ConfigDataResolvers cannot signal that they should be skipped #26585
    • Remote devtools endpoint cannot be accessed if actuator and spring security are on the classpath #26584
    • The error message when a wildcard directory location does not match any files is misleading #26583
    • Mandatory locations with pattern fail with exception #26582
    • Non-optional locations with wildcards fail if no files are contributed #26581
    • Profiles programmatically set on the Envionment are no longer merged with active profile properties #26580
    • Use of spring.profiles.include in a profile-specific document is not detected when it's configured as a YAML list #26575
    • ConfigurationProperties is retrieved via classpath scanning but does not indicate it should be indexed #26463
    • BufferingApplicationStartup fails with NoSuchElementException #26458
    • Building an image fails when using a custom buildpack image with long file names #26445
    • Additional profiles are processed too late when legacy processing is used #26434
    • Config data location does not exist error can be thrown if a profile-specific properties file is directly imported #26402
    • StandardConfigDataLoader can import profile specific files in incorrect order #26401
    • Resolvability and consumability of productionRuntimeClasspath are not aligned with runtimeClasspath #26365
    • ObjectMapper provided by JacksonAutoConfiguration via JacksonClusterEnvironmentBuilderCustomizer breaks Couchbase driver #26363
    • Empty value in spring.config.import causes NullPointerException #26346
    • @DataRedisTest does not consider RedisReactiveAutoConfiguration #26328
    • When a single bean causes a dependency cycle the failure analysis does not clearly illustrate the cycle #26323
    • SpringBootConfiguration is retrieved via classpath scanning but does not indicate it should be indexed #26318
    • Maven spring-boot:build-image ignores ZIP layout #26313
    • bootBuildImage does not pick up targetCompatibility when it's configured after task is customised #26301
    • Configuration item metadata ordering is not consistent #26277
    • @EnableAutoConfiguration and @ImportAutoConfiguration use different class loaders to find candidate configurations #26237
    • 'spring.web.resources.cache.use-last-modified=false' doesn't work with Spring MVC #26233
    • Restore support for binding configuration properties from RandomValuePropertySource #26201
    • @Scheduled method not triggered when spring.main.lazy-initialization=true #26156
    • When classes in spring-core and spring-boot are loaded by different ClassLoaders, spring-boot cannot find its own config data location resolvers #26155
    • ConfigFileApplicationListener#loadPostProcessors can not load EnvironmentPostProcessor in child classLoader #26126

    :notebook_with_decorative_cover: Documentation

    • Info endpoint in reference doc has outdated defaults #26591
    • Update documentation following the release of Spock Framework 2.0 #26586
    • Update Gradle docs to use module replacement rather than dependency substitution #26526
    • Improve documentation of TestRestTemplate's fault tolerance #26522
    • Document that the heap dump endpoint requires a HotSpot JVM #26474
    • Suggest enabling the default servlet when using Jersey as a filter #26452
    • Document support for Gradle 6.9 #26409
    • Fix wrong reference to Cassandra in DockerImageNames#couchbase #26406
    • PDF documentation include hidden code elements #26373
    • Move Working with the Code from CONTRIBUTING.adoc to the wiki #26334
    • Fix typo in NamedContributors Javadoc #26325
    • Polish README #26320
    • Fix link to Webservices reference docs #26316
    • Document property names to enable reactive health indicators #26299
    • Documentation has wrong key for DataSourceHealthIndicator #26283
    • Reorder a few howtos #26262
    • Align documentation with main default branch name #26257
    • Align Maven version in system requirements with what is actually tested #26211
    • Document that MeterFilters are only applied to the Spring-managed MeterRegistry #26186
    • Use new update site for Spring Java Format's Eclipse plugin #26172
    • spring.profiles.include has outdated sourceType in configuration metadata #26165
    • Include spring.profiles.group in additional-spring-configuration-metadata.json #26164
    • Enhance multiple entity manager factories online documentation #26160
    • SQL init schema-locations and data-locations are missing metadata to cause them to be handled as Resources #26154
    • Replacements for spring.datasource.schema and spring.datasource.data are documented incorrectly #26150

    :hammer: Dependency Upgrades

    • Upgrade to ActiveMQ 5.16.2 #26528
    • Upgrade to Caffeine 2.9.1 #26529
    • Upgrade to Cassandra Driver 4.11.1 #26530
    • Upgrade to Couchbase Client 3.1.5 #26531
    • Upgrade to Dropwizard Metrics 4.1.21 #26532
    • Upgrade to Ehcache 2.10.9.2 #26533
    • Upgrade to Ehcache3 3.9.3 #26534
    • Upgrade to Elasticsearch 7.12.1 #26535
    • Upgrade to Glassfish JAXB 2.3.4 #26536
    • Upgrade to Groovy 3.0.8 #26537
    • Upgrade to Hazelcast 4.1.3 #26538
    • Upgrade to Hibernate 5.4.31.Final #26539
    • Upgrade to HttpClient5 5.0.4 #26540
    • Upgrade to HttpCore5 5.1.1 #26541
    • Upgrade to Infinispan 12.1.3.Final #26542
    • Upgrade to Janino 3.1.4 #26543
    • Upgrade to JBoss Transaction SPI 7.6.1.Final #26544
    • Upgrade to Jedis 3.6.0 #26545
    • Upgrade to Jetty 9.4.41.v20210516 #26603
    • Upgrade to Jetty Reactive HTTPClient 1.1.8 #26546
    • Upgrade to Johnzon 1.2.11 #26548
    • Upgrade to jOOQ 3.14.9 #26549
    • Upgrade to Json-smart 2.4.7 #26550
    • Upgrade to JUnit Jupiter 5.7.2 #26551
    • Upgrade to Kafka 2.7.1 #26552
    • Upgrade to Kotlin 1.5.0 #26553
    • Upgrade to Kotlin Coroutines 1.5.0 #26568
    • Upgrade to Lettuce 6.1.2.RELEASE #26554
    • Upgrade to Liquibase 4.3.5 #26555
    • Upgrade to MariaDB 2.7.3 #26556
    • Upgrade to Micrometer 1.7.0 #26379
    • Upgrade to MySQL 8.0.25 #26557
    • Upgrade to Neo4j Java Driver 4.2.5 #26558
    • Upgrade to Netty 4.1.65.Final #26604
    • Upgrade to Netty tcNative 2.0.39.Final #26560
    • Upgrade to Pooled JMS 1.2.2 #26561
    • Upgrade to Postgresql 42.2.20 #26562
    • Upgrade to R2DBC Bom Arabba-SR10 #26563
    • Upgrade to Reactor 2020.0.7 #26359
    • Upgrade to SAAJ Impl 1.5.3 #26564
    • Upgrade to Solr 8.8.2 #26565
    • Upgrade to Spring AMQP 2.3.7 #26384
    • Upgrade to Spring Batch 4.3.3 #26392
    • Upgrade to Spring Data 2021.0.1 #26382
    • Upgrade to Spring Framework 5.3.7 #26361
    • Upgrade to Spring HATEOAS 1.3.1 #26380
    • Upgrade to Spring Integration 5.5.0 #26388
    • Upgrade to Spring Kafka 2.7.1 #26386
    • Upgrade to Spring LDAP 2.3.4 #26394
    • Upgrade to Spring Security 5.5.0 #26387
    • Upgrade to Spring Session 2021.0.0 #26389
    • Upgrade to Spring WS 3.1.1 #26390
    • Upgrade to Thymeleaf Layout Dialect 2.5.3 #26566
    • Upgrade to Tomcat 9.0.46 #26567

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.4.6(May 20, 2021)

    :beetle: Bug Fixes

    • Actuator doesn't use the CORS Configuration with default security configuration and Spring MVC #26611
    • An active request delays Jetty's shutdown by 30 seconds #26607
    • SmartInitializingSingleton beans are not working with lazy initialization #26605
    • MVC and WebFlux metrics filters adversely affect the response when metrics recording fails #26595
    • Mandatory locations with pattern fail with exception #26577
    • Non-optional locations with wildcards fail if no files are contributed #26468
    • ConfigurationProperties is retrieved via classpath scanning but does not indicate it should be indexed #26462
    • The error message when a wildcard directory location does not match any files is misleading #26415
    • StandardConfigDataLoader can import profile specific files in incorrect order #26400
    • Resolvability and consumability of productionRuntimeClasspath are not aligned with runtimeClasspath #26364
    • Empty value in spring.config.import causes NullPointerException #26342
    • @DataRedisTest does not consider RedisReactiveAutoConfiguration #26327
    • When a single bean causes a dependency cycle the failure analysis does not clearly illustrate the cycle #26322
    • SpringBootConfiguration is retrieved via classpath scanning but does not indicate it should be indexed #26317
    • Maven spring-boot:build-image ignores ZIP layout #26312
    • bootBuildImage does not pick up targetCompatibility when it's configured after task is customised #26300
    • Configuration item metadata ordering is not consistent #26275
    • @EnableAutoConfiguration and @ImportAutoConfiguration use different class loaders to find candidate configurations #26236
    • 'spring.web.resources.cache.use-last-modified=false' doesn't work with Spring MVC #26212
    • Use of spring.profiles.include in a profile-specific document is not detected when it's configured as a YAML list #26205
    • SpringApplication additional profiles and active profiles ordering changed with Spring Boot 2.4 #26189
    • Profiles programmatically set on the Envionment are no longer merged with active profile properties #26151
    • When classes in spring-core and spring-boot are loaded by different ClassLoaders, spring-boot cannot find its own config data location resolvers #26149
    • Config data location does not exist error can be thrown if a profile-specific properties file is directly imported #26147
    • Profile cannot easily be deduced from StandardConfigDataResource #25940
    • ConfigDataResolvers cannot signal that they should be skipped #25894
    • Remote devtools endpoint cannot be accessed if actuator and spring security are on the classpath #25868
    • Additional profiles are processed too late when legacy processing is used #25817
    • BufferingApplicationStartup fails with NoSuchElementException #25792
    • @Scheduled method not triggered when spring.main.lazy-initialization=true #25315
    • Actuator doesn't use the CORS Configuration with default security configuration and Spring Webflux #24541

    :notebook_with_decorative_cover: Documentation

    • Update Gradle docs to use module replacement rather than dependency substitution #26525
    • Improve documentation of TestRestTemplate's fault tolerance #26521
    • Document that the heap dump endpoint requires a HotSpot JVM #26473
    • Fix wrong reference to Cassandra in DockerImageNames#couchbase #26405
    • Move Working with the Code from CONTRIBUTING.adoc to the wiki #26333
    • Fix typo in NamedContributors Javadoc #26324
    • Document property names to enable reactive health indicators #26298
    • Documentation has wrong key for DataSourceHealthIndicator #26282
    • Align documentation with main default branch name #26256
    • Align Maven version in system requirements with what is actually tested #26210
    • Document that MeterFilters are only applied to the Spring-managed MeterRegistry #26185
    • Use new update site for Spring Java Format's Eclipse plugin #26171
    • spring.profiles.include has outdated sourceType in configuration metadata #26163
    • Enhance multiple entity manager factories online documentation #26159
    • Include spring.profiles.group in additional-spring-configuration-metadata.json #26127
    • Suggest enabling the default servlet when using Jersey as a filter #25733

    :hammer: Dependency Upgrades

    • Upgrade to ActiveMQ 5.16.2 #26496
    • Upgrade to Dropwizard Metrics 4.1.21 #26497
    • Upgrade to Ehcache 2.10.9.2 #26498
    • Upgrade to Ehcache3 3.9.3 #26499
    • Upgrade to Hibernate 5.4.31.Final #26500
    • Upgrade to Infinispan 11.0.11.Final #26501
    • Upgrade to Janino 3.1.4 #26502
    • Upgrade to JBoss Transaction SPI 7.6.1.Final #26503
    • Upgrade to Jetty 9.4.41.v20210516 #26601
    • Upgrade to Jetty Reactive HTTPClient 1.1.8 #26504
    • Upgrade to Johnzon 1.2.11 #26506
    • Upgrade to jOOQ 3.14.9 #26507
    • Upgrade to Json-smart 2.3.1 #26508
    • Upgrade to JUnit Jupiter 5.7.2 #26509
    • Upgrade to Kafka 2.6.2 #24247
    • Upgrade to Lettuce 6.0.5.RELEASE #26510
    • Upgrade to MariaDB 2.7.3 #26511
    • Upgrade to Micrometer 1.6.7 #26430
    • Upgrade to MySQL 8.0.25 #26512
    • Upgrade to Neo4j Java Driver 4.1.2 #26513
    • Upgrade to Netty 4.1.65.Final #26602
    • Upgrade to Netty tcNative 2.0.39.Final #26514
    • Upgrade to Pooled JMS 1.2.2 #26515
    • Upgrade to Postgresql 42.2.20 #26516
    • Upgrade to R2DBC Bom Arabba-SR10 #26517
    • Upgrade to Reactor 2020.0.7 #26358
    • Upgrade to Spring AMQP 2.3.7 #26383
    • Upgrade to Spring Batch 4.3.3 #26391
    • Upgrade to Spring Data 2020.0.9 #26381
    • Upgrade to Spring Framework 5.3.7 #26360
    • Upgrade to Spring HATEOAS 1.2.6 #26442
    • Upgrade to Spring Integration 5.4.7 #26587
    • Upgrade to Spring Kafka 2.6.8 #26385
    • Upgrade to Spring LDAP 2.3.4 #26393
    • Upgrade to Thymeleaf Layout Dialect 2.5.3 #26518
    • Upgrade to Tomcat 9.0.46 #26519

    :heart: Contributors

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

    Source code(tar.gz)
    Source code(zip)
  • v2.3.11.RELEASE(May 20, 2021)

    :beetle: Bug Fixes

    • SmartInitializingSingleton beans are not working with lazy initialization #26470
    • ConfigurationProperties is retrieved via classpath scanning but does not indicate it should be indexed #26459
    • @DataRedisTest does not consider RedisReactiveAutoConfiguration #26319
    • SpringBootConfiguration is retrieved via classpath scanning but does not indicate it should be indexed #26308
    • bootBuildImage does not pick up targetCompatibility when it's configured after task is customised #26297
    • When a single bean causes a dependency cycle the failure analysis does not clearly illustrate the cycle #26292
    • When a single bean causes a dependency cycle the failure analysis does not clearly illustrate the cycle #26269
    • @EnableAutoConfiguration and @ImportAutoConfiguration use different class loaders to find candidate configurations #26234
    • Configuration item metadata ordering is not consistent #26230
    • Maven spring-boot:build-image ignores ZIP layout #26216
    • Resolvability and consumability of productionRuntimeClasspath are not aligned with runtimeClasspath #25798
    • MVC and WebFlux metrics filters adversely affect the response when metrics recording fails #24151
    • An active request delays Jetty's shutdown by 30 seconds #22689
    • Actuator doesn't use the CORS Configuration with default security configuration and Spring MVC #11987

    :notebook_with_decorative_cover: Documentation

    • Document that the heap dump endpoint requires a HotSpot JVM #26467
    • Fix wrong reference to Cassandra in DockerImageNames#couchbase #26399
    • Move Working with the Code from CONTRIBUTING.adoc to the wiki #26332
    • Fix typo in NamedContributors Javadoc #26321
    • Document property names to enable reactive health indicators #26279
    • Documentation has wrong key for DataSourceHealthIndicator #26268
    • Align documentation with main default branch name #26255
    • Improve documentation of TestRestTemplate's fault tolerance #26227
    • Align Maven version in system requirements with what is actually tested #26209
    • Use new update site for Spring Java Format's Eclipse plugin #26167
    • Update Gradle docs to use module replacement rather than dependency substitution #25944
    • Document that MeterFilters are only applied to the Spring-managed MeterRegistry #25610
    • Enhance multiple entity manager factories online documentation #14928

    :hammer: Dependency Upgrades

    • Upgrade to ActiveMQ 5.15.15 #26481
    • Upgrade to Dropwizard Metrics 4.1.21 #26482
    • Upgrade to Ehcache 2.10.9.2 #26483
    • Upgrade to Hibernate 5.4.31.Final #26484
    • Upgrade to Janino 3.1.4 #26485
    • Upgrade to JBoss Transaction SPI 7.6.1.Final #26486
    • Upgrade to Jetty 9.4.41.v20210516 #26597
    • Upgrade to Jetty Reactive HTTPClient 1.1.8 #26487
    • Upgrade to Johnzon 1.2.11 #26489
    • Upgrade to Json-smart 2.3.1 #26598
    • Upgrade to Micrometer 1.5.14 #26427
    • Upgrade to MySQL 8.0.25 #26490
    • Upgrade to Neo4j OGM 3.2.23 #26599
    • Upgrade to Netty 4.1.65.Final #26600
    • Upgrade to Netty tcNative 2.0.39.Final #26492
    • Upgrade to Postgresql 42.2.20 #26493
    • Upgrade to R2DBC Bom Arabba-SR10 #26494
    • Upgrade to Reactor Dysprosium-SR20 #26424
    • Upgrade to Spring AMQP 2.2.17 #26428
    • Upgrade to Spring Batch 4.2.7 #26426
    • Upgrade to Spring Framework 5.2.15 #26425
    • Upgrade to Spring Kafka 2.5.13 #26429
    • Upgrade to Spring LDAP 2.3.4.RELEASE #25528
    • Upgrade to Tomcat 9.0.46 #26495

    :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-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)
🚀 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 1.6k Sep 9, 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 582 Sep 14, 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 Sep 8, 2021
JavaWeb MemoryShell Inject/Scan/Killer/Protect Research & Exploring

Memory Shell JavaWeb MemoryShell Inject/Scan/Killer/Protect Research & Exploring 文章:JavaWeb 内存马一周目通关攻略 项目介绍 本项目用来学习和研究 JavaWeb 内存马添加和防御模式,共包含以下几个模块。 m

素十八 145 Sep 14, 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 402 Sep 1, 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 339 Sep 8, 2021