Skip to content

Commit

Permalink
Remove Spring Session Mongo support
Browse files Browse the repository at this point in the history
Remove auto-configuration support for Spring Session Mongo since it is
no longer supported in Spring Session 2.0.

See spring-projectsgh-9011
  • Loading branch information
vpavic authored and philwebb committed Apr 27, 2017
1 parent 30eba45 commit 33dd9d6
Show file tree
Hide file tree
Showing 9 changed files with 6 additions and 122 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import org.springframework.boot.autoconfigure.hazelcast.HazelcastAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.boot.autoconfigure.session.SessionAutoConfiguration.SessionConfigurationImportSelector;
import org.springframework.boot.autoconfigure.session.SessionAutoConfiguration.SessionRepositoryValidator;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
Expand All @@ -48,6 +47,7 @@
* @author Tommy Ludwig
* @author Eddú Meléndez
* @author Stephane Nicoll
* @author Vedran Pavic
* @since 1.4.0
*/
@Configuration
Expand All @@ -56,8 +56,7 @@
@ConditionalOnWebApplication(type = Type.SERVLET)
@EnableConfigurationProperties(SessionProperties.class)
@AutoConfigureAfter({ DataSourceAutoConfiguration.class, HazelcastAutoConfiguration.class,
JdbcTemplateAutoConfiguration.class, MongoAutoConfiguration.class,
RedisAutoConfiguration.class })
JdbcTemplateAutoConfiguration.class, RedisAutoConfiguration.class })
@Import({ SessionConfigurationImportSelector.class, SessionRepositoryValidator.class,
SessionRepositoryFilterConfiguration.class })
public class SessionAutoConfiguration {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,6 @@ public class SessionProperties {

private final Jdbc jdbc = new Jdbc();

private final Mongo mongo = new Mongo();

private final Redis redis = new Redis();

public SessionProperties(ObjectProvider<ServerProperties> serverProperties) {
Expand Down Expand Up @@ -78,10 +76,6 @@ public Jdbc getJdbc() {
return this.jdbc;
}

public Mongo getMongo() {
return this.mongo;
}

public Redis getRedis() {
return this.redis;
}
Expand Down Expand Up @@ -183,23 +177,6 @@ public void setEnabled(boolean enabled) {

}

public static class Mongo {

/**
* Collection name used to store sessions.
*/
private String collectionName = "sessions";

public String getCollectionName() {
return this.collectionName;
}

public void setCollectionName(String collectionName) {
this.collectionName = collectionName;
}

}

public static class Redis {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ final class SessionStoreMappings {
static {
Map<StoreType, Class<?>> mappings = new HashMap<>();
mappings.put(StoreType.REDIS, RedisSessionConfiguration.class);
mappings.put(StoreType.MONGO, MongoSessionConfiguration.class);
mappings.put(StoreType.JDBC, JdbcSessionConfiguration.class);
mappings.put(StoreType.HAZELCAST, HazelcastSessionConfiguration.class);
mappings.put(StoreType.HASH_MAP, HashMapSessionConfiguration.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2012-2016 the original author or authors.
* Copyright 2012-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -21,6 +21,7 @@
*
* @author Tommy Ludwig
* @author Eddú Meléndez
* @author Vedran Pavic
* @since 1.4.0
*/
public enum StoreType {
Expand All @@ -30,11 +31,6 @@ public enum StoreType {
*/
REDIS,

/**
* Mongo backed sessions.
*/
MONGO,

/**
* JDBC backed sessions.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

package org.springframework.boot.autoconfigure.session;

import java.util.Arrays;
import java.util.Collections;
import java.util.EnumSet;

Expand All @@ -26,18 +25,13 @@
import org.junit.Test;
import org.junit.rules.ExpectedException;

import org.springframework.beans.DirectFieldAccessor;
import org.springframework.beans.factory.BeanCreationException;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.session.ExpiringSession;
import org.springframework.session.MapSessionRepository;
import org.springframework.session.SessionRepository;
import org.springframework.session.data.mongo.MongoOperationsSessionRepository;
import org.springframework.session.web.http.SessionRepositoryFilter;
import org.springframework.test.util.ReflectionTestUtils;

Expand All @@ -49,6 +43,7 @@
* @author Dave Syer
* @author Eddú Meléndez
* @author Stephane Nicoll
* @author Vedran Pavic
*/
public class SessionAutoConfigurationTests extends AbstractSessionAutoConfigurationTests {

Expand All @@ -72,7 +67,7 @@ public void autoConfigurationDisabledIfStoreTypeSetToNone() {
@Test
public void backOffIfSessionRepositoryIsPresent() {
load(Collections.<Class<?>>singletonList(SessionRepositoryConfiguration.class),
"spring.session.store-type=mongo");
"spring.session.store-type=redis");
MapSessionRepository repository = validateSessionRepository(
MapSessionRepository.class);
assertThat(this.context.getBean("mySessionRepository")).isSameAs(repository);
Expand Down Expand Up @@ -102,26 +97,6 @@ public void springSessionTimeoutIsNotAValidProperty() {
assertThat(getSessionTimeout(repository)).isNull();
}

@Test
public void mongoSessionStore() {
load(Arrays.asList(EmbeddedMongoAutoConfiguration.class,
MongoAutoConfiguration.class, MongoDataAutoConfiguration.class),
"spring.session.store-type=mongo");
validateSessionRepository(MongoOperationsSessionRepository.class);
}

@Test
public void mongoSessionStoreWithCustomizations() {
load(Arrays.asList(EmbeddedMongoAutoConfiguration.class,
MongoAutoConfiguration.class, MongoDataAutoConfiguration.class),
"spring.session.store-type=mongo",
"spring.session.mongo.collection-name=foobar");
MongoOperationsSessionRepository repository = validateSessionRepository(
MongoOperationsSessionRepository.class);
assertThat(new DirectFieldAccessor(repository).getPropertyValue("collectionName"))
.isEqualTo("foobar");
}

@Test
public void validationFailsIfSessionRepositoryIsNotConfigured() {
this.thrown.expect(BeanCreationException.class);
Expand Down
5 changes: 0 additions & 5 deletions spring-boot-dependencies/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2246,11 +2246,6 @@
<artifactId>spring-session-data-gemfire</artifactId>
<version>${spring-session.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-mongo</artifactId>
<version>${spring-session.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-hazelcast</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,6 @@ content into your application; rather pick only the properties that you need.
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.
spring.session.jdbc.schema=classpath:org/springframework/session/jdbc/schema-@@platform@@.sql # Path to the SQL file to use to initialize the database schema.
spring.session.jdbc.table-name=SPRING_SESSION # Name of database table used to store sessions.
spring.session.mongo.collection-name=sessions # Collection name used to store sessions.
spring.session.redis.flush-mode=on-save # Sessions flush mode.
spring.session.redis.namespace= # Namespace for keys used to store sessions.
spring.session.store-type= # Session store type.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5138,7 +5138,6 @@ classes for more details.
Spring Boot provides Spring Session auto-configuration for a wide range of stores:

* JDBC
* MongoDB
* Redis
* Hazelcast
* HashMap
Expand Down

0 comments on commit 33dd9d6

Please sign in to comment.