From 9f4b5f440d0b708e3f66390aee018be00d1f6ffa Mon Sep 17 00:00:00 2001 From: costin Date: Wed, 15 Sep 2010 17:37:28 +0300 Subject: [PATCH] SGF-10 SGF-17 + add parsing of the grid object sizer --- .project | 8 +++++++- .../data/gemfire/config/ParsingUtils.java | 11 ++++++++++- .../data/gemfire/config/PartitionedRegionParser.java | 2 +- .../data/gemfire/config/ReplicatedRegionParser.java | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.project b/.project index 0f6d6363..e3c9b328 100644 --- a/.project +++ b/.project @@ -1,10 +1,15 @@ - spring-gemfire + head + + org.eclipse.wst.common.project.facet.core.builder + + + org.eclipse.jdt.core.javabuilder @@ -25,5 +30,6 @@ org.springframework.ide.eclipse.core.springnature org.maven.ide.eclipse.maven2Nature org.eclipse.jdt.core.javanature + org.eclipse.wst.common.project.facet.core.nature diff --git a/src/main/java/org/springframework/data/gemfire/config/ParsingUtils.java b/src/main/java/org/springframework/data/gemfire/config/ParsingUtils.java index d99e8b76..3c6b4a9f 100644 --- a/src/main/java/org/springframework/data/gemfire/config/ParsingUtils.java +++ b/src/main/java/org/springframework/data/gemfire/config/ParsingUtils.java @@ -152,7 +152,7 @@ abstract class ParsingUtils { * @param element * @param attrBuilder */ - static void parseEviction(Element element, BeanDefinitionBuilder attrBuilder) { + static void parseEviction(ParserContext parserContext, Element element, BeanDefinitionBuilder attrBuilder) { Element evictionElement = DomUtils.getChildElementByTagName(element, "eviction"); if (evictionElement == null) @@ -169,6 +169,15 @@ abstract class ParsingUtils { setPropertyValue(evictionElement, evictionDefBuilder, "threshold", "threshold"); setPropertyValue(evictionElement, evictionDefBuilder, "action", "action"); + + // get object sizer (if declared) + Element objectSizerElement = DomUtils.getChildElementByTagName(evictionElement, "object-sizer"); + + if (objectSizerElement != null) { + Object sizer = parseRefOrNestedBeanDeclaration(parserContext, objectSizerElement, evictionDefBuilder); + evictionDefBuilder.addPropertyValue("ObjectSizer", sizer); + } + attrBuilder.addPropertyValue("evictionAttributes", evictionDefBuilder.getBeanDefinition()); } } \ No newline at end of file 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 0c300edf..413f508c 100644 --- a/src/main/java/org/springframework/data/gemfire/config/PartitionedRegionParser.java +++ b/src/main/java/org/springframework/data/gemfire/config/PartitionedRegionParser.java @@ -77,7 +77,7 @@ class PartitionedRegionParser extends AbstractSingleBeanDefinitionParser { // region attributes BeanDefinitionBuilder attrBuilder = BeanDefinitionBuilder.genericBeanDefinition(RegionAttributesFactory.class); - ParsingUtils.parseEviction(element, attrBuilder); + ParsingUtils.parseEviction(parserContext, element, attrBuilder); ParsingUtils.parseDiskStorage(element, attrBuilder); // partition attributes diff --git a/src/main/java/org/springframework/data/gemfire/config/ReplicatedRegionParser.java b/src/main/java/org/springframework/data/gemfire/config/ReplicatedRegionParser.java index 8a24f8ce..215121db 100644 --- a/src/main/java/org/springframework/data/gemfire/config/ReplicatedRegionParser.java +++ b/src/main/java/org/springframework/data/gemfire/config/ReplicatedRegionParser.java @@ -70,7 +70,7 @@ class ReplicatedRegionParser extends AbstractSingleBeanDefinitionParser { attrBuilder.addPropertyValue("publisher", Boolean.valueOf(attr)); } - ParsingUtils.parseEviction(element, attrBuilder); + ParsingUtils.parseEviction(parserContext, element, attrBuilder); ParsingUtils.parseDiskStorage(element, attrBuilder); builder.addPropertyValue("attributes", attrBuilder.getBeanDefinition());