[infinispan-commits] Infinispan SVN: r1092 - in trunk/core/src/main/java/org/infinispan: loaders and 2 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Tue Nov 3 03:16:59 EST 2009


Author: galder.zamarreno at jboss.com
Date: 2009-11-03 03:16:58 -0500 (Tue, 03 Nov 2009)
New Revision: 1092

Modified:
   trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java
   trunk/core/src/main/java/org/infinispan/config/Configuration.java
   trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java
   trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java
   trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java
   trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoaderConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStoreConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStoreConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStoreConfig.java
   trunk/core/src/main/java/org/infinispan/util/TypedProperties.java
Log:
[ISPN-247] (Ensure all configuration documentation taglets are valid) Done.

Modified: trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java	2009-11-02 11:12:46 UTC (rev 1091)
+++ trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java	2009-11-03 08:16:58 UTC (rev 1092)
@@ -57,19 +57,28 @@
    private static final long serialVersionUID = 2210349340378984424L;
 
    /**
-    * @configRef desc="If true, activates entries that have been passivated to a store by loading
-    *            them into memory as well as writes evicted entries back to the store"
+    * @configRef desc="If true, data is only written to the cache store when it is evicted from memory, 
+    *            a phenomenon known as passivation. Next time the data is requested, it will be activated which
+    *            means that data will be brought back to memory and deleted from the persistent store. 
+    *            If false, the cache store contains a copy of the contents in memory, so writes to cache 
+    *            result in cache store writes."
     * */
    protected Boolean passivation = false;
 
    /**
-    * @configRef desc= "If true, performs a preload on the cache loader"
+    * @configRef desc= "If true, when the cache starts, data stored in the cache store will be pre-loaded into 
+    *            memory. This is particularly useful when data in the cache store will be needed immediately 
+    *            after startup and you want to avoid cache operations being delayed as a result of loading this
+    *            data."
     * */
    protected Boolean preload = false;
 
    /**
-    * @configRef desc="If true, the node that makes a modification is the only one who writes it to
-    *            the store using the relevant cache loader."
+    * @configRef desc="This setting should be set to true when multiple cache instances share the same cache store 
+    *            in order to avoid multiple cache writing the same cache modification multiple times. So if true, 
+    *            only the node where the cache modification originated will write to the cache store. If false, 
+    *            each individual cache reacts to a potential replication message by storing the data to the cache 
+    *            store. Note that this could be useful if each individual cache has its own cache store.
     * */
    protected Boolean shared = false;
 

Modified: trunk/core/src/main/java/org/infinispan/config/Configuration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/Configuration.java	2009-11-02 11:12:46 UTC (rev 1091)
+++ trunk/core/src/main/java/org/infinispan/config/Configuration.java	2009-11-03 08:16:58 UTC (rev 1092)
@@ -55,12 +55,10 @@
  * provide meta data for configuration file XML schema generation. Please modify these annotations
  * and Java element types they annotate with utmost understanding and care.
  * 
+ * @configRef name="default",desc="Configures the default cache which can be retrieved via CacheManager.getCache()"
+ * @configRef name="namedCache",desc="Configures a named cache whose name can be passed to CacheManager.getCache(String) 
+ *    in order to retrieve the cache instance."
  * 
- * 
- * 
- * @configRef name="default",desc="Configures the default cache and acts as a template for other named caches defined."
- * @configRef name="namedCache",desc="Configures a named cache that builds up on template provided by default cache."
- * 
  * @author <a href="mailto:manik at jboss.org">Manik Surtani (manik at jboss.org)</a>
  * @author Vladimir Blagojevic
  * @author Galder Zamarreño
@@ -76,7 +74,7 @@
    // reference to a global configuration
    @XmlTransient
    private GlobalConfiguration globalConfiguration;
-   
+
    /** 
     * @configRef desc="Cache name if this is a namedCache"
     * */
@@ -87,13 +85,13 @@
    // ------------------------------------------------------------------------------------------------------------
    //   CONFIGURATION OPTIONS
    // ------------------------------------------------------------------------------------------------------------
-   
+
    @XmlElement
    private LockingType locking = new LockingType();
-   
+
    @XmlElement
    private CacheLoaderManagerConfig loaders = new CacheLoaderManagerConfig();
-   
+
    @XmlElement
    private TransactionType transaction = new TransactionType(null);
 
@@ -111,19 +109,18 @@
 
    @XmlElement
    private ClusteringType clustering = new ClusteringType();
-   
+
    @XmlElement
    private JmxStatistics jmxStatistics = new JmxStatistics();
-   
+
    @XmlElement
    private LazyDeserialization lazyDeserialization = new LazyDeserialization();
-   
+
    @XmlElement
    private InvocationBatching invocationBatching = new InvocationBatching();
-   
+
    @XmlElement
    private DeadlockDetectionType deadlockDetection = new DeadlockDetectionType();
-   
 
    @SuppressWarnings("unused")
    @Start(priority = 1)
@@ -139,7 +136,7 @@
             break;
       }
    }
-   
+
    public void applyOverrides(Configuration overrides) {
       OverrideConfigurationVisitor v1 =new OverrideConfigurationVisitor();
       this.accept(v1);
@@ -147,7 +144,7 @@
       overrides.accept(v2);
       v1.override(v2);      
    }
-   
+
    public void inject(ComponentRegistry cr) {
       this.accept(new InjectComponentRegistryVisitor(cr));
    }
@@ -169,14 +166,11 @@
    private void injectGlobalConfiguration(GlobalConfiguration globalConfiguration) {
       this.globalConfiguration = globalConfiguration;
    }
-   
-   
 
    public boolean isStateTransferEnabled() {
       return clustering.stateRetrieval.fetchInMemoryState || (loaders != null && loaders.isFetchPersistentState());
    }
 
-
    public long getDeadlockDetectionSpinDuration() {
       return deadlockDetection.spinDuration;
    }
@@ -186,7 +180,6 @@
       this.deadlockDetection.setSpinDuration(eagerDeadlockSpinDuration);
    }
 
-
    public boolean isEnableDeadlockDetection() {
       return deadlockDetection.enabled;
    }
@@ -230,8 +223,6 @@
       return locking.concurrencyLevel;
    }
 
-
-
    public void setConcurrencyLevel(int concurrencyLevel) {
       locking.setConcurrencyLevel(concurrencyLevel);
    }
@@ -288,7 +279,7 @@
    public void setCacheMode(CacheMode cacheModeInt) {
       clustering.setMode(cacheModeInt);
    }
