Change preference of session store implementations

The order has been determined based on usage statistics.

Closes gh-27756
This commit is contained in:
Madhura Bhave
2022-07-20 15:35:22 -07:00
parent 6f65777035
commit 4057dd198b
5 changed files with 15 additions and 15 deletions

View File

@@ -116,8 +116,8 @@ public class SessionAutoConfiguration {
@Configuration(proxyBeanMethods = false)
@ConditionalOnMissingBean(SessionRepository.class)
@Import({ RedisSessionConfiguration.class, MongoSessionConfiguration.class, HazelcastSessionConfiguration.class,
JdbcSessionConfiguration.class })
@Import({ RedisSessionConfiguration.class, JdbcSessionConfiguration.class, HazelcastSessionConfiguration.class,
MongoSessionConfiguration.class })
static class ServletSessionRepositoryConfiguration {
}

View File

@@ -58,9 +58,9 @@ class SessionAutoConfigurationHazelcastTests extends AbstractSessionAutoConfigur
}
@Test
void hazelcastTakesPrecedenceOverJdbc() {
void hazelcastTakesPrecedenceOverMongo() {
this.contextRunner.withClassLoader(
new FilteredClassLoader(RedisIndexedSessionRepository.class, MongoIndexedSessionRepository.class))
new FilteredClassLoader(RedisIndexedSessionRepository.class, JdbcIndexedSessionRepository.class))
.run(this::validateDefaultConfig);
}

View File

@@ -74,6 +74,12 @@ class SessionAutoConfigurationJdbcTests extends AbstractSessionAutoConfiguration
this.contextRunner.run(this::validateDefaultConfig);
}
@Test
void jdbcTakesPrecedenceOverMongoAndHazelcast() {
this.contextRunner.withClassLoader(new FilteredClassLoader(RedisIndexedSessionRepository.class))
.run(this::validateDefaultConfig);
}
private void validateDefaultConfig(AssertableWebApplicationContext context) {
JdbcIndexedSessionRepository repository = validateSessionRepository(context,
JdbcIndexedSessionRepository.class);

View File

@@ -63,12 +63,6 @@ class SessionAutoConfigurationMongoTests extends AbstractSessionAutoConfiguratio
this.contextRunner.run(validateSpringSessionUsesMongo("sessions"));
}
@Test
void mongoTakesPrecedenceOverJdbcAndHazelcast() {
this.contextRunner.withClassLoader(new FilteredClassLoader(RedisIndexedSessionRepository.class))
.run(validateSpringSessionUsesMongo("sessions"));
}
@Test
void defaultConfigWithCustomTimeout() {
this.contextRunner.withPropertyValues("spring.session.timeout=1m")