diff --git a/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java b/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java index c85e55f0..ac20e0a7 100644 --- a/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java @@ -284,6 +284,7 @@ public abstract class RegionFactoryBean extends RegionLookupFactoryBean - - - - - + + + + + + + + + + diff --git a/src/test/java/org/springframework/data/gemfire/RegionFactoryBeanTest.java b/src/test/java/org/springframework/data/gemfire/RegionFactoryBeanTest.java index 4f1e2b11..ff64aa33 100644 --- a/src/test/java/org/springframework/data/gemfire/RegionFactoryBeanTest.java +++ b/src/test/java/org/springframework/data/gemfire/RegionFactoryBeanTest.java @@ -24,12 +24,16 @@ import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyBoolean; +import static org.mockito.Matchers.anyFloat; +import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.eq; import static org.mockito.Matchers.same; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; import java.util.concurrent.atomic.AtomicBoolean; @@ -167,6 +171,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { protected RegionFactory createTestRegionFactory() { return new TestRegionFactory(); } + @Test public void testAssertDataPolicyAndPersistentAttributesAreCompatible() { RegionFactoryBean factoryBean = new TestRegionFactoryBean(); @@ -368,6 +373,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { when(mockRegionAttributes.isLockGrantor()).thenReturn(true); when(mockRegionAttributes.getMembershipAttributes()).thenReturn(testMembershipAttributes); when(mockRegionAttributes.getMulticastEnabled()).thenReturn(false); + when(mockRegionAttributes.getOffHeap()).thenReturn(true); when(mockRegionAttributes.getPartitionAttributes()).thenReturn(testPartitionAttributes); when(mockRegionAttributes.getPoolName()).thenReturn("swimming"); when(mockRegionAttributes.getRegionIdleTimeout()).thenReturn(testExpirationAttributes); @@ -406,6 +412,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { verify(mockRegionFactory).setLockGrantor(eq(true)); verify(mockRegionFactory).setMembershipAttributes(same(testMembershipAttributes)); verify(mockRegionFactory).setMulticastEnabled(eq(false)); + verify(mockRegionFactory).setOffHeap(eq(true)); verify(mockRegionFactory).setPartitionAttributes(eq(testPartitionAttributes)); verify(mockRegionFactory).setPoolName(eq("swimming")); verify(mockRegionFactory).setRegionIdleTimeout(same(testExpirationAttributes)); @@ -420,30 +427,31 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { factoryBean.mergeRegionAttributes(mockRegionFactory, null); - verify(mockRegionFactory, never()).setCloningEnabled(false); - verify(mockRegionFactory, never()).setConcurrencyChecksEnabled(true); - verify(mockRegionFactory, never()).setConcurrencyLevel(2); + verify(mockRegionFactory, never()).setCloningEnabled(anyBoolean()); + verify(mockRegionFactory, never()).setConcurrencyChecksEnabled(anyBoolean()); + verify(mockRegionFactory, never()).setConcurrencyLevel(anyInt()); verify(mockRegionFactory, never()).setCustomEntryIdleTimeout(any(CustomExpiry.class)); verify(mockRegionFactory, never()).setCustomEntryTimeToLive(any(CustomExpiry.class)); - verify(mockRegionFactory, never()).setDiskSynchronous(true); - verify(mockRegionFactory, never()).setEnableAsyncConflation(true); - verify(mockRegionFactory, never()).setEnableSubscriptionConflation(false); + verify(mockRegionFactory, never()).setDiskSynchronous(anyBoolean()); + verify(mockRegionFactory, never()).setEnableAsyncConflation(anyBoolean()); + verify(mockRegionFactory, never()).setEnableSubscriptionConflation(anyBoolean()); verify(mockRegionFactory, never()).setEntryIdleTimeout(any(ExpirationAttributes.class)); verify(mockRegionFactory, never()).setEntryTimeToLive(any(ExpirationAttributes.class)); verify(mockRegionFactory, never()).setEvictionAttributes(any(EvictionAttributes.class)); - verify(mockRegionFactory, never()).setIgnoreJTA(false); - verify(mockRegionFactory, never()).setIndexMaintenanceSynchronous(false); - verify(mockRegionFactory, never()).setInitialCapacity(51); + verify(mockRegionFactory, never()).setIgnoreJTA(anyBoolean()); + verify(mockRegionFactory, never()).setIndexMaintenanceSynchronous(anyBoolean()); + verify(mockRegionFactory, never()).setInitialCapacity(anyInt()); verify(mockRegionFactory, never()).setKeyConstraint(any(Class.class)); - verify(mockRegionFactory, never()).setLoadFactor(0.75f); - verify(mockRegionFactory, never()).setLockGrantor(true); + verify(mockRegionFactory, never()).setLoadFactor(anyFloat()); + verify(mockRegionFactory, never()).setLockGrantor(anyBoolean()); verify(mockRegionFactory, never()).setMembershipAttributes(any(MembershipAttributes.class)); - verify(mockRegionFactory, never()).setMulticastEnabled(false); + verify(mockRegionFactory, never()).setMulticastEnabled(anyBoolean()); + verify(mockRegionFactory, never()).setOffHeap(anyBoolean()); verify(mockRegionFactory, never()).setPartitionAttributes(any(PartitionAttributes.class)); verify(mockRegionFactory, never()).setPoolName(any(String.class)); verify(mockRegionFactory, never()).setRegionIdleTimeout(any(ExpirationAttributes.class)); verify(mockRegionFactory, never()).setRegionTimeToLive(any(ExpirationAttributes.class)); - verify(mockRegionFactory, never()).setStatisticsEnabled(true); + verify(mockRegionFactory, never()).setStatisticsEnabled(anyBoolean()); verify(mockRegionFactory, never()).setSubscriptionAttributes(any(SubscriptionAttributes.class)); verify(mockRegionFactory, never()).setValueConstraint(any(Class.class)); } @@ -474,6 +482,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { when(mockRegionAttributes.isLockGrantor()).thenReturn(false); when(mockRegionAttributes.getMembershipAttributes()).thenReturn(null); when(mockRegionAttributes.getMulticastEnabled()).thenReturn(true); + when(mockRegionAttributes.getOffHeap()).thenReturn(true); when(mockRegionAttributes.getPartitionAttributes()).thenReturn(null); when(mockRegionAttributes.getPoolName()).thenReturn("swimming"); when(mockRegionAttributes.getRegionIdleTimeout()).thenReturn(testExpirationAttributes); @@ -512,6 +521,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { verify(mockRegionFactory).setLockGrantor(eq(false)); verify(mockRegionFactory).setMembershipAttributes(null); verify(mockRegionFactory).setMulticastEnabled(eq(true)); + verify(mockRegionFactory).setOffHeap(eq(true)); verify(mockRegionFactory, never()).setPartitionAttributes(any(PartitionAttributes.class)); verify(mockRegionFactory).setPoolName(eq("swimming")); verify(mockRegionFactory).setRegionIdleTimeout(same(testExpirationAttributes)); diff --git a/src/test/java/org/springframework/data/gemfire/config/LocalRegionNamespaceTest.java b/src/test/java/org/springframework/data/gemfire/config/LocalRegionNamespaceTest.java index 9cd7acc2..392f3fc5 100644 --- a/src/test/java/org/springframework/data/gemfire/config/LocalRegionNamespaceTest.java +++ b/src/test/java/org/springframework/data/gemfire/config/LocalRegionNamespaceTest.java @@ -133,6 +133,7 @@ public class LocalRegionNamespaceTest { assertEquals(10, localRegionAttributes.getInitialCapacity()); assertEquals(String.class, localRegionAttributes.getKeyConstraint()); assertEquals("0.9", String.valueOf(localRegionAttributes.getLoadFactor())); + assertTrue(localRegionAttributes.getOffHeap()); assertEquals(String.class, localRegionAttributes.getValueConstraint()); } diff --git a/src/test/java/org/springframework/data/gemfire/config/PartitionedRegionNamespaceTest.java b/src/test/java/org/springframework/data/gemfire/config/PartitionedRegionNamespaceTest.java index 2624945d..80b36761 100644 --- a/src/test/java/org/springframework/data/gemfire/config/PartitionedRegionNamespaceTest.java +++ b/src/test/java/org/springframework/data/gemfire/config/PartitionedRegionNamespaceTest.java @@ -19,6 +19,7 @@ package org.springframework.data.gemfire.config; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; @@ -88,12 +89,13 @@ public class PartitionedRegionNamespaceTest { RegionFactoryBean optionsRegionFactoryBean = context.getBean("&options", RegionFactoryBean.class); assertTrue(optionsRegionFactoryBean instanceof PartitionedRegionFactoryBean); - assertEquals(null, TestUtils.readField("scope", optionsRegionFactoryBean)); assertEquals("redundant", TestUtils.readField("name", optionsRegionFactoryBean)); + assertNull(TestUtils.readField("scope", optionsRegionFactoryBean)); RegionAttributes optionsRegionAttributes = TestUtils.readField("attributes", optionsRegionFactoryBean); assertNotNull(optionsRegionAttributes); + assertTrue(optionsRegionAttributes.getOffHeap()); assertTrue(optionsRegionAttributes.getStatisticsEnabled()); PartitionAttributes optionsRegionPartitionAttributes = optionsRegionAttributes.getPartitionAttributes(); diff --git a/src/test/java/org/springframework/data/gemfire/config/ReplicatedRegionNamespaceTest.java b/src/test/java/org/springframework/data/gemfire/config/ReplicatedRegionNamespaceTest.java index ede69691..39fe6c6d 100644 --- a/src/test/java/org/springframework/data/gemfire/config/ReplicatedRegionNamespaceTest.java +++ b/src/test/java/org/springframework/data/gemfire/config/ReplicatedRegionNamespaceTest.java @@ -143,6 +143,7 @@ public class ReplicatedRegionNamespaceTest { assertEquals(0.50, regionAttributes.getLoadFactor(), 0.001); assertTrue(regionAttributes.isLockGrantor()); assertTrue(regionAttributes.getMulticastEnabled()); + assertTrue(regionAttributes.getOffHeap()); assertEquals(Scope.GLOBAL, regionAttributes.getScope()); assertEquals(String.class, regionAttributes.getValueConstraint()); } diff --git a/src/test/resources/org/springframework/data/gemfire/config/local-ns.xml b/src/test/resources/org/springframework/data/gemfire/config/local-ns.xml index cf8872a3..0a9adb03 100644 --- a/src/test/resources/org/springframework/data/gemfire/config/local-ns.xml +++ b/src/test/resources/org/springframework/data/gemfire/config/local-ns.xml @@ -41,6 +41,7 @@ initial-capacity="10" key-constraint="java.lang.String" load-factor="0.90" + off-heap="true" value-constraint="java.lang.String" /> diff --git a/src/test/resources/org/springframework/data/gemfire/config/partitioned-ns.xml b/src/test/resources/org/springframework/data/gemfire/config/partitioned-ns.xml index fffe7af1..47939f4c 100644 --- a/src/test/resources/org/springframework/data/gemfire/config/partitioned-ns.xml +++ b/src/test/resources/org/springframework/data/gemfire/config/partitioned-ns.xml @@ -20,6 +20,7 @@ 1 + true 4 @@ -29,8 +30,8 @@ - + diff --git a/src/test/resources/org/springframework/data/gemfire/config/replicated-ns.xml b/src/test/resources/org/springframework/data/gemfire/config/replicated-ns.xml index 2a502ca9..874ad3a6 100644 --- a/src/test/resources/org/springframework/data/gemfire/config/replicated-ns.xml +++ b/src/test/resources/org/springframework/data/gemfire/config/replicated-ns.xml @@ -50,6 +50,7 @@ key-constraint="java.lang.String" load-factor="0.5" multicast-enabled="true" + off-heap="true" scope="global" value-constraint="java.lang.String"/>