-   
+
    public void setCacheMode(String cacheMode) {
       if (cacheMode == null) throw new ConfigurationException("Cache mode cannot be null", "CacheMode");
       clustering.setMode(CacheMode.valueOf(uc(cacheMode)));
@@ -321,7 +312,7 @@
    public void setEvictionStrategy(EvictionStrategy evictionStrategy) {
       this.eviction.setStrategy(evictionStrategy);
    }
-   
+
    public void setEvictionStrategy(String eStrategy){
       this.eviction.strategy = EvictionStrategy.valueOf(uc(eStrategy));
       if (this.eviction.strategy == null) {
@@ -357,7 +348,7 @@
    public void setTransactionManagerLookupClass(String transactionManagerLookupClass) {
       this.transaction.setTransactionManagerLookupClass(transactionManagerLookupClass);
    }
-   
+
    public void setTransactionManagerLookup(TransactionManagerLookup transactionManagerLookup) {
       this.transaction.transactionManagerLookup = transactionManagerLookup;
    }
@@ -373,7 +364,7 @@
    public void setSyncRollbackPhase(boolean syncRollbackPhase) {
       this.transaction.setSyncRollbackPhase(syncRollbackPhase);
    }
-             
+
    public void setUseEagerLocking(boolean useEagerLocking) {
       this.transaction.setUseEagerLocking(useEagerLocking);
    }
@@ -393,7 +384,7 @@
    public void setStateRetrievalTimeout(long stateRetrievalTimeout, TimeUnit timeUnit) {
       setStateRetrievalTimeout(timeUnit.toMillis(stateRetrievalTimeout));
    }
-   
+
    public void setStateRetrievalInitialRetryWaitTime(long initialRetryWaitTime) {
       clustering.stateRetrieval.setInitialRetryWaitTime(initialRetryWaitTime);
    }
@@ -438,7 +429,7 @@
    public void setConsistentHashClass(String consistentHashClass) {
       this.clustering.hash.setConsistentHashClass(consistentHashClass);
    }
-   
+
    public void setNumOwners(int numOwners) {
       this.clustering.hash.setNumOwners(numOwners);
    }
@@ -446,11 +437,11 @@
    public void setRehashEnabled(boolean rehashEnabled) {
       this.clustering.hash.setRehashEnabled(rehashEnabled);
    }
- 
+
    public void setRehashWaitTime(long rehashWaitTime) {
       this.clustering.hash.setRehashWait(rehashWaitTime);
    }
-   
+
    public void setUseAsyncMarshalling(boolean useAsyncMarshalling) {
       this.clustering.async.setAsyncMarshalling(useAsyncMarshalling);
    }
@@ -526,7 +517,7 @@
    public boolean isSyncRollbackPhase() {
       return transaction.syncRollbackPhase;
    }
-   
+
    public boolean isUseEagerLocking() {
       return transaction.useEagerLocking;
    }
@@ -720,7 +711,7 @@
       private static final long serialVersionUID = -3867090839830874603L;
 
       /** 
-       * @configRef desc="Fully qualified class name of a class that is supposed to obtain reference to a transaction manager"
+       * @configRef desc="Fully qualified class name of a class that should look up a reference to {@link javax.transaction.TransactionManager}"
        * */
       protected String transactionManagerLookupClass;
       
@@ -728,19 +719,26 @@
       protected TransactionManagerLookup transactionManagerLookup;
       
       /** 
-       * @configRef desc="If true, commit phase will be done as a synchronous call"
+       * @configRef desc="If true, commit phase in two-phase commit (2PC) transactions will be synchronous, so Infinispan 
+       *            will wait for responses from all nodes to which the commit was sent. Otherwise, the commit phase will 
+       *            be asynchronous. Keeping it as false improves performance of 2PC transactions."
        * */
       @Dynamic
       protected Boolean syncCommitPhase = false;
       
       /** 
-       * @configRef desc="If true, rollback phase will be done as a synchronous call"
+       * @configRef desc="If true, rollback phase in two-phase commit (2PC) transactions will be synchronous, so Infinispan 
+       *            will wait for responses from all nodes to which the rollback was sent. Otherwise, the rollback phase will 
+       *            be asynchronous. Keeping it as false improves performance of 2PC transactions."
        * */
       @Dynamic
       protected Boolean syncRollbackPhase = false;
       
       /** 
-       * @configRef desc="If true, eagerly lock cache keys across cluster instead of during two-phase prepare/commit phase"
+       * @configRef desc="By eager locking is set to true, whenever a lock on key is required, this lock will be acquired 
+       *            cluster-wide. If false, locks are only acquired during two-phase prepare/commit phase. Note that this setting
+       *            is implicit and so it's indiscriminate. Alternatively, you can keep this setting as false and instead do eager
+       *            locking explicitly on a per invocation basis calling AdvancedCache.lock(Object)".
        * */
       @Dynamic
       protected Boolean useEagerLocking = false;
@@ -817,8 +815,7 @@
     * @configRef name="locking",desc="Defines locking characteristics of the cache."
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
-   public static class LockingType  extends AbstractNamedCacheConfigurationBean{      
-      
+   public static class LockingType  extends AbstractNamedCacheConfigurationBean{
 
       /** The serialVersionUID */
       private static final long serialVersionUID = 8142143187082119506L;
@@ -826,34 +823,35 @@
       /** @configRef desc="Maximum time to attempt particular lock acquisition" */
       @Dynamic
       protected Long lockAcquisitionTimeout = 10000L;
-      
-      /** @configRef desc="Isolation level" */
+
+      /** @configRef desc="Cache isolation level. Infinispan only allows READ_COMMITTED 
+       *             or REPEATABLE_READ isolation levels." */
       protected IsolationLevel isolationLevel = IsolationLevel.READ_COMMITTED;
-      
-      /** @configRef desc="If true, write skews are tested and exceptions 
-       * are thrown if detected (only for IsolationLevel#REPEATABLE_READ)" */
+
+      /** @configRef desc="This setting is only applicable in the case of REPEATABLE_READ. 
+       *             When write skew check is set to true, if the writer at commit time discovers that the working 
+       *             node and the underlying node have different versions, the working node will override the 
+       *             underlying node. If false, such version conflict will throw an Exception. */
       protected Boolean writeSkewCheck = false;
-    
-      /** @configRef desc="Toggle to enable/disable shared locks across all 
-       * elements that need to be locked" */
+
+      /** @configRef desc="If true, a pool of shared locks is maintained for all the elements that need to be locked. 
+       *             Otherwise, a lock is created per entry in the cache. */
       protected Boolean useLockStriping = true;
       
-      /** @configRef desc="Concurrency level for number of stripes to create in lock striping"*/
-      protected Integer concurrencyLevel = 500;   
-      
-    
-      @XmlAttribute            
+      /** @configRef desc="Concurrency level for lock containers. Adjust this value according to the number of concurrent 
+       *             threads interating with Infinispan"*/
+      protected Integer concurrencyLevel = 500;
+
+      @XmlAttribute
       public void setLockAcquisitionTimeout(Long lockAcquisitionTimeout) {
          testImmutability("lockAcquisitionTimeout");
          this.lockAcquisitionTimeout = lockAcquisitionTimeout;
       }
 
-    
       public void accept(ConfigurationBeanVisitor v) {
          v.visitLockingType(this);
       }
 
-
       @XmlAttribute
       public void setIsolationLevel(IsolationLevel isolationLevel) {
          testImmutability("isolationLevel");
@@ -911,51 +909,50 @@
    }
    
    /**
-    * 
     * @configRef name="clustering",desc="Defines clustering characteristics of the cache."
     */
    @XmlJavaTypeAdapter(ClusteringTypeAdapter.class)
    @XmlAccessorType(XmlAccessType.PROPERTY)
    @XmlType(propOrder={})
    public static class ClusteringType extends AbstractNamedCacheConfigurationBean {
-      
+
       /** The serialVersionUID */
       private static final long serialVersionUID = 4048135465543498430L;
-      
+
       /** 
-       * @configRef name="mode",desc="Cache replication mode (LOCAL|INVALIDATION|REPLICATION|DISTRIBUTION)"
-       * */
+       * @configRef name="mode",desc="Cache mode. For distribution, set mode to either 'd', 'dist' or distribution. 
+       *            For replication, use either 'r', 'repl' or 'replication'. Finally, for invalidation, 
+       *            'i', 'inv' or 'invalidation'. */
       @XmlAttribute(name="mode")
       protected String stringMode;
 
       @XmlTransient
       protected CacheMode mode = CacheMode.LOCAL;
-      
+
       @XmlElement
       protected SyncType sync = new SyncType();
-      
+
       @XmlElement
       protected StateRetrievalType stateRetrieval = new StateRetrievalType();
-      
+
       @XmlElement
       protected L1Type l1 = new L1Type();
-      
+
       @XmlElement
       protected AsyncType async = new AsyncType(false);
-      
+
       @XmlElement
       protected HashType hash = new HashType();
 
-      
       public void setMode(CacheMode mode) {
          testImmutability("mode");
          this.mode = mode;
       }
-      
+
       public boolean isSynchronous() {
          return !async.readFromXml;
       }
-      
+
       @Override
       public ClusteringType clone() throws CloneNotSupportedException {
          ClusteringType dolly = (ClusteringType) super.clone();
@@ -966,8 +963,8 @@
          dolly.hash = (HashType) hash.clone();
          return dolly;
       }
-      
-      public void accept(ConfigurationBeanVisitor v) {                  
+
+      public void accept(ConfigurationBeanVisitor v) {
           async.accept(v);
           hash.accept(v);
           l1.accept(v);
@@ -1006,7 +1003,7 @@
          return result;
       }
    }
-   
+
    public static class ClusteringTypeAdapter extends XmlAdapter<ClusteringType, ClusteringType> {
 
       @Override
@@ -1041,10 +1038,12 @@
          return ct;
       }
    }
-   
+
    /**
-    * 
-    * @configRef name="async",parentName="clustering",desc="Specifies that network communications are asynchronous."  
+    * @configRef name="async",parentName="clustering",desc="If this element is present, all communications are 
+    *            asynchronous, in that whenever a thread sends a message sent over the wire, it does not wait 
+    *            for an acknowledgement before returning. This element is mutually exclusive with the <sync /> 
+    *            element."
     * Characteristics of this can be tuned here.
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
@@ -1056,19 +1055,22 @@
       /** The serialVersionUID */
       private static final long serialVersionUID = -7726319188826197399L;
 
-      /** @configRef desc="Toggle to enable/disable queue" */
+      /** @configRef desc="If true, this forces all async communications to be queued up and sent out periodically as 
+       *             a batch." */
       protected Boolean useReplQueue=false;
-      
-      /** @configRef desc="Maximum allowed number of requests in a queue"*/
+
+      /** @configRef desc="If useReplQueue is set to true, this attribute can be used to trigger flushing of the queue 
+       *             when it reaches a specific threshold." */
       protected Integer replQueueMaxElements=1000;
-      
-      /** @configRef desc="Interval to take requests of the queue"*/
+
+      /** @configRef desc="If useReplQueue is set to true, this attribute controls how often the asynchronous thread 
+       *             used to flush the replication queue runs. This should be a positive integer which represents thread 
+       *             wakeup time in milliseconds." */
       protected Long replQueueInterval=5000L;
-      
-      /** @configRef desc="Toggle to enable/disable asynchronous marshalling"*/
+
+      /** @configRef desc="If true, asynchronous marshalling is enabled which means that caller can return even quicker." */
       protected Boolean asyncMarshalling=true;
-      
-      
+
       private AsyncType(boolean readFromXml) {
          super();
          this.readFromXml = readFromXml;
@@ -1139,7 +1141,7 @@
    
    /**
     * 
-    * @configRef name="expiration",desc="Enables or disables expiration, and configures characteristics accordingly."
+    * @configRef name="expiration",desc="This element controls the expiration settings globally for this particular cache."
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class ExpirationType extends AbstractNamedCacheConfigurationBean{
@@ -1147,12 +1149,13 @@
       /** The serialVersionUID */
       private static final long serialVersionUID = 5757161438110848530L;
 
-      /** @configRef desc="Maximum lifespan of a cache entry"*/
+      /** @configRef desc="Maximum lifespan of a cache entry, after which the entry is expired cluster-wide."*/
       protected Long lifespan=-1L;
-      
-      /** @configRef desc="Maximum time between two subsequent accesses to a particular cache entry" */
+
+      /** @configRef desc="Maximum idle time a cache entry will be maintained in the cache. If the idle time 
+       *             is exceeded, the entry will be expired cluster-wide." */
       protected Long maxIdle=-1L;
-      
+
       @XmlAttribute
       public void setLifespan(Long lifespan) {
          testImmutability("lifespan");
@@ -1189,10 +1192,9 @@
          return result;
       }
    }
-   
+
    /**
-    * 
-    * @configRef name="eviction",desc="Enables or disables eviction, and configures characteristics accordingly."
+    * @configRef name="eviction",desc="This element controls the eviction settings globally for this particular cache."
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class EvictionType extends AbstractNamedCacheConfigurationBean {
@@ -1200,15 +1202,16 @@
       /** The serialVersionUID */
       private static final long serialVersionUID = -1248563712058858791L;
 
-      /** @configRef desc="Interval between subsequent eviction runs"*/
+      /** @configRef desc="Interval between subsequent eviction runs. If you wish to disable the eviction thread, set 
+       *             wakeupInterval to -1."*/
       protected Long wakeUpInterval=5000L;
-    
-      /** @configRef desc="Eviction strategy"*/
+
+      /** @configRef desc="Eviction strategy. Available options are 'FIFO' and 'LRU'."*/
       protected EvictionStrategy strategy=EvictionStrategy.NONE;
-      
-      /** @configRef desc="Maximum number of entries in a cache instance" */
-      protected Integer maxEntries=-1;      
-      
+
+      /** @configRef desc="Maximum number of entries in a cache instance." */
+      protected Integer maxEntries=-1;
+
       @XmlAttribute
       public void setWakeUpInterval(Long wakeUpInterval) {
          testImmutability("wakeUpInterval");
@@ -1254,11 +1257,9 @@
          return result;
       }
    }
-   
+
    /**
-    * 
-    * @configRef name="stateRetrieval",desc="Configures how state retrieval is performed on new caches in a cluster."
-    *
+    * @configRef name="stateRetrieval",desc="Configures how state is retrieved when a new cache joins the cluster."
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class StateRetrievalType extends AbstractNamedCacheConfigurationBean {
@@ -1266,23 +1267,25 @@
       /** The serialVersionUID */
       private static final long serialVersionUID = 3709234918426217096L;
 
-      /** @configRef desc="If true, a new cache node with initiate a state transfer upon join"*/
+      /** @configRef desc="If true, this will cause the cache to ask neighboring caches for state when it starts up, 
+       *             so the cache starts "warm". " */
       @Dynamic
       protected Boolean fetchInMemoryState = false;
-      
-      /** @configRef desc="Timeout for state transfer"*/
+
+      /** @configRef desc="This is the maximum amount of time - in milliseconds - to wait for state from neighboring 
+       *             caches, before throwing an exception and aborting startup. " */
       @Dynamic      
       protected Long timeout = 10000L;
-      
+
       /** @configRef desc="Initial wait time when backing off before retrying state transfer retrieval"*/
       protected Long initialRetryWaitTime = 500L;
-      
+
       /** @configRef desc="Wait time increase factor over successive state retrieval backoffs"*/
       protected Integer retryWaitTimeIncreaseFactor = 2;
-      
+
       /** @configRef desc="Number of state retrieval retries"*/
       protected Integer numRetries = 5;
-      
+
       @XmlAttribute
       public void setFetchInMemoryState(Boolean fetchInMemoryState) {
          testImmutability("fetchInMemoryState");
@@ -1343,22 +1346,23 @@
          return result;
       }
    }
-   
+
    /**
-    * 
-    * @configRef name="sync",desc="Specifies that network communications are synchronous."  
+    * @configRef name="sync",desc="If this element is present, all communications are synchronous, in that whenever a 
+    *            thread sends a message sent over the wire, it blocks until it receives an acknowledgement from the 
+    *            recipient. This element is mutually exclusive with the <async />  element."
     * Characteristics of this can be tuned here.
-    * 
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class SyncType  extends AbstractNamedCacheConfigurationBean {
       /** The serialVersionUID */
       private static final long serialVersionUID = 8419216253674289524L;
-      
-      /** @configRef desc="Timeout for synchronous requests"*/
+
+      /** @configRef desc="This is the timeout used to wait for an acknowledgement when making a remote call, after 
+       *             which an exception is thrown. "*/
       @Dynamic
       protected Long replTimeout=15000L;
-      
+
       @XmlAttribute
       public void setReplTimeout(Long replTimeout) {
          testImmutability("replTimeout");
@@ -1387,11 +1391,10 @@
          return replTimeout != null ? replTimeout.hashCode() : 0;
       }
    }
-   
+
    /**
-    * 
-    * @configRef name="hash",desc="Allows fine-tuning of rehashing characteristics.  
-    * Only used with the 'distributed' cache mode, and otherwise ignored."
+    * @configRef name="hash",desc="Allows fine-tuning of rehashing characteristics. Only used with 'distributed' 
+    *            cache mode, and otherwise ignored."
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class HashType extends AbstractNamedCacheConfigurationBean {
@@ -1399,25 +1402,22 @@
       /** The serialVersionUID */
       private static final long serialVersionUID = 752218766840948822L;
 
-      
-       /** 
-        * @configRef name="class",desc="Class name of a hashing algorithm"  
-        * */
+      /** @configRef name="class",desc="Fully qualified name of class providing consistent hash algorithm" */
       protected String consistentHashClass = DefaultConsistentHash.class.getName();
-      
-      
-      /** @configRef desc="Number of neighbour nodes in rehash task"*/
+
+      /** @configRef desc="Number of cluster-wide replicas for each cache entry." */
       protected Integer numOwners=2;
-      
-      /** @configRef desc="Maximum rehash time" */
+
+      /** @configRef desc="Future flag. Currenly unused." */
       protected Long rehashWait=60000L;
-      
+
       /** @configRef desc="Rehashing timeout" */
       protected Long rehashRpcTimeout=60 * 1000 * 10L;
 
-      /** @configRef desc="If false, no rebalancing or rehashing will take place when a new node joins the cluster or a node leaves.  Defaults to true." **/
+      /** @configRef desc="If false, no rebalancing or rehashing will take place when a new node joins the cluster or 
+       *             a node leaves." **/
       protected Boolean rehashEnabled=true;
-      
+
       @XmlAttribute(name="class")
       public void setConsistentHashClass(String consistentHashClass) {
          testImmutability("class");
@@ -1480,33 +1480,32 @@
          return result;
       }
    }
-   
+
    /**
-    * 
-    * @configRef name="l1",desc="Enables and defines details of the L1 cache. 
-    * Only used with the 'distributed' cache mode, and otherwise ignored."
+    * @configRef name="l1",desc="This element configures the L1 cache behaivour in 'distributed' caches instances. 
+    *            In any other cache modes, this element is ignored. "
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class L1Type extends AbstractNamedCacheConfigurationBean {
-      
+
       /** The serialVersionUID */
       private static final long serialVersionUID = -4703587764861110638L;
 
-      /** @configRef desc="Toggle to enable/disable L1 cache"*/
+      /** @configRef desc="Toggle to enable/disable L1 cache." */
       protected Boolean enabled=true;
 
-      /** @configRef desc="Maximum lifespan of an entry in L1 cache"*/
+      /** @configRef desc="Maximum lifespan of an entry in the L1 cache." */
       protected Long lifespan=600000L;
-      
+
       /** @configRef desc="Toggle to enable/disable populating L1 cache after rehash" */
       protected Boolean onRehash=true;
-      
+
       @XmlAttribute
       public void setEnabled(Boolean enabled) {
          testImmutability("enabled");
          this.enabled = enabled;
       }
-      
+
       public void accept(ConfigurationBeanVisitor v) {
          v.visitL1Type(this);
       }
@@ -1545,20 +1544,19 @@
          return result;
       }
    }
