diff --git a/spring-session-data-geode/src/main/java/org/springframework/session/data/gemfire/config/annotation/web/http/GemFireHttpSessionConfiguration.java b/spring-session-data-geode/src/main/java/org/springframework/session/data/gemfire/config/annotation/web/http/GemFireHttpSessionConfiguration.java index d681f49..d809c64 100644 --- a/spring-session-data-geode/src/main/java/org/springframework/session/data/gemfire/config/annotation/web/http/GemFireHttpSessionConfiguration.java +++ b/spring-session-data-geode/src/main/java/org/springframework/session/data/gemfire/config/annotation/web/http/GemFireHttpSessionConfiguration.java @@ -376,8 +376,8 @@ public class GemFireHttpSessionConfiguration extends AbstractGemFireHttpSessionC AnnotationAttributes.fromMap(importMetadata.getAnnotationAttributes( EnableGemFireHttpSession.class.getName())); - ClientRegionShortcut defaultClientRegionShortcut = ClientRegionShortcut.class - .cast(enableGemFireHttpSessionAttributes.getEnum("clientRegionShortcut")); + ClientRegionShortcut defaultClientRegionShortcut = + enableGemFireHttpSessionAttributes.getEnum("clientRegionShortcut"); setClientRegionShortcut(resolveProperty(clientRegionShortcutPropertyName(), ClientRegionShortcut.class, defaultClientRegionShortcut)); @@ -402,8 +402,8 @@ public class GemFireHttpSessionConfiguration extends AbstractGemFireHttpSessionC setSessionRegionName(resolveProperty(sessionRegionNamePropertyName(), defaultSessionRegionName)); - RegionShortcut defaultServerRegionShortcut = RegionShortcut.class - .cast(enableGemFireHttpSessionAttributes.getEnum("serverRegionShortcut")); + RegionShortcut defaultServerRegionShortcut = + enableGemFireHttpSessionAttributes.getEnum("serverRegionShortcut"); setServerRegionShortcut(resolveProperty(serverRegionShortcutPropertyName(), RegionShortcut.class, defaultServerRegionShortcut)); @@ -597,9 +597,9 @@ public class GemFireHttpSessionConfiguration extends AbstractGemFireHttpSessionC */ boolean isExpirationAllowed(GemFireCache gemfireCache) { - return !GemFireUtils.isClient(gemfireCache) + return !(GemFireUtils.isClient(gemfireCache) ? GemFireUtils.isProxy(getClientRegionShortcut()) - : GemFireUtils.isProxy(getServerRegionShortcut()); + : GemFireUtils.isProxy(getServerRegionShortcut())); } /** diff --git a/spring-session-data-geode/src/test/java/org/springframework/session/data/gemfire/config/annotation/web/http/GemFireHttpSessionConfigurationTests.java b/spring-session-data-geode/src/test/java/org/springframework/session/data/gemfire/config/annotation/web/http/GemFireHttpSessionConfigurationTests.java index f06f101..268f3ad 100644 --- a/spring-session-data-geode/src/test/java/org/springframework/session/data/gemfire/config/annotation/web/http/GemFireHttpSessionConfigurationTests.java +++ b/spring-session-data-geode/src/test/java/org/springframework/session/data/gemfire/config/annotation/web/http/GemFireHttpSessionConfigurationTests.java @@ -494,49 +494,68 @@ public class GemFireHttpSessionConfigurationTests { assertThat(entryIdleTimeoutExpiration.getAction()).isEqualTo(ExpirationAction.INVALIDATE); assertThat(entryIdleTimeoutExpiration.getTimeout()).isEqualTo(0); } - @Test - public void expirationIsAllowed() { - Cache mockCache = mock(Cache.class); + public void clientExpirationIsAllowed() { ClientCache mockClientCache = mock(ClientCache.class); - this.gemfireConfiguration.setClientRegionShortcut(ClientRegionShortcut.PROXY); - this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.REPLICATE); - - assertThat(this.gemfireConfiguration.isExpirationAllowed(mockCache)).isTrue(); - - this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT_OVERFLOW); - - assertThat(this.gemfireConfiguration.isExpirationAllowed(mockCache)).isTrue(); - this.gemfireConfiguration.setClientRegionShortcut(ClientRegionShortcut.CACHING_PROXY); this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.PARTITION_PROXY); assertThat(this.gemfireConfiguration.isExpirationAllowed(mockClientCache)).isTrue(); this.gemfireConfiguration.setClientRegionShortcut(ClientRegionShortcut.LOCAL_PERSISTENT_OVERFLOW); - this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.REPLICATE_PROXY); + this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.REPLICATE); assertThat(this.gemfireConfiguration.isExpirationAllowed(mockClientCache)).isTrue(); } @Test - public void expirationIsNotAllowed() { + public void serverExpirationIsAllowed() { Cache mockCache = mock(Cache.class); + this.gemfireConfiguration.setClientRegionShortcut(ClientRegionShortcut.PROXY); + this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.REPLICATE); + + assertThat(this.gemfireConfiguration.isExpirationAllowed(mockCache)).isTrue(); + + this.gemfireConfiguration.setClientRegionShortcut(ClientRegionShortcut.LOCAL); + this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT_OVERFLOW); + + assertThat(this.gemfireConfiguration.isExpirationAllowed(mockCache)).isTrue(); + } + + @Test + public void clientExpirationIsNotAllowed() { + ClientCache mockClientCache = mock(ClientCache.class); this.gemfireConfiguration.setClientRegionShortcut(ClientRegionShortcut.PROXY); - this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.PARTITION); + this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.PARTITION_PROXY); assertThat(this.gemfireConfiguration.isExpirationAllowed(mockClientCache)).isFalse(); - this.gemfireConfiguration.setClientRegionShortcut(ClientRegionShortcut.LOCAL); + this.gemfireConfiguration.setClientRegionShortcut(ClientRegionShortcut.PROXY); + this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.REPLICATE); + + assertThat(this.gemfireConfiguration.isExpirationAllowed(mockClientCache)).isFalse(); + } + + @Test + public void serverExpirationIsNotAllowed() { + + Cache mockCache = mock(Cache.class); + + this.gemfireConfiguration.setClientRegionShortcut(ClientRegionShortcut.PROXY); this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.PARTITION_PROXY); assertThat(this.gemfireConfiguration.isExpirationAllowed(mockCache)).isFalse(); + + this.gemfireConfiguration.setClientRegionShortcut(ClientRegionShortcut.LOCAL); + this.gemfireConfiguration.setServerRegionShortcut(RegionShortcut.REPLICATE_PROXY); + + assertThat(this.gemfireConfiguration.isExpirationAllowed(mockCache)).isFalse(); } }