Skip to content

Commit 33dd9d6

Browse files
vpavicphilwebb
authored andcommitted
Remove Spring Session Mongo support
Remove auto-configuration support for Spring Session Mongo since it is no longer supported in Spring Session 2.0. See gh-9011
1 parent 30eba45 commit 33dd9d6

File tree

9 files changed

+6
-122
lines changed

9 files changed

+6
-122
lines changed

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/MongoSessionConfiguration.java

Lines changed: 0 additions & 55 deletions
This file was deleted.

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/SessionAutoConfiguration.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.springframework.boot.autoconfigure.hazelcast.HazelcastAutoConfiguration;
3030
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
3131
import org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration;
32-
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
3332
import org.springframework.boot.autoconfigure.session.SessionAutoConfiguration.SessionConfigurationImportSelector;
3433
import org.springframework.boot.autoconfigure.session.SessionAutoConfiguration.SessionRepositoryValidator;
3534
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -48,6 +47,7 @@
4847
* @author Tommy Ludwig
4948
* @author Eddú Meléndez
5049
* @author Stephane Nicoll
50+
* @author Vedran Pavic
5151
* @since 1.4.0
5252
*/
5353
@Configuration
@@ -56,8 +56,7 @@
5656
@ConditionalOnWebApplication(type = Type.SERVLET)
5757
@EnableConfigurationProperties(SessionProperties.class)
5858
@AutoConfigureAfter({ DataSourceAutoConfiguration.class, HazelcastAutoConfiguration.class,
59-
JdbcTemplateAutoConfiguration.class, MongoAutoConfiguration.class,
60-
RedisAutoConfiguration.class })
59+
JdbcTemplateAutoConfiguration.class, RedisAutoConfiguration.class })
6160
@Import({ SessionConfigurationImportSelector.class, SessionRepositoryValidator.class,
6261
SessionRepositoryFilterConfiguration.class })
6362
public class SessionAutoConfiguration {

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/SessionProperties.java

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,6 @@ public class SessionProperties {
4444

4545
private final Jdbc jdbc = new Jdbc();
4646

47-
private final Mongo mongo = new Mongo();
48-
4947
private final Redis redis = new Redis();
5048

5149
public SessionProperties(ObjectProvider<ServerProperties> serverProperties) {
@@ -78,10 +76,6 @@ public Jdbc getJdbc() {
7876
return this.jdbc;
7977
}
8078

81-
public Mongo getMongo() {
82-
return this.mongo;
83-
}
84-
8579
public Redis getRedis() {
8680
return this.redis;
8781
}
@@ -183,23 +177,6 @@ public void setEnabled(boolean enabled) {
183177

184178
}
185179

186-
public static class Mongo {
187-
188-
/**
189-
* Collection name used to store sessions.
190-
*/
191-
private String collectionName = "sessions";
192-
193-
public String getCollectionName() {
194-
return this.collectionName;
195-
}
196-
197-
public void setCollectionName(String collectionName) {
198-
this.collectionName = collectionName;
199-
}
200-
201-
}
202-
203180
public static class Redis {
204181

205182
/**

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/SessionStoreMappings.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ final class SessionStoreMappings {
3535
static {
3636
Map<StoreType, Class<?>> mappings = new HashMap<>();
3737
mappings.put(StoreType.REDIS, RedisSessionConfiguration.class);
38-
mappings.put(StoreType.MONGO, MongoSessionConfiguration.class);
3938
mappings.put(StoreType.JDBC, JdbcSessionConfiguration.class);
4039
mappings.put(StoreType.HAZELCAST, HazelcastSessionConfiguration.class);
4140
mappings.put(StoreType.HASH_MAP, HashMapSessionConfiguration.class);

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/StoreType.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2016 the original author or authors.
2+
* Copyright 2012-2017 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
2121
*
2222
* @author Tommy Ludwig
2323
* @author Eddú Meléndez
24+
* @author Vedran Pavic
2425
* @since 1.4.0
2526
*/
2627
public enum StoreType {
@@ -30,11 +31,6 @@ public enum StoreType {
3031
*/
3132
REDIS,
3233

33-
/**
34-
* Mongo backed sessions.
35-
*/
36-
MONGO,
37-
3834
/**
3935
* JDBC backed sessions.
4036
*/

spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/SessionAutoConfigurationTests.java

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package org.springframework.boot.autoconfigure.session;
1818

19-
import java.util.Arrays;
2019
import java.util.Collections;
2120
import java.util.EnumSet;
2221

@@ -26,18 +25,13 @@
2625
import org.junit.Test;
2726
import org.junit.rules.ExpectedException;
2827

29-
import org.springframework.beans.DirectFieldAccessor;
3028
import org.springframework.beans.factory.BeanCreationException;
31-
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
32-
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
33-
import org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration;
3429
import org.springframework.boot.web.servlet.FilterRegistrationBean;
3530
import org.springframework.context.annotation.Bean;
3631
import org.springframework.context.annotation.Configuration;
3732
import org.springframework.session.ExpiringSession;
3833
import org.springframework.session.MapSessionRepository;
3934
import org.springframework.session.SessionRepository;
40-
import org.springframework.session.data.mongo.MongoOperationsSessionRepository;
4135
import org.springframework.session.web.http.SessionRepositoryFilter;
4236
import org.springframework.test.util.ReflectionTestUtils;
4337

@@ -49,6 +43,7 @@
4943
* @author Dave Syer
5044
* @author Eddú Meléndez
5145
* @author Stephane Nicoll
46+
* @author Vedran Pavic
5247
*/
5348
public class SessionAutoConfigurationTests extends AbstractSessionAutoConfigurationTests {
5449

@@ -72,7 +67,7 @@ public void autoConfigurationDisabledIfStoreTypeSetToNone() {
7267
@Test
7368
public void backOffIfSessionRepositoryIsPresent() {
7469
load(Collections.<Class<?>>singletonList(SessionRepositoryConfiguration.class),
75-
"spring.session.store-type=mongo");
70+
"spring.session.store-type=redis");
7671
MapSessionRepository repository = validateSessionRepository(
7772
MapSessionRepository.class);
7873
assertThat(this.context.getBean("mySessionRepository")).isSameAs(repository);
@@ -102,26 +97,6 @@ public void springSessionTimeoutIsNotAValidProperty() {
10297
assertThat(getSessionTimeout(repository)).isNull();
10398
}
10499

105-
@Test
106-
public void mongoSessionStore() {
107-
load(Arrays.asList(EmbeddedMongoAutoConfiguration.class,
108-
MongoAutoConfiguration.class, MongoDataAutoConfiguration.class),
109-
"spring.session.store-type=mongo");
110-
validateSessionRepository(MongoOperationsSessionRepository.class);
111-
}
112-
113-
@Test
114-
public void mongoSessionStoreWithCustomizations() {
115-
load(Arrays.asList(EmbeddedMongoAutoConfiguration.class,
116-
MongoAutoConfiguration.class, MongoDataAutoConfiguration.class),
117-
"spring.session.store-type=mongo",
118-
"spring.session.mongo.collection-name=foobar");
119-
MongoOperationsSessionRepository repository = validateSessionRepository(
120-
MongoOperationsSessionRepository.class);
121-
assertThat(new DirectFieldAccessor(repository).getPropertyValue("collectionName"))
122-
.isEqualTo("foobar");
123-
}
124-
125100
@Test
126101
public void validationFailsIfSessionRepositoryIsNotConfigured() {
127102
this.thrown.expect(BeanCreationException.class);

spring-boot-dependencies/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2246,11 +2246,6 @@
22462246
<artifactId>spring-session-data-gemfire</artifactId>
22472247
<version>${spring-session.version}</version>
22482248
</dependency>
2249-
<dependency>
2250-
<groupId>org.springframework.session</groupId>
2251-
<artifactId>spring-session-data-mongo</artifactId>
2252-
<version>${spring-session.version}</version>
2253-
</dependency>
22542249
<dependency>
22552250
<groupId>org.springframework.session</groupId>
22562251
<artifactId>spring-session-hazelcast</artifactId>

spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,6 @@ content into your application; rather pick only the properties that you need.
414414
spring.session.jdbc.initializer.enabled= # Create the required session tables on startup if necessary. Enabled automatically if the default table name is set or a custom schema is configured.
415415
spring.session.jdbc.schema=classpath:org/springframework/session/jdbc/schema-@@platform@@.sql # Path to the SQL file to use to initialize the database schema.
416416
spring.session.jdbc.table-name=SPRING_SESSION # Name of database table used to store sessions.
417-
spring.session.mongo.collection-name=sessions # Collection name used to store sessions.
418417
spring.session.redis.flush-mode=on-save # Sessions flush mode.
419418
spring.session.redis.namespace= # Namespace for keys used to store sessions.
420419
spring.session.store-type= # Session store type.

spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5138,7 +5138,6 @@ classes for more details.
51385138
Spring Boot provides Spring Session auto-configuration for a wide range of stores:
51395139

51405140
* JDBC
5141-
* MongoDB
51425141
* Redis
51435142
* Hazelcast
51445143
* HashMap

0 commit comments

Comments
 (0)