-   
+
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class BooleanAttributeType  extends AbstractNamedCacheConfigurationBean {
-      
+
       @XmlTransient
       protected final String fieldName;
-     
+
       /** The serialVersionUID */
       private static final long serialVersionUID = 2296863404153834686L;
-      
+
       /** @configRef desc="Toggle switch" */
       protected Boolean enabled = false;
-      
-      
+
       public BooleanAttributeType() {
          fieldName= "undefined";
       }
@@ -1566,7 +1564,7 @@
       public BooleanAttributeType(String fieldName) {
          this.fieldName = fieldName;
       }
-            
+
       public String getFieldName() {
          return fieldName;
       }
@@ -1598,11 +1596,12 @@
          return enabled != null ? enabled.hashCode() : 0;
       }
    }
-   
+
    /**
-    * 
-    * @configRef name="lazyDeserialization",desc="Defines lazy deserialization characteristics of the cache."     
-    *
+    * @configRef name="lazyDeserialization",desc="A mechanism by which serialization and deserialization of objects is 
+    *            deferred till the point in time in which they are used and needed. This typically means that any 
+    *            deserialization happens using the thread context class loader of the invocation that requires 
+    *            deserialization, and is an effective mechanism to provide classloader isolation."
     */
    public static class LazyDeserialization extends BooleanAttributeType {
       /** The serialVersionUID */
@@ -1612,10 +1611,10 @@
          super("lazyDeserialization");
       }
    }
