[infinispan-commits] Infinispan SVN: r905 - in trunk/core/src: main/resources/xslt and 3 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Mon Oct 5 11:45:10 EDT 2009
Author: mircea.markus
Date: 2009-10-05 11:45:09 -0400 (Mon, 05 Oct 2009)
New Revision: 905
Added:
trunk/core/src/main/resources/xslt/coherence35x2infinispan4x.xslt
trunk/core/src/test/java/org/infinispan/config/parsing/Coherence2InfinispanTransformerTest.java
trunk/core/src/test/resources/configs/coherence/
trunk/core/src/test/resources/configs/coherence/cache-config.dtd
trunk/core/src/test/resources/configs/coherence/default-config.xml
Modified:
trunk/core/src/main/resources/config-samples/all.xml
Log:
added coherence migration scripts
Modified: trunk/core/src/main/resources/config-samples/all.xml
===================================================================
--- trunk/core/src/main/resources/config-samples/all.xml 2009-10-03 17:13:12 UTC (rev 904)
+++ trunk/core/src/main/resources/config-samples/all.xml 2009-10-05 15:45:09 UTC (rev 905)
@@ -137,7 +137,7 @@
Eviction configuration. WakeupInterval defines how often the eviction thread runs, in milliseconds. 0 means
the eviction thread will never run. A separate executor is used for eviction in each cache.
-->
- <eviction wakeUpInterval="500" maxEntries="5000" strategy="FIFO"/>
+ <eviction wakeUpInterval="500" maxEntries="5000" strategy="FIFO" />
<expiration lifespan="60000" maxIdle="1000"/>
</namedCache>
Added: trunk/core/src/main/resources/xslt/coherence35x2infinispan4x.xslt
===================================================================
--- trunk/core/src/main/resources/xslt/coherence35x2infinispan4x.xslt (rev 0)
+++ trunk/core/src/main/resources/xslt/coherence35x2infinispan4x.xslt 2009-10-05 15:45:09 UTC (rev 905)
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet xmlns="urn:infinispan:config:4.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+ <xsl:output method="xml" indent="yes" version="1.0" encoding="UTF-8" omit-xml-declaration="no"/>
+
+ <xsl:template match="/cache-config">
+ <xsl:comment>
+ This XSL stylesheet is generated by an converter from Coherence3.5.x into an Infinispan 4.0.x configuration.
+ Eviction policies are translated to LRU, FIFO or NONE.
+ </xsl:comment>
+ <xsl:element name="infinispan">
+
+ <xsl:element name="global">
+
+ <asyncListenerExecutor factory="org.infinispan.executors.DefaultExecutorFactory">
+ <properties>
+ <property name="threadNamePrefix" value="AsyncTransportThread"/>
+ </properties>
+ </asyncListenerExecutor>
+
+ <asyncTransportExecutor factory="org.infinispan.executors.DefaultExecutorFactory">
+ <properties>
+ <property name="threadNamePrefix" value="AsyncListenerThread"/>
+ </properties>
+ </asyncTransportExecutor>
+
+ <evictionScheduledExecutor factory="org.infinispan.executors.DefaultScheduledExecutorFactory">
+ <properties>
+ <property name="threadNamePrefix" value="EvictionThread"/>
+ </properties>
+ </evictionScheduledExecutor>
+
+ <replicationQueueScheduledExecutor factory="org.infinispan.executors.DefaultScheduledExecutorFactory">
+ <properties>
+ <property name="threadNamePrefix" value="ReplicationQueueThread"/>
+ </properties>
+ </replicationQueueScheduledExecutor>
+
+ <globalJmxStatistics jmxDomain="infinispan" enabled="true"/>
+
+ <shutdown hookBehavior="DEFAULT"/>
+ </xsl:element>
+
+ <xsl:if test="caching-scheme-mapping/cache-mapping/cache-name='*'">
+ <xsl:element name="default">
+ <xsl:call-template name="generateCache"/>
+ </xsl:element>
+ </xsl:if>
+
+ <xsl:for-each select="caching-scheme-mapping/cache-mapping">
+ <xsl:if test="not(cache-name='*')">
+ <xsl:element name="namedCache">
+ <xsl:attribute name="name">
+ <xsl:value-of select="cache-name"/>
+ <xsl:message terminate="no">TODO - please updated following name of the cache to match the one from your code: '<xsl:value-of select="cache-name"/>'
+ </xsl:message>
+ </xsl:attribute>
+ <xsl:call-template name="generateCache"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template name="generateCache">
+ <xsl:variable name="currentScheme" select="./scheme-name"/>
+ <xsl:if test="/cache-config/caching-schemes/local-scheme/scheme-name = scheme-name">
+ <xsl:for-each select="/cache-config/caching-schemes/local-scheme[scheme-name = $currentScheme]">
+ <xsl:call-template name="processLocalScheme"/>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="/cache-config/caching-schemes/distributed-scheme/scheme-name = scheme-name">
+ <xsl:element name="clustering">
+ <xsl:attribute name="mode">distribution</xsl:attribute>
+ <xsl:for-each select="/cache-config/caching-schemes/distributed-scheme[scheme-name = $currentScheme]">
+ <xsl:if test="backup-count or key-partitioning">
+ <xsl:element name="hash">
+ <xsl:if test="backup-count">
+ <xsl:attribute name="numOwners"><xsl:value-of select="backup-count"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="key-partitioning">
+ <xsl:message terminate="no">TODO - please migrate the custom partitioning algorithm</xsl:message>
+ <xsl:attribute name="class"><xsl:value-of select="key-partitioning"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+
+ </xsl:for-each>
+
+ </xsl:element>
+ <xsl:for-each select="/cache-config/caching-schemes/distributed-scheme[scheme-name = $currentScheme]/backing-map-scheme">
+ <xsl:call-template name="processBackingMapScheme"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="/cache-config/caching-schemes/replicated-scheme/scheme-name = scheme-name">
+ <xsl:element name="clustering">
+ <xsl:attribute name="mode">replicated</xsl:attribute>
+ </xsl:element>
+ <xsl:for-each select="/cache-config/caching-schemes/replicated-scheme[scheme-name = $currentScheme]/backing-map-scheme">
+ <xsl:call-template name="processBackingMapScheme"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="/cache-config/caching-schemes/optimistic-scheme/scheme-name = scheme-name">
+ <xsl:message terminate="no">INFO - Optimistic scheme switched to MVCC: http://jbosscache.blogspot.com/2008/07/mvcc-has-landed.html</xsl:message>
+ <xsl:element name="clustering">
+ <xsl:attribute name="mode">replicated</xsl:attribute>
+ </xsl:element>
+ <xsl:for-each
+ select="/cache-config/caching-schemes/optimistic-scheme[scheme-name = $currentScheme]/backing-map-scheme">
+ <xsl:call-template name="processBackingMapScheme"/>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="/cache-config/caching-schemes/near-scheme/scheme-name = scheme-name">
+
+ </xsl:if>
+
+
+ <xsl:if test="(/cache-config/caching-schemes/external-scheme/scheme-name = scheme-name)
+ or (/cache-config/caching-schemes/paged-external-scheme/scheme-name = scheme-name)">
+ <xsl:message terminate="no">WARN - infinispan only supports on-heap cache storage</xsl:message>
+ </xsl:if>
+ <xsl:if test="(/cache-config/caching-schemes/remote-cache-scheme/scheme-name = scheme-name)">
+ <xsl:message terminate="no">TODO - Use one of the server modules (e.g. infinispan-server-rest) in order to configure Infinispan as a cache server</xsl:message>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="processBackingMapScheme">
+ <xsl:if test="./local-scheme/scheme-ref">
+ <xsl:variable name="schemeRefName" select="./local-scheme/scheme-ref"/>
+ <xsl:message terminate="no">I'm entering here! '<xsl:value-of select="$schemeRefName"/>'</xsl:message>
+ <xsl:for-each select="//local-scheme[scheme-name=$schemeRefName]">
+ <xsl:call-template name="processLocalScheme"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="./external-scheme or ./paged-external-scheme">
+ <xsl:message terminate="no">WARN - At the moment Infinispan only supports in memory schemes</xsl:message>
+ </xsl:if>
+ <xsl:if test="./class-scheme">
+ <xsl:message terminate="no">WARN - This is a custom scheme particular to Coherence</xsl:message>
+ </xsl:if>
+ <xsl:if test="./overflow-scheme">
+ <loader class="org.infinispan.loaders.cluster.ClusterCacheLoader" fetchPersistentState="false"
+ ignoreModifications="false" purgeOnStartup="false">
+ <properties>
+ <property name="remoteCallTimeout" value="10000"/>
+ </properties>
+ </loader>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="processLocalScheme">
+ <xsl:if test="./eviction-policy">
+ <xsl:if test="./eviction-policy='HYBRID'">
+ <xsl:message terminate="no">Infinispan does not currently support HYBRID (adaptive) eviction policies. We are condering adding it in further releases: https://jira.jboss.org/jira/browse/ISPN-204</xsl:message>
+ <xsl:element name="eviction">
+ <xsl:attribute name="strategy">LRU</xsl:attribute>
+ <xsl:call-template name="evictionAttributes"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="./expiry-delay">
+ <xsl:element name="expiration">
+ <xsl:attribute name="maxIdle">
+ <xsl:call-template name="extractTime">
+ <xsl:with-param name="baseStr">
+ <xsl:call-template name="extractActualValue">
+ <xsl:with-param name="baseStr">
+ <xsl:value-of select="./expiry-delay"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="cachestore-scheme">
+ <xsl:for-each select="cachestore-scheme">
+ <xsl:call-template name="processCacheStoreScheme"/>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:if>
+
+ </xsl:template>
+
+ <xsl:template name="processCacheStoreScheme">
+ <xsl:choose>
+ <xsl:when test="not(scheme-ref) and not(class-scheme) and not (remote-cache-scheme)">
+ <loaders passivation="false" shared="false" preload="false">
+ <loader class="org.infinispan.loaders.file.FileCacheStore" fetchPersistentState="false"
+ ignoreModifications="false" purgeOnStartup="false">
+
+ <!-- See the documentation for more configuration examples and flags. -->
+ <properties>
+ <property name="location" value="/tmp"/>
+ </properties>
+ </loader>
+ </loaders>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="no">TODO - please migrate the cache store configuration manually</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="not(scheme-ref) and not(class-scheme) and not (remote-cache-scheme)">
+
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="evictionAttributes">
+ <xsl:if test="unit-calculator='BINARY'">
+ <xsl:message terminate="no">TODO - Infinispan does not curenlty support computation based on the size of the
+ cache, please adjust the eviction->maxEntries attribute to fit your need
+ </xsl:message>
+ </xsl:if>
+ <xsl:if test="high-units">
+ <xsl:attribute name="maxEntries">
+ <xsl:call-template name="extractActualValue">
+ <xsl:with-param name="baseStr" select="high-units"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="flush-delay">
+ <xsl:attribute name="wakeUpInterval">
+ <xsl:call-template name="extractTime">
+ <xsl:with-param name="baseStr" select="flush-delay"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="extractTime">
+ <xsl:param name="baseStr"/>
+ <xsl:if test="contains($baseStr,'MS')">
+ <xsl:value-of select="substring-before($baseStr,'MS')"/>
+ </xsl:if>
+ <xsl:if test="contains($baseStr,'ms')">
+ <xsl:value-of select="substring-before($baseStr,'MS')"/>
+ </xsl:if>
+ <xsl:if test="contains($baseStr,'S')">
+ <xsl:value-of select="concat(substring-before($baseStr,'S'),'000')"/>
+ </xsl:if>
+ <xsl:if test="contains($baseStr,'s')">
+ <xsl:value-of select="concat(substring-before($baseStr,'s'),'000')"/>
+ </xsl:if>
+ <xsl:if test="contains($baseStr,'M') and not (contains($baseStr,'MS'))">
+ <xsl:value-of select="number(substring-before($baseStr,'M')) * 1000 * 60"/>
+ </xsl:if>
+ <xsl:if test="contains($baseStr,'m') and not (contains($baseStr,'ms'))">
+ <xsl:value-of select="number(substring-before($baseStr,'m')) * 1000 * 60"/>
+ </xsl:if>
+ <xsl:if test="contains($baseStr,'h')">
+ <xsl:value-of select="number(substring-before($baseStr,'h')) * 1000 * 60 * 60"/>
+ </xsl:if>
+ <xsl:if test="contains($baseStr,'H')">
+ <xsl:value-of select="number(substring-before($baseStr,'H')) * 1000 * 60 * 60"/>
+ </xsl:if>
+ <xsl:if test="contains($baseStr,'D')">
+ <xsl:value-of select="number(substring-before($baseStr,'D')) * 1000 * 60 * 60 * 24"/>
+ </xsl:if>
+ <xsl:if test="contains($baseStr,'d')">
+ <xsl:value-of select="number(substring-before($baseStr,'d')) * 1000 * 60 * 60 * 24"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="extractActualValue">
+ <xsl:param name="baseStr"/>
+ <xsl:if test="contains($baseStr,'}')">
+ <xsl:value-of select="substring-before(substring-after($baseStr,' '),'}')"/>
+ </xsl:if>
+ <xsl:if test="not(contains($baseStr,'}'))">
+ <xsl:value-of select="$baseStr"/>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
Added: trunk/core/src/test/java/org/infinispan/config/parsing/Coherence2InfinispanTransformerTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/config/parsing/Coherence2InfinispanTransformerTest.java (rev 0)
+++ trunk/core/src/test/java/org/infinispan/config/parsing/Coherence2InfinispanTransformerTest.java 2009-10-05 15:45:09 UTC (rev 905)
@@ -0,0 +1,68 @@
+package org.infinispan.config.parsing;
+
+import org.infinispan.Cache;
+import org.infinispan.manager.DefaultCacheManager;
+import org.infinispan.test.TestingUtil;
+import org.testng.annotations.Test;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+
+/**
+ * @author Mircea.Markus at jboss.com
+ */
+ at Test(groups = "functional", testName = "config.parsing.Coherence2InfinispanTransformerTest")
+public class Coherence2InfinispanTransformerTest {
+
+ public static final String XSLT_FILE = "xslt/coherence35x2infinispan4x.xslt";
+ private static final String BASE_DIR = "configs/coherence";
+
+
+ ConfigFilesConvertor convertor = new ConfigFilesConvertor();
+
+ public void testDefaultConfigFile() throws Exception {
+ testAllFile("/default-config.xml");
+ }
+
+ /**
+ * Transforms and tests the transformation of a complex file.
+ */
+ private void testAllFile(String coherenceFileName) throws Exception {
+ ClassLoader existingCl = Thread.currentThread().getContextClassLoader();
+ DefaultCacheManager dcm = null;
+ Cache<Object, Object> sampleDistributedCache2 = null;
+ try {
+ ClassLoader delegatingCl = new Jbc2InfinispanTransformerTest.TestClassLoader(existingCl);
+ Thread.currentThread().setContextClassLoader(delegatingCl);
+ String fileName = getFileName(coherenceFileName);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ convertor.parse(fileName, baos, XSLT_FILE);
+
+
+ File out = new File("zzzz2.xml");
+ if (out.exists()) out.delete();
+ out.createNewFile();
+ FileOutputStream fos = new FileOutputStream(out);
+ fos.write(baos.toByteArray());
+ baos.close();
+ fos.close();
+
+ dcm = new DefaultCacheManager(new ByteArrayInputStream(baos.toByteArray()));
+ Cache<Object,Object> defaultCache = dcm.getCache();
+ defaultCache.put("key", "value");
+
+ } finally {
+ Thread.currentThread().setContextClassLoader(existingCl);
+ TestingUtil.killCaches(sampleDistributedCache2);
+ TestingUtil.killCacheManagers(dcm);
+ }
+ }
+
+ private String getFileName(String s) {
+ return BASE_DIR + File.separator + s;
+ }
+
+
+}
Added: trunk/core/src/test/resources/configs/coherence/cache-config.dtd
===================================================================
--- trunk/core/src/test/resources/configs/coherence/cache-config.dtd (rev 0)
+++ trunk/core/src/test/resources/configs/coherence/cache-config.dtd 2009-10-05 15:45:09 UTC (rev 905)
@@ -0,0 +1,2286 @@
+<!--
+Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+
+Oracle is a registered trademarks of Oracle Corporation and/or its affiliates.
+
+This software is the confidential and proprietary information of
+Oracle Corporation. You shall not disclose such confidential and
+proprietary information and shall use it only in accordance with the
+terms of the license agreement you entered into with Oracle.
+
+This notice may not be removed or altered.
+-->
+
+<!--
+This is the XML DTD for the coherence-cache-config.xml configuration file.
+The configuration file should include a DOCTYPE of the following form:
+
+ <!DOCTYPE cache-config SYSTEM "cache-config.dtd">
+
+Version: Coherence 3.3
+Since : Coherence 2.2
+Authors: ag, gg, jh, cp
+Acknowledgments: Jin Lim
+-->
+
+<!--
+The cache-config element is the root element of the cache-config descriptor.
+
+Used in: n/a
+-->
+<!ELEMENT cache-config
+ (caching-scheme-mapping, caching-schemes)>
+
+<!--
+The caching-scheme-mapping element contains the bindings between the cache
+names and the caching schemes specified for the caches to use.
+
+Used in: cache-config
+-->
+<!ELEMENT caching-scheme-mapping
+ (cache-mapping+)>
+
+<!--
+The cache-mapping element contains a single binding between a cache name and
+a caching scheme this cache will use. Following cache name patterns are
+supported:
+ - exact match, i.e. "MyCache",
+ - prefix match, i.e. "My*" that matches to any cache name starting with "My",
+ - any match "*", that matches to any cache name.
+
+Starting with Coherence 3.0 the cache-mapping element allows specifying
+replaceable cache scheme parameters by supplying any number of "init-param"
+elements.
+During cache scheme parsing, any occurrence of any replaceable parameter in
+format "{parameter-name}" is replaced with the corresponding parameter value.
+
+Consider the following cache mapping example:
+
+ <cache-mapping>
+ <cache-name>My*</cache-name>
+ <scheme-name>my-scheme</scheme-name>
+ <init-params>
+ <init-param>
+ <param-name>cache-loader</param-name>
+ <param-value>com.acme.MyCacheLoader</param-value>
+ </init-param>
+ <init-param>
+ <param-name>size-limit</param-name>
+ <param-value>1000</param-value>
+ </init-param>
+ </init-params>
+ </cache-mapping>
+
+For any matching cache name, any occurrence of the literal "{cache-loader}" in
+any part of the corresponding cache-scheme element will be replaced with the
+string "com.acme.MyCacheLoader" and any occurrence of the literal "{size-limit}"
+will be replaced with the value of "1000".
+
+Used in: caching-scheme-mapping
+-->
+<!ELEMENT cache-mapping
+ (cache-name, scheme-name, init-params?)>
+
+<!--
+The standalone-caching-scheme entity defines the selection of the standalone
+caching scheme types, designed to run in a single JVM and to be used by other
+caching schemes for data storage on for cache values on a specific
+participating cluster node.
+
+Used in: caching-schemes, internal-cache-scheme, front-scheme, back-scheme,
+ backing-map-scheme
+-->
+<!ENTITY % standalone-caching-scheme
+ "local-scheme | disk-scheme | external-scheme | paged-external-scheme | overflow-scheme | class-scheme">
+
+<!--
+The clustered-caching-scheme entity defines the selection of the clustered
+caching scheme types, designed to run in cluster of many JVMs and to assure
+cache coherence for all cluster nodes.
+
+Used in: caching-schemes, back-scheme
+-->
+<!ENTITY % clustered-caching-scheme
+ "distributed-scheme | replicated-scheme | optimistic-scheme">
+
+<!--
+The composite-caching-scheme entity defines the selection of the composite
+caching scheme types, designed to create multi-tiered clustered caches with
+persistence implementations, loaders, etc. These caches utilize other caches
+as building blocks to provide more sophisticated functionality.
+
+Used in: caching-schemes
+-->
+<!ENTITY % composite-caching-scheme
+ "near-scheme | versioned-near-scheme | overflow-scheme">
+
+<!--
+The caching-scheme entity defines the selection of all available caching
+scheme types.
+
+Used in: caching-schemes
+-->
+<!ENTITY % caching-scheme
+ "%clustered-caching-scheme; | %standalone-caching-scheme; | %composite-caching-scheme; | invocation-scheme | read-write-backing-map-scheme | versioned-backing-map-scheme | remote-cache-scheme | remote-invocation-scheme | proxy-scheme">
+
+<!--
+The binary-store-manager entity defines the selection of a
+com.tangosol.io.BinaryStoreManager implementation class.
+
+Used in: external-scheme, paged-external-scheme, async-store-manager
+-->
+<!ENTITY % binary-store-manager
+ "(custom-store-manager | lh-file-manager | bdb-store-manager | nio-file-manager | nio-memory-manager)">
+
+<!--
+The caching-schemes element contains the definitions of all the available
+caching schemes. Caching schemes can be defined from scratch or configured
+to use other caching schemes and override some of the characteristics of the
+schemes they use. Specifying scheme-name allows for other schemes to refer
+to a scheme by its unique name. Specifying scheme-ref allows for the scheme
+to inherit all the characteristics defined in the base scheme whose
+scheme-name is referred to by scheme-ref element, overriding any subset of
+its settings.
+
+Used in: cache-config
+-->
+<!ELEMENT caching-schemes
+ (%caching-scheme;)+>
+
+<!--
+The local-scheme element contains the local caching scheme configuration info.
+It should be used to specify and configure local caches or backing maps with
+various eviction policies.
+
+This scheme is implemented by com.tangosol.net.cache.LocalCache class
+(unless overridden by the class-name element).
+
+Used in: standalone-caching-scheme
+-->
+<!ELEMENT local-scheme
+ (scheme-name?, scheme-ref?, class-name?, service-name?, init-params?,
+ eviction-policy?, high-units?, low-units?, unit-calculator?, unit-factor?,
+ expiry-delay?, flush-delay?, cachestore-scheme?, pre-load?, listener?)>
+
+<!--
+The replicated-scheme element contains the replicated caching scheme
+configuration info.
+
+Used in: clustered-caching-scheme, version-transient-scheme,
+ version-persistent-scheme
+-->
+<!ELEMENT replicated-scheme
+ (scheme-name?, scheme-ref?, service-name?, serializer?, standard-lease-milliseconds?,
+ lease-granularity?, request-timeout?, backing-map-scheme?, listener?, autostart?)>
+
+<!--
+The distributed-scheme element contains the distributed caching scheme
+configuration info.
+
+Used in: clustered-caching-scheme, version-transient-scheme,
+ version-persistent-scheme
+-->
+<!ELEMENT distributed-scheme
+ (scheme-name?, scheme-ref?, service-name?, serializer?, thread-count?,
+ standard-lease-milliseconds?, lease-granularity?, local-storage?,
+ partition-count?, transfer-threshold?, backup-count?,
+ backup-count-after-writebehind?, backup-storage?,
+ key-associator?, key-partitioning?, partition-listener?,
+ task-hung-threshold?, task-timeout?, request-timeout?,
+ operation-bundling?, backing-map-scheme?, listener?, autostart?)>
+
+<!--
+The optimistic-scheme element contains the optimistic caching scheme
+configuration info.
+
+Used in: clustered-caching-scheme
+-->
+<!ELEMENT optimistic-scheme
+ (scheme-name?, scheme-ref?, service-name?, serializer?, request-timeout?,
+ backing-map-scheme?, listener?, autostart?)>
+
+<!--
+The invocation-scheme element contains the invocation scheme
+configuration info.
+
+Used in: caching-scheme
+-->
+<!ELEMENT invocation-scheme
+ (scheme-name?, scheme-ref?, service-name?, serializer?, thread-count?,
+ task-hung-threshold?, task-timeout?, request-timeout?, autostart?)>
+
+<!--
+The near-scheme element contains the near caching scheme configuration info.
+
+This scheme is implemented by com.tangosol.net.cache.NearCache class
+(unless overridden by the class-name element).
+
+Used in: composite-caching-scheme
+-->
+<!ELEMENT near-scheme
+ (scheme-name?, scheme-ref?, class-name?, init-params?,
+ front-scheme?, back-scheme?, invalidation-strategy?,
+ listener?, autostart?)>
+
+<!--
+The versioned-near-scheme element contains the versioned near caching scheme
+configuration info.
+
+This scheme is implemented by com.tangosol.net.cache.VersionedNearCache class
+(unless overridden by the class-name element).
+
+This caching scheme is deprecated, as the corresponding functionality is
+completely covered by the standard near-scheme topology.
+
+Used in: composite-caching-scheme
+-->
+<!ELEMENT versioned-near-scheme
+ (scheme-name?, scheme-ref?, class-name?, init-params?,
+ front-scheme?, back-scheme?, version-transient-scheme?,
+ listener?, autostart?)>
+
+<!--
+The overflow-scheme element contains the overflow caching scheme
+configuration info.
+
+To enable the automatic expiration of cache entries in the overflow cache
+based on the time-to-live setting passed to "put(key, value, ttl)", set
+the expiry-enabled element to true or provide a default expiry in the
+expiry-delay element.
+
+This scheme is implemented by com.tangosol.net.cache.OverflowMap class
+or by com.tangosol.net.cache.SimpleOverflowMap class (unless overridden by
+the class-name element). To explicitly use either the OverflowMap or the
+SimpleOverflowMap implementation, specify com.tangosol.net.cache.OverflowMap
+or com.tangosol.net.cache.SimpleOverflowMap explicitly in the class-name
+element. Otherwise, if expiry-enabled is true or if the back-scheme is
+an observable implementation, then the OverflowMap will be used. Otherwise,
+the SimpleOverflowMap will be used.
+
+Used in: composite-caching-scheme
+-->
+<!ELEMENT overflow-scheme
+ (scheme-name?, scheme-ref?, class-name?, init-params?,
+ front-scheme?, back-scheme?, miss-cache-scheme?,
+ expiry-enabled?, expiry-delay?, listener?)>
+
+<!--
+The expiry-enabled setting turns on support for automatically-expiring data, as
+provided by the CacheMap API.
+
+Used in: overflow-scheme
+-->
+<!ELEMENT expiry-enabled (#PCDATA)>
+
+<!--
+The read-write-backing-map-scheme element contains the read-write backing map
+configuration info.
+
+This scheme is implemented by com.tangosol.net.cache.ReadWriteBackingMap class
+(unless overridden by the class-name element).
+
+Used in: caching-scheme
+-->
+<!ELEMENT read-write-backing-map-scheme
+ (scheme-name?, scheme-ref?, class-name?, init-params?,
+ internal-cache-scheme?, miss-cache-scheme?, cachestore-scheme?,
+ read-only?, (write-delay | write-delay-seconds)?, write-batch-factor?,
+ write-requeue-threshold?, refresh-ahead-factor?, cachestore-timeout?,
+ rollback-cachestore-failures?, listener?)>
+
+<!--
+The versioned-backing-map-scheme element contains the versioned read-write
+backing map configuration info.
+
+This scheme is implemented by com.tangosol.net.cache.VersionedBackingMap class
+(unless overridden by the class-name element).
+
+This caching scheme is deprecated, as the corresponding functionality is
+completely covered by the standard read-write-backing-map-scheme topology.
+
+Used in: caching-scheme
+-->
+<!ELEMENT versioned-backing-map-scheme
+ (scheme-name?, scheme-ref?, class-name?, init-params?,
+ internal-cache-scheme?, miss-cache-scheme?, cachestore-scheme?,
+ read-only?, (write-delay | write-delay-seconds)?, write-batch-factor?,
+ write-requeue-threshold?, refresh-ahead-factor?,
+ rollback-cachestore-failures?, version-persistent-scheme?,
+ version-transient-scheme?, manage-transient?, listener?, autostart?)>
+
+<!--
+The internal-cache-scheme element contains the internal cache storage
+configuration info.
+
+Used in: read-write-backing-map-scheme, versioned-backing-map-scheme
+-->
+<!ELEMENT internal-cache-scheme
+ (%standalone-caching-scheme;)>
+
+<!--
+The miss-cache-scheme element contains configuration info for the local cache
+used to register cachestore misses.
+
+Used in: read-write-backing-map-scheme, versioned-backing-map-scheme
+-->
+<!ELEMENT miss-cache-scheme
+ (local-scheme)>
+
+<!--
+The cachestore-scheme element contains the cachestore configuration info.
+
+Implementation classes should implement one of two interfaces:
+com.tangosol.net.cache.CacheLoader or com.tangosol.net.cache.CacheStore
+
+Used in: read-write-backing-map-scheme, versioned-backing-map-scheme,
+ local-scheme
+-->
+<!ELEMENT cachestore-scheme
+ (scheme-name?, scheme-ref?, (class-scheme | remote-cache-scheme)?,
+ operation-bundling?)>
+
+<!--
+Deprecated: use external-scheme or paged-external-scheme instead.
+
+The disk-scheme element contains the configuration info for a cache storage
+that is not JVM heap based.
+
+This scheme is implemented by com.tangosol.net.cache.SerializationMap for
+size unlimited cache, com.tangosol.net.cache.SerializationCache for size
+limited cache, and com.tangosol.net.cache.SerializationPagedCache for paged
+cache scenario.
+The implementation type is chosen based on the following rule:
+ - if both page-limit and page-duration elements are specified and
+ not zero then the SerializationPagedCache is used;
+ - else if high-units element is specified and not zero then
+ the SerializationCache is used;
+ - otherwise SerializationMap is used.
+
+(See http://www.tangosol.com/downloads/WriteMostlyBrief.pdf for details
+about the Serailization Paged Cache.)
+
+The actual com.tangosol.io.BinaryStore implementation supplied to the
+SerializationMap or SerializationCache depends on the value of the
+file-manager element.
+The actual com.tangosol.io.BinaryStoreManager implementation supplied to the
+SerializationPagedCache depends on the value of the file-manager element.
+
+Used in: standalone-caching-scheme
+-->
+<!ELEMENT disk-scheme
+ (scheme-name?, scheme-ref?, class-name?, init-params?,
+ file-manager?, (root-directory | directory)?, file-name?, high-units?,
+ initial-size?, maximum-size?, page-limit?, page-duration?, listener?,
+ async?, async-limit?)>
+
+<!--
+The external-scheme element contains the configuration info for a cache that
+is not JVM heap based.
+
+This scheme is implemented by the com.tangosol.net.cache.SerializationMap class
+for size unlimited caches and the com.tangosol.net.cache.SerializationCache
+class for size limited caches.
+
+The implementation type is chosen based on the following rule:
+ - if the high-units element is specified and not zero then SerializationCache
+ is used (and the unit-calculator element is respected);
+ - otherwise SerializationMap is used.
+
+The actual com.tangosol.io.BinaryStore implementation supplied to the
+SerializationMap or SerializationCache depends on the specified
+store manager configuration (one of async-store-manager, custom-store-manager,
+lh-file-manager, bdb-store-manager, nio-file-manager, or nio-memory-manager).
+-->
+<!ELEMENT external-scheme
+ (scheme-name?, scheme-ref?, class-name?, init-params?,
+ (async-store-manager | %binary-store-manager;)?, high-units?,
+ unit-calculator?, unit-factor?, expiry-delay?, listener?)>
+
+<!--
+The paged-external-scheme element contains the configuration info for a cache
+that is not JVM heap based and that implements an LRU policy using time-based
+paging.
+
+This scheme is implemented by the com.tangosol.net.cache.SerializationPagedCache
+class. A detailed description of the paged cache functionality can be found
+at http://www.tangosol.com/downloads/WriteMostlyBrief.pdf.
+
+The actual com.tangosol.io.BinaryStoreManager implementation supplied to the
+SerializationPagedCache depends on the specified store manager configuration
+(one of async-store-manager, custom-store-manager, lh-file-manager,
+bdb-store-manager, nio-file-manager, or nio-memory-manager).
+-->
+<!ELEMENT paged-external-scheme
+ (scheme-name?, scheme-ref?, class-name?, init-params?,
+ (async-store-manager | %binary-store-manager;)?, page-limit?, page-duration?,
+ listener?)>
+
+<!--
+The remote-cache-scheme element contains the configuration info necessary to
+use a clustered cache from outside the cluster.
+
+Used in: caching-schemes, cachestore-scheme, back-scheme
+-->
+<!ELEMENT remote-cache-scheme
+ (scheme-name?, scheme-ref?, service-name?, operation-bundling?,
+ initiator-config?)>
+
+<!--
+The remote-invocation-scheme element contains the configuration info necessary
+to execute tasks within the context of a cluster without having to first join
+the cluster.
+
+Used in: caching-schemes
+-->
+<!ELEMENT remote-invocation-scheme
+ (scheme-name?, scheme-ref?, service-name?, initiator-config?)>
+
+<!--
+The proxy-scheme element contains the configuration info for a clustered
+service that allows clients to use clustered services without having to
+join the cluster.
+
+Used in: caching-schemes
+-->
+<!ELEMENT proxy-scheme
+ (scheme-name?, scheme-ref?, service-name?, thread-count?,
+ task-hung-threshold?, task-timeout?, request-timeout?, acceptor-config?,
+ proxy-config?, autostart?)>
+
+<!--
+The front-scheme element contains the front tier cache configuration info.
+
+Used in: versioned-near-scheme, versioned-backing-map-scheme,
+ overflow-scheme, near-scheme
+-->
+<!ELEMENT front-scheme
+ (%standalone-caching-scheme;)>
+
+<!--
+The back-scheme element contains the back tier cache configuration info.
+
+Used in: versioned-near-scheme, versioned-backing-map-scheme,
+ overflow-scheme, near-scheme
+-->
+<!ELEMENT back-scheme
+ (%clustered-caching-scheme; | %standalone-caching-scheme; | remote-cache-scheme)>
+
+<!--
+The version-persistent-scheme element contains the persistent version cache
+configuration info.
+
+This caching scheme is deprecated, as the corresponding functionality is
+completely covered by the standard near-scheme and read-write-backing-map-scheme
+topologies.
+
+Used in: versioned-backing-map-scheme
+-->
+<!ELEMENT version-persistent-scheme
+ (cache-name-suffix?, (replicated-scheme | distributed-scheme))>
+
+<!--
+The version-transient-scheme element contains transient version cache
+configuration info.
+
+This caching scheme is deprecated, as the corresponding functionality is
+completely covered by the standard near-scheme and read-write-backing-map-scheme
+topologies.
+
+Used in: versioned-backing-map-scheme, versioned-near-scheme
+-->
+<!ELEMENT version-transient-scheme
+ (cache-name-suffix?, (replicated-scheme | distributed-scheme))>
+
+<!--
+The backing-map-scheme element contains the backing map configuration info.
+
+Note: the partitioned element is used if and only if the parent element is the
+distributed-scheme.
+
+Used in: replicated-scheme, distributed-scheme, optimistic-scheme
+-->
+<!ELEMENT backing-map-scheme
+ (partitioned?, (%standalone-caching-scheme; | overflow-scheme |
+ read-write-backing-map-scheme | versioned-backing-map-scheme))>
+
+<!--
+The class-scheme element contains the class configuration info.
+
+In most cases, the class-name element is used to specify the name of the
+class to instantiate directly. For example:
+
+ <class-scheme>
+ <class-name>com.tangosol.util.SafeHashMap</class-name>
+ </class-scheme>
+
+Starting with Coherence 3.2, it is possible to specify a static factory
+method to call instead. To specify the factory approach, provide both the
+class-factory-name and method-name elements corresponding to the static
+factory method that returns the new object instance. For example, to provide
+a Map that contains no data whatsoever (and discards any data that is passed
+to it):
+
+ <class-scheme>
+ <class-factory-name>com.tangosol.util.NullImplementation</class-factory-name>
+ <method-name>getObservableMap</method-name>
+ </class-scheme>
+
+Used in: standalone-caching-scheme, cachestore-scheme
+-->
+<!ELEMENT class-scheme
+ (scheme-name?, scheme-ref?, (class-name | (class-factory-name, method-name)),
+ init-params?, listener?)>
+
+<!--
+The async-store-manager element specifies the configuration info for a wrapper
+com.tangosol.io.BinaryStoreManager implementation that creates wrapper
+com.tangosol.io.BinaryStore objects that perform write operations
+asynchronously.
+
+This store manager is implemented by the com.tangosol.io.AsyncBinaryStoreManager
+class. The BinaryStore objects created by this class are instances of
+com.tangosol.io.AsyncBinaryStore.
+
+Used in: external-scheme, paged-external-scheme
+-->
+<!ELEMENT async-store-manager
+ (class-name?, init-params?, %binary-store-manager;, async-limit?)>
+
+<!--
+The custom-store-manager element specifies the configuration info for a custom
+com.tangosol.io.BinaryStoreManager implementation class.
+
+Used in: external-scheme, paged-external-scheme, async-store-manager
+-->
+<!ELEMENT custom-store-manager
+ (class-name, init-params?)>
+
+<!--
+The lh-file-manager element specifies the configuration info for a
+com.tangosol.io.BinaryStoreManager implementation that creates
+com.tangosol.io.BinaryStore objects that use LH files for their underlying
+storage.
+
+This store manager is implemented by the com.tangosol.io.lh.LHBinaryStoreManager
+class. The BinaryStore objects created by this class are instances of
+com.tangosol.io.lh.LHBinaryStore.
+
+Used in: external-scheme, paged-external-scheme, async-store-manager
+-->
+<!ELEMENT lh-file-manager
+ (class-name?, init-params?, directory?, file-name?)>
+
+<!--
+The bdb-store-manager element specifies the configuration info for a
+com.tangosol.io.BinaryStoreManager implementation that creates
+com.tangosol.io.BinaryStore objects that use Berkeley DB JE for their
+underlying storage.
+
+This store manager is implemented by the
+com.tangosol.io.bdb.BerkeleyDBBinaryStoreManager class. The BinaryStore
+objects created by this class are instances of
+com.tangosol.io.bdb.BerkeleyDBBinaryStore.
+
+Used in: external-scheme, paged-external-scheme, async-store-manager
+-->
+<!ELEMENT bdb-store-manager
+ (class-name?, init-params?, directory?, store-name?)>
+
+<!--
+The nio-file-manager element specifies the configuration info for a
+com.tangosol.io.BinaryStoreManager implementation that creates
+com.tangosol.io.BinaryStore objects that use NIO memory mapped files for
+their underlying storage.
+
+This store manager is implemented by the com.tangosol.io.nio.MappedStoreManager
+class. The BinaryStore objects created by this class are instances of
+com.tangosol.io.nio.BinaryMap.
+
+Used in: external-scheme, paged-external-scheme, async-store-manager
+-->
+<!ELEMENT nio-file-manager
+ (class-name?, init-params?, initial-size?, maximum-size?, directory?)>
+
+<!--
+The nio-memory-manager element specifies the configuration info for a
+com.tangosol.io.BinaryStoreManager implementation that creates
+com.tangosol.io.BinaryStore objects that use direct java.nio.ByteBuffer
+objects for their underlying storage.
+
+This store manager is implemented by the com.tangosol.io.nio.DirectStoreManager
+class. The BinaryStore objects created by this class are instances of
+com.tangosol.io.nio.BinaryMap.
+
+Used in: external-scheme, paged-external-scheme, async-store-manager
+-->
+<!ELEMENT nio-memory-manager
+ (class-name?, init-params?, initial-size?, maximum-size?)>
+
+<!--
+The operation-bundling element specifies the configuration info for a
+particular bundling strategy.
+
+Bundling is a process of coalescing multiple individual operations into
+"bundles". It could be beneficial when (1) there is a continuous stream of
+operations on multiple threads in parallel; (2) individual operations have
+relatively high latency (network or database-related); and (3) there are
+functionally analogous [bulk] operations that take a collection of arguments
+instead of a single one without causing the latency to grow linearly
+(as a function of the collection size).
+
+Note: As with any bundling algorithm, there is a natural trade-off between the
+resource utilization and average request latency. Depending on a particular
+application usage pattern, enabling this feature may either help or hurt the
+overall application performance.
+
+See com.tangosol.net.cache.AbstractBundler for additional implementation details.
+
+Used in: cachestore-scheme, distributed-scheme, remote-cache-scheme
+-->
+<!ELEMENT operation-bundling
+ (bundle-config+)>
+
+<!--
+The bundle-config element specifies the bundling strategy configuration for
+one or more bundle-able operations.
+
+Used in: operation-bundling
+-->
+<!ELEMENT bundle-config
+ (operation-name, preferred-size?, delay-millis?, thread-threshold?,
+ auto-adjust?)>
+
+<!--
+The initiator-config element specifies the configuration info for a
+protocol-specific connection initiator. A connection initiator allows a
+client to connect to a cluster (via a connection acceptor) and use the
+clustered services offered by the cluster without having to first join the
+cluster.
+
+Used in: remote-cache-scheme, remote-invocation-scheme
+-->
+<!ELEMENT initiator-config
+ ((jms-initiator | tcp-initiator), outgoing-message-handler?, use-filters?,
+ serializer?)>
+
+<!--
+The acceptor-config element specifies the configuration info for a
+protocol-specific connection acceptor used by a proxy service to enable
+clients to connect to the cluster and use the services offered by the
+cluster without having to join the cluster.
+
+Used in: proxy-scheme
+ -->
+<!ELEMENT acceptor-config
+ ((jms-acceptor | tcp-acceptor), outgoing-message-handler?, use-filters?,
+ serializer?, connection-limit?)>
+
+<!--
+The proxy-config element specifies the configuration info for the clustered
+service proxies managed by a proxy service. A service proxy is an intermediary
+between a remote client (connected to the cluster via a connection acceptor)
+and a clustered service used by the remote client.
+
+Used in: proxy-scheme
+-->
+<!ELEMENT proxy-config
+ (cache-service-proxy?, invocation-service-proxy?)>
+
+<!--
+The jms-initiator element specifies the configuration info for a connection
+initiator that enables clients to connect to a remote cluster via JMS.
+
+Used in: initiator-config
+-->
+<!ELEMENT jms-initiator
+ (queue-connection-factory-name, queue-name, connect-timeout?)>
+
+<!--
+The tcp-initiator element specifies the configuration info for a connection
+initiator that enables clients to connect to a remote cluster via TCP/IP.
+
+Used in: initiator-config
+-->
+<!ELEMENT tcp-initiator
+ (local-address?, remote-addresses, reuse-address?, keep-alive-enabled?, tcp-delay-enabled?,
+ receive-buffer-size?, send-buffer-size?, connect-timeout?, linger-timeout?)>
+
+<!--
+The jms-acceptor element specifies the configuration info for a connection
+acceptor that accepts connections from remote clients over JMS.
+
+Used in: acceptor-config
+-->
+<!ELEMENT jms-acceptor
+ (queue-connection-factory-name, queue-name)>
+
+<!--
+The tcp-acceptor element specifies the configuration info for a connection
+acceptor that accepts connections from remote clients over TCP/IP.
+
+Used in: acceptor-config
+-->
+<!ELEMENT tcp-acceptor
+ ((local-address | address-provider), reuse-address?, keep-alive-enabled?,
+ tcp-delay-enabled?, receive-buffer-size?, send-buffer-size?, listen-backlog?,
+ linger-timeout?, authorized-hosts?)>
+
+<!--
+The authorized-hosts element contains the collection of IP addresses of
+TCP/IP initiator hosts that are allowed to connect to the cluster via a
+TCP/IP acceptor. If this collection is empty no constraints are imposed.
+
+Used in: cluster-config
+-->
+<!ELEMENT authorized-hosts
+ (host-address*, host-range*, host-filter?)>
+
+<!--
+The host-range element describes a range of IP addresses.
+
+Used in: authorized-hosts
+-->
+<!ELEMENT host-range
+ (from-address, to-address)>
+
+<!--
+The host-filter element contains the class configuration info for a
+com.tangosol.util.Filter implementation that is used by a TCP/IP acceptor to
+determine whether to accept a particular TCP/IP initiator. The evaluate()
+method will be passed the java.net.InetAddress of the client. Implementations
+should return "true" to allow the client to connect.
+
+Used in: authorized-hosts
+-->
+<!ELEMENT host-filter
+ (class-name, init-params?)>
+
+<!--
+The outgoing-message-handler specifies the configuration info used to detect
+dropped client-to-cluster connections. For connection initiators and acceptors
+that use connectionless protocols (e.g. JMS), this information is necessary
+to proactively detect and release resources allocated to dropped connections.
+Connection-oriented initiators and acceptors can also use this information as
+an additional mechanism to detect dropped connections.
+
+Used in: initiator-config, acceptor-config
+-->
+<!ELEMENT outgoing-message-handler
+ (heartbeat-interval?, heartbeat-timeout?, request-timeout?)>
+
+<!--
+The use-filters element contains the list of filter names to be used
+by a connection initiator or acceptor.
+
+Used in: initiator-config, acceptor-config
+-->
+<!ELEMENT use-filters
+ (filter-name*)>
+
+<!--
+The serializer element contains the class configuration info for a
+com.tangosol.io.Serializer implementation.
+
+Used in: initiator-config, acceptor-config, distributed-scheme,
+replicated-scheme, optimistic-scheme, invocation-scheme
+-->
+<!ELEMENT serializer
+ (class-name, init-params?)>
+
+<!--
+The cache-service-proxy element contains the configuration info for a
+cache service proxy managed by a proxy service.
+
+Used in: proxy-config
+-->
+<!ELEMENT cache-service-proxy
+ (enabled?, lock-enabled?, read-only?)>
+
+<!--
+The cache-service-proxy element contains the configuration info for an
+invocation service proxy managed by a proxy service.
+
+Used in: proxy-config
+-->
+<!ELEMENT invocation-service-proxy
+ (enabled?)>
+
+<!--
+The local-address element specifies the local address (IP or DNS name) and
+port that a TCP/IP socket will be bound to.
+
+Note: As of Coherence 3.5 the "reusable" element is deprecated; use the
+ "reuse-address" element for the tcp-acceptor and tcp-initiator instead.
+
+Used in: tcp-initiator, tcp-acceptor
+-->
+<!ELEMENT local-address
+ (address?, port?)>
+
+<!--
+The remote-addresses element contains the address (IP or DNS name) and
+port of one or more TCP/IP connection acceptors. The TCP/IP connection
+initiator uses this information to establish a TCP/IP connection with a
+remote cluster. The TCP/IP connection initiator will attempt to connect to
+the addresses in a random order, until either the list is exhausted or a
+TCP/IP connection is established.
+
+Used in: tcp-initiator
+-->
+<!ELEMENT remote-addresses
+ (socket-address+ | address-provider)>
+
+<!--
+The socket-address element specifies the address (IP or DNS name) and port
+of a TCP/IP connection acceptor.
+
+Used in: remote-addresses
+-->
+<!ELEMENT socket-address
+ (address, port)>
+
+<!--
+The address-provider element contains the configuration info for an address
+factory that implements the com.tangosol.net.AddressProvider interface.
+
+Used in: tcp-initiator
+-->
+<!ELEMENT address-provider
+ ((class-name | (class-factory-name, method-name)), init-params?)>
+
+<!--
+The init-params element contains class initialization parameter configuration
+info.
+
+Used in: class-scheme, local-scheme, near-scheme, versioned-near-scheme,
+ overflow-scheme, read-write-backing-map-scheme,
+ versioned-backing-map-scheme, disk-scheme, external-scheme,
+ paged-external-scheme, async-store-manager, custom-store-manager,
+ lh-file-manager, bdb-store-manager, nio-file-manager,
+ nio-memory-manager, serializer, address-provider
+-->
+<!ELEMENT init-params
+ (init-param*)>
+
+<!--
+The init-param element contains the single class initialization parameter
+configuration info.
+
+Used in: init-params
+-->
+<!ELEMENT init-param
+ ((param-name | param-type), param-value)>
+
+<!--
+The backup-storage element contains the backup storage configuration info.
+
+Used in: distributed-scheme
+-->
+<!ELEMENT backup-storage
+ (type, ((initial-size?, maximum-size?, directory?) | class-name? | scheme-name?))>
+
+<!--
+The key-associator element contains the configuration info for a class
+that implements the com.tangosol.net.partition.KeyAssociator interface.
+This implementation must have a public default constructor.
+
+Used in: distributed-scheme
+-->
+<!ELEMENT key-associator (class-name)>
+
+<!--
+The key-partitioning element contains the configuration info for a class
+that implements the com.tangosol.net.partition.KeyPartitioningStrategy
+interface. This implementation must have a public default constructor.
+
+Used in: distributed-scheme
+-->
+<!ELEMENT key-partitioning (class-name)>
+
+<!--
+The partition-listener element contains the configuration info for a class
+that implements the com.tangosol.net.partition.PartitionListener
+interface. This implementation must have a public default constructor.
+
+Used in: distributed-scheme
+-->
+<!ELEMENT partition-listener (class-name)>
+
+<!--
+The task-hung-threshold element specifies the amount of time in milliseconds
+that a request can execute on a service worker thread before it is considered
+as "hung".
+
+Note 1: This element is applicable only if the "thread-count" value is positive.
+Note 2: While a request is queued up and until the actual processing starts,
+the corresponding task is never considered as hung.
+
+Used in: distributed-scheme, invocation-scheme, proxy-scheme
+-->
+<!ELEMENT task-hung-threshold (#PCDATA)>
+
+<!--
+For the partitioned (distributed) cache service the task-timeout element
+specifies the timeout value in milliseconds for requests executing on the
+service worker threads.
+
+For the invocation service, it specifies the timeout value for Invocable tasks
+that implement the com.tangosol.net.PriorityTask interface, but don't explicitly
+specify the execution timeout value (getExecutionTimeoutMillis() returns zero).
+
+A value of zero indicates that the default timeout (as specified by
+service-guardian/timeout-milliseconds in the operational configuration
+descriptor) will be used.
+
+Note: This element is applicable only if the "thread-count" value is positive.
+
+Used in: distributed-scheme, invocation-scheme, proxy-scheme
+-->
+<!ELEMENT task-timeout (#PCDATA)>
+
+<!--
+The cache-name element specifies the name of the cache. The name is unique
+within a cache factory.
+
+Used in: cache-mapping
+-->
+<!ELEMENT cache-name (#PCDATA)>
+
+<!--
+The cache-name-suffix element specifies the name modifier that is used
+to create a cache of version objects associated with a given cache.
+The value of this element is appended to the base cache name.
+
+The default values are "-version" for version-transient-scheme and
+"-persist" for version-persistent-scheme element.
+
+Used in: version-persistent-scheme, version-transient-scheme
+-->
+<!ELEMENT cache-name-suffix (#PCDATA)>
+
+<!--
+The service-name element contains the service name configuration info.
+
+Used in: replicated-scheme, distributed-scheme, optimistic-scheme,
+ local-scheme, invocation-scheme
+-->
+<!ELEMENT service-name (#PCDATA)>
+
+<!--
+The class-name element specifies a fully specified name of a Java class.
+
+Note: in all schemes except the class-scheme, the specified class must:
+ a) extend the corresponding scheme implementation class
+ b) use identical set of parameters for its constructors
+
+Used in: class-scheme, local-scheme, near-scheme, versioned-near-scheme,
+ overflow-scheme, read-write-backing-map-scheme,
+ versioned-backing-map-scheme, disk-scheme, external-scheme,
+ paged-external-scheme, async-store-manager, custom-store-manager,
+ lh-file-manager, bdb-store-manager, nio-file-manager,
+ nio-memory-manager, serializer
+-->
+<!ELEMENT class-name (#PCDATA)>
+
+<!--
+The class-factory-name element specifies a fully specified name of a Java
+class that will be used by the factory approach for the class-scheme.
+
+Used in: class-scheme
+-->
+<!ELEMENT class-factory-name (#PCDATA)>
+
+<!--
+The method-name element specifies a fully specified name of a static factory
+method that will be used by the factory approach for the class-scheme.
+
+Used in: method-scheme
+-->
+<!ELEMENT method-name (#PCDATA)>
+
+<!--
+The param-name element specifies the name of the initialization parameter.
+
+When param-name is specified, if the class being constructed and configured
+implements the XmlConfigurable interface, then a series of init-param
+elements can be transposed in order to build a configuration XML with which
+to configure the constructed object. For example, consider the following
+init-params element:
+
+ <init-params>
+ <init-param>
+ <param-name>shape</param-name>
+ <param-value>circle</param-value>
+ </init-param>
+ <init-param>
+ <param-name>color</param-name>
+ <param-value>blue</param-value>
+ </init-param>
+ </init-params>
+
+If transposed, the result would be:
+
+ <some-arbitrary-element-name>
+ <shape>circle</shape>
+ <color>blue</color>
+ </some-arbitrary-element-name>
+
+Used in: init-param
+-->
+<!ELEMENT param-name (#PCDATA)>
+
+<!--
+The param-type element specifies the Java type of initialization parameter.
+
+Supported types are:
+ - string - indicates that the value is a java.lang.String
+ - boolean - indicates that the value is a java.lang.Boolean
+ - int - indicates that the value is a java.lang.Integer
+ - long - indicates that the value is a java.lang.Long
+ - double - indicates that the value is a java.lang.Double
+ - decimal - indicates that the value is a java.math.BigDecimal
+ - file - indicates that the value is a java.io.File
+ - date - indicates that the value is a java.sql.Date
+ - time - indicates that the value is a java.sql.Time
+ - datetime - indicates that the value is a java.sql.Timestamp
+ - xml - indicates that the value is the param-value XmlElement
+ - java.lang.ClassLoader - the param-value must be "{class-loader}"
+ - com.tangosol.net.BackingMapManagerContext - the param-value must be
+ "{manager-context}"
+ - {scheme-ref} - the param-value must be a name of an existing
+ "scheme-name" element
+ - {cache-ref} - the param-value should be a valid cache name
+
+The value is converted to the specified type, and the target constructor or
+method must have a parameter of that type in order for the instantiation to
+succeed.
+
+Used in: init-param
+-->
+<!ELEMENT param-type (#PCDATA)>
+
+<!--
+The param-value element specifies a value of the initialization parameter.
+
+The value is in a format specific to the type of the parameter.
+
+There are following pre-defined values (macros):
+ - {class-loader} - represents the context ClassLoader
+ - {manager-context} - represents the the backing map manager context
+ - {cache-name} - represents the cache name
+
+The value element can also contain a user-defined macro in the following format:
+ {user-defined-parameter default-value}
+
+The values for user-defined parameters could be specified by the corresponding
+init-param elements in the caching-scheme-mapping/cache-mapping section.
+For example, the following cache-mapping elements assigns a value of 10000 to
+the custom parameter called "back-size-limit":
+
+ <cache-mapping>
+ <cache-name>dist-*</cache-name>
+ <scheme-name>example-distributed</scheme-name>
+ <init-params>
+ <init-param>
+ <param-name>back-size-limit</param-name>
+ <param-value>10000</param-value>
+ </init-param>
+ </init-params>
+ </cache-mapping>
+
+That parameter could be used by any elements in the corresponding scheme. In our
+case, the following scheme would resolve the value of the "high-units" to 10000:
+
+ <local-scheme>
+ <scheme-name>example-backing-map</scheme-name>
+ <high-units>{back-size-limit 0}</high-units>
+ </local-scheme>
+
+Used in: init-param
+-->
+<!ELEMENT param-value (#PCDATA)>
+
+<!--
+The listener element contains the cache listener configuration info.
+
+Implementation classes should implement com.tangosol.util.MapListener
+interface.
+
+Used in: local-scheme, replicated-scheme, distributed-scheme,
+ optimistic-scheme, near-scheme, versioned-near-scheme,
+ overflow-scheme, read-write-backing-map-scheme,
+ versioned-backing-map-scheme, disk-scheme, external-scheme,
+ paged-external-scheme
+-->
+<!ELEMENT listener (class-scheme)>
+
+<!--
+The autostart element is intended to be used by cache servers
+(i.e. com.tangosol.net.DefaultCacheServer). It specifies whether or not the
+cache services associated with the cache scheme should be automatically
+started at a cluster node.
+
+Valid values are "true" or "false". Default value is false.
+
+Used in: replicated-scheme, distributed-scheme, optimistic-scheme,
+ invocation-scheme, near-scheme, versioned-near-scheme,
+ read-write-backing-map-scheme, versioned-backing-map-scheme
+-->
+<!ELEMENT autostart (#PCDATA)>
+
+<!--
+The scheme-name element contains the scheme name. The name is unique
+within a configuration file.
+
+Used in: cache-mapping, local-scheme, replicated-scheme, distributed-scheme,
+ optimistic-scheme, invocation-scheme, overflow-scheme, near-scheme,
+ versioned-near-scheme, read-write-backing-map-scheme,
+ versioned-backing-map-scheme, disk-scheme, external-scheme,
+ paged-external-scheme, remote-cache-scheme, remote-invocation-scheme,
+ proxy-scheme
+-->
+<!ELEMENT scheme-name (#PCDATA)>
+
+<!--
+The scheme-ref element contains the scheme name of the scheme whose
+configuration should be used as an overridable base.
+
+Used in: local-scheme, replicated-scheme, distributed-scheme,
+ optimistic-scheme, invocation-scheme, overflow-scheme, near-scheme,
+ versioned-near-scheme, read-write-backing-map-scheme,
+ versioned-backing-map-scheme, disk-scheme, external-scheme,
+ paged-external-scheme, remote-cache-scheme, remote-invocation-scheme,
+ proxy-scheme
+-->
+<!ELEMENT scheme-ref (#PCDATA)>
+
+<!--
+The partitioned element specifies whether or not the enclosed backing map
+is a PartitionAwareBackingMap. (This element is respected only for
+backing-map-scheme that is a child of a distributed-scheme.) If set to true,
+the specific scheme contained in the backing-map-scheme element will be used to
+configure backing maps for each individual partition of the
+PartitionAwareBackingMap; otherwise it is used for the entire backing map itself.
+
+The concrete implementations of the PartitionAwareBackingMap interface are:
+- com.tangosol.net.partition.ObservableSplittingBackingCache
+- com.tangosol.net.partition.PartitionSplittingBackingMap
+- com.tangosol.net.partition.ReadWriteSplittingBackingMap
+
+Valid values are "true" or "false". Default value is false.
+
+Used in: backing-map-scheme (within a distributed-scheme only)
+-->
+<!ELEMENT partitioned (#PCDATA)>
+
+<!--
+The eviction-policy element contains the eviction policy configuration info.
+
+Valid values are "LRU", "LFU" and "HYBRID".
+
+The HYBRID eviction policy is a combination of LRU (Least Recently Used) and
+LFU (Least Frequently Used). It's a strategy based on entries "priority".
+The higher the priority, the higher is the probability of the entry being pruned
+out of the cache. The priority is calculated as a sum of weighted logarithmic
+measures of two different factors: the "recentness" and the "frequency". The
+algorithm is structured in such a way that if cache entries are used very rarely,
+the eviction strategy becomes equivalent to that of LRU and if all entries are
+used quite often then the eviction strategy becomes equivalent to that of LFU.
+
+Alternatively, this element may contain a class-scheme element that specifies a
+custom eviction policy class. The specified class must implement the
+LocalCache.EvictionPolicy interface.
+
+Used in: local-scheme
+-->
+<!ELEMENT eviction-policy (#PCDATA | class-scheme)*>
+
+<!--
+The high-units element contains the maximum number of cache entries that a
+cache will hold before pruning occurs.
+
+Valid values are positive integers and zero.
+
+Used in: local-scheme, disk-scheme, external-scheme
+-->
+<!ELEMENT high-units (#PCDATA)>
+
+<!--
+The low-units element contains the number of cache entries to which the cache
+will be pruned when cache pruning occurs.
+
+Valid values are positive integers and zero.
+
+Used in: local-scheme
+-->
+<!ELEMENT low-units (#PCDATA)>
+
+<!--
+The unit-calculator element contains the unit calculator configuration info.
+
+Valid values are "FIXED" and "BINARY".
+
+A unit calculator is used to determine the cost (in "units") of a given
+object. The FIXED unit calculator assigns an equal weight of 1 to all cached
+objects. The BINARY unit calculator assigns an object a weight equal to the
+number of bytes of memory required to cache the object. See the JavaDoc for
+the BinaryMemoryCalculator class for additional details.
+
+Alternatively, this element may contain a class-scheme element that specifies a
+custom unit calculator class. The specified class must implement the
+LocalCache.UnitCalculator interface.
+
+Used in: local-scheme, external-scheme
+-->
+<!ELEMENT unit-calculator (#PCDATA | class-scheme)*>
+
+<!--
+The unit-factor element specifies the factor by which the units, low-units and
+high-units properties are adjusted. Using a BINARY unit calculator, for example,
+the factor of 1048576 could be used to count megabytes instead of bytes.
+
+Note: This element was introduced only to avoid changing the type of the units,
+low units and high units properties from 32-bit values to 64-bit values.
+It is expected that the parameter will be dropped in Coherence 4.
+
+Valid values are positive integer numbers. Default value is 1.
+
+Used in: local-scheme, external-scheme
+-->
+<!ELEMENT unit-factor (#PCDATA)>
+
+<!--
+The expiry-delay element specifies the amount of time from last update that
+entries will be kept by the cache before being discarded.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[MS|ms|S|s|M|m|H|h|D|d]?
+
+where the first non-digits (from left to right) indicate the unit of time
+duration:
+
+ -MS or ms (milliseconds)
+ -S or s (seconds)
+ -M or m (minutes)
+ -H or h (hours)
+ -D or d (days)
+
+If the value does not contain a unit, a unit of seconds is assumed.
+
+Used in: local-scheme, external-scheme, overflow-scheme
+-->
+<!ELEMENT expiry-delay (#PCDATA)>
+
+<!--
+The flush-delay element specifies the amount of time between cache flushes.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[MS|ms|S|s|M|m|H|h|D|d]?
+
+where the first non-digits (from left to right) indicate the unit of time
+duration:
+
+ -MS or ms (milliseconds)
+ -S or s (seconds)
+ -M or m (minutes)
+ -H or h (hours)
+ -D or d (days)
+
+If the value does not contain a unit, a unit of seconds is assumed.
+
+If expiry is enabled, the default flush-delay is 1m, otherwise a default of zero
+is used and automatic flushes are disabled
+
+Used in: local-scheme
+-->
+<!ELEMENT flush-delay (#PCDATA)>
+
+<!--
+The invalidation-strategy element specifies the strategy used for a front
+map invalidation.
+Please see the JavaDoc for com.tangosol.net.cache.NearCache class.
+
+Valid values are "none", "present", "all", "auto".
+
+Default value is "auto".
+
+Used in: near-scheme
+-->
+<!ELEMENT invalidation-strategy (#PCDATA)>
+
+<!--
+The file-manager element contains the file manager type that specifies the
+com.tangosol.io.BinaryStore or com.tangosol.io.BinaryStoreManager
+implementation for the enclosing disk-scheme.
+
+Valid values are "LH", "NIO-file" and "NIO-memory".
+
+The corresponding BinaryStore implementations classes are:
+ - com.tangosol.io.lh.LHBinaryStore,
+ - com.tangosol.io.nio.BinaryMap using com.tangosol.io.nio.DirectBufferManager,
+ - com.tangosol.io.nio.BinaryMap using com.tangosol.io.nio.MappedBufferManager.
+
+The corresponding BinaryStoreManager implementations classes are:
+ - com.tangosol.io.lh.LHBinaryStoreManager,
+ - com.tangosol.io.nio.DirectStoreManager,
+ - com.tangosol.io.nio.MappedStoreManager.
+
+The "NIO-file" and "NIO-memory" options are only available with JDK 1.4 and later.
+
+Used in: disk-scheme
+-->
+<!ELEMENT file-manager (#PCDATA)>
+
+<!--
+Deprecated: use directory element instead.
+
+Used in: disk-scheme
+-->
+<!ELEMENT root-directory (#PCDATA)>
+
+<!--
+The read-only element specifies a readonly setting for the cachestore. If true
+the cache will only load data from cachestore for read operations and will not
+perform any writing to the cachestore when the cache is updated.
+
+Valid values are "true" or "false". Default value is false.
+
+Used in: read-write-backing-map-scheme, versioned-backing-map-scheme,
+ cache-proxy-config
+-->
+<!ELEMENT read-only (#PCDATA)>
+
+<!--
+The manage-transient element specifies a manage transient setting for the
+cachestore. If true, the backing map is responsible for keeping the transient
+version cache up to date; otherwise (as is the case when using the
+VersionedNearCache implementation) the backing map manages the transient
+version cache only for operations for which no other party is aware (such as
+entry expiry).
+
+Valid values are "true" or "false". Default value is false.
+
+Used in: versioned-backing-map-scheme
+-->
+<!ELEMENT manage-transient (#PCDATA)>
+
+<!--
+The write-delay-seconds element specifies the number of seconds for a
+write-behind queue to defer asynchronous writes to the cachestore by.
+
+If zero, synchronous writes to the cachestore (without queueing) will take
+place, otherwise the writes will be asynchronous and deferred by the number
+of seconds after the last update to the value in the cache.
+
+Used in: read-write-backing-map-scheme, versioned-backing-map-scheme
+-->
+<!ELEMENT write-delay-seconds (#PCDATA)>
+
+<!--
+The write-delay element specifies the time interval for a
+write-behind queue to defer asynchronous writes to the cachestore by.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[MS|ms|S|s|M|m|H|h|D|d]?
+
+where the first non-digits (from left to right) indicate the unit of time
+duration:
+
+ -MS or ms (milliseconds)
+ -S or s (seconds)
+ -M or m (minutes)
+ -H or h (hours)
+ -D or d (days)
+
+If the value does not contain a unit, a unit of seconds is assumed.
+
+If zero, synchronous writes to the cachestore (without queueing) will take
+place, otherwise the writes will be asynchronous and deferred by the specified
+time interval after the last update to the value in the cache.
+
+Used in: read-write-backing-map-scheme, versioned-backing-map-scheme
+-->
+<!ELEMENT write-delay (#PCDATA)>
+
+<!--
+The write-batch-factor element is used to calculate the "soft-ripe" time for
+write-behind queue entries.
+
+A queue entry is considered to be "ripe" for a write operation if it has been
+in the write-behind queue for no less than the write-delay interval. The
+"soft-ripe" time is the point in time prior to the actual ripe time after
+which an entry will be included in a batched asynchronous write operation to
+the cachestore (along with all other ripe and soft-ripe entries). In other
+words, a soft-ripe entry is an entry that has been in the write-behind
+queue for at least the following duration:
+
+ D' = (1.0 - F)*D
+
+where:
+
+ D = write-delay interval
+ F = write-batch-factor
+
+Conceptually, the write-behind thread uses the following logic when performing
+a batched update:
+
+(1) The thread waits for a queued entry to become ripe.
+(2) When an entry becomes ripe, the thread dequeues all ripe and soft-ripe
+ entries in the queue.
+(3) The thread then writes all ripe and soft-ripe entries either via store()
+ (if there is only the single ripe entry) or storeAll() (if there are
+ multiple ripe/soft-ripe entries).
+(4) The thread then repeats (1).
+
+This element is only applicable if asynchronous writes are enabled (i.e. the
+value of the write-delay element is greater than zero) and the cachestore
+implements the storeAll() method.
+
+The value of the element is expressed as a percentage of the write-delay
+interval. Valid values are doubles in the interval [0.0, 1.0].
+
+Used in: read-write-backing-map-scheme, versioned-backing-map-scheme
+-->
+<!ELEMENT write-batch-factor (#PCDATA)>
+
+<!--
+The write-requeue-threshold element specifies the maximum size of the
+write-behind queue for which failed cachestore write operations are requeued.
+
+The purpose of this setting is to prevent flooding of the write-behind queue
+with failed cachestore operations. This can happened in situations where a
+large number of successive write operations fail.
+
+Valid values are positive integers and zero.
+
+If zero, write-behind requeueing is disabled.
+
+Used in: read-write-backing-map-scheme, versioned-backing-map-scheme
+-->
+<!ELEMENT write-requeue-threshold (#PCDATA)>
+
+<!--
+The refresh-ahead-factor element is used to calculate the "soft-expiration"
+time for cache entries.
+
+Soft-expiration is the point in time prior to the actual expiration after
+which any access request for an entry will schedule an asynchronous load
+request for the entry. This element is only applicable for a
+ReadWriteBackingMap which has an internal LocalCache with scheduled
+automatic expiration.
+
+The value of this element is expressed as a percentage of the internal
+LocalCache expiration interval. Valid values are doubles in the interval
+[0.0, 1.0].
+
+If zero, refresh-ahead scheduling will be disabled.
+
+Used in: read-write-backing-map-scheme, versioned-backing-map-scheme
+-->
+<!ELEMENT refresh-ahead-factor (#PCDATA)>
+
+<!--
+The cachestore-timeout element is used to specify the timeout interval in
+milliseconds to use for cache store read and write operations. If zero is
+specified, the default service guardian timeout will be used. If a cache
+store operation times out, the executing thread will be interrupted and may
+ultimately lead to the termination of the cache service.
+
+Legal values are non-negative numbers.
+
+Default value is 0.
+
+Used in: read-write-backing-map-scheme
+-->
+<!ELEMENT cachestore-timeout (#PCDATA)>
+
+<!--
+The rollback-cachestore-failures element specifies whether or not exceptions
+caught during synchronous cachestore operations are rethrown to the calling
+thread (possibly over the network to a remote member).
+
+If the value of this element is false, an exception caught during a synchronous
+cachestore operation is logged locally and the internal cache is updated.
+
+If the value is true, the exception is rethrown to the calling thread and the
+internal cache is not changed. If the operation was called within a
+transactional context, this would have the effect of rolling back the current
+transaction.
+
+Valid values are "true" or "false". Default value is false.
+
+Used in: read-write-backing-map-scheme, versioned-backing-map-scheme
+-->
+<!ELEMENT rollback-cachestore-failures (#PCDATA)>
+
+<!--
+The thread-count element specifies the number of daemon threads.
+Usage of the daemon threads varies for different service types.
+
+If zero, all relevant tasks are performed on the service thread.
+
+Valid values are positive integers or zero.
+
+Used in: distributed-scheme, invocation-scheme
+-->
+<!ELEMENT thread-count (#PCDATA)>
+
+<!--
+The standard-lease-milliseconds element specifies the duration of the standard
+lease in milliseconds. Once a lease has aged past this number of milliseconds,
+the lock will automatically be released. Set this value to zero to specify a
+lease that never expires.
+The purpose of this setting is to avoid deadlocks or blocks caused by stuck
+threads; the value should be set higher than the longest expected lock
+duration (e.g. higher than a transaction timeout). It's also recommended
+to set this value higher then packet-delivery/timeout-milliseconds value
+in tangosol-coherence.xml descriptor.
+
+Valid values are positive integers and zero.
+
+Default value is the value specified in the tangosol-coherence.xml descriptor.
+
+Used in: replicated-scheme, distributed-scheme
+-->
+<!ELEMENT standard-lease-milliseconds (#PCDATA)>
+
+<!--
+The lease-granularity element specifies the lease ownership granularity.
+
+Valid values are "thread" and "member". A value of "thread" means that
+locks are held by a thread that obtained them and can only be released by
+that thread. A value of "member" means that locks are held by a cluster
+node and any thread running on the cluster node that obtained the lock can
+release it.
+
+Default value is the value specified in the tangosol-coherence.xml descriptor.
+
+Used in: replicated-scheme, distributed-scheme
+-->
+<!ELEMENT lease-granularity (#PCDATA)>
+
+<!--
+The local-storage element specifies whether or not this member will store a
+portion of the data managed by the partitioned (distributed) cache service.
+
+Valid values are "true" or "false". A value of false means that the cluster
+member will not store any of the data locally. A value of true means that the
+cluster member will store its fair share of the data.
+
+Default value is the value specified in the tangosol-coherence.xml descriptor.
+
+Used in: distributed-scheme
+-->
+<!ELEMENT local-storage (#PCDATA)>
+
+<!--
+The partition-count element specifies the number of partitions that a partitioned
+(distributed) cache will be "chopped up" into. Each member running the
+partitioned cache service that has the local-storage option set to true will
+manage a "fair" (balanced) number of partitions.
+
+The number of partitions should be a prime number and sufficiently large such that
+a given partition is expected to be no larger than 50MB in size.
+
+Good defaults for example service storage sizes are provided below:
+
+service storage partition-count
+_______________ ______________
+ 100M 257
+ 1G 509
+ 10G 2039
+ 50G 4093
+ 100G 8191
+
+A list of first 1,000 primes can be found at
+http://www.utm.edu/research/primes/lists/small/1000.txt
+
+Valid values are positive integers.
+
+Default value is the value specified in the tangosol-coherence.xml descriptor.
+
+Used in: distributed-scheme
+-->
+<!ELEMENT partition-count (#PCDATA)>
+
+<!--
+The transfer-threshold element specifies the threshold for the primary buckets
+(partitions) distribution in kilo-bytes.
+
+When a new node joins the partitioned (distributed) cache service or when a member
+of the partitioned cache service leaves, the remaining nodes perform a task of
+bucket ownership re-distribution. During this process, the existing data gets
+re-balanced along with the ownership information. This parameter indicates a
+preferred message size for data transfer communications. Setting this value
+lower will make the distribution process take longer, but will reduce network
+bandwidth utilization during this activity.
+
+Valid values are positive integers.
+
+Default value is the value specified in the tangosol-coherence.xml descriptor.
+
+Used in: distributed-scheme
+-->
+<!ELEMENT transfer-threshold (#PCDATA)>
+
+<!--
+The backup-count element specifies the number of members of the partitioned
+(distributed) cache service that hold the backup data for each unit of storage
+in the cache.
+
+Value of 0 means that in the case of abnormal termination, some portion of the
+data in the cache will be lost. Value of N means that if up to N cluster nodes
+terminate at once, the cache data will be preserved.
+
+To maintain the partitioned cache of size M, the total memory usage in the
+cluster does not depend on the number of cluster nodes and will be in the
+order of M*(N+1).
+
+Recommended values are 0, 1 or 2.
+
+Default value is the value specified in the tangosol-coherence.xml descriptor.
+
+Used in: distributed-scheme
+-->
+<!ELEMENT backup-count (#PCDATA)>
+
+<!--
+The backup-count-after-writebehind element specifies the number of members of
+the partitioned (distributed) cache service that will retain backup data that
+does _not_ require write-behind, i.e. data that is not vulnerable to being lost
+even if the entire cluster were shut down.
+
+Specifically, if a unit of storage is marked as requiring write-behind, then
+it will be backed up on the number of members specified by the backup-count
+element, and if the unit of storage is not marked as requiring write-behind,
+then it will be backed up only by the number of members specified by the
+backup-count-after-writebehind element.
+
+Value must be in the range [0 .. backup-count].
+
+Default value is the value specified in the backup-count element.
+
+Used in: distributed-scheme
+-->
+<!ELEMENT backup-count-after-writebehind (#PCDATA)>
+
+<!--
+The type element specifies the type of the storage used to hold the backup data.
+
+Valid values are "on-heap", "off-heap", "file-mapped", "custom" or "scheme".
+
+The corresponding implementations classes are
+ - com.tangosol.util.SafeHashMap,
+ - com.tangosol.io.nio.BinaryMap using com.tangosol.io.nio.DirectBufferManager,
+ - com.tangosol.io.nio.BinaryMap using com.tangosol.io.nio.MappedBufferManager,
+ - the class specified by the backup-storage/class-name element,
+ - the map returned by the ConfigurableCacheFactory for the scheme referred to
+ by the backup-storage/scheme-name element.
+
+The "off-heap" and "file-mapped" options are only available with JDK 1.4 and later.
+
+Default value is the value specified in the tangosol-coherence.xml descriptor.
+
+Used in: backup-storage
+-->
+<!ELEMENT type (#PCDATA)>
+
+<!--
+The initial-size element specifies the initial buffer size in bytes.
+
+Only applicable with "NIO-*" file-managers in the disk-scheme,
+the nio-file-manager, the nio-memory-manager, and the "file-mapped" type for
+backup-storage.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[B|b]?
+
+where the first non-digit (from left to right) indicates the factor with
+which the preceding decimal value should be multiplied:
+
+ -K or k (kilo, 2^10)
+ -M or m (mega, 2^20)
+ -G or g (giga, 2^30)
+ -T or t (tera, 2^40)
+
+If the value does not contain a factor, a factor of mega is assumed.
+
+Valid values are positive integers between 1 and Integer.MAX_VALUE - 1023.
+
+Default value is 1MB.
+
+Used in: disk-scheme, backup-storage, nio-file-manager, nio-memory-manager
+-->
+<!ELEMENT initial-size (#PCDATA)>
+
+<!--
+The maximum-size element specifies the maximum buffer size in bytes.
+
+Only applicable with "NIO-*" file-managers in the disk-scheme,
+the nio-file-manager, the nio-memory-manager, and the "file-mapped" type for
+backup-storage.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[B|b]?
+
+where the first non-digit (from left to right) indicates the factor with
+which the preceding decimal value should be multiplied:
+
+ -K or k (kilo, 2^10)
+ -M or m (mega, 2^20)
+ -G or g (giga, 2^30)
+ -T or t (tera, 2^40)
+
+If the value does not contain a factor, a factor of mega is assumed.
+
+Valid values are positive integers between 1 and Integer.MAX_VALUE - 1023.
+
+Default value is 1024MB.
+
+Used in: disk-scheme, backup-storage, nio-file-manager, nio-memory-manager
+-->
+<!ELEMENT maximum-size (#PCDATA)>
+
+<!--
+The page-limit element specifies the maximum number of active pages.
+
+Valid values are positive integers between 2 and 3600 and zero.
+
+Default value is zero.
+
+Used in: disk-scheme, paged-external-scheme
+-->
+<!ELEMENT page-limit (#PCDATA)>
+
+<!--
+The page-duration element specifies length of time, in seconds, that a page
+is current.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[MS|ms|S|s|M|m|H|h|D|d]?
+
+where the first non-digits (from left to right) indicate the unit of time
+duration:
+
+ -MS or ms (milliseconds)
+ -S or s (seconds)
+ -M or m (minutes)
+ -H or h (hours)
+ -D or d (days)
+
+If the value does not contain a unit, a unit of seconds is assumed.
+
+Valid values are between 5 and 604800 seconds (one week) and zero.
+
+Default value is zero.
+
+Used in: disk-scheme, paged-external-scheme
+-->
+<!ELEMENT page-duration (#PCDATA)>
+
+<!--
+The directory element specifies the pathname for the [root] directory that a
+disk persistence manager will use to store files in. If not specified or
+specifies a non-existent directory, a temporary file in the default location
+will be used.
+
+Applicable with the "LH" file-manager in the disk-scheme, the
+lh-file-manager, the bdb-store-manager, the nio-file-manager, and the
+"file-mapped" type for backup-storage,
+
+Used in: disk-scheme, backup-storage, lh-file-manager, bdb-store-manager,
+nio-file-manager
+-->
+<!ELEMENT directory (#PCDATA)>
+
+<!--
+The file-name element specifies the name for a non-temporary file to use for
+a disk persistence manager. This is intended only for local caches that are
+backed by a cache loader from a non-temporary file, so that the local cache
+can be pre-populated from the disk file on startup.
+
+Used in: disk-scheme, lh-file-manager
+-->
+<!ELEMENT file-name (#PCDATA)>
+
+<!--
+The store-name element specifies the name for a non-temporary data store to
+use for a persistence manager. This is intended only for local caches that are
+backed by a cache loader from a non-temporary store, so that the local cache
+can be pre-populated from the store on startup.
+
+Used in: bdb-store-manager
+-->
+<!ELEMENT store-name (#PCDATA)>
+
+<!--
+The async element specifies that write operations for a disk-scheme are
+performed asynchronously.
+
+Valid values are true and false.
+
+Default value is false.
+
+Used in: disk-scheme
+-->
+<!ELEMENT async (#PCDATA)>
+
+<!--
+The async-limit element specifies the maximum number of bytes that will be
+queued to be written asynchronously. Setting the value to zero does not
+disable asynchronous writes; instead, the value of zero indicates that the
+implementation default for the maximum number of bytes should be used.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[K|k|M|m]?[B|b]?
+
+where the first non-digit (from left to right) indicates the factor with
+which the preceding decimal value should be multiplied:
+
+ -K (kilo, 2^10)
+ -M (mega, 2^20)
+
+If the value does not contain a factor, a factor of one is assumed.
+
+Valid values are any positive memory sizes and zero.
+
+Default value is 4M.
+
+Used in: disk-scheme, async-store-manager
+-->
+<!ELEMENT async-limit (#PCDATA)>
+
+<!--
+The pre-load element specifies whether a cache will pre-load data from its
+CacheLoader (or CacheStore) object.
+
+Valid values are true and false.
+
+Default value is false.
+
+Used in: local-scheme
+-->
+<!ELEMENT pre-load (#PCDATA)>
+
+<!--
+The operation-name element specifies the operation name for which calls
+performed concurrently on multiple threads will be "bundled" into a
+functionally analogous [bulk] operation that takes a collection of arguments
+instead of a single one.
+
+Valid values depend on the bundle configuration context. For the
+cachestore-scheme the valid operations are "load", "store" and "erase". For the
+distributed-scheme and remote-cache-scheme the valid operations are "get", "put"
+and "remove". In all cases there is a pseudo operation "all", referring to all
+valid operations.
+
+Default value is "all".
+
+Used in: bundle-config
+-->
+<!ELEMENT operation-name (#PCDATA)>
+
+<!--
+The preferred-size element specifies the bundle size threshold. When a bundle
+size reaches this value, the corresponding "bulk" operation will be invoked
+immediately. This value is measured in context-specific units.
+
+Valid values are zero (disabled bundling) or positive values.
+
+Default value is zero.
+
+Used in: bundle-config
+-->
+<!ELEMENT preferred-size (#PCDATA)>
+
+<!--
+The delay-millis element specifies the maximum amount of time in milliseconds
+that individual execution requests are allowed to be deferred for a purpose of
+"bundling" them together and passing into a corresponding bulk operation.
+If the preferred-size threshold is reached before the specified delay, the
+bundle is processed immediately.
+
+Valid values are positive numbers.
+
+Default value is 1.
+
+Used in: bundle-config
+-->
+<!ELEMENT delay-millis (#PCDATA)>
+
+<!--
+The thread-threshold element specifies the minimum number of threads that must
+be concurrently executing individual (non-bundled) requests for the bundler to
+switch from a pass-through to a bundling mode.
+
+Valid values are positive numbers.
+
+Default value is 4.
+
+Used in: bundle-config
+-->
+<!ELEMENT thread-threshold (#PCDATA)>
+
+<!--
+The auto-adjust element specifies whether or not the auto adjustment of the
+preferred-size value (based on the run-time statistics) is allowed.
+
+Valid values are "true" or "false".
+
+Default value is "false".
+
+Used in: bundle-config
+-->
+<!ELEMENT auto-adjust (#PCDATA)>
+
+<!--
+The maximum number of simultaneous connections allowed by a connection
+acceptor.
+
+Valid values are positive integers and zero. A value of zero implies no
+limit.
+
+Default value is zero.
+
+Used in: acceptor-config
+-->
+<!ELEMENT connection-limit (#PCDATA)>
+
+<!--
+The queue-connection-factory-name specifies the JNDI name of the JMS
+QueueConnectionFactory used by a JMS connection initiator or acceptor.
+
+Used in: jms-initiator, jms-acceptor
+-->
+<!ELEMENT queue-connection-factory-name (#PCDATA)>
+
+<!--
+The queue-name specifies the JNDI name of the JMS Queue used by a JMS
+connection initiator or acceptor.
+
+Used in: jms-scheme
+-->
+<!ELEMENT queue-name (#PCDATA)>
+
+<!--
+The connect-timeout specifies the maximum amount of time to wait while
+establishing a connection with a connection acceptor.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[MS|ms|S|s|M|m|H|h|D|d]?
+
+where the first non-digits (from left to right) indicate the unit of time
+duration:
+
+ -MS or ms (milliseconds)
+ -S or s (seconds)
+ -M or m (minutes)
+ -H or h (hours)
+ -D or d (days)
+
+If the value does not contain a unit, a unit of milliseconds is assumed.
+
+Default value is an infinite timeout.
+
+Used in: jms-initiator, tcp-initiator
+-->
+<!ELEMENT connect-timeout (#PCDATA)>
+
+<!--
+The linger-timeout element enables SO_LINGER on a TCP/IP socket with the
+specified linger time.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[MS|ms|S|s|M|m|H|h|D|d]?
+
+where the first non-digits (from left to right) indicate the unit of time
+duration:
+
+ -MS or ms (milliseconds)
+ -S or s (seconds)
+ -M or m (minutes)
+ -H or h (hours)
+ -D or d (days)
+
+If the value does not contain a unit, a unit of milliseconds is assumed.
+
+Linger is disabled by default.
+
+Used in: tcp-initiator, tcp-acceptor
+-->
+<!ELEMENT linger-timeout (#PCDATA)>
+
+<!--
+The request-timeout specifies the maximum amount of time a client will wait for
+a response before abandoning the original request.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[MS|ms|S|s|M|m|H|h|D|d]?
+
+where the first non-digits (from left to right) indicate the unit of time
+duration:
+
+ -MS or ms (milliseconds)
+ -S or s (seconds)
+ -M or m (minutes)
+ -H or h (hours)
+ -D or d (days)
+
+If the value does not contain a unit, a unit of milliseconds is assumed.
+
+Default value is an infinite timeout.
+
+Used in: outgoing-message-handler, replicated-scheme, distributed-scheme,
+optimistic-scheme, invocation-scheme, proxy-scheme
+-->
+<!ELEMENT request-timeout (#PCDATA)>
+
+<!--
+The heartbeat-interval specifies the interval between ping requests. A ping
+request is used to ensure the integrity of a connection.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[MS|ms|S|s|M|m|H|h|D|d]?
+
+where the first non-digits (from left to right) indicate the unit of time
+duration:
+
+ -MS or ms (milliseconds)
+ -S or s (seconds)
+ -M or m (minutes)
+ -H or h (hours)
+ -D or d (days)
+
+If the value does not contain a unit, a unit of milliseconds is assumed.
+
+Ping requests are disabled by default.
+
+Used in: outgoing-message-handler
+-->
+<!ELEMENT heartbeat-interval (#PCDATA)>
+
+<!--
+The heartbeat-timeout specifies the maximum amount of time to wait for a
+response to a ping request before declaring the underlying connection
+unusable.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[MS|ms|S|s|M|m|H|h|D|d]?
+
+where the first non-digits (from left to right) indicate the unit of time
+duration:
+
+ -MS or ms (milliseconds)
+ -S or s (seconds)
+ -M or m (minutes)
+ -H or h (hours)
+ -D or d (days)
+
+If the value does not contain a unit, a unit of milliseconds is assumed.
+
+Ping requests are disabled by default.
+
+Used in: outgoing-message-handler
+-->
+<!ELEMENT heartbeat-timeout (#PCDATA)>
+
+<!--
+The filter-name element contains the canonical name of the filter as specified
+in the operational configuration file. This name is unique within the cluster.
+
+Used in: use-filters
+-->
+<!ELEMENT filter-name (#PCDATA)>
+
+<!--
+The enabled element specifies whether or not a proxy managed by the proxy
+service is enabled.
+
+Valid values are true and false.
+
+Default value is true.
+
+Used in: cache-service-proxy, invocation-service-proxy
+-->
+<!ELEMENT enabled (#PCDATA)>
+
+<!--
+The lock-enabled element specifies whether or not lock requests from remote
+clients are permitted on a cache.
+
+Used in: cache-service-proxy
+-->
+<!ELEMENT lock-enabled (#PCDATA)>
+
+<!--
+The address element specifies the IP address used by a socket.
+
+Used in: local-address, socket-address
+-->
+<!ELEMENT address (#PCDATA)>
+
+<!--
+The port element specifies a port used by a socket.
+
+Valid values are from 1 to 65535.
+
+Used in: local-address, socket-address
+-->
+<!ELEMENT port (#PCDATA)>
+
+
+<!--
+The reuse-address element specifies whether or not a TCP/IP socket can be bound to
+an address if a previous connection is in a timeout state.
+
+When a TCP/IP connection is closed the connection may remain in a timeout
+state for a period of time after the connection is closed (typically known as
+the TIME_WAIT state or 2MSL wait state). For applications using a well known
+socket address or port it may not be possible to bind a socket to a required
+address if there is a connection in the timeout state involving the socket
+address or port.
+
+Valid values are true and false.
+
+Default value is false.
+
+Used in: tcp-initiator, tcp-acceptor
+-->
+<!ELEMENT reuse-address (#PCDATA)>
+
+<!--
+The value of the keep-alive-enabled element indicates whether or not keep
+alive (SO_KEEPALIVE) is enabled on a TCP/IP socket.
+
+Valid values are true and false.
+
+Keep alive is enabled by default.
+
+Used in: tcp-initiator and tcp-acceptor
+-->
+<!ELEMENT keep-alive-enabled (#PCDATA)>
+
+<!--
+The value of the tcp-delay-enabled element indicates whether or not TCP
+delay (Nagle's algorithm) is enabled on a TCP/IP socket.
+
+Valid values are true and false.
+
+TCP delay is disabled by default.
+
+Used in: tcp-initiator and tcp-acceptor
+-->
+<!ELEMENT tcp-delay-enabled (#PCDATA)>
+
+<!--
+The value of the receive-buffer-size element is used to configure the size of
+the underlying TCP/IP socket network receive buffer.
+
+Increasing the receive buffer size can increase the performance of network
+I/O for high-volume connections, while decreasing it can help reduce the
+backlog of incoming data.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[B|b]?
+
+where the first non-digit (from left to right) indicates the factor with
+which the preceding decimal value should be multiplied:
+
+ -K or k (kilo, 2^10)
+ -M or m (mega, 2^20)
+ -G or g (giga, 2^30)
+ -T or t (tera, 2^40)
+
+If the value does not contain a factor, a factor of one is assumed.
+
+Default value is O/S dependent.
+
+Used in: tcp-initiator
+-->
+<!ELEMENT receive-buffer-size (#PCDATA)>
+
+<!--
+The value of the send-buffer-size element is used to configure the size of the
+underlying TCP/IP socket network send buffer.
+
+The value of this element must be in the following format:
+
+ [\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[B|b]?
+
+where the first non-digit (from left to right) indicates the factor with
+which the preceding decimal value should be multiplied:
+
+ -K or k (kilo, 2^10)
+ -M or m (mega, 2^20)
+ -G or g (giga, 2^30)
+ -T or t (tera, 2^40)
+
+If the value does not contain a factor, a factor of one is assumed.
+
+Default value is O/S dependent.
+
+Used in: tcp-initiator, tcp-acceptor
+-->
+<!ELEMENT send-buffer-size (#PCDATA)>
+
+<!--
+The value of the listen-backlog element is used to configure the size of the
+TCP/IP server socket backlog queue.
+
+Valid values are positive integers.
+
+Default value is O/S dependent.
+
+Used in: tcp-acceptor
+-->
+<!ELEMENT listen-backlog (#PCDATA)>
+
+<!--
+The host-address element specifies a host IP address.
+
+Used in: authorized-hosts
+-->
+<!ELEMENT host-address (#PCDATA)>
+
+<!--
+The from-address element specifies the starting IP address for a range of
+hosts.
+
+Used in: host-range
+-->
+<!ELEMENT from-address (#PCDATA)>
+
+<!--
+The to-address element specifies the ending IP address (inclusive)
+for a range of hosts.
+
+Used in: host-range
+-->
+<!ELEMENT to-address (#PCDATA)>
+
+<!--
+The system-property mechanism allows the value of certain elements be replaced
+with values passed into a JVM using the system properties specified in a Java
+command line using the -D<name>=<value> option.
+-->
+<!ATTLIST scheme-name system-property CDATA #IMPLIED>
+<!ATTLIST local-storage system-property CDATA #IMPLIED>
+<!ATTLIST directory system-property CDATA #IMPLIED>
+<!ATTLIST thread-count system-property CDATA #IMPLIED>
+<!ATTLIST param-value system-property CDATA #IMPLIED>
+<!ATTLIST autostart system-property CDATA #IMPLIED>
+<!ATTLIST address system-property CDATA #IMPLIED>
+<!ATTLIST port system-property CDATA #IMPLIED>
Added: trunk/core/src/test/resources/configs/coherence/default-config.xml
===================================================================
--- trunk/core/src/test/resources/configs/coherence/default-config.xml (rev 0)
+++ trunk/core/src/test/resources/configs/coherence/default-config.xml 2009-10-05 15:45:09 UTC (rev 905)
@@ -0,0 +1,286 @@
+<?xml version="1.0"?>
+
+<!--
+Note: This XML document is an example Coherence Cache Configuration deployment
+descriptor that should be customized (or replaced) for your particular caching
+requirements. The cache mappings and schemes declared in this descriptor are
+strictly for demonstration purposes and are not required.
+
+For detailed information on each of the elements that can be used in this
+descriptor please see the Coherence Cache Configuration deployment descriptor
+guide included in the Coherence distribution or the "Cache Configuration
+Elements" page on the Coherence Wiki (http://wiki.tangosol.com).
+-->
+
+<cache-config>
+ <caching-scheme-mapping>
+ <cache-mapping>
+ <cache-name>dist-*</cache-name>
+ <scheme-name>example-distributed</scheme-name>
+ <init-params>
+ <init-param>
+ <param-name>back-size-limit</param-name>
+ <param-value>8MB</param-value>
+ </init-param>
+ </init-params>
+ </cache-mapping>
+
+ <cache-mapping>
+ <cache-name>near-*</cache-name>
+ <scheme-name>example-near</scheme-name>
+ <init-params>
+ <init-param>
+ <param-name>back-size-limit</param-name>
+ <param-value>8MB</param-value>
+ </init-param>
+ </init-params>
+ </cache-mapping>
+
+ <cache-mapping>
+ <cache-name>repl-*</cache-name>
+ <scheme-name>example-replicated</scheme-name>
+ </cache-mapping>
+
+ <cache-mapping>
+ <cache-name>opt-*</cache-name>
+ <scheme-name>example-optimistic</scheme-name>
+ <init-params>
+ <init-param>
+ <param-name>back-size-limit</param-name>
+ <param-value>5000</param-value>
+ </init-param>
+ </init-params>
+ </cache-mapping>
+
+ <cache-mapping>
+ <cache-name>local-*</cache-name>
+ <scheme-name>example-object-backing-map</scheme-name>
+ </cache-mapping>
+
+ <cache-mapping>
+ <cache-name>*</cache-name>
+ <scheme-name>example-distributed</scheme-name>
+ </cache-mapping>
+ </caching-scheme-mapping>
+
+ <caching-schemes>
+ <!--
+ Distributed caching scheme.
+ -->
+ <distributed-scheme>
+ <scheme-name>example-distributed</scheme-name>
+ <service-name>DistributedCache</service-name>
+
+ <!-- To use POF serialization for this partitioned service,
+ uncomment the following section -->
+ <!--
+ <serializer>
+ <class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
+ </serializer>
+ -->
+
+ <backing-map-scheme>
+ <local-scheme>
+ <scheme-ref>example-binary-backing-map</scheme-ref>
+ </local-scheme>
+ </backing-map-scheme>
+ <!--<key-partitioning>org.custon.KeyPartitioning</key-partitioning>-->
+ <backup-count>1</backup-count>
+
+ <autostart>true</autostart>
+ </distributed-scheme>
+
+ <!--
+ Near caching (two-tier) scheme with size limited local cache
+ in the front-tier and a distributed cache in the back-tier.
+ -->
+ <near-scheme>
+ <scheme-name>example-near</scheme-name>
+
+ <front-scheme>
+ <local-scheme>
+ <eviction-policy>HYBRID</eviction-policy>
+ <high-units>100</high-units>
+ <expiry-delay>1m</expiry-delay>
+ </local-scheme>
+ </front-scheme>
+
+ <back-scheme>
+ <distributed-scheme>
+ <scheme-ref>example-distributed</scheme-ref>
+ </distributed-scheme>
+ </back-scheme>
+
+ <invalidation-strategy>present</invalidation-strategy>
+ <autostart>true</autostart>
+ </near-scheme>
+
+ <!--
+ Replicated caching scheme.
+ -->
+ <replicated-scheme>
+ <scheme-name>example-replicated</scheme-name>
+ <service-name>ReplicatedCache</service-name>
+
+ <backing-map-scheme>
+ <local-scheme>
+ <scheme-ref>unlimited-backing-map</scheme-ref>
+ </local-scheme>
+ </backing-map-scheme>
+
+ <autostart>true</autostart>
+ </replicated-scheme>
+
+ <!--
+ Optimistic caching scheme.
+ -->
+ <optimistic-scheme>
+ <scheme-name>example-optimistic</scheme-name>
+ <service-name>OptimisticCache</service-name>
+
+ <backing-map-scheme>
+ <local-scheme>
+ <scheme-ref>example-object-backing-map</scheme-ref>
+ </local-scheme>
+ </backing-map-scheme>
+
+ <autostart>true</autostart>
+ </optimistic-scheme>
+
+ <!--
+ A scheme used by backing maps that may store data in object format and
+ employ size limitation and/or expiry eviction policies.
+ -->
+ <local-scheme>
+ <scheme-name>example-object-backing-map</scheme-name>
+
+ <eviction-policy>HYBRID</eviction-policy>
+ <high-units>{back-size-limit 2}</high-units>
+ <expiry-delay>{back-expiry 2h}</expiry-delay>
+ <flush-delay>2m</flush-delay>
+
+ <cachestore-scheme></cachestore-scheme>
+ </local-scheme>
+
+ <!--
+ A scheme used by backing maps that store data in internal (binary) format
+ and employ size limitation and/or expiry eviction policies.
+ -->
+ <local-scheme>
+ <scheme-name>example-binary-backing-map</scheme-name>
+
+ <eviction-policy>HYBRID</eviction-policy>
+ <high-units>{back-size-limit 7}</high-units>
+ <unit-calculator>BINARY</unit-calculator>
+ <expiry-delay>{back-expiry 1h}</expiry-delay>
+ <flush-delay>1m</flush-delay>
+
+ <cachestore-scheme></cachestore-scheme>
+ </local-scheme>
+
+ <!--
+ Backing map scheme definition used by all the caches that do
+ not require any eviction policies
+ -->
+ <local-scheme>
+ <scheme-name>unlimited-backing-map</scheme-name>
+ </local-scheme>
+
+ <!--
+ ReadWriteBackingMap caching scheme.
+ -->
+ <read-write-backing-map-scheme>
+ <scheme-name>example-read-write</scheme-name>
+
+ <internal-cache-scheme>
+ <local-scheme>
+ <scheme-ref>example-binary-backing-map</scheme-ref>
+ </local-scheme>
+ </internal-cache-scheme>
+
+ <cachestore-scheme></cachestore-scheme>
+
+ <read-only>true</read-only>
+ <write-delay>0s</write-delay>
+ </read-write-backing-map-scheme>
+
+ <!--
+ Overflow caching scheme with example eviction local cache
+ in the front-tier and the example LH-based cache in the back-tier.
+ -->
+ <overflow-scheme>
+ <scheme-name>example-overflow</scheme-name>
+
+ <front-scheme>
+ <local-scheme>
+ <scheme-ref>example-binary-backing-map</scheme-ref>
+ </local-scheme>
+ </front-scheme>
+
+ <back-scheme>
+ <external-scheme>
+ <scheme-ref>example-bdb</scheme-ref>
+ </external-scheme>
+ </back-scheme>
+ </overflow-scheme>
+
+ <!--
+ External caching scheme using Berkley DB.
+ -->
+ <external-scheme>
+ <scheme-name>example-bdb</scheme-name>
+
+ <bdb-store-manager>
+ <directory></directory>
+ </bdb-store-manager>
+
+ <high-units>0</high-units>
+ </external-scheme>
+
+ <!--
+ External caching scheme using memory-mapped files.
+ -->
+ <external-scheme>
+ <scheme-name>example-nio</scheme-name>
+
+ <nio-file-manager>
+ <initial-size>8MB</initial-size>
+ <maximum-size>512MB</maximum-size>
+ <directory></directory>
+ </nio-file-manager>
+
+ <high-units>0</high-units>
+ </external-scheme>
+
+ <!--
+ Invocation Service scheme.
+ -->
+ <invocation-scheme>
+ <scheme-name>example-invocation</scheme-name>
+ <service-name>InvocationService</service-name>
+
+ <autostart system-property="tangosol.coherence.invocation.autostart">true</autostart>
+ </invocation-scheme>
+
+ <!--
+ Proxy Service scheme that allows remote clients to connect to the
+ cluster over TCP/IP.
+ -->
+ <proxy-scheme>
+ <scheme-name>example-proxy</scheme-name>
+ <service-name>TcpProxyService</service-name>
+
+ <acceptor-config>
+ <tcp-acceptor>
+ <local-address>
+ <address system-property="tangosol.coherence.extend.address">localhost</address>
+ <port system-property="tangosol.coherence.extend.port">9099</port>
+ </local-address>
+ </tcp-acceptor>
+ </acceptor-config>
+
+ <autostart system-property="tangosol.coherence.extend.enabled">false</autostart>
+ </proxy-scheme>
+
+ </caching-schemes>
+</cache-config>
\ No newline at end of file
More information about the infinispan-commits
mailing list