SGF-17
+ add storage parsing
This commit is contained in:
costin
2010-09-02 20:27:41 +03:00
parent 9fcd5e00a7
commit 1a4eecbeac
2 changed files with 44 additions and 1 deletions

View File

@@ -26,6 +26,8 @@ import org.springframework.util.StringUtils;
import org.springframework.util.xml.DomUtils;
import org.w3c.dom.Element;
import com.gemstone.gemfire.cache.DiskWriteAttributesFactory;
/**
* Various minor utility used by the parser.
*
@@ -102,4 +104,43 @@ abstract class ParsingUtils {
return list;
}
/**
* Parses disk store sub-element. Populates the given attribute factory with the proper attributes.
*
* @param beanBuilder - beanbuilder for a RegionAttributesFactory instance
*/
static void parseDiskStorage(Element element, BeanDefinitionBuilder beanBuilder) {
Element diskStoreElement = DomUtils.getChildElementByTagName(element, "disk-store");
if (diskStoreElement == null)
return;
BeanDefinitionBuilder diskDefBuilder = BeanDefinitionBuilder.genericBeanDefinition(DiskWriteAttributesFactory.class);
setPropertyValue(diskStoreElement, diskDefBuilder, "synchronous-write", "synchronous");
setPropertyValue(diskStoreElement, diskDefBuilder, "auto-compact", "rollOplogs");
setPropertyValue(diskStoreElement, diskDefBuilder, "max-oplog-size", "maxOplogSize");
setPropertyValue(diskStoreElement, diskDefBuilder, "time-interval", "timeInterval");
setPropertyValue(diskStoreElement, diskDefBuilder, "queue-size", "bytesThreshold");
// parse nested disk-dir
List<Element> list = DomUtils.getChildElementsByTagName(diskStoreElement, "disk-dir");
ManagedList<Object> locations = new ManagedList<Object>(list.size());
ManagedList<Object> sizes = new ManagedList<Object>(list.size());
for (Element diskDirElement : list) {
locations.add(diskDirElement.getAttribute("location"));
String attr = diskStoreElement.getAttribute("max-size");
sizes.add(StringUtils.hasText(attr) ? attr : "10240");
}
beanBuilder.addPropertyValue("diskWriteAttributes", diskDefBuilder.getBeanDefinition());
beanBuilder.addPropertyValue("diskDirs", locations);
beanBuilder.addPropertyValue("diskSizes", sizes);
}
static void parseEviction(Element element, BeanDefinitionBuilder attrBuilder) {
}
}

View File

@@ -394,7 +394,7 @@ reclaim memory.
<xsd:sequence>
<xsd:element name="disk-dir">
<xsd:complexType>
<xsd:attribute name="location" type="xsd:string">
<xsd:attribute name="location" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation><![CDATA[
Directory on the file system for storing data.
@@ -429,6 +429,7 @@ Indicates whether or not the operation logs are automatically compacted or not.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<!--
<xsd:attribute name="compaction-threshold" default="50">
<xsd:annotation>
<xsd:documentation><![CDATA[
@@ -446,6 +447,7 @@ by entry destroys, entry updates, and region destroys.
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
-->
<xsd:attribute name="max-oplog-size" type="xsd:long" default="1024">
<xsd:annotation>
<xsd:documentation><![CDATA[