+
    /**
-    * 
-    * @configRef name="jmxStatistics",desc="Defines how JMX components are bound to an MBean server."    
-    *
+    * @configRef name="jmxStatistics",desc=" This element specifies whether cache statistics are gathered and reported 
+    *            via JMX."
     */
    public static class JmxStatistics extends BooleanAttributeType {
       /** The serialVersionUID */
@@ -1625,11 +1624,9 @@
          super("jmxStatistics");
       }
    }
-  
+
    /**
-    * 
     * @configRef name="invocationBatching",desc="Defines whether invocation batching is allowed in this cache instance."
-    * 
     */
    public static class InvocationBatching extends BooleanAttributeType {
       /** The serialVersionUID */
@@ -1641,23 +1638,21 @@
    }
 
    /**
-    * 
-    * @configRef name="deadlockDetection",desc="Enables or disables, and tunes, deadlock detection."
+    * @configRef name="deadlockDetection",desc="This element configures deadlock detection."
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class DeadlockDetectionType  extends AbstractNamedCacheConfigurationBean{
-      
+
       /** The serialVersionUID */
       private static final long serialVersionUID = -7178286048602531152L;
 
       /** @configRef desc="Toggle to enable/disable deadlock detection"*/
       protected Boolean enabled=false;
-      
-      /** @configRef desc="Time period that determines how often is lock acquisition attempted 
-       * within maximum time allowed to acquire a particular lock"
-       * */
+
+      /** @configRef desc="Time period that determines how often is lock acquisition attempted within maximum time 
+       *             allowed to acquire a particular lock" */
       protected Long spinDuration=100L;
