+ overwrite data policy for client namespace only when needed (otherwise allow user specified settings)
This commit is contained in:
Costin Leau
2010-10-31 17:37:08 +02:00
parent 1ba1cfa32c
commit b490a78aee
2 changed files with 14 additions and 7 deletions

View File

@@ -90,10 +90,12 @@ class ClientRegionParser extends AbstractSingleBeanDefinitionParser {
// client attributes
BeanDefinitionBuilder attrBuilder = BeanDefinitionBuilder.genericBeanDefinition(RegionAttributesFactory.class);
ParsingUtils.parseEviction(parserContext, element, attrBuilder);
ParsingUtils.parseDiskStorage(element, attrBuilder);
boolean overwriteDataPolicy = false;
if (!frozenDataPolicy) {
overwriteDataPolicy |= ParsingUtils.parseEviction(parserContext, element, attrBuilder);
overwriteDataPolicy |= ParsingUtils.parseDiskStorage(element, attrBuilder);
if (!frozenDataPolicy && overwriteDataPolicy) {
builder.addPropertyValue("dataPolicy", DataPolicy.NORMAL);
}

View File

@@ -110,12 +110,13 @@ abstract class ParsingUtils {
*
* @param element - element enclosing the disk-store definition
* @param beanBuilder - beanbuilder for a RegionAttributesFactory instance
* @return true if parsing actually occured, false otherwise
*/
static void parseDiskStorage(Element element, BeanDefinitionBuilder beanBuilder) {
static boolean parseDiskStorage(Element element, BeanDefinitionBuilder beanBuilder) {
Element diskStoreElement = DomUtils.getChildElementByTagName(element, "disk-store");
if (diskStoreElement == null)
return;
return false;
BeanDefinitionBuilder diskDefBuilder = BeanDefinitionBuilder.genericBeanDefinition(DiskWriteAttributesFactory.class);
setPropertyValue(diskStoreElement, diskDefBuilder, "synchronous-write", "synchronous");
@@ -144,6 +145,8 @@ abstract class ParsingUtils {
beanBuilder.addPropertyValue("diskWriteAttributes", factoryWrapper.getBeanDefinition());
beanBuilder.addPropertyValue("diskDirs", locations);
beanBuilder.addPropertyValue("diskSizes", sizes);
return true;
}
/**
@@ -151,12 +154,13 @@ abstract class ParsingUtils {
*
* @param element
* @param attrBuilder
* @return true if parsing actually occured, false otherwise
*/
static void parseEviction(ParserContext parserContext, Element element, BeanDefinitionBuilder attrBuilder) {
static boolean parseEviction(ParserContext parserContext, Element element, BeanDefinitionBuilder attrBuilder) {
Element evictionElement = DomUtils.getChildElementByTagName(element, "eviction");
if (evictionElement == null)
return;
return false;
BeanDefinitionBuilder evictionDefBuilder = BeanDefinitionBuilder.genericBeanDefinition(EvictionAttributesFactoryBean.class);
@@ -179,5 +183,6 @@ abstract class ParsingUtils {
}
attrBuilder.addPropertyValue("evictionAttributes", evictionDefBuilder.getBeanDefinition());
return true;
}
}