[infinispan-commits] Infinispan SVN: r622 - trunk/core/src/main/resources/schema.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Tue Jul 28 10:24:30 EDT 2009


Author: vblagojevic at jboss.com
Date: 2009-07-28 10:24:30 -0400 (Tue, 28 Jul 2009)
New Revision: 622

Added:
   trunk/core/src/main/resources/schema/infinispan-config-4.0.xsd
Log:
[ISPN-97] - Improve configuration processing and maintenance
jaxb based configuration processing

Added: trunk/core/src/main/resources/schema/infinispan-config-4.0.xsd
===================================================================
--- trunk/core/src/main/resources/schema/infinispan-config-4.0.xsd	                        (rev 0)
+++ trunk/core/src/main/resources/schema/infinispan-config-4.0.xsd	2009-07-28 14:24:30 UTC (rev 622)
@@ -0,0 +1,422 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" targetNamespace="urn:infinispan:config:4.0" xmlns:tns="urn:infinispan:config:4.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+  <xs:element name="infinispan" type="tns:infinispanConfiguration"/>
+
+  <xs:complexType name="infinispanConfiguration">
+    <xs:sequence>
+      <xs:element name="global" type="tns:globalConfiguration" minOccurs="0"/>
+      <xs:element name="default" type="tns:configuration" minOccurs="0"/>
+      <xs:element name="namedCache" type="tns:configuration" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="globalConfiguration">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractConfigurationBean">
+        <xs:all>
+          <xs:element name="asyncListenerExecutor" type="tns:factoryClassWithPropertiesType" minOccurs="0"/>
+          <xs:element name="asyncTransportExecutor" type="tns:factoryClassWithPropertiesType" minOccurs="0"/>
+          <xs:element name="evictionScheduledExecutor" type="tns:factoryClassWithPropertiesType" minOccurs="0"/>
+          <xs:element name="replicationQueueScheduledExecutor" type="tns:factoryClassWithPropertiesType" minOccurs="0"/>
+          <xs:element name="globalJmxStatistics" type="tns:globalJmxStatisticsType" minOccurs="0"/>
+          <xs:element name="transport" type="tns:transportType" minOccurs="0"/>
+          <xs:element name="serialization" type="tns:serializationType" minOccurs="0"/>
+          <xs:element name="shutdown" type="tns:shutdownType" minOccurs="0"/>
+        </xs:all>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="abstractConfigurationBean" abstract="true">
+    <xs:sequence/>
+  </xs:complexType>
+
+  <xs:complexType name="factoryClassWithPropertiesType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractConfigurationBeanWithGCR">
+        <xs:sequence>
+          <xs:element name="properties" type="tns:propertiesType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="factory" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="abstractConfigurationBeanWithGCR">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractConfigurationBean">
+        <xs:sequence/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="propertiesType">
+    <xs:sequence>
+      <xs:element name="property" type="tns:property" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="property">
+    <xs:sequence/>
+    <xs:attribute name="name" type="xs:string"/>
+    <xs:attribute name="value" type="xs:string"/>
+  </xs:complexType>
+
+  <xs:complexType name="globalJmxStatisticsType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractConfigurationBeanWithGCR">
+        <xs:sequence/>
+        <xs:attribute name="allowDuplicateDomains" type="xs:boolean"/>
+        <xs:attribute name="enabled" type="xs:boolean"/>
+        <xs:attribute name="jmxDomain" type="xs:string"/>
+        <xs:attribute name="mBeanServerLookup" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="transportType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractConfigurationBeanWithGCR">
+        <xs:sequence>
+          <xs:element name="properties" type="tns:propertiesType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="clusterName" type="xs:string"/>
+        <xs:attribute name="distributedSyncTimeout" type="xs:long"/>
+        <xs:attribute name="transportClass" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="serializationType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractConfigurationBeanWithGCR">
+        <xs:sequence/>
+        <xs:attribute name="marshallerClass" type="xs:string"/>
+        <xs:attribute name="version" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="shutdownType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractConfigurationBeanWithGCR">
+        <xs:sequence/>
+        <xs:attribute name="hookBehavior" type="tns:shutdownHookBehavior"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="configuration">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:all>
+          <xs:element name="locking" type="tns:lockingType" minOccurs="0"/>
+          <xs:element name="loaders" type="tns:cacheLoaderManagerConfig" minOccurs="0"/>
+          <xs:element name="transaction" type="tns:transactionType" minOccurs="0"/>
+          <xs:element name="customInterceptors" type="tns:customInterceptorsType" minOccurs="0"/>
+          <xs:element name="eviction" type="tns:evictionType" minOccurs="0"/>
+          <xs:element name="expiration" type="tns:expirationType" minOccurs="0"/>
+          <xs:element name="unsafe" type="tns:unsafeType" minOccurs="0"/>
+          <xs:element name="clustering" type="tns:clusteringType" minOccurs="0"/>
+          <xs:element name="jmxStatistics" type="tns:booleanAttributeType" minOccurs="0"/>
+          <xs:element name="lazyDeserialization" type="tns:booleanAttributeType" minOccurs="0"/>
+          <xs:element name="invocationBatching" type="tns:booleanAttributeType" minOccurs="0"/>
+          <xs:element name="deadlockDetection" type="tns:deadlockDetectionType" minOccurs="0"/>
+        </xs:all>
+        <xs:attribute name="name" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="abstractNamedCacheConfigurationBean" abstract="true">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractConfigurationBean">
+        <xs:sequence/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="lockingType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="concurrencyLevel" type="xs:int"/>
+        <xs:attribute name="isolationLevel" type="tns:isolationLevel"/>
+        <xs:attribute name="lockAcquisitionTimeout" type="xs:long"/>
+        <xs:attribute name="useLockStriping" type="xs:boolean"/>
+        <xs:attribute name="writeSkewCheck" type="xs:boolean"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="cacheLoaderManagerConfig">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence>
+          <xs:element name="loader" type="tns:abstractCacheStoreConfig" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:attribute name="passivation" type="xs:boolean"/>
+        <xs:attribute name="preload" type="xs:boolean"/>
+        <xs:attribute name="shared" type="xs:boolean"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="abstractCacheStoreConfig">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractCacheLoaderConfig">
+        <xs:sequence>
+          <xs:element name="singletonStore" type="tns:singletonStoreConfig" minOccurs="0"/>
+          <xs:element name="async" type="tns:asyncStoreConfig" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="ignoreModifications" type="xs:boolean"/>
+        <xs:attribute name="fetchPersistentState" type="xs:boolean"/>
+        <xs:attribute name="purgeOnStartup" type="xs:boolean"/>
+        <xs:attribute name="purgeSynchronously" type="xs:boolean"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="abstractCacheLoaderConfig">
+    <xs:complexContent>
+      <xs:extension base="tns:pluggableConfigurationComponent">
+        <xs:sequence/>
+        <xs:attribute name="class" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="pluggableConfigurationComponent" abstract="true">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence>
+          <xs:element name="properties" type="tns:propertiesType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="singletonStoreConfig">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="enabled" type="xs:boolean"/>
+        <xs:attribute name="pushStateWhenCoordinator" type="xs:boolean"/>
+        <xs:attribute name="pushStateTimeout" type="xs:long"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="asyncStoreConfig">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="enabled" type="xs:boolean"/>
+        <xs:attribute name="threadPoolSize" type="xs:int"/>
+        <xs:attribute name="mapLockTimeout" type="xs:long"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="transactionType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="syncCommitPhase" type="xs:boolean"/>
+        <xs:attribute name="syncRollbackPhase" type="xs:boolean"/>
+        <xs:attribute name="transactionManagerLookupClass" type="xs:string"/>
+        <xs:attribute name="useEagerLocking" type="xs:boolean"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="customInterceptorsType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence>
+          <xs:element name="interceptor" type="tns:interceptor" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="interceptor">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence>
+          <xs:element name="properties" type="tns:propertiesType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="index" type="xs:int"/>
+        <xs:attribute name="after" type="xs:string"/>
+        <xs:attribute name="before" type="xs:string"/>
+        <xs:attribute name="position" type="tns:position"/>
+        <xs:attribute name="class" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="evictionType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="maxEntries" type="xs:int"/>
+        <xs:attribute name="strategy" type="tns:evictionStrategy"/>
+        <xs:attribute name="wakeUpInterval" type="xs:long"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="expirationType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="lifespan" type="xs:long"/>
+        <xs:attribute name="maxIdle" type="xs:long"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="unsafeType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="unreliableReturnValues" type="xs:boolean"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="clusteringType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:all>
+          <xs:element name="sync" type="tns:syncType" minOccurs="0"/>
+          <xs:element name="stateRetrieval" type="tns:stateRetrievalType" minOccurs="0"/>
+          <xs:element name="l1" type="tns:l1Type" minOccurs="0"/>
+          <xs:element name="async" type="tns:asyncType" minOccurs="0"/>
+          <xs:element name="hash" type="tns:hashType" minOccurs="0"/>
+        </xs:all>
+        <xs:attribute name="mode" type="tns:cacheMode"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="syncType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="replTimeout" type="xs:long"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="stateRetrievalType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="fetchInMemoryState" type="xs:boolean"/>
+        <xs:attribute name="timeout" type="xs:long"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="l1Type">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="enabled" type="xs:boolean"/>
+        <xs:attribute name="lifespan" type="xs:long"/>
+        <xs:attribute name="onRehash" type="xs:boolean"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="asyncType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="asyncMarshalling" type="xs:boolean"/>
+        <xs:attribute name="replQueueInterval" type="xs:long"/>
+        <xs:attribute name="replQueueMaxElements" type="xs:int"/>
+        <xs:attribute name="useReplQueue" type="xs:boolean"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="hashType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="class" type="xs:string"/>
+        <xs:attribute name="numOwners" type="xs:int"/>
+        <xs:attribute name="rehashRpcTimeout" type="xs:long"/>
+        <xs:attribute name="rehashWait" type="xs:long"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="booleanAttributeType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="enabled" type="xs:boolean"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="deadlockDetectionType">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractNamedCacheConfigurationBean">
+        <xs:sequence/>
+        <xs:attribute name="enabled" type="xs:boolean"/>
+        <xs:attribute name="spinDuration" type="xs:long"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="shutdownHookBehavior">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="DEFAULT"/>
+      <xs:enumeration value="REGISTER"/>
+      <xs:enumeration value="DONT_REGISTER"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="isolationLevel">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="NONE"/>
+      <xs:enumeration value="SERIALIZABLE"/>
+      <xs:enumeration value="REPEATABLE_READ"/>
+      <xs:enumeration value="READ_COMMITTED"/>
+      <xs:enumeration value="READ_UNCOMMITTED"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="position">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="FIRST"/>
+      <xs:enumeration value="LAST"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="evictionStrategy">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="NONE"/>
+      <xs:enumeration value="FIFO"/>
+      <xs:enumeration value="LRU"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="cacheMode">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="LOCAL"/>
+      <xs:enumeration value="REPL_SYNC"/>
+      <xs:enumeration value="REPL_ASYNC"/>
+      <xs:enumeration value="INVALIDATION_SYNC"/>
+      <xs:enumeration value="INVALIDATION_ASYNC"/>
+      <xs:enumeration value="DIST_SYNC"/>
+      <xs:enumeration value="DIST_ASYNC"/>
+    </xs:restriction>
+  </xs:simpleType>
+</xs:schema>
+



More information about the infinispan-commits mailing list