[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