Fix bug in Region expiration configuration to properly handle Session expiration.
This commit is contained in:
@@ -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()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user