Commit Graph

155 Commits

Author SHA1 Message Date
Marcus Hert Da Coregio
97c3853b12 Merge branch '3.1.x' into 3.2.x
Closes gh-2816
2024-02-23 14:17:57 -03:00
Marcus Hert Da Coregio
4920499bd2 Fix issue where application fails to start with multiple TransactionManager beans
Prior to this commit, if an application had multiple PlatformTransactionManager beans it would fail to start even when configuring a proper TransactionOperations qualified bean.
This commit introduces the @SpringSessionTransactionManager bean qualifier to specify which bean should be injected into Spring Session JDBC configuration, if no bean specified, it tries to resolve a unique PlatformTransactionManager bean from the application context to maintain backward compatibility.

Closes gh-2801
2024-02-23 14:15:14 -03:00
Marcus Da Coregio
4e63eae0aa Merge branch '3.1.x'
Closes gh-2530
2023-10-19 10:35:43 -03:00
Marcus Da Coregio
44330c5107 Merge branch '3.0.x' into 3.1.x
Closes gh-2529
2023-10-19 10:34:23 -03:00
Marcus Da Coregio
2b69cff478 Update spring-javaformat to 0.0.39
Closes gh-2528
2023-10-19 10:33:00 -03:00
Marcus Da Coregio
27782d659b Merge branch '3.1.x'
Closes gh-2492
2023-10-18 11:07:52 -03:00
Marcus Da Coregio
dfd21865cd Merge branch '3.0.x' into 3.1.x
Closes gh-2491
2023-10-18 11:05:48 -03:00
Marcus Da Coregio
047839e3f2 Use Gradle Version Catalog
Closes gh-2490
2023-10-18 11:01:56 -03:00
Yanming Zhou
11ce4b4561 Polishing
1. fix deprecations
2. fix generics
3. use lambda instead of anonymous class
4. mark some fields as final
2023-10-03 10:24:29 -03:00
Yanming Zhou
f7662b03b3 Continue renaming SessionIdGenerationStrategy to SessionIdGenerator 2023-08-16 11:26:30 -03:00
Marcus Da Coregio
2d4233fcfd Rename SessionIdGenerationStrategy to SessionIdGenerator
Closes gh-2391
2023-08-03 13:44:42 -03:00
Marcus Da Coregio
9292a72b60 Specify driver class name 2023-07-18 13:27:22 -03:00
Marcus Da Coregio
d547b33962 Introduce SessionIdGenerationStrategy
Closes gh-11
2023-07-13 09:48:44 -03:00
Marcus Da Coregio
cf84ac7ec9 Introduce Utility Method to Replace Default Table Name
Closes gh-2256
2023-03-15 12:02:44 -03:00
Rob Winch
31d4a766eb Update to derby 10.16.1.1
Closes gh-2183
2022-10-17 22:48:18 -05:00
Vedran Pavic
668f85788a Avoid inheritance in configuration classes
This commit restructures configuration classes to avoid inheritance, where possible. This should provide more flexibility when composing custom configurations.

Closes gh-1415
2022-10-17 21:52:58 -05:00
Vedran Pavic
009cb5b592 Fix max inactive interval setters backwards compatibility
This commit restores integer based max inactive interval setters across all session repositories, that were migrated to java.time in 6d74cf5f.

This change caused problems building our Spring Boot based samples, as Spring Boot auto-configuration has move to session repository customizer based approach and is therefore using max inactive interval setters directly on session repository implementations.
2022-10-07 07:56:25 -05:00
Vedran Pavic
6d74cf5f35 Use java.time in all session repositories and configurations
This commit reworks all session repository implementations and their respective configurations to use java.time for managing maxInactiveInterval and other temporal values.
2022-10-06 10:26:50 -05:00
Vedran Pavic
da8e5fbbac Ensure configuration classes can be used with @Import
This commit adds tests that verify that all Spring Session configuration classes can be used with @Import, and fixes JDBC and Hazelcast HttpSession configurations and Redis WebSession configuration.
2022-09-26 09:01:09 -05:00
Vedran Pavic
954a40f5d1 Simplify expired session cleanup jobs
At present, RedisIndexedHttpSessionConfiguration and JdbcHttpSessionConfiguration include [at]EnableScheduling annotated inner configuration classes that configure expired session cleanup jobs. This approach silently opts in users into general purpose task scheduling support provided by Spring Framework, which isn't something a library should do. Ideally, session cleanup jobs should only require a single thread dedicated to their execution and also one that doesn't compete for resources with general purpose task scheduling.

This commit updates RedisIndexedSessionRepository and JdbcIndexedSessionRepository to have them manage their own ThreadPoolTaskScheduler for purposes of running expired session cleanup jobs.

