From 23da21d8fe7dffc44705aa65c73ce1167a55f410 Mon Sep 17 00:00:00 2001 From: John Blum Date: Wed, 19 Dec 2018 02:17:27 -0800 Subject: [PATCH] Add generic signature to getSessionRepository(). Add commit(:Session) method. --- .../gemfire/AbstractGemFireIntegrationTests.java | 15 +++++++++++++-- ...yTimeoutSessionExpirationIntegrationTests.java | 6 +++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/spring-session-data-geode/src/integration-test/java/org/springframework/session/data/gemfire/AbstractGemFireIntegrationTests.java b/spring-session-data-geode/src/integration-test/java/org/springframework/session/data/gemfire/AbstractGemFireIntegrationTests.java index e36114b..1397525 100644 --- a/spring-session-data-geode/src/integration-test/java/org/springframework/session/data/gemfire/AbstractGemFireIntegrationTests.java +++ b/spring-session-data-geode/src/integration-test/java/org/springframework/session/data/gemfire/AbstractGemFireIntegrationTests.java @@ -291,8 +291,9 @@ public abstract class AbstractGemFireIntegrationTests extends ForkingClientServe } @Nullable - protected SessionRepository getSessionRepository() { - return this.sessionRepository; + @SuppressWarnings("unchecked") + protected > T getSessionRepository() { + return (T) this.sessionRepository; } protected void assertValidSession(Session session) { @@ -347,6 +348,16 @@ public abstract class AbstractGemFireIntegrationTests extends ForkingClientServe return enableQueryDebugging(); } + @SuppressWarnings("unchecked") + protected T commit(T session) { + + return Optional.ofNullable(getSessionRepository()) + .filter(AbstractGemFireOperationsSessionRepository.class::isInstance) + .map(AbstractGemFireOperationsSessionRepository.class::cast) + .map(it -> (T) it.commit(session)) + .orElse(session); + } + @SuppressWarnings("unchecked") protected T createSession() { diff --git a/spring-session-data-geode/src/integration-test/java/org/springframework/session/data/gemfire/expiration/LazyTimeoutSessionExpirationIntegrationTests.java b/spring-session-data-geode/src/integration-test/java/org/springframework/session/data/gemfire/expiration/LazyTimeoutSessionExpirationIntegrationTests.java index 2bc969c..26e6d36 100644 --- a/spring-session-data-geode/src/integration-test/java/org/springframework/session/data/gemfire/expiration/LazyTimeoutSessionExpirationIntegrationTests.java +++ b/spring-session-data-geode/src/integration-test/java/org/springframework/session/data/gemfire/expiration/LazyTimeoutSessionExpirationIntegrationTests.java @@ -27,6 +27,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.data.gemfire.config.annotation.PeerCacheApplication; import org.springframework.data.gemfire.tests.mock.annotation.EnableGemFireMockObjects; import org.springframework.session.Session; +import org.springframework.session.SessionRepository; import org.springframework.session.data.gemfire.AbstractGemFireIntegrationTests; import org.springframework.session.data.gemfire.config.annotation.web.http.EnableGemFireHttpSession; import org.springframework.session.data.gemfire.expiration.config.FixedDurationExpirationSessionRepositoryBeanPostProcessor; @@ -57,8 +58,11 @@ import org.springframework.test.context.junit4.SpringRunner; public class LazyTimeoutSessionExpirationIntegrationTests extends AbstractGemFireIntegrationTests { @Test + @SuppressWarnings("unchecked") public void sessionRepositoryIsAFixedDurationExpirationSessionRepository() { - assertThat(getSessionRepository()).isInstanceOf(FixedDurationExpirationSessionRepository.class); + + assertThat(this.getSessionRepository()) + .isInstanceOf(FixedDurationExpirationSessionRepository.class); } @Test