diff --git a/src/main/java/org/springframework/data/gemfire/PartitionAttributesFactoryBean.java b/src/main/java/org/springframework/data/gemfire/PartitionAttributesFactoryBean.java index 5a647e76..f9d1eebf 100644 --- a/src/main/java/org/springframework/data/gemfire/PartitionAttributesFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/PartitionAttributesFactoryBean.java @@ -59,9 +59,9 @@ public class PartitionAttributesFactoryBean implements FactoryBean fixedPartitionAttributes) { - for (FixedPartitionAttributes fpa: fixedPartitionAttributes) { + for (FixedPartitionAttributes fpa : fixedPartitionAttributes) { paf.addFixedPartitionAttributes(fpa); } } diff --git a/src/main/java/org/springframework/data/gemfire/config/PartitionedRegionParser.java b/src/main/java/org/springframework/data/gemfire/config/PartitionedRegionParser.java index 7adf9a94..da6855db 100644 --- a/src/main/java/org/springframework/data/gemfire/config/PartitionedRegionParser.java +++ b/src/main/java/org/springframework/data/gemfire/config/PartitionedRegionParser.java @@ -30,6 +30,8 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.xml.DomUtils; import org.w3c.dom.Element; +import com.gemstone.gemfire.management.internal.cli.parser.ParserUtils; + /** * Parser for <partitioned-region;gt; definitions. * @@ -59,43 +61,14 @@ class PartitionedRegionParser extends AbstractRegionParser { // partition attributes BeanDefinitionBuilder parAttrBuilder = BeanDefinitionBuilder .genericBeanDefinition(PartitionAttributesFactoryBean.class); - - String attr = element.getAttribute("colocated-with"); - - if (StringUtils.hasText(attr)) { - parAttrBuilder.addPropertyValue("colocatedWith", attr); - } - - attr = element.getAttribute("local-max-memory"); - if (StringUtils.hasText(attr)) { - parAttrBuilder.addPropertyValue("localMaxMemory", Integer.valueOf(attr)); - } - - attr = element.getAttribute("copies"); - if (StringUtils.hasText(attr)) { - parAttrBuilder.addPropertyValue("redundantCopies", Integer.valueOf(attr)); - } - - attr = element.getAttribute("recovery-delay"); - if (StringUtils.hasText(attr)) { - parAttrBuilder.addPropertyValue("recoveryDelay", Long.valueOf(attr)); - } - - attr = element.getAttribute("startup-recovery-delay"); - - if (StringUtils.hasText(attr)) { - parAttrBuilder.addPropertyValue("startupRecoveryDelay", Long.valueOf(attr)); - } - - attr = element.getAttribute("total-max-memory"); - if (StringUtils.hasText(attr)) { - parAttrBuilder.addPropertyValue("totalMaxMemory", Long.valueOf(attr)); - } - - attr = element.getAttribute("total-buckets"); - if (StringUtils.hasText(attr)) { - parAttrBuilder.addPropertyValue("totalNumBuckets", Integer.valueOf(attr)); - } + + ParsingUtils.setPropertyValue(element, parAttrBuilder, "colocated-with"); + ParsingUtils.setPropertyValue(element, parAttrBuilder, "local-max-memory"); + ParsingUtils.setPropertyValue(element, parAttrBuilder, "copies","redundantCopies"); + ParsingUtils.setPropertyValue(element, parAttrBuilder, "recovery-delay"); + ParsingUtils.setPropertyValue(element, parAttrBuilder, "startup-recovery-delay"); + ParsingUtils.setPropertyValue(element, parAttrBuilder, "total-max-memory"); + ParsingUtils.setPropertyValue(element, parAttrBuilder, "total-buckets","totalNumBuckets"); // Element subElement = DomUtils.getChildElementByTagName(element, "partition-resolver"); // parse nested partition resolver element 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 195785a9..b8ab057f 100644 --- a/src/test/java/org/springframework/data/gemfire/config/PartitionedRegionNamespaceTest.java +++ b/src/test/java/org/springframework/data/gemfire/config/PartitionedRegionNamespaceTest.java @@ -47,14 +47,12 @@ import com.gemstone.gemfire.cache.partition.PartitionListener; * @author David Turanski */ @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations="partitioned-ns.xml", - initializers=GemfireTestApplicationContextInitializer.class) +@ContextConfiguration(locations = "partitioned-ns.xml", initializers = GemfireTestApplicationContextInitializer.class) public class PartitionedRegionNamespaceTest { @Autowired private ApplicationContext context; - @Test public void testBasicPartition() throws Exception { assertTrue(context.containsBean("simple")); @@ -64,8 +62,7 @@ public class PartitionedRegionNamespaceTest { @Test public void testPartitionOptions() throws Exception { assertTrue(context.containsBean("options")); - RegionFactoryBean fb = context.getBean("&options", - RegionFactoryBean.class); + RegionFactoryBean fb = context.getBean("&options", RegionFactoryBean.class); assertTrue(fb instanceof PartitionedRegionFactoryBean); assertEquals(null, TestUtils.readField("scope", fb)); assertEquals("redundant", TestUtils.readField("name", fb)); @@ -77,25 +74,21 @@ public class PartitionedRegionNamespaceTest { assertEquals(1, pAttr.getRedundantCopies()); assertEquals(4, pAttr.getTotalNumBuckets()); - assertSame(SimplePartitionResolver.class, pAttr.getPartitionResolver() - .getClass()); + assertSame(SimplePartitionResolver.class, pAttr.getPartitionResolver().getClass()); } @SuppressWarnings("rawtypes") @Test public void testComplexPartition() throws Exception { assertTrue(context.containsBean("complex")); - RegionFactoryBean fb = context.getBean("&complex", - RegionFactoryBean.class); + RegionFactoryBean fb = context.getBean("&complex", RegionFactoryBean.class); CacheListener[] listeners = TestUtils.readField("cacheListeners", fb); assertFalse(ObjectUtils.isEmpty(listeners)); assertEquals(2, listeners.length); assertSame(listeners[0], context.getBean("c-listener")); - assertSame(context.getBean("c-loader"), - TestUtils.readField("cacheLoader", fb)); - assertSame(context.getBean("c-writer"), - TestUtils.readField("cacheWriter", fb)); + assertSame(context.getBean("c-loader"), TestUtils.readField("cacheLoader", fb)); + assertSame(context.getBean("c-writer"), TestUtils.readField("cacheWriter", fb)); RegionAttributes attrs = TestUtils.readField("attributes", fb); PartitionAttributes pAttr = attrs.getPartitionAttributes(); @@ -109,15 +102,13 @@ public class PartitionedRegionNamespaceTest { @SuppressWarnings("rawtypes") @Test public void testFixedPartition() throws Exception { - RegionFactoryBean fb = context.getBean("&fixed", - RegionFactoryBean.class); + RegionFactoryBean fb = context.getBean("&fixed", RegionFactoryBean.class); RegionAttributes attrs = TestUtils.readField("attributes", fb); PartitionAttributes pAttr = attrs.getPartitionAttributes(); assertNotNull(pAttr.getFixedPartitionAttributes()); assertEquals(3, pAttr.getFixedPartitionAttributes().size()); - FixedPartitionAttributes fpa = (FixedPartitionAttributes) pAttr - .getFixedPartitionAttributes().get(0); + FixedPartitionAttributes fpa = (FixedPartitionAttributes) pAttr.getFixedPartitionAttributes().get(0); assertEquals(3, fpa.getNumBuckets()); assertTrue(fpa.isPrimary()); 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 30665ce0..54b24893 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 @@ -4,15 +4,21 @@ xmlns:gfe="http://www.springframework.org/schema/gemfire" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" + xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> + + + 4 + - +