From f973e63fced970ccf754dcac699bbb16904fcc5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Wed, 27 Apr 2016 05:27:02 +1000 Subject: [PATCH] Set collectionName attribute in MongoOperationsSessionRepository Previous to this commit, collectionName could be set in MongoHttpSessionConfiguration but it was never used. Now, attribute can be set into MongoOperationsSessionRepository to take effect. See gh-489 --- .../web/http/MongoHttpSessionConfiguration.java | 4 ++++ .../http/MongoHttpSessionConfigurationTest.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/spring-session/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java b/spring-session/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java index 94d2fb7..6bb74a1 100644 --- a/spring-session/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java +++ b/spring-session/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java @@ -25,6 +25,7 @@ import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.session.config.annotation.web.http.SpringHttpSessionConfiguration; import org.springframework.session.data.mongo.AbstractMongoSessionConverter; import org.springframework.session.data.mongo.MongoOperationsSessionRepository; +import org.springframework.util.StringUtils; /** * Configuration class registering {@code MongoSessionRepository} bean. To import this @@ -52,6 +53,9 @@ public class MongoHttpSessionConfiguration extends SpringHttpSessionConfiguratio if (this.mongoSessionConverter != null) { repository.setMongoSessionConverter(this.mongoSessionConverter); } + if (StringUtils.hasText(this.collectionName)) { + repository.setCollectionName(this.collectionName); + } return repository; } diff --git a/spring-session/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java b/spring-session/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java index 2bb3320..af802ed 100644 --- a/spring-session/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java +++ b/spring-session/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java @@ -26,6 +26,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.core.IndexOperations; import org.springframework.data.mongodb.core.MongoOperations; +import org.springframework.session.data.mongo.MongoOperationsSessionRepository; import org.springframework.test.util.ReflectionTestUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -60,6 +61,9 @@ public class MongoHttpSessionConfigurationTest { assertThat(session).isNotNull(); assertThat(ReflectionTestUtils.getField(session, "collectionName")).isEqualTo( "sessions"); + MongoOperationsSessionRepository repository = this.context.getBean(MongoOperationsSessionRepository.class); + assertThat(ReflectionTestUtils.getField(repository, "collectionName")).isEqualTo( + "sessions"); } @Test @@ -70,6 +74,10 @@ public class MongoHttpSessionConfigurationTest { assertThat(session).isNotNull(); assertThat(ReflectionTestUtils.getField(session, "collectionName")).isEqualTo( "testSessions"); + + MongoOperationsSessionRepository repository = this.context.getBean(MongoOperationsSessionRepository.class); + assertThat(ReflectionTestUtils.getField(repository, "collectionName")).isEqualTo( + "testSessions"); } @Test @@ -80,6 +88,9 @@ public class MongoHttpSessionConfigurationTest { assertThat(session).isNotNull(); assertThat(ReflectionTestUtils.getField(session, "collectionName")).isEqualTo( "customSession"); + MongoOperationsSessionRepository repository = this.context.getBean(MongoOperationsSessionRepository.class); + assertThat(ReflectionTestUtils.getField(repository, "collectionName")).isEqualTo( + "customSession"); } @Test @@ -90,6 +101,9 @@ public class MongoHttpSessionConfigurationTest { assertThat(session).isNotNull(); assertThat(ReflectionTestUtils.getField(session, "maxInactiveIntervalInSeconds")).isEqualTo( 10); + MongoOperationsSessionRepository repository = this.context.getBean(MongoOperationsSessionRepository.class); + assertThat(ReflectionTestUtils.getField(repository, "maxInactiveIntervalInSeconds")).isEqualTo( + 10); } private void registerAndRefresh(Class... annotatedClasses) {