Closes gh-2136
2022-09-23 15:23:29 -05:00
Vedran Pavic
fb66cf3150 Remove @Configuration meta-annotation from @Enable*Session annotations
Closes gh-1361
2022-09-22 16:13:16 -05:00
Marcus Da Coregio
baed403a6a Polish SessionJdbcRuntimeHints
Issue gh-2103
2022-09-21 09:12:24 -03:00
Vedran Pavic
8e8de48614 Fix deprecation warnings 2022-09-06 15:27:53 -05:00
Vedran Pavic
9524730ab1 Update integration tests
This commit updates Docker images used in all the integration tests. Additionally, it updates JDBC session repository Oracle integration tests to run unconditionally.
2022-08-30 21:48:39 -05:00
Vedran Pavic
2191c6f296 Use text blocks for SQL statements
With Java 17 now being the baseline, strings containing SQL statements
can be managed more conveniently using text blocks.
2022-08-30 21:44:38 -05:00
Vedran Pavic
b20b08e020 Remove deprecated code in spring-session-jdbc 2022-08-19 13:31:44 -05:00
Marcus Da Coregio
cc4a15db79 Use SQLErrorCodeSQLExceptionTranslator in JdbcTemplate
Closes gh-2108
2022-07-20 09:13:30 -03:00
Marcus Da Coregio
65b994cad1 Polish RuntimeHintsRegistrar
Add RuntimeHints suffix to classes
Make classes package-private
Use ReflectionUtilsPredicates#serialization

Closes gh-2111
Closes gh-2112
2022-07-18 09:06:57 -03:00
Marcus Da Coregio
dc2e93f198 Add native-image support for Session JDBC
Closes gh-2103
2022-07-08 11:08:33 -03:00
Marcus Da Coregio
00d248b0b5 Fix failing tests
Issue gh-2107
2022-07-08 11:07:02 -03:00
Felix Scheinost
cde256e1a3 Fix bug in JDBC SaveMode.ON_GET_ATTRIBUTE
Closes gh-2040
2022-04-08 17:20:46 +02:00
Eleftheria Stein
304a6762b6 Update license acceptance for test container 2022-01-18 10:11:54 +01:00
Eleftheria Stein
88aa71b3f3 Upgrade test dependencies 2022-01-17 14:17:37 +01:00
Eleftheria Stein
182d24219c Migrate to Jakarta EE 9
Closes gh-1949
2021-11-11 18:21:26 +01:00
Eleftheria Stein
5fdbfce4c2 Update Gradle to 7.2
Closes gh-1944
2021-11-02 14:28:31 +01:00
Eleftheria Stein
84fab2e2a9 Add buildSrc including build conventions plugins
Closes gh-1942
2021-10-29 13:30:29 +02:00
Eleftheria Stein
845c7aca84 Upgrade test dependencies 2021-10-19 11:14:03 +02:00
Eleftheria Stein
cae8b51eab Upgrade test dependencies 2021-08-17 15:14:03 +02:00
Eleftheria Stein
2236449635 Revert "Upgrade test dependencies"
This reverts commit 9fde87c11b.
2021-08-17 14:07:13 +02:00
Eleftheria Stein
9fde87c11b Upgrade test dependencies 2021-08-17 13:23:08 +02:00
Eleftheria Stein
9e2b729d62 Upgrade test dependencies 2021-05-17 17:45:47 +02:00
Eleftheria Stein
4bb2bd6fda JDBC session with negative timeout should never expire
Closes gh-1847
2021-05-10 16:38:30 +02:00
Vedran Pavic
2aae51b1a1 Rationalize JDBC integration tests
This commit reduces the JDBC integration tests to only single (latest) version per RDBMS vendor, due to a growing number of integration tests. Additionally, the configuration of most containers is simplified due to improved defaults within the Testcontainers library.
2020-11-28 00:26:17 +01:00
Vedran Pavic
e721efeb85 Optimize insert attribute statement in JdbcIndexedSessionRepository
At present, the SQL statement used to insert a session attribute record contains a nested select statement that verifies the existence of parent record in the session table. Such approach can be susceptible to deadlocks on certain RDMBSs.

This commit optimizes the SQL statement used to insert session attribute so that it doesn't perform a nested select statement.

Closes: #1550
2020-11-28 00:26:17 +01:00
Vedran Pavic
0111c6e686 Provide database specific JdbcIndexedSessionRepository customizers
This commit provides JdbcIndexedSessionRepository customizers for the following SQL dialects:

- PostgreSQL
- MySQL (also used by MariaDB)
- SQL Server
- IBM DB2
- Oracle

These customizers are intended to address the concurrency issues occurring on insert of new session attribute by applying SQL dialect specific SQL upsert/merge statement instead of a generic insert.

Closes: #1213
2020-11-27 23:54:03 +01:00
Eleftheria Stein
b722b12327 Fix formatting
Issue gh-1654
2020-10-30 14:34:37 +01:00
Kohei Tamura
29ff2e47fb Add try-with-resources to methods to insert BLOB 2020-10-30 08:45:52 -04:00
Eleftheria Stein
f1ea71e55e Upgrade test dependencies 2020-06-25 15:41:39 +02:00
Jivko Vantchev
1a07ba5114 Fixes the duplicate index name in the example SQL script
The change is in the comments for the JdbcIndexedSessionRepository.
2020-02-14 12:03:24 +01:00
Vedran Pavic
c88456a183 Rework scheduling configurers into nested configuration
This commit extracts scheduling configurers that are used in Redis and JDBC configurations into nested configuration classes in order to avoid bean method references.

Resolves: #1516
2019-09-30 16:08:55 +02:00