-      
+
       @XmlAttribute
       public void setEnabled(Boolean enabled) {
          testImmutability("enabled");
@@ -1694,9 +1689,8 @@
          return result;
       }
    }
-   
+
    /**
-    * 
     * @configRef name="unsafe",desc="Allows you to tune various unsafe or non-standard characteristics. Certain operations 
     * such as Cache.put() that are supposed to return the previous value associated with the specified key according 
     * to the java.util.Map contract will not fulfill this contract if unsafe toggle is turned on. Use with care.  
@@ -1704,13 +1698,13 @@
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class UnsafeType  extends AbstractNamedCacheConfigurationBean{
-      
+
       /** The serialVersionUID */
       private static final long serialVersionUID = -9200921443651234163L;
-      
+
       /** @configRef desc="Toggle to enable/disable return value fetching" */
       protected Boolean unreliableReturnValues=false;
-      
+
       @XmlAttribute
       public void setUnreliableReturnValues(Boolean unreliableReturnValues) {
          testImmutability("unreliableReturnValues");
@@ -1739,17 +1733,16 @@
          return unreliableReturnValues != null ? unreliableReturnValues.hashCode() : 0;
       }
    }
-   
+
    /**
-    * 
     * @configRef name="customInterceptors",desc="Configures custom interceptors to be added to the cache."
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class CustomInterceptorsType extends AbstractNamedCacheConfigurationBean {
-      
+
       /** The serialVersionUID */
       private static final long serialVersionUID = 7187545782011884661L;
-      
+
       @XmlElement(name="interceptor")
       private List<CustomInterceptorConfig> customInterceptors= new ArrayList<CustomInterceptorConfig>();
 
@@ -1765,14 +1758,14 @@
          }
          return dolly;
       }
