Upgrade to Spring Framework 6.0

Closes gh-1950
This commit is contained in:
Eleftheria Stein
2021-11-12 10:12:44 +01:00
parent f697850d23
commit a9b9ae347f
3 changed files with 8 additions and 34 deletions

View File

@@ -3,9 +3,9 @@ dependencyManagement {
mavenBom 'io.projectreactor:reactor-bom:2020.0.12' mavenBom 'io.projectreactor:reactor-bom:2020.0.12'
mavenBom 'com.fasterxml.jackson:jackson-bom:2.11.2' mavenBom 'com.fasterxml.jackson:jackson-bom:2.11.2'
mavenBom 'org.junit:junit-bom:5.8.1' mavenBom 'org.junit:junit-bom:5.8.1'
mavenBom 'org.springframework:spring-framework-bom:5.3.11'
mavenBom 'org.springframework.data:spring-data-bom:2021.1.0-RC1' mavenBom 'org.springframework.data:spring-data-bom:2021.1.0-RC1'
mavenBom 'org.springframework.security:spring-security-bom:5.6.0-RC1' mavenBom 'org.springframework.security:spring-security-bom:5.6.0-RC1'
mavenBom 'org.springframework:spring-framework-bom:6.0.0-SNAPSHOT'
mavenBom 'org.testcontainers:testcontainers-bom:1.16.0' mavenBom 'org.testcontainers:testcontainers-bom:1.16.0'
} }

View File

@@ -64,9 +64,9 @@ Spring Session is Open Source software released under the https://www.apache.org
The minimum requirements for Spring Session are: The minimum requirements for Spring Session are:
* Java 8+. * Java 17+.
* If you run in a Servlet Container (not required), Servlet 3.1+. * If you run in a Servlet Container (not required), Servlet 3.1+.
* If you use other Spring libraries (not required), the minimum required version is Spring 5.0.x. * If you use other Spring libraries (not required), the minimum required version is Spring 6.0.x.
* `@EnableRedisHttpSession` requires Redis 2.8+. This is necessary to support xref:api.adoc#api-redisindexedsessionrepository-expiration[Session Expiration] * `@EnableRedisHttpSession` requires Redis 2.8+. This is necessary to support xref:api.adoc#api-redisindexedsessionrepository-expiration[Session Expiration]
* `@EnableHazelcastHttpSession` requires Hazelcast 3.6+. This is necessary to support xref:api.adoc#api-enablehazelcasthttpsession-storage[`FindByIndexNameSessionRepository`] * `@EnableHazelcastHttpSession` requires Hazelcast 3.6+. This is necessary to support xref:api.adoc#api-enablehazelcasthttpsession-storage[`FindByIndexNameSessionRepository`]

View File

@@ -1,46 +1,20 @@
[[upgrading-2.0]] [[upgrading-3.0]]
= Upgrading to 2.x = Upgrading to 3.x
With the new major release version, the Spring Session team took the opportunity to make some non-passive changes. With the new major release version, the Spring Session team took the opportunity to make some non-passive changes.
The focus of these changes is to improve and harmonize Spring Session's APIs as well as remove the deprecated components. The focus of these changes is to improve and harmonize Spring Session's APIs as well as remove the deprecated components.
== Baseline Update == Baseline Update
Spring Session 2.0 requires Java 8 and Spring Framework 5.0 as a baseline, since its entire codebase is now based on Java 8 source code. Spring Session 3.0 requires Java 17 and Spring Framework 6.0 as a baseline, since its entire codebase is now based on Java 17 source code.
See https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-5.x[Upgrading to Spring Framework 5.x] for more on upgrading Spring Framework. See https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-5.x[Upgrading to Spring Framework 5.x] for more on upgrading Spring Framework.
== Replaced and Removed Modules
As a part of the project's splitting of the modules, the existing `spring-session` has been replaced with the `spring-session-core` module.
The `spring-session-core` module holds only the common set of APIs and components, while other modules contain the implementation of the appropriate `SessionRepository` and functionality related to that data store.
This applies to several existing modules that were previously a simple dependency aggregator helper module.
With new module arrangement, the following modules actually carry the implementation:
* Spring Session for MongoDB
* Spring Session for Redis
* Spring Session JDBC
* Spring Session Hazelcast
Also, the following were removed from the main project repository:
* Spring Session Data GemFire
** https://github.com/spring-projects/spring-session-data-geode[`spring-session-data-geode`]
== Replaced and Removed Packages, Classes, and Methods == Replaced and Removed Packages, Classes, and Methods
The following changes were made to packages, classes, and methods: The following changes were made to packages, classes, and methods:
* `ExpiringSession` API has been merged into the `Session` API.
* The `Session` API has been enhanced to make full use of Java 8.
* The `Session` API has been extended with `changeSessionId` support.
* The `SessionRepository` API has been updated to better align with Spring Data method naming conventions.
* `AbstractSessionEvent` and its subclasses are no longer constructable without an underlying `Session` object.
* The Redis namespace used by `RedisOperationsSessionRepository` is now fully configurable, instead of being partially configurable.
* Redis configuration support has been updated to avoid registering a Spring Session-specific `RedisTemplate` bean.
* JDBC configuration support has been updated to avoid registering a Spring Session-specific `JdbcTemplate` bean.
* Previously deprecated classes and methods have been removed across the codebase
== Dropped Support == Dropped Support
As a part of the changes to `HttpSessionStrategy` and its alignment to the counterpart from the reactive world, the support for managing multiple users' sessions in a single browser instance has been removed.
The introduction of a new API to replace this functionality is under consideration for future releases.