:actuator-docs: https://docs.spring.io/spring-boot/docs/2.4.0-SNAPSHOT/actuator-api/html/
:docs: https://docs.spring.io/spring-boot/docs/2.4.x-SNAPSHOT/reference/html/

= Spring Boot 2.4.0 M1 Release Notes



== Upgrading from Spring Boot 2.3



=== JUnit 5's Vintage Engine Removed from `spring-boot-starter-test`
If you upgrade to Spring Boot 2.4 and see test compilation errors for JUnit classes such as `org.junit.Test`, this may be because JUnit 5's vintage engine has been removed from `spring-boot-starter-test`. The vintage engine allows tests written with JUnit 4 to be run by JUnit 5.
If you do not want to migrate your tests to JUnit 5 and wish to continue using JUnit 4, add a dependency on the Vintage Engine, as shown in the following example for Maven:

[source,xml,indent=0,subs="verbatim,quotes,attributes"]
----
<dependency>
    <groupId>org.junit.vintage</groupId>
    <artifactId>junit-vintage-engine</artifactId>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>
----

If you are using Gradle, the equivalent configuration is shown in the following example:

[source,groovy,indent=0,subs="verbatim,quotes,attributes"]
----
testImplementation("org.junit.vintage:junit-vintage-engine") {
    exclude group: "org.hamcrest", module: "hamcrest-core"
}
----


=== Removal of Plugin Management for Flatten Maven Plugin
Spring Boot's build no longer makes use of the Flatten Maven Plugin (`flatten-maven-plugin`) and plugin management for it has been removed. If you were relying on Spring Boot's managed version, you should add your own plugin management.



=== Deprecations from Spring Boot 2.3
Reflecting Spring Boot 2.4's move to a 6-month release cadence, code deprecated in Spring Boot 2.3 will not be removed until Spring Boot 2.5.



=== Minimum requirements changes
None.



== New and Noteworthy
TIP: Check link:Spring-Boot-2.4.0-M1-Configuration-Changelog[the configuration changelog] for a complete overview of the changes in configuration.



=== Spring Framework 5.3-M1
Spring Boot 2.4 will include Spring Framework 5.3, and this milestone upgrades to Spring Framework 5.3.0-M1. Please refer to https://spring.io/blog/2020/06/25/first-spring-framework-5-3-milestone-released[this blog post] to learn more.



=== Spring Data 2020.0-M1
Spring Boot 2.4 will include version 2020.0 (code-named Ockham) of the Spring Data release train, and this milestone includes M1. Please see https://spring.io/blog/2020/06/25/first-milestone-of-spring-data-2020-0-available[this blog post] to learn more.



=== Spring Batch 4.3.0-M1
Spring Boot will include Spring Batch 4.3, and this milestone upgrades to Spring Batch 4.3.0-M1. Please refer to https://spring.io/blog/2020/06/26/spring-batch-4-3-0-m1-is-released-now[this blog post] to learn about what's new in Spring Boot 4.3.0-M1.



=== Preliminary support for JDK 15
Spring Boot 2.4 is https://ci.spring.io/teams/spring-boot/pipelines/spring-boot-2.4.x/jobs/jdk15-build/builds/51[tested] against JDK 15 early-access builds. Full support will be provided once JDK 15 reaches general availability, at which point official support for JDK 14 will be dropped.


=== Configuration property for H2 Console's web admin password
A new configuration property, `spring.h2.console.settings.webAdminPassword`, for configuring H2 Console's web admin password has been introduced. The password controls access to the console's preferences and tools.



=== CqlSession-Based Health Indicators for Apache Cassandra
New `CqlSession` based health indicators, `CassandraDriverHealthIndicator` and `CassandraDriverReactiveHealthIndicator`, have been introduced. One of these indicators will be auto-configured when Cassandra's Java Driver is on the classpath but Spring Data Cassandra is not. When Spring Data Cassandra is present on the classpath, the existing Spring Data Cassandra-based health indicators are used as before.



=== Filtered Scraping with Prometheus
The Actuator's Prometheus endpoint, `/actuator/prometheus`, now supports an `includedNames` query parameter that can be used to filter the samples that are included in the response. See the {actuator-docs}#prometheus-retrieving-names[Actuator API documentation] for further details.



=== Dependency Upgrades
Spring Boot 2.4 moves to new versions of several Spring projects:

- Reactor 2020.0
- Spring AMQP 2.3
- Spring Batch 4.3
- Spring Data 2020.0
- Spring Integration 5.4
- Spring Retry 1.3
- Spring Security 5.4
- Spring Session 2020.0

Numerous third-party dependencies have also been updated, some of the more noteworthy of which are the following:

- Artemis 2.13
- Cassandra Driver 4.7
- Flyway 6.5
- Jersey 2.31
- Liquibase 3.10
- Oracle Database 19.7



=== Miscellaneous
Apart from the changes listed above, there have also been lots of minor tweaks and improvements including:

- Version of the JVM on which the application is running is now logged on startup
- Trailing whitespace is automatically trimmed from the value of `logging.config`.



== Deprecations in Spring Boot 2.4.0 M1
None.