-            
+
       public void accept(ConfigurationBeanVisitor v) {
-         for (CustomInterceptorConfig i : customInterceptors) {            
+         for (CustomInterceptorConfig i : customInterceptors) {
             i.accept(v);
          }
          v.visitCustomInterceptorsType(this);
       }
-      
+
       public List<CustomInterceptorConfig> getCustomInterceptors(){
          return customInterceptors;
       }

Modified: trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java	2009-11-02 11:12:46 UTC (rev 1091)
+++ trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java	2009-11-03 08:16:58 UTC (rev 1092)
@@ -42,7 +42,8 @@
  * provide meta data for configuration file XML schema generation. Please modify these annotations
  * and Java element types they annotate with utmost understanding and care.
  *
- * @configRef name="interceptor",desc="Holds information about the custom interceptors defined in the configuration file."
+ * @configRef name="interceptor",desc=" This element allows you configure a custom interceptor. This tag may appear 
+ *            multiple times."
  *
  * @author Mircea.Markus at jboss.com
  * @author Vladimir Blagojevic
@@ -51,46 +52,47 @@
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name="interceptor")
 public class CustomInterceptorConfig extends AbstractNamedCacheConfigurationBean {
-   
+
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 6206233611032238190L;
+
    @XmlTransient
    protected CommandInterceptor interceptor;
-   
+
    @XmlTransient
    protected boolean isFirst;
-   
+
    @XmlTransient
    protected boolean isLast;
-   
-   /** 
-    * @configRef desc="Position this interceptor at the specified valid index of the interceptor chain"
-    * */
+
+   /** @configRef desc="A position at which to place this interceptor in the chain, with 0 being the first position. 
+    *             Note that this attribute is mutually exclusive with position, before and after." */
    @XmlAttribute
    protected Integer index = -1;
-   
-   /** 
-    * @configRef desc="Position this interceptor after the inteceptor specified by intereceptor's fully qualified class name"
-    * */
+
+   /** @configRef desc="Will place the new interceptor directly after the instance of the named interceptor which is 
+    *             specified via its fully qualified class name. Note that this attribute is mutually exclusive with 
+    *             position, before and index." */
    @XmlAttribute
    protected String after;
-   
-   /** 
-    * @configRef desc="Position this interceptor before the inteceptor specified by intereceptor's fully qualified class name"
-    * */
+
+   /** @configRef desc="Will place the new interceptor directly before the instance of the named interceptor which is 
+    *             specified via its fully qualified class name.. Note that this attribute is mutually exclusive with 
+    *             position, after and index." */
    @XmlAttribute
    protected String before;
-   
-   /** 
-    * @configRef desc="Position this interceptor as either FIRST or LAST intereceptor" 
-    * */
+
+   /** @configRef desc="A position at which to place this interceptor in the chain. First is the first interceptor 
+    *             encountered when an invocation is made on the cache, last is the last interceptor before the call is 
+    *             passed on to the data structure. Note that this attribute is mutually exclusive with before, after 
+    *             and index." */
    @XmlAttribute
    protected Position position;   
-   
-   /** 
-    * @configRef name="class",desc="Fully qualified intereceptor class name"
-    * */
+
+   /** @configRef name="class",desc="Fully qualified intereceptor class name which must extend CommandInterceptor." */
    @XmlAttribute(name="class")
    protected String className;
-   
+
    @XmlElement
    private TypedProperties properties = EMPTY_PROPERTIES;
 
@@ -166,7 +168,7 @@
    public String getClassName() {
       return className;
    }
-   
+
    public void setClassName(String className) {
       this.className = className;
    }
@@ -238,14 +240,14 @@
    /**
     * Returns a the interceptor that we want to add to the chain.
     */
-   public CommandInterceptor getInterceptor() {      
+   public CommandInterceptor getInterceptor() {
       return interceptor;
    }
    
    /**
     * Returns a the interceptor that we want to add to the chain.
     */
-   public void setInterceptor(CommandInterceptor interceptor) {      
+   public void setInterceptor(CommandInterceptor interceptor) {
       this.interceptor = interceptor;
    }
 

Modified: trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java	2009-11-02 11:12:46 UTC (rev 1091)
+++ trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java	2009-11-03 08:16:58 UTC (rev 1092)
@@ -44,6 +44,9 @@
 @XmlType(propOrder={})
 public class GlobalConfiguration extends AbstractConfigurationBean {
 
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 8910865501990177720L;
+
    public GlobalConfiguration() {
       super();
    }
@@ -52,31 +55,31 @@
     * Default replication version, from {@link org.infinispan.Version#getVersionShort}.
     */
    public static final short DEFAULT_MARSHALL_VERSION = Version.getVersionShort();
-   
+
    @XmlElement
    private FactoryClassWithPropertiesType asyncListenerExecutor = new FactoryClassWithPropertiesType(DefaultExecutorFactory.class.getName());
-   
+
    @XmlElement
    private FactoryClassWithPropertiesType asyncTransportExecutor= new FactoryClassWithPropertiesType(DefaultExecutorFactory.class.getName());
-   
+
    @XmlElement
    private FactoryClassWithPropertiesType evictionScheduledExecutor= new FactoryClassWithPropertiesType(DefaultScheduledExecutorFactory.class.getName());
-   
+
    @XmlElement
    private FactoryClassWithPropertiesType replicationQueueScheduledExecutor= new FactoryClassWithPropertiesType(DefaultScheduledExecutorFactory.class.getName());
-   
+
    @XmlElement
    private GlobalJmxStatisticsType globalJmxStatistics = new GlobalJmxStatisticsType();
-   
+
    @XmlElement
    private TransportType transport = new TransportType(null);
-  
+
    @XmlElement
    private SerializationType serialization = new SerializationType();
-   
+
    @XmlTransient
    private Configuration defaultConfiguration;
-   
+
    @XmlElement
    private ShutdownType shutdown = new ShutdownType();
 
@@ -86,7 +89,7 @@
    public boolean isExposeGlobalJmxStatistics() {
       return globalJmxStatistics.enabled;
    }
-   
+
    public void setExposeGlobalJmxStatistics(boolean exposeGlobalJmxStatistics) {
       testImmutability("exposeGlobalManagementStatistics");
       globalJmxStatistics.setEnabled(exposeGlobalJmxStatistics);
@@ -457,9 +460,8 @@
       gc.setTransportProperties((Properties) null);
       return gc;
    }
-   
+
    /**
-    * 
     * @configRef name="asyncListenerExecutor",desc="Executor for listeners."
     * @configRef name="asyncTransportExecutor",desc="Transport executor."
     * @configRef name="evictionScheduledExecutor",desc="Eviction executor."
@@ -467,11 +469,14 @@
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class FactoryClassWithPropertiesType extends AbstractConfigurationBeanWithGCR {
-      
-      /** @configRef desc="Executor fully qualified class name" */
+
+      /** The serialVersionUID */
+      private static final long serialVersionUID = 7625606997888180254L;
+
+      /** @configRef desc="Executor fully qualified class name. It must implement org.infinispan.executors.ExecutorFactory" */
       @XmlAttribute
       protected String factory;
-      
+
       /** 
        * @configPropertyRef name="maxThreads",desc="Number of threads for this executor"
        * @configPropertyRef name="threadNamePrefix",desc="Name prefix for threads created in this executor"
@@ -483,7 +488,7 @@
          super();
          this.factory = factory;
       }   
-      
+
       public void accept(ConfigurationBeanVisitor v) {
          v.visitFactoryClassWithPropertiesType(this);
       }
@@ -510,35 +515,39 @@
          return dolly;
       }
    }
-   
+
    /**
-    * 
-    * @configRef name="transport",desc="Determines Infinispan transport type and accompanying properties." 
-    */   
+    * @configRef name="transport",desc="This element configures the transport used to communicate accross the cluster." 
+    */
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class TransportType extends AbstractConfigurationBeanWithGCR {
-     
+
+      /** The serialVersionUID */
+      private static final long serialVersionUID = -4739815717370060368L;
+
       /** @configRef desc="Cluster name where all cache instances defined are connected" */
       protected String clusterName = "Infinispan-Cluster";
-      
-      /** @configRef desc="todo" */ 
+
+      /** @configRef desc="Cluster-wide synchronization timeout for locks that are aware of block and unblock commands 
+       *             issued across a cluster and sub-phases such as a start processing" */
       protected Long distributedSyncTimeout = 60000L; // default
-     
-      /** @configRef desc="Fully qualified name of a class that implements network transport"*/
+
+      /** @configRef desc="Fully qualified name of a class that implements network transport which must 
+       *             implement org.infinispan.remoting.transport.Transport"*/
       protected String transportClass = null; // this defaults to a non-clustered cache.
-      
+
       /**
        * @configRef desc="Node name for the underlying transport channel"
        */
       protected String nodeName = null;
-      
+
       protected TypedProperties properties = EMPTY_PROPERTIES;
 
       public TransportType() {
          super();
          transportClass = JGroupsTransport.class.getName();
       }
-      
+
       public void accept(ConfigurationBeanVisitor v) {
          v.visitTransportType(this);
       }
@@ -585,21 +594,24 @@
          return dolly;
       }
    }
-   
+
    /**
-    * 
     * @configRef name="serialization",desc="Serialization and marshalling settings."
     */   
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class SerializationType extends AbstractConfigurationBeanWithGCR {
-      
-      /** @configRef desc="Fully qualified name of a class that marshalls objects between cache nodes"*/
+
+      /** The serialVersionUID */
+      private static final long serialVersionUID = -925947118621507282L;
+
+      /** @configRef desc="Fully qualified name of a class that marshalls objects between cache nodes. It must 
+       *             implement org.infinispan.marshall.Marshaller."*/
       protected String marshallerClass = VersionAwareMarshaller.class.getName(); // the default
-      
-      /** @configRef desc="Marshalling serialization version"*/
+
+      /** @configRef desc="Marshalling serialization version."*/
       protected String version = Version.getMajorVersion();
-      
-      public SerializationType() {        
+
+      public SerializationType() {
          super();
       }
 
@@ -617,26 +629,31 @@
       public void setVersion(String version) {
          testImmutability("version");
          this.version = version;
-      }                      
+      }
    }
-   
+
    /**
-    * 
-    * @configRef name="globalJmxStatistics",desc="Determines global JMX settings for all cache instances." 
+    * @configRef name="globalJmxStatistics",desc="This element specifies whether global statistics are gathered and 
+    *            reported via JMX for all caches under this cache manager."
     */
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class GlobalJmxStatisticsType extends AbstractConfigurationBeanWithGCR {
-      
-      /** @configRef desc="Toggle to enable/disable exposing Infinispan objects to JMX" */
+
+      /** The serialVersionUID */
+      private static final long serialVersionUID = 6639689526822921024L;
+
+      /** @configRef desc="Toggle to enable/disable global statistics being exported via JMX." */
       protected Boolean enabled = false;
-      
+
       /** @configRef desc="JMX domain name where all relevant JMX exposed objects will be bound" */
       protected String jmxDomain = "infinispan";
-      
+
       /** @configRef desc="Fully qualified name of class that will attempt to find JMX MBean server" */
       protected String mBeanServerLookup = PlatformMBeanServerLookup.class.getName();
-      
-      /** @configRef desc="If true, multiple cache manager instances could be configured under the same JMX domain" */
+
+      /** @configRef desc="If true, multiple cache manager instances could be configured under the same configured 
+       *            JMX domain. Each cache manager will in practice use a different JMX domain that has been 
+       *            calculated based on the configured one by adding an index number to it." */
       protected Boolean allowDuplicateDomains = false;
 
       @XmlAttribute
@@ -665,18 +682,23 @@
       public void setAllowDuplicateDomains(Boolean allowDuplicateDomains) {
          testImmutability("allowDuplicateDomains");
          this.allowDuplicateDomains = allowDuplicateDomains;
-      }            
+      }
    }
-   
+
    /**
     * 
-    * @configRef name="shutdown",desc="Determines shutdown hook settings. 
-    * By default a shutdown hook is registered even if no MBean server (apart from the JDK default) is detected."
+    * @configRef name="shutdown",desc=" This element specifies behavior when the cache shuts down."
     */   
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public static class ShutdownType extends AbstractConfigurationBeanWithGCR {
-      
-      /** @configRef desc="Behavior of the JVM shutdown hook registered by the cache" */
+
+      /** The serialVersionUID */
+      private static final long serialVersionUID = 3427920991221031456L;
+
+      /** @configRef desc="Behavior of the JVM shutdown hook registered by the cache. The options available are: 
+       *         DEFAULT - A shutdown hook is registered even if no MBean server (apart from the JDK default) is detected.
+       *         REGISTER - Forces the cache to register a shutdown hook even if an MBean server is detected.
+       *         DONT_REGISTER - Forces the cache NOT to register a shutdown hook, even if no MBean server is detected.*/
       protected ShutdownHookBehavior hookBehavior = ShutdownHookBehavior.DEFAULT;
 
       @XmlAttribute
@@ -693,22 +715,24 @@
 
 abstract class AbstractConfigurationBeanWithGCR extends AbstractConfigurationBean{
 
+   /** The serialVersionUID */
+   private static final long serialVersionUID = -5124687543159561028L;
+
    GlobalComponentRegistry gcr = null;
-   
-   
+
    @Inject
    public void inject(GlobalComponentRegistry gcr) {
       this.gcr = gcr;
    }
 
-
    @Override
    protected boolean hasComponentStarted() {
       return gcr != null && gcr.getStatus() != null && gcr.getStatus() == ComponentStatus.RUNNING;
    }
-   
+
 }
- class PropertiesType {
+
+class PropertiesType {
     
    @XmlElement(name = "property")
    Property properties[];

Modified: trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java	2009-11-02 11:12:46 UTC (rev 1091)
+++ trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java	2009-11-03 08:16:58 UTC (rev 1092)
@@ -60,22 +60,19 @@
  * file XML schema generation. Please modify these annotations and Java element types they annotate with utmost
  * understanding and care.
  * 
- * @configRef name="infinispan",desc="Root of Infinispan configuration. Infinispan configuration element can optionally have multiple 
- * namedCache child elements. Each namedCache builds up on a template provided by default cache. namedCache has 
- * the exact same XML structure as default cache and is therefore omitted from this reference. "
+ * @configRef name="infinispan",desc="Root of Infinispan configuration."
  *
  * @author Vladimir Blagojevic
  * @since 4.0
  */
-
 @XmlRootElement(name = "infinispan")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class InfinispanConfiguration implements XmlConfigurationParser {
-   
+
    private static final Log log = LogFactory.getLog(InfinispanConfiguration.class);
 
    public static final String VALIDATING_SYSTEM_PROPERTY = "infinispan.config.validate";
-   
+
    public static final String SKIP_TOKEN_REPLACEMENT = "infinispan.config.skipTokenReplacement";
 
    public static final String SCHEMA_SYSTEM_PROPERTY = "infinispan.config.schema";

Modified: trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoaderConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoaderConfig.java	2009-11-02 11:12:46 UTC (rev 1091)
+++ trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoaderConfig.java	2009-11-03 08:16:58 UTC (rev 1092)
@@ -24,17 +24,19 @@
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 public class AbstractCacheLoaderConfig extends PluggableConfigurationComponent implements CacheLoaderConfig {
-   
-   /** 
-    * @configRef name="class",desc="Fully qualified name of a cache loader class"
-    * */
+
+   /** The serialVersionUID */
+   private static final long serialVersionUID = -4303705423800914433L;
+
+   /** @configRef name="class",desc="Fully qualified name of a cache loader class that must implement 
+    *             org.infinispan.loaders.CacheLoader interface." */
    @XmlAttribute(name="class")
    protected String cacheLoaderClassName;
 
    public String getCacheLoaderClassName() {
       return cacheLoaderClassName;
    }
-   
+
    public void setCacheLoaderClassName(String className) {
       if (className == null || className.length() == 0) return;
       testImmutability("cacheLoaderClassName");
@@ -49,6 +51,6 @@
          throw new CacheException(e);
       }
    }
-   
+
    public void accept(ConfigurationBeanVisitor v) {}
 }

Modified: trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStoreConfig.java	2009-11-02 11:12:46 UTC (rev 1091)
+++ trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStoreConfig.java	2009-11-03 08:16:58 UTC (rev 1092)
@@ -35,32 +35,30 @@
 @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
 @XmlType(propOrder= {"singletonStoreConfig", "asyncStoreConfig"})
 public class AbstractCacheStoreConfig extends AbstractCacheLoaderConfig implements CacheStoreConfig {
-   
-   /** 
-    * @configRef desc="If true, any operation that modifies the cache store (remove, clear, store...etc) won't be applied to it"
-    * */
-   
+
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 4607371052771122893L;
+
+   /** @configRef desc="If true, any operation that modifies the cache (put, remove, clear, store...etc) won't be 
+    *             applied to the cache store." */
    protected Boolean ignoreModifications = false;
-   
-   /**
-    *  @configRef desc="If true, fetch persistent state on state transfer"
-    *  */
+
+   /** @configRef desc="If true, fetch persistent state when joining a cluster. If multiple cache stores are chained, 
+    *             only one of them can have this propertye enabled. Persistent state transfer with a shared cache 
+    *             store does not make sense, as the same persistent store that provides the data will just end up 
+    *             receiving it. Therefore, if a shared cache store is used, the cache will not allow a persistent 
+    *             state transfer even if a cache store has this property set to true. Finally, setting it to true only 
+    *             makes sense if for clustered environments." */
    protected Boolean fetchPersistentState = false;
-   
-   /**
-    *  @configRef desc="If true, purge node state on startup"
-    *  */
-   
+
+   /** @configRef desc="If true, purges this cache store when it starts up." */
    protected Boolean purgeOnStartup = false;
-   
-   /**
-    *  @configRef desc="If true, CacheStore#purgeExpired() call will be done synchronously"
-    *  */
-   
+
+   /** @configRef desc="If true, CacheStore#purgeExpired() call will be done synchronously" */
    protected Boolean purgeSynchronously = false;
-   
+
    protected SingletonStoreConfig singletonStore = new SingletonStoreConfig();
-   
+
    protected AsyncStoreConfig async = new AsyncStoreConfig();
 
    @XmlAttribute

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStoreConfig.java	2009-11-02 11:12:46 UTC (rev 1091)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStoreConfig.java	2009-11-03 08:16:58 UTC (rev 1092)
@@ -25,20 +25,17 @@
  */
 @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
 public class AsyncStoreConfig extends AbstractNamedCacheConfigurationBean {
-   
-   /** 
-    * @configRef desc="If true, modifications are stored in the cache store asynchronously."  
-    * */
+
+   /** The serialVersionUID */
+   private static final long serialVersionUID = -8596800049019004961L;
+
+   /** @configRef desc="If true, all modifications to this cache store happen asynchronously, on a separate thread." */
    protected Boolean enabled = false;
-  
-   /** 
-    * @configRef desc="Size of the thread pool whose threads are responsible for applying the modifications."
-    *  */
+
+   /** @configRef desc="Size of the thread pool whose threads are responsible for applying the modifications." */
    protected Integer threadPoolSize = 1;
-   
-   /** 
-    * @configRef desc="Lock timeout for access to map containing latest state."
-    * */
+
+   /** @configRef desc="Lock timeout for access to map containing latest state." */
    @Dynamic
    protected Long mapLockTimeout = 5000L;
 
@@ -46,7 +43,7 @@
    public Boolean isEnabled() {
       return enabled;
    }
-   
+
    public void setEnabled(Boolean enabled) {
       testImmutability("enabled");
       this.enabled = enabled;
@@ -71,7 +68,7 @@
       testImmutability("mapLockTimeout");
       this.mapLockTimeout = stateLockTimeout;
    }   
-   
+
    @Override
    public AsyncStoreConfig clone() {
       try {

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStoreConfig.java	2009-11-02 11:12:46 UTC (rev 1091)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStoreConfig.java	2009-11-03 08:16:58 UTC (rev 1092)
@@ -30,33 +30,28 @@
 
    private static final long serialVersionUID = 824251894176131850L;
 
-   /**
-    *  @configRef desc="If true, the relevant cache store is turned into singleton store"
-    *  */
+   /** @configRef desc="If true, the singleton store cache store is enabled. "*/
    protected Boolean enabled = false;
    
-   /**
-    *  @configRef desc="If true and the node becomes the coordinator, the in-memory state transfer 
-    *  to the underlying cache store is initiated"
-    *  */
+   /** @configRef desc="If true, when a node becomes the coordinator, it will transfer in-memory state to the 
+    *             underlying cache store. This can be very useful in situations where the coordinator crashes and 
+    *             there's a gap in time until the new coordinator is elected." */
    protected Boolean pushStateWhenCoordinator = true;
    
-   /**
-    *  @configRef desc="If pushStateWhenCoordinator is true, the in-memory state transfer to cache store timeout"
-    *  */
+   /** @configRef desc="If pushStateWhenCoordinator is true, this property sets the maximum number of milliseconds that 
+    *             the process of pushing the in-memory state to the underlying cache loader should take." */
    protected Long pushStateTimeout = 10000L;
 
    @XmlAttribute(name="enabled")
    public Boolean isSingletonStoreEnabled() {
       return enabled;
    }
-   
+
    public void setSingletonStoreEnabled(Boolean singletonStoreEnabled) {
       testImmutability("enabled");
       this.enabled = singletonStoreEnabled;
    }
 
-
    @XmlAttribute
    public Boolean isPushStateWhenCoordinator() {
       return pushStateWhenCoordinator;

Modified: trunk/core/src/main/java/org/infinispan/util/TypedProperties.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/util/TypedProperties.java	2009-11-02 11:12:46 UTC (rev 1091)
+++ trunk/core/src/main/java/org/infinispan/util/TypedProperties.java	2009-11-03 08:16:58 UTC (rev 1092)
@@ -22,6 +22,10 @@
 @XmlJavaTypeAdapter(TypedPropertiesAdapter.class)
 @XmlType(name="properties")
 public class TypedProperties extends Properties {
+
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 3799321248100686287L;
+
    private static final Log log = LogFactory.getLog(TypedProperties.class);
 
    /**



More information about the infinispan-commits mailing list