[infinispan-commits] Infinispan SVN: r209 - in trunk: cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje and 54 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Tue May 5 11:26:51 EDT 2009


Author: manik.surtani at jboss.com
Date: 2009-05-05 11:26:50 -0400 (Tue, 05 May 2009)
New Revision: 209

Added:
   trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/
   trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/
   trunk/cachestore/s3/src/main/java/org/infinispan/loaders/
   trunk/cachestore/s3/src/test/java/org/infinispan/loaders/
   trunk/core/src/main/java/org/infinispan/factories/InternalCacheFactory.java
   trunk/core/src/main/java/org/infinispan/loaders/
   trunk/core/src/main/java/package-info/
   trunk/core/src/test/java/org/infinispan/loaders/
Removed:
   trunk/cachestore/bdbje/src/main/java/org/infinispan/loader/
   trunk/cachestore/bdbje/src/test/java/org/infinispan/loader/
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/
   trunk/cachestore/s3/src/main/java/org/infinispan/loader/
   trunk/cachestore/s3/src/test/java/org/infinispan/loader/
   trunk/core/src/main/java/org/infinispan/factories/DefaultCacheFactory.java
   trunk/core/src/main/java/org/infinispan/loader/
   trunk/core/src/test/java/org/infinispan/loader/
Modified:
   trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStore.java
   trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreConfig.java
   trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeResourceFactory.java
   trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/ModificationsTransactionWorker.java
   trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/PreparableTransactionRunner.java
   trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreConfigTest.java
   trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreIntegrationTest.java
   trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreTest.java
   trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeLearningTest.java
   trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeResourceFactoryTest.java
   trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/ModificationsTransactionWorkerTest.java
   trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/PreparableTransactionRunnerTest.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/JdbcUtil.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/TableManipulation.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStore.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStoreConfig.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/ConnectionFactory.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/ConnectionFactoryConfig.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/PooledConnectionFactory.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/SimpleConnectionFactory.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStore.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreConfig.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/DefaultKey2StringMapper.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStore.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreConfig.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/Key2StringMapper.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/UnsupportedKeyTypeException.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/config/parsing/JdbcConfigurationParserTest.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/JdbcBinaryCacheStoreTest.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/PooledConnectionFactoryTest.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/TableManipulationTest.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreConfigTest.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreTest.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreTest2.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/DefaultKey2StringMapperTest.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest2.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/Person.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/PersonKey2StringMapper.java
   trunk/cachestore/jdbc/src/test/java/org/infinispan/test/fwk/UnitTestDatabaseManager.java
   trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3Bucket.java
   trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStore.java
   trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStoreConfig.java
   trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3Connection.java
   trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3ConnectionException.java
   trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/jclouds/JCloudsBucket.java
   trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/jclouds/JCloudsConnection.java
   trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/MockS3Bucket.java
   trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/MockS3Connection.java
   trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreIntegrationTest.java
   trunk/core/src/main/java/org/infinispan/Cache.java
   trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java
   trunk/core/src/main/java/org/infinispan/commands/remote/ClusteredGetCommand.java
   trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java
   trunk/core/src/main/java/org/infinispan/config/parsing/element/LoadersElementParser.java
   trunk/core/src/main/java/org/infinispan/eviction/EvictionManagerImpl.java
   trunk/core/src/main/java/org/infinispan/factories/AbstractComponentFactory.java
   trunk/core/src/main/java/org/infinispan/factories/EmptyConstructorNamedCacheFactory.java
   trunk/core/src/main/java/org/infinispan/interceptors/ActivationInterceptor.java
   trunk/core/src/main/java/org/infinispan/interceptors/CacheLoaderInterceptor.java
   trunk/core/src/main/java/org/infinispan/interceptors/CacheStoreInterceptor.java
   trunk/core/src/main/java/org/infinispan/interceptors/PassivationInterceptor.java
   trunk/core/src/main/java/org/infinispan/invocation/Flag.java
   trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoader.java
   trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoaderConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStore.java
   trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStoreConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/CacheLoader.java
   trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderException.java
   trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderManager.java
   trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderManagerImpl.java
   trunk/core/src/main/java/org/infinispan/loaders/CacheStore.java
   trunk/core/src/main/java/org/infinispan/loaders/CacheStoreConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java
   trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStoreConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/bucket/Bucket.java
   trunk/core/src/main/java/org/infinispan/loaders/bucket/BucketBasedCacheStore.java
   trunk/core/src/main/java/org/infinispan/loaders/cluster/ClusterCacheLoader.java
   trunk/core/src/main/java/org/infinispan/loaders/cluster/ClusterCacheLoaderConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/AbstractDelegatingStore.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStore.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStoreConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/ChainingCacheStore.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/ReadOnlyStore.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStore.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStoreConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStore.java
   trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStoreConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/modifications/Clear.java
   trunk/core/src/main/java/org/infinispan/loaders/modifications/Modification.java
   trunk/core/src/main/java/org/infinispan/loaders/modifications/PurgeExpired.java
   trunk/core/src/main/java/org/infinispan/loaders/modifications/Remove.java
   trunk/core/src/main/java/org/infinispan/loaders/modifications/Store.java
   trunk/core/src/main/java/org/infinispan/lock/StripedLock.java
   trunk/core/src/main/java/org/infinispan/manager/CacheManager.java
   trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java
   trunk/core/src/main/java/org/infinispan/marshall/Marshaller.java
   trunk/core/src/main/java/org/infinispan/notifications/cachelistener/annotation/CacheEntryLoaded.java
   trunk/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java
   trunk/core/src/main/release/licenses/README-bdbje-lib.txt
   trunk/core/src/main/resources/config-samples/all.xml
   trunk/core/src/test/java/org/infinispan/config/parsing/ConfigurationParserTest.java
   trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java
   trunk/core/src/test/java/org/infinispan/jmx/ActivationAndPassivationInterceptorMBeanTest.java
   trunk/core/src/test/java/org/infinispan/jmx/CacheLoaderAndCacheStoreInterceptorMBeanTest.java
   trunk/core/src/test/java/org/infinispan/loaders/AbstractCacheStoreConfigTest.java
   trunk/core/src/test/java/org/infinispan/loaders/AbstractCacheStoreTest.java
   trunk/core/src/test/java/org/infinispan/loaders/BaseCacheStoreTest.java
   trunk/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java
   trunk/core/src/test/java/org/infinispan/loaders/ClusterCacheLoaderTest.java
   trunk/core/src/test/java/org/infinispan/loaders/ConcurrentLoadAndEvictTest.java
   trunk/core/src/test/java/org/infinispan/loaders/PassivationFunctionalTest.java
   trunk/core/src/test/java/org/infinispan/loaders/decorators/AsyncTest.java
   trunk/core/src/test/java/org/infinispan/loaders/decorators/ChainingCacheLoaderTest.java
   trunk/core/src/test/java/org/infinispan/loaders/decorators/ReadOnlyCacheStoreTest.java
   trunk/core/src/test/java/org/infinispan/loaders/decorators/SingletonStoreTest.java
   trunk/core/src/test/java/org/infinispan/loaders/dummy/DummyInMemoryCacheStore.java
   trunk/core/src/test/java/org/infinispan/loaders/dummy/DummyInMemoryCacheStoreTest.java
   trunk/core/src/test/java/org/infinispan/loaders/file/FileCacheStoreTest.java
   trunk/core/src/test/java/org/infinispan/marshall/MarshalledValueTest.java
   trunk/core/src/test/java/org/infinispan/notifications/CacheListenerCacheLoaderTest.java
   trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferCacheLoaderFunctionalTest.java
   trunk/core/src/test/java/org/infinispan/test/AbstractCacheTest.java
   trunk/core/src/test/java/org/infinispan/test/TestingUtil.java
   trunk/core/src/test/resources/configs/named-cache-test.xml
Log:
* Javadoc on Cache + CacheManager interfaces
* Renamed DefaultCacheFactory to InternalCacheFactory + instructions on how this is an internal class
* Renamed loader package to loaders, for consistency

Copied: trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders (from rev 208, trunk/cachestore/bdbje/src/main/java/org/infinispan/loader)

Modified: trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStore.java
===================================================================
--- trunk/cachestore/bdbje/src/main/java/org/infinispan/loader/bdbje/BdbjeCacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
 import com.sleepycat.bind.serial.StoredClassCatalog;
 import com.sleepycat.collections.CurrentTransaction;
@@ -15,10 +15,10 @@
 import com.sleepycat.util.ExceptionUnwrapper;
 import org.infinispan.Cache;
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.AbstractCacheStore;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.modifications.Modification;
+import org.infinispan.loaders.AbstractCacheStore;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.modifications.Modification;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.marshall.Marshaller;
@@ -35,18 +35,18 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
- * An Oracle SleepyCat JE implementation of a {@link org.infinispan.loader.CacheStore}.  <p/>This implementation uses two
- * databases <ol> <li>stored entry database: <tt>/{location}/CacheInstance-{@link org.infinispan.Cache#getName()
- * name}</tt></li> {@link org.infinispan.container.entries.InternalCacheEntry stored entries} are stored here, keyed on {@link
- * org.infinispan.container.entries.InternalCacheEntry#getKey()} <li>class catalog database: <tt>/{location}/CacheInstance-{@link
- * org.infinispan.Cache#getName() name}_class_catalog</tt></li> class descriptions are stored here for efficiency reasons.
- * </ol> <p/> <p><tt>/{location}/je.properties</tt> is optional and will override any parameters to the internal
- * SleepyCat JE {@link EnvironmentConfig}.</p>
+ * An Oracle SleepyCat JE implementation of a {@link org.infinispan.loaders.CacheStore}.  <p/>This implementation uses
+ * two databases <ol> <li>stored entry database: <tt>/{location}/CacheInstance-{@link org.infinispan.Cache#getName()
+ * name}</tt></li> {@link org.infinispan.container.entries.InternalCacheEntry stored entries} are stored here, keyed on
+ * {@link org.infinispan.container.entries.InternalCacheEntry#getKey()} <li>class catalog database:
+ * <tt>/{location}/CacheInstance-{@link org.infinispan.Cache#getName() name}_class_catalog</tt></li> class descriptions
+ * are stored here for efficiency reasons. </ol> <p/> <p><tt>/{location}/je.properties</tt> is optional and will
+ * override any parameters to the internal SleepyCat JE {@link EnvironmentConfig}.</p>
  * <p/>
  * All data access is transactional.  Any attempted reads to locked records will block.  The maximum duration of this is
- * set in nanoseconds via the parameter {@link org.infinispan.loader.bdbje.BdbjeCacheStoreConfig#getLockAcquistionTimeout()}.
+ * set in nanoseconds via the parameter {@link org.infinispan.loaders.bdbje.BdbjeCacheStoreConfig#getLockAcquistionTimeout()}.
  * Calls to {@link BdbjeCacheStore#prepare(java.util.List, javax.transaction.Transaction, boolean) prepare} will attempt
- * to resolve deadlocks, retrying up to {@link org.infinispan.loader.bdbje.BdbjeCacheStoreConfig#getMaxTxRetries()}
+ * to resolve deadlocks, retrying up to {@link org.infinispan.loaders.bdbje.BdbjeCacheStoreConfig#getMaxTxRetries()}
  * attempts.
  * <p/>
  * Unlike the C version of SleepyCat, JE does not support MVCC or READ_COMMITTED isolation.  In other words, readers
@@ -107,8 +107,8 @@
 
    /**
     * {@inheritDoc} Validates configuration, configures and opens the {@link Environment}, then {@link
-    * org.infinispan.loader.bdbje.BdbjeCacheStore#openSleepyCatResources() opens the databases}.  When this is finished,
-    * transactional and purging services are instantiated.
+    * org.infinispan.loaders.bdbje.BdbjeCacheStore#openSleepyCatResources() opens the databases}.  When this is
+    * finished, transactional and purging services are instantiated.
     */
    public void start() throws CacheLoaderException {
       if (trace) log.trace("starting BdbjeCacheStore");
@@ -187,7 +187,8 @@
    }
 
    /**
-    * Exceptions are ignored so that {@link org.infinispan.loader.bdbje.BdbjeCacheStore#closeEnvironment()}  will execute.
+    * Exceptions are ignored so that {@link org.infinispan.loaders.bdbje.BdbjeCacheStore#closeEnvironment()}  will
+    * execute.
     */
    private void closeDatabases() {
       if (trace) log.trace("closing databases");
@@ -248,7 +249,7 @@
 
    /**
     * Looks up the {@link Transaction SleepyCat transaction} associated with <code>tx</code>.  Creates a {@link
-    * org.infinispan.loader.bdbje.ModificationsTransactionWorker} instance from <code>mods</code>.  Then prepares the
+    * org.infinispan.loaders.bdbje.ModificationsTransactionWorker} instance from <code>mods</code>.  Then prepares the
     * transaction via {@link PreparableTransactionRunner#prepare(com.sleepycat.collections.TransactionWorker)}. Finally,
     * it invalidates {@link com.sleepycat.collections.CurrentTransaction#getTransaction()} so that no other thread can
     * accidentally commit this.

Modified: trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreConfig.java
===================================================================
--- trunk/cachestore/bdbje/src/main/java/org/infinispan/loader/bdbje/BdbjeCacheStoreConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,26 +1,26 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
-import org.infinispan.loader.AbstractCacheStoreConfig;
+import org.infinispan.loaders.AbstractCacheStoreConfig;
 
 /**
- * Configures {@link org.infinispan.loader.bdbje.BdbjeCacheStore}.  This allows you to tune a number of characteristics of
- * the {@link BdbjeCacheStore}.
+ * Configures {@link org.infinispan.loaders.bdbje.BdbjeCacheStore}.  This allows you to tune a number of characteristics
+ * of the {@link BdbjeCacheStore}.
  * <p/>
  * <ul> <li><tt>location</tt> - a location on disk where the store can write internal files.  This defaults to
- * <tt>Infinispan-BdbjeCacheStore</tt> in the current working directory.</li> <li><tt>lockAcquistionTimeout</tt> - the length of time, in milliseconds, to wait for locks
- * before timing out and throwing an exception.  By default, this is set to <tt>60000</tt>.</li>
- * <li><tt>maxTxRetries</tt> - the number of times transaction prepares will attempt to resolve a deadlock before
- * throwing an exception.  By default, this is set to <tt>5</tt>.</li>
+ * <tt>Infinispan-BdbjeCacheStore</tt> in the current working directory.</li> <li><tt>lockAcquistionTimeout</tt> - the
+ * length of time, in milliseconds, to wait for locks before timing out and throwing an exception.  By default, this is
+ * set to <tt>60000</tt>.</li> <li><tt>maxTxRetries</tt> - the number of times transaction prepares will attempt to
+ * resolve a deadlock before throwing an exception.  By default, this is set to <tt>5</tt>.</li>
  * <p/>
  * <li><tt>cacheDbName</tt> - the name of the SleepyCat database persisting this store.  This defaults to <tt>{@link
- * org.infinispan.Cache#getName()} cache#name}</tt>.</li> <li><tt>catalogDbName</tt> - the name of the SleepyCat database
- * persisting the class information for objects in this store.  This defaults to <tt>{@link org.infinispan.Cache#getName()}
- * cache#name}_class_catalog</tt>.</li>
+ * org.infinispan.Cache#getName()} cache#name}</tt>.</li> <li><tt>catalogDbName</tt> - the name of the SleepyCat
+ * database persisting the class information for objects in this store.  This defaults to <tt>{@link
+ * org.infinispan.Cache#getName()} cache#name}_class_catalog</tt>.</li>
  * <p/>
  * </ul>
+ * <p/>
+ * Please see {@link AbstractCacheStoreConfig} for more configuration parameters.
  *
- * Please see {@link AbstractCacheStoreConfig} for more configuration parameters.
- * 
  * @author Adrian Cole
  * @version $Id$
  * @since 4.0

Modified: trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeResourceFactory.java
===================================================================
--- trunk/cachestore/bdbje/src/main/java/org/infinispan/loader/bdbje/BdbjeResourceFactory.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeResourceFactory.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
 import com.sleepycat.bind.EntryBinding;
 import com.sleepycat.bind.serial.SerialBinding;
@@ -11,9 +11,9 @@
 import com.sleepycat.je.Environment;
 import com.sleepycat.je.EnvironmentConfig;
 import com.sleepycat.util.ExceptionUnwrapper;
+import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
-import org.infinispan.container.entries.InternalCacheEntry;
 
 import java.io.File;
 
@@ -35,7 +35,8 @@
    }
 
    /**
-    * @return PreparableTransactionRunner that will try to resolve deadlocks maximum of {@link BdbjeCacheStoreConfig#getMaxTxRetries()} times.
+    * @return PreparableTransactionRunner that will try to resolve deadlocks maximum of {@link
+    *         BdbjeCacheStoreConfig#getMaxTxRetries()} times.
     */
    public PreparableTransactionRunner createPreparableTransactionRunner(Environment env) {
       return new PreparableTransactionRunner(env, config.getMaxTxRetries(), null);
@@ -47,8 +48,10 @@
 
    /**
     * Open the environment, creating it if it doesn't exist.
+    *
     * @param envLocation base directory where the Environment will write files
-    * @return open Environment with a lock timeout of {@link org.infinispan.loader.bdbje.BdbjeCacheStoreConfig#getLockAcquistionTimeout()} milliseconds.
+    * @return open Environment with a lock timeout of {@link org.infinispan.loaders.bdbje.BdbjeCacheStoreConfig#getLockAcquistionTimeout()}
+    *         milliseconds.
     */
    public Environment createEnvironment(File envLocation) throws DatabaseException {
       EnvironmentConfig envConfig = new EnvironmentConfig();
@@ -70,6 +73,7 @@
 
    /**
     * Open the database, creating it if it doesn't exist.
+    *
     * @return open transactional Database
     */
    public Database createDatabase(Environment env, String name) throws DatabaseException {
@@ -98,7 +102,7 @@
             new SerialBinding(classCatalog, InternalCacheEntry.class);
       try {
          return new StoredMap<Object, InternalCacheEntry>(database,
-                                                   storedEntryKeyBinding, storedEntryValueBinding, true);
+                                                          storedEntryKeyBinding, storedEntryValueBinding, true);
       } catch (Exception caught) {
          caught = ExceptionUnwrapper.unwrap(caught);
          throw new DatabaseException("error opening stored map", caught);

Modified: trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/ModificationsTransactionWorker.java
===================================================================
--- trunk/cachestore/bdbje/src/main/java/org/infinispan/loader/bdbje/ModificationsTransactionWorker.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/ModificationsTransactionWorker.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,10 +1,10 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
 import com.sleepycat.collections.TransactionWorker;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.modifications.Modification;
-import org.infinispan.loader.modifications.Remove;
-import org.infinispan.loader.modifications.Store;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.modifications.Modification;
+import org.infinispan.loaders.modifications.Remove;
+import org.infinispan.loaders.modifications.Store;
 
 import java.util.List;
 

Modified: trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/PreparableTransactionRunner.java
===================================================================
--- trunk/cachestore/bdbje/src/main/java/org/infinispan/loader/bdbje/PreparableTransactionRunner.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/PreparableTransactionRunner.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
 import com.sleepycat.collections.CurrentTransaction;
 import com.sleepycat.collections.TransactionRunner;

Copied: trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders (from rev 208, trunk/cachestore/bdbje/src/test/java/org/infinispan/loader)

Modified: trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreConfigTest.java
===================================================================
--- trunk/cachestore/bdbje/src/test/java/org/infinispan/loader/bdbje/BdbjeCacheStoreConfigTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreConfigTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,6 +1,6 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
-import org.infinispan.loader.CacheLoaderException;
+import org.infinispan.loaders.CacheLoaderException;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -12,7 +12,7 @@
  * @version $Id$
  * @since 4.0
  */
- at Test(groups = "unit", enabled = true, testName = "loader.bdbje.BdbjeCacheStoreConfigTest")
+ at Test(groups = "unit", enabled = true, testName = "loaders.bdbje.BdbjeCacheStoreConfigTest")
 public class BdbjeCacheStoreConfigTest {
 
    private BdbjeCacheStoreConfig config;
@@ -77,5 +77,5 @@
       config.setCatalogDbName("foo");
       assert config.getCatalogDbName().equals("foo");
    }
-   
+
 }

Modified: trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreIntegrationTest.java
===================================================================
--- trunk/cachestore/bdbje/src/test/java/org/infinispan/loader/bdbje/BdbjeCacheStoreIntegrationTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreIntegrationTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,14 +1,14 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
 import org.easymock.EasyMock;
 import org.infinispan.container.entries.InternalEntryFactory;
-import org.infinispan.loader.BaseCacheStoreTest;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.modifications.Clear;
-import org.infinispan.loader.modifications.Modification;
-import org.infinispan.loader.modifications.Remove;
-import org.infinispan.loader.modifications.Store;
+import org.infinispan.loaders.BaseCacheStoreTest;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.modifications.Clear;
+import org.infinispan.loaders.modifications.Modification;
+import org.infinispan.loaders.modifications.Remove;
+import org.infinispan.loaders.modifications.Store;
 import org.infinispan.test.TestingUtil;
 import org.testng.annotations.AfterTest;
 import org.testng.annotations.BeforeTest;
@@ -25,100 +25,100 @@
  * @version $Id$
  * @since 4.0
  */
- at Test(groups = "unit", enabled = true, testName = "loader.bdbje.BdbjeCacheStoreIntegrationTest")
+ at Test(groups = "unit", enabled = true, testName = "loaders.bdbje.BdbjeCacheStoreIntegrationTest")
 public class BdbjeCacheStoreIntegrationTest extends BaseCacheStoreTest {
 
-    private String tmpDirectory;
+   private String tmpDirectory;
 
-    @BeforeTest
-    @Parameters({"basedir"})
-    protected void setUpTempDir(String basedir) {
-        tmpDirectory = basedir + TestingUtil.TEST_PATH + File.separator + getClass().getSimpleName();
-    }
+   @BeforeTest
+   @Parameters({"basedir"})
+   protected void setUpTempDir(String basedir) {
+      tmpDirectory = basedir + TestingUtil.TEST_PATH + File.separator + getClass().getSimpleName();
+   }
 
-    @AfterTest
-    protected void clearTempDir() {
-        TestingUtil.recursiveFileRemove(tmpDirectory);
-        new File(tmpDirectory).mkdirs();
-    }
+   @AfterTest
+   protected void clearTempDir() {
+      TestingUtil.recursiveFileRemove(tmpDirectory);
+      new File(tmpDirectory).mkdirs();
+   }
 
-    protected CacheStore createCacheStore() throws CacheLoaderException {
-        clearTempDir();
-        CacheStore cs = new BdbjeCacheStore();
-        BdbjeCacheStoreConfig cfg = new BdbjeCacheStoreConfig();
-        cfg.setLocation(tmpDirectory);
-        cfg.setPurgeSynchronously(true);
-        cs.init(cfg, getCache(), getMarshaller());
-        cs.start();
-        return cs;
-    }
+   protected CacheStore createCacheStore() throws CacheLoaderException {
+      clearTempDir();
+      CacheStore cs = new BdbjeCacheStore();
+      BdbjeCacheStoreConfig cfg = new BdbjeCacheStoreConfig();
+      cfg.setLocation(tmpDirectory);
+      cfg.setPurgeSynchronously(true);
+      cs.init(cfg, getCache(), getMarshaller());
+      cs.start();
+      return cs;
+   }
 
-    /**
-     * this is the same as the superclass, except that it doesn't attempt read-committed
-     */
-    @Override
-    public void testTwoPhaseCommit() throws CacheLoaderException {
-        List<Modification> mods = new ArrayList<Modification>();
-        mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
-        mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
-        mods.add(new Remove("k1"));
-        Transaction tx = EasyMock.createNiceMock(Transaction.class);
-        cs.prepare(mods, tx, false);
-        cs.commit(tx);
+   /**
+    * this is the same as the superclass, except that it doesn't attempt read-committed
+    */
+   @Override
+   public void testTwoPhaseCommit() throws CacheLoaderException {
+      List<Modification> mods = new ArrayList<Modification>();
+      mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
+      mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
+      mods.add(new Remove("k1"));
+      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      cs.prepare(mods, tx, false);
+      cs.commit(tx);
 
-        assert cs.load("k2").getValue().equals("v2");
-        assert !cs.containsKey("k1");
+      assert cs.load("k2").getValue().equals("v2");
+      assert !cs.containsKey("k1");
 
-        cs.clear();
+      cs.clear();
 
-        mods = new ArrayList<Modification>();
-        mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
-        mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
-        mods.add(new Clear());
-        mods.add(new Store(InternalEntryFactory.create("k3", "v3")));
+      mods = new ArrayList<Modification>();
+      mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
+      mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
+      mods.add(new Clear());
+      mods.add(new Store(InternalEntryFactory.create("k3", "v3")));
 
-        cs.prepare(mods, tx, false);
-        cs.commit(tx);
+      cs.prepare(mods, tx, false);
+      cs.commit(tx);
 
-        assert !cs.containsKey("k1");
-        assert !cs.containsKey("k2");
-        assert cs.containsKey("k3");
-    }
+      assert !cs.containsKey("k1");
+      assert !cs.containsKey("k2");
+      assert cs.containsKey("k3");
+   }
 
-    /**
-     * this is the same as the superclass, except that it doesn't attempt read-committed
-     */
-    @Override
-    public void testRollback() throws CacheLoaderException {
+   /**
+    * this is the same as the superclass, except that it doesn't attempt read-committed
+    */
+   @Override
+   public void testRollback() throws CacheLoaderException {
 
-        cs.store(InternalEntryFactory.create("old", "old"));
+      cs.store(InternalEntryFactory.create("old", "old"));
 
-        List<Modification> mods = new ArrayList<Modification>();
-        mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
-        mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
-        mods.add(new Remove("k1"));
-        mods.add(new Remove("old"));
-        Transaction tx = EasyMock.createNiceMock(Transaction.class);
-        cs.prepare(mods, tx, false);
-        cs.rollback(tx);
+      List<Modification> mods = new ArrayList<Modification>();
+      mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
+      mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
+      mods.add(new Remove("k1"));
+      mods.add(new Remove("old"));
+      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      cs.prepare(mods, tx, false);
+      cs.rollback(tx);
 
-        assert !cs.containsKey("k1");
-        assert !cs.containsKey("k2");
-        assert cs.containsKey("old");
+      assert !cs.containsKey("k1");
+      assert !cs.containsKey("k2");
+      assert cs.containsKey("old");
 
-        mods = new ArrayList<Modification>();
-        mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
-        mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
-        mods.add(new Clear());
-        mods.add(new Store(InternalEntryFactory.create("k3", "v3")));
+      mods = new ArrayList<Modification>();
+      mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
+      mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
+      mods.add(new Clear());
+      mods.add(new Store(InternalEntryFactory.create("k3", "v3")));
 
-        cs.prepare(mods, tx, false);
-        cs.rollback(tx);
+      cs.prepare(mods, tx, false);
+      cs.rollback(tx);
 
-        assert !cs.containsKey("k1");
-        assert !cs.containsKey("k2");
-        assert !cs.containsKey("k3");
-        assert cs.containsKey("old");
-    }
+      assert !cs.containsKey("k1");
+      assert !cs.containsKey("k2");
+      assert !cs.containsKey("k3");
+      assert cs.containsKey("old");
+   }
 
 }

Modified: trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreTest.java
===================================================================
--- trunk/cachestore/bdbje/src/test/java/org/infinispan/loader/bdbje/BdbjeCacheStoreTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
 import com.sleepycat.bind.serial.StoredClassCatalog;
 import com.sleepycat.collections.CurrentTransaction;
@@ -11,10 +11,10 @@
 import com.sleepycat.util.RuntimeExceptionWrapper;
 import static org.easymock.classextension.EasyMock.*;
 import org.infinispan.Cache;
+import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.InternalEntryFactory;
-import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.modifications.Store;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.modifications.Store;
 import org.infinispan.util.ReflectionUtil;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
@@ -32,7 +32,7 @@
  * @version $Id$
  * @since 4.0
  */
- at Test(groups = "unit", enabled = true, testName = "loader.bdbje.BdbjeCacheStoreTest")
+ at Test(groups = "unit", enabled = true, testName = "loaders.bdbje.BdbjeCacheStoreTest")
 public class BdbjeCacheStoreTest {
    private BdbjeCacheStore cs;
    private BdbjeCacheStoreConfig cfg;
@@ -99,9 +99,9 @@
       cacheMap = createMock(StoredMap.class);
       currentTransaction = createMock(CurrentTransaction.class);
       WeakReference<Environment> envRef = new WeakReference<Environment>(env);
-      ReflectionUtil.setValue(currentTransaction,"envRef",envRef);
+      ReflectionUtil.setValue(currentTransaction, "envRef", envRef);
       ThreadLocal localTrans = new ThreadLocal();
-      ReflectionUtil.setValue(currentTransaction,"localTrans",localTrans);
+      ReflectionUtil.setValue(currentTransaction, "localTrans", localTrans);
       runner = createMock(PreparableTransactionRunner.class);
    }
 
@@ -290,7 +290,7 @@
       try {
          txn = currentTransaction.beginTransaction(null);
          Transaction t = createMock(Transaction.class);
-         cs.prepare(Collections.singletonList(new Store(InternalEntryFactory.create("k", "v"))), t,false);
+         cs.prepare(Collections.singletonList(new Store(InternalEntryFactory.create("k", "v"))), t, false);
          cs.commit(t);
          assert false : "should have gotten an exception";
       } catch (CacheLoaderException e) {
@@ -301,7 +301,7 @@
       assert false : "should have returned";
 
    }
-            
+
    @Test
    protected void testPrepareThrowsOriginalDatabaseException() throws Exception {
       start();
@@ -311,7 +311,7 @@
       replayAll();
       cs.start();
       try {
-         cs.prepare(Collections.singletonList(new Store(InternalEntryFactory.create("k", "v"))), createMock(Transaction.class),false);
+         cs.prepare(Collections.singletonList(new Store(InternalEntryFactory.create("k", "v"))), createMock(Transaction.class), false);
          assert false : "should have gotten an exception";
       } catch (CacheLoaderException e) {
          assert ex.equals(e.getCause());
@@ -329,7 +329,7 @@
       expect(cacheMap.put(entry.getKey(), entry)).andReturn(null);
       ObjectInput ois = createMock(ObjectInput.class);
       expect(ois.readLong()).andReturn(new Long(1));
-      com.sleepycat.je.Transaction txn = createMock( com.sleepycat.je.Transaction.class);
+      com.sleepycat.je.Transaction txn = createMock(com.sleepycat.je.Transaction.class);
       expect(currentTransaction.beginTransaction(null)).andReturn(txn);
       cacheMap.clear();
       Cursor cursor = createMock(Cursor.class);

Modified: trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeLearningTest.java
===================================================================
--- trunk/cachestore/bdbje/src/test/java/org/infinispan/loader/bdbje/BdbjeLearningTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeLearningTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
 import com.sleepycat.bind.EntryBinding;
 import com.sleepycat.bind.serial.SerialBinding;
@@ -7,23 +7,50 @@
 import com.sleepycat.collections.StoredMap;
 import com.sleepycat.collections.TransactionRunner;
 import com.sleepycat.collections.TransactionWorker;
-import com.sleepycat.je.*;
+import com.sleepycat.je.Cursor;
+import com.sleepycat.je.Database;
+import com.sleepycat.je.DatabaseConfig;
+import com.sleepycat.je.DatabaseEntry;
+import com.sleepycat.je.DatabaseException;
+import com.sleepycat.je.Environment;
+import com.sleepycat.je.EnvironmentConfig;
+import com.sleepycat.je.OperationStatus;
 import org.easymock.EasyMock;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.InternalEntryFactory;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.modifications.Clear;
-import org.infinispan.loader.modifications.Modification;
-import org.infinispan.loader.modifications.Remove;
-import org.infinispan.loader.modifications.Store;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.modifications.Clear;
+import org.infinispan.loaders.modifications.Modification;
+import org.infinispan.loaders.modifications.Remove;
+import org.infinispan.loaders.modifications.Store;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.test.TestingUtil;
-import org.testng.annotations.*;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
 
 import javax.transaction.Transaction;
-import java.io.*;
-import java.util.*;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
 
 /**
  * Learning tests for SleepyCat JE.  Behaviour here is used in BdbjeCacheLoader.  When there are upgrades to bdbje, this
@@ -33,649 +60,649 @@
  * @version $Id$
  * @since 4.0
  */
- at Test(groups = "unit", enabled = true, testName = "loader.bdbje.BdbjeLearningTest")
+ at Test(groups = "unit", enabled = true, testName = "loaders.bdbje.BdbjeLearningTest")
 public class BdbjeLearningTest {
-    Environment env;
+   Environment env;
 
-    private static final String CLASS_CATALOG = "java_class_catalog";
-    private StoredClassCatalog javaCatalog;
+   private static final String CLASS_CATALOG = "java_class_catalog";
+   private StoredClassCatalog javaCatalog;
 
-    private static final String STORED_ENTRIES = "storedEntriesDb";
-    private Database storedEntriesDb;
-    private StoredMap<Object, InternalCacheEntry> cacheMap;
+   private static final String STORED_ENTRIES = "storedEntriesDb";
+   private Database storedEntriesDb;
+   private StoredMap<Object, InternalCacheEntry> cacheMap;
 
-    private String tmpDirectory;
+   private String tmpDirectory;
 
-    @BeforeTest
-    @Parameters({"basedir"})
-    protected void setUpTempDir(String basedir) {
-        tmpDirectory = basedir + TestingUtil.TEST_PATH + File.separator + getClass().getSimpleName();
-    }
+   @BeforeTest
+   @Parameters({"basedir"})
+   protected void setUpTempDir(String basedir) {
+      tmpDirectory = basedir + TestingUtil.TEST_PATH + File.separator + getClass().getSimpleName();
+   }
 
-    @AfterTest
-    protected void clearTempDir() {
-        TestingUtil.recursiveFileRemove(tmpDirectory);
-        new File(tmpDirectory).mkdirs();
-    }
+   @AfterTest
+   protected void clearTempDir() {
+      TestingUtil.recursiveFileRemove(tmpDirectory);
+      new File(tmpDirectory).mkdirs();
+   }
 
-    @BeforeMethod
-    public void setUp() throws Exception {
-        new File(tmpDirectory).mkdirs();
-        System.out.println("Opening environment in: " + tmpDirectory);
+   @BeforeMethod
+   public void setUp() throws Exception {
+      new File(tmpDirectory).mkdirs();
+      System.out.println("Opening environment in: " + tmpDirectory);
 
-        EnvironmentConfig envConfig = new EnvironmentConfig();
-        envConfig.setTransactional(true);
-        envConfig.setAllowCreate(true);
+      EnvironmentConfig envConfig = new EnvironmentConfig();
+      envConfig.setTransactional(true);
+      envConfig.setAllowCreate(true);
 
-        env = new Environment(new File(tmpDirectory), envConfig);
-        DatabaseConfig dbConfig = new DatabaseConfig();
-        dbConfig.setTransactional(true);
-        dbConfig.setAllowCreate(true);
+      env = new Environment(new File(tmpDirectory), envConfig);
+      DatabaseConfig dbConfig = new DatabaseConfig();
+      dbConfig.setTransactional(true);
+      dbConfig.setAllowCreate(true);
 
-        Database catalogDb = env.openDatabase(null, CLASS_CATALOG, dbConfig);
+      Database catalogDb = env.openDatabase(null, CLASS_CATALOG, dbConfig);
 
-        javaCatalog = new StoredClassCatalog(catalogDb);
+      javaCatalog = new StoredClassCatalog(catalogDb);
 
-        EntryBinding storedEntryKeyBinding =
-                new SerialBinding(javaCatalog, Object.class);
-        EntryBinding storedEntryValueBinding =
-                new SerialBinding(javaCatalog, InternalCacheEntry.class);
+      EntryBinding storedEntryKeyBinding =
+            new SerialBinding(javaCatalog, Object.class);
+      EntryBinding storedEntryValueBinding =
+            new SerialBinding(javaCatalog, InternalCacheEntry.class);
 
-        storedEntriesDb = env.openDatabase(null, STORED_ENTRIES, dbConfig);
+      storedEntriesDb = env.openDatabase(null, STORED_ENTRIES, dbConfig);
 
-        cacheMap =
-                new StoredMap<Object, InternalCacheEntry>(storedEntriesDb,
-                        storedEntryKeyBinding, storedEntryValueBinding, true);
+      cacheMap =
+            new StoredMap<Object, InternalCacheEntry>(storedEntriesDb,
+                                                      storedEntryKeyBinding, storedEntryValueBinding, true);
 
 
-    }
+   }
 
-    public void testTransactionWorker() throws Exception {
-        TransactionRunner runner = new TransactionRunner(env);
-        runner.run(new PopulateDatabase());
-        runner.run(new PrintDatabase());
+   public void testTransactionWorker() throws Exception {
+      TransactionRunner runner = new TransactionRunner(env);
+      runner.run(new PopulateDatabase());
+      runner.run(new PrintDatabase());
 
-    }
+   }
 
 
-    private class PopulateDatabase implements TransactionWorker {
-        public void doWork()
-                throws Exception {
-        }
-    }
+   private class PopulateDatabase implements TransactionWorker {
+      public void doWork()
+            throws Exception {
+      }
+   }
 
-    private class PrintDatabase implements TransactionWorker {
-        public void doWork()
-                throws Exception {
-        }
-    }
+   private class PrintDatabase implements TransactionWorker {
+      public void doWork()
+            throws Exception {
+      }
+   }
 
 
-    @AfterMethod
-    public void tearDown() throws Exception {
-        storedEntriesDb.close();
-        javaCatalog.close();
-        env.close();
+   @AfterMethod
+   public void tearDown() throws Exception {
+      storedEntriesDb.close();
+      javaCatalog.close();
+      env.close();
 
-        TestingUtil.recursiveFileRemove(tmpDirectory);
-    }
+      TestingUtil.recursiveFileRemove(tmpDirectory);
+   }
 
 
-    private void store(InternalCacheEntry se) {
-        cacheMap.put(se.getKey(), se);
-    }
+   private void store(InternalCacheEntry se) {
+      cacheMap.put(se.getKey(), se);
+   }
 
 
-    private InternalCacheEntry load(Object key) {
-        InternalCacheEntry s = cacheMap.get(key);
-        if (s == null)
-            return null;
-        if (!s.isExpired())
-            return s;
-        else
-            cacheMap.remove(key);
-        return null;
-    }
+   private InternalCacheEntry load(Object key) {
+      InternalCacheEntry s = cacheMap.get(key);
+      if (s == null)
+         return null;
+      if (!s.isExpired())
+         return s;
+      else
+         cacheMap.remove(key);
+      return null;
+   }
 
-    private Set loadAll() {
-        return new HashSet(cacheMap.values());
-    }
+   private Set loadAll() {
+      return new HashSet(cacheMap.values());
+   }
 
-    private void purgeExpired() {
-        Iterator<Map.Entry<Object, InternalCacheEntry>> i = cacheMap.entrySet().iterator();
-        while (i.hasNext()) {
-            if (i.next().getValue().isExpired())
-                i.remove();
-        }
-    }
+   private void purgeExpired() {
+      Iterator<Map.Entry<Object, InternalCacheEntry>> i = cacheMap.entrySet().iterator();
+      while (i.hasNext()) {
+         if (i.next().getValue().isExpired())
+            i.remove();
+      }
+   }
 
-    private static final Log log = LogFactory.getLog(BdbjeLearningTest.class);
+   private static final Log log = LogFactory.getLog(BdbjeLearningTest.class);
 
-    private void toStream(OutputStream outputStream) throws CacheLoaderException {
-        ObjectOutputStream oos = null;
-        Cursor cursor = null;
+   private void toStream(OutputStream outputStream) throws CacheLoaderException {
+      ObjectOutputStream oos = null;
+      Cursor cursor = null;
 
-        try {
-            oos = (outputStream instanceof ObjectOutputStream) ? (ObjectOutputStream) outputStream :
-                    new ObjectOutputStream(outputStream);
-            long recordCount = storedEntriesDb.count();
-            log.trace("writing {0} records to stream", recordCount);
-            oos.writeLong(recordCount);
+      try {
+         oos = (outputStream instanceof ObjectOutputStream) ? (ObjectOutputStream) outputStream :
+               new ObjectOutputStream(outputStream);
+         long recordCount = storedEntriesDb.count();
+         log.trace("writing {0} records to stream", recordCount);
+         oos.writeLong(recordCount);
 
-            cursor = storedEntriesDb.openCursor(null, null);
-            DatabaseEntry key = new DatabaseEntry();
-            DatabaseEntry data = new DatabaseEntry();
-            while (cursor.getNext(key, data, null) ==
-                    OperationStatus.SUCCESS) {
-                oos.writeObject(key.getData());
-                oos.writeObject(data.getData());
-            }
-        } catch (IOException e) {
-            throw new CacheLoaderException("Error writing to object stream", e);
-        } catch (DatabaseException e) {
-            throw new CacheLoaderException("Error accessing database", e);
-        }
-        finally {
-            if (cursor != null) try {
-                cursor.close();
-            } catch (DatabaseException e) {
-                throw new CacheLoaderException("Error closing cursor", e);
-            }
-        }
+         cursor = storedEntriesDb.openCursor(null, null);
+         DatabaseEntry key = new DatabaseEntry();
+         DatabaseEntry data = new DatabaseEntry();
+         while (cursor.getNext(key, data, null) ==
+               OperationStatus.SUCCESS) {
+            oos.writeObject(key.getData());
+            oos.writeObject(data.getData());
+         }
+      } catch (IOException e) {
+         throw new CacheLoaderException("Error writing to object stream", e);
+      } catch (DatabaseException e) {
+         throw new CacheLoaderException("Error accessing database", e);
+      }
+      finally {
+         if (cursor != null) try {
+            cursor.close();
+         } catch (DatabaseException e) {
+            throw new CacheLoaderException("Error closing cursor", e);
+         }
+      }
 
-    }
+   }
 
-    private void fromStream(InputStream inputStream) throws CacheLoaderException {
-        ObjectInputStream ois = null;
-        try {
-            ois = (inputStream instanceof ObjectInputStream) ? (ObjectInputStream) inputStream :
-                    new ObjectInputStream(inputStream);
-            long recordCount = ois.readLong();
-            log.info("reading {0} records from stream", recordCount);
-            log.info("clearing all records");
-            cacheMap.clear();
-            Cursor cursor = null;
-            com.sleepycat.je.Transaction txn = env.beginTransaction(null, null);
-            try {
-                cursor = storedEntriesDb.openCursor(txn, null);
-                for (int i = 0; i < recordCount; i++) {
-                    byte[] keyBytes = (byte[]) ois.readObject();
-                    byte[] dataBytes = (byte[]) ois.readObject();
+   private void fromStream(InputStream inputStream) throws CacheLoaderException {
+      ObjectInputStream ois = null;
+      try {
+         ois = (inputStream instanceof ObjectInputStream) ? (ObjectInputStream) inputStream :
+               new ObjectInputStream(inputStream);
+         long recordCount = ois.readLong();
+         log.info("reading {0} records from stream", recordCount);
+         log.info("clearing all records");
+         cacheMap.clear();
+         Cursor cursor = null;
+         com.sleepycat.je.Transaction txn = env.beginTransaction(null, null);
+         try {
+            cursor = storedEntriesDb.openCursor(txn, null);
+            for (int i = 0; i < recordCount; i++) {
+               byte[] keyBytes = (byte[]) ois.readObject();
+               byte[] dataBytes = (byte[]) ois.readObject();
 
-                    DatabaseEntry key = new DatabaseEntry(keyBytes);
-                    DatabaseEntry data = new DatabaseEntry(dataBytes);
-                    cursor.put(key, data);
-                }
-                cursor.close();
-                cursor = null;
-                txn.commit();
-            } finally {
-                if (cursor != null) cursor.close();
+               DatabaseEntry key = new DatabaseEntry(keyBytes);
+               DatabaseEntry data = new DatabaseEntry(dataBytes);
+               cursor.put(key, data);
             }
+            cursor.close();
+            cursor = null;
+            txn.commit();
+         } finally {
+            if (cursor != null) cursor.close();
+         }
 
-        }
-        catch (Exception e) {
-            CacheLoaderException cle = (e instanceof CacheLoaderException) ? (CacheLoaderException) e :
-                    new CacheLoaderException("Problems reading from stream", e);
-            throw cle;
-        }
-    }
+      }
+      catch (Exception e) {
+         CacheLoaderException cle = (e instanceof CacheLoaderException) ? (CacheLoaderException) e :
+               new CacheLoaderException("Problems reading from stream", e);
+         throw cle;
+      }
+   }
 
-    class StoreTransactionWorker implements TransactionWorker {
-        StoreTransactionWorker(InternalCacheEntry entry) {
-            this.entry = entry;
-        }
+   class StoreTransactionWorker implements TransactionWorker {
+      StoreTransactionWorker(InternalCacheEntry entry) {
+         this.entry = entry;
+      }
 
-        private InternalCacheEntry entry;
+      private InternalCacheEntry entry;
 
-        public void doWork() throws Exception {
-            store(entry);
-        }
-    }
+      public void doWork() throws Exception {
+         store(entry);
+      }
+   }
 
-    class ClearTransactionWorker implements TransactionWorker {
+   class ClearTransactionWorker implements TransactionWorker {
 
-        public void doWork() throws Exception {
-            cacheMap.clear();
-        }
-    }
+      public void doWork() throws Exception {
+         cacheMap.clear();
+      }
+   }
 
-    class RemoveTransactionWorker implements TransactionWorker {
-        RemoveTransactionWorker(Object key) {
-            this.key = key;
-        }
+   class RemoveTransactionWorker implements TransactionWorker {
+      RemoveTransactionWorker(Object key) {
+         this.key = key;
+      }
 
-        Object key;
+      Object key;
 
-        public void doWork() throws Exception {
-            cacheMap.remove(key);
-        }
-    }
+      public void doWork() throws Exception {
+         cacheMap.remove(key);
+      }
+   }
 
-    class PurgeExpiredTransactionWorker implements TransactionWorker {
-        public void doWork() throws Exception {
-            purgeExpired();
-        }
-    }
+   class PurgeExpiredTransactionWorker implements TransactionWorker {
+      public void doWork() throws Exception {
+         purgeExpired();
+      }
+   }
 
-    class ModificationsTransactionWorker implements TransactionWorker {
-        private List<? extends Modification> mods;
+   class ModificationsTransactionWorker implements TransactionWorker {
+      private List<? extends Modification> mods;
 
-        ModificationsTransactionWorker(List<? extends Modification> mods) {
-            this.mods = mods;
-        }
+      ModificationsTransactionWorker(List<? extends Modification> mods) {
+         this.mods = mods;
+      }
 
-        public void doWork() throws Exception {
-            for (Modification modification : mods)
-                switch (modification.getType()) {
-                    case STORE:
-                        Store s = (Store) modification;
-                        store(s.getStoredEntry());
-                        break;
-                    case CLEAR:
-                        cacheMap.clear();
-                        break;
-                    case REMOVE:
-                        Remove r = (Remove) modification;
-                        cacheMap.remove(r.getKey());
-                        break;
-                    case PURGE_EXPIRED:
-                        purgeExpired();
-                        break;
-                    default:
-                        throw new IllegalArgumentException("Unknown modification type " + modification.getType());
-                }
-        }
-    }
+      public void doWork() throws Exception {
+         for (Modification modification : mods)
+            switch (modification.getType()) {
+               case STORE:
+                  Store s = (Store) modification;
+                  store(s.getStoredEntry());
+                  break;
+               case CLEAR:
+                  cacheMap.clear();
+                  break;
+               case REMOVE:
+                  Remove r = (Remove) modification;
+                  cacheMap.remove(r.getKey());
+                  break;
+               case PURGE_EXPIRED:
+                  purgeExpired();
+                  break;
+               default:
+                  throw new IllegalArgumentException("Unknown modification type " + modification.getType());
+            }
+      }
+   }
 
 
-    private void prepare(List<Modification> mods, Transaction tx, boolean isOnePhase) throws CacheLoaderException {
-        if (isOnePhase) {
-            TransactionRunner runner = new TransactionRunner(env);
-            try {
-                runner.run(new ModificationsTransactionWorker(mods));
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        } else {
-            PreparableTransactionRunner runner = new PreparableTransactionRunner(env);
-            com.sleepycat.je.Transaction txn = null;
-            try {
-                runner.prepare(new ModificationsTransactionWorker(mods));
-                txn = CurrentTransaction.getInstance(env).getTransaction();
-                txnMap.put(tx, txn);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
+   private void prepare(List<Modification> mods, Transaction tx, boolean isOnePhase) throws CacheLoaderException {
+      if (isOnePhase) {
+         TransactionRunner runner = new TransactionRunner(env);
+         try {
+            runner.run(new ModificationsTransactionWorker(mods));
+         } catch (Exception e) {
+            e.printStackTrace();
+         }
+      } else {
+         PreparableTransactionRunner runner = new PreparableTransactionRunner(env);
+         com.sleepycat.je.Transaction txn = null;
+         try {
+            runner.prepare(new ModificationsTransactionWorker(mods));
+            txn = CurrentTransaction.getInstance(env).getTransaction();
+            txnMap.put(tx, txn);
+         } catch (Exception e) {
+            e.printStackTrace();
+         }
+      }
 
-    }
+   }
 
-    Map<Transaction, com.sleepycat.je.Transaction> txnMap = new HashMap<Transaction, com.sleepycat.je.Transaction>();
+   Map<Transaction, com.sleepycat.je.Transaction> txnMap = new HashMap<Transaction, com.sleepycat.je.Transaction>();
 
-    private void commit(Transaction tx) {
-        com.sleepycat.je.Transaction txn = txnMap.remove(tx);
-        CurrentTransaction currentTransaction = CurrentTransaction.getInstance(env);
-        if (txn != null) {
-            if (currentTransaction.getTransaction() == txn) {
-                try {
-                    currentTransaction.commitTransaction();
-                } catch (DatabaseException e) {
-                    e.printStackTrace();
-                }
-            } else {
-                log.error("Transactions must be committed on the same thread");
+   private void commit(Transaction tx) {
+      com.sleepycat.je.Transaction txn = txnMap.remove(tx);
+      CurrentTransaction currentTransaction = CurrentTransaction.getInstance(env);
+      if (txn != null) {
+         if (currentTransaction.getTransaction() == txn) {
+            try {
+               currentTransaction.commitTransaction();
+            } catch (DatabaseException e) {
+               e.printStackTrace();
             }
-        }
-    }
+         } else {
+            log.error("Transactions must be committed on the same thread");
+         }
+      }
+   }
 
-    private void rollback(Transaction tx) {
-        com.sleepycat.je.Transaction txn = txnMap.remove(tx);
-        CurrentTransaction currentTransaction = CurrentTransaction.getInstance(env);
-        if (txn != null) {
-            if (currentTransaction.getTransaction() == txn) {
-                try {
-                    currentTransaction.abortTransaction();
-                } catch (DatabaseException e) {
-                    e.printStackTrace();
-                }
-            } else {
-                log.error("Transactions must be committed on the same thread");
+   private void rollback(Transaction tx) {
+      com.sleepycat.je.Transaction txn = txnMap.remove(tx);
+      CurrentTransaction currentTransaction = CurrentTransaction.getInstance(env);
+      if (txn != null) {
+         if (currentTransaction.getTransaction() == txn) {
+            try {
+               currentTransaction.abortTransaction();
+            } catch (DatabaseException e) {
+               e.printStackTrace();
             }
-        }
-    }
+         } else {
+            log.error("Transactions must be committed on the same thread");
+         }
+      }
+   }
 
-    public void testLoadAndStore() throws InterruptedException, CacheLoaderException {
-        assert !cacheMap.containsKey("k");
-        InternalCacheEntry se = InternalEntryFactory.create("k", "v");
-        store(se);
+   public void testLoadAndStore() throws InterruptedException, CacheLoaderException {
+      assert !cacheMap.containsKey("k");
+      InternalCacheEntry se = InternalEntryFactory.create("k", "v");
+      store(se);
 
-        assert load("k").getValue().equals("v");
-        assert load("k").getLifespan() == -1;
-        assert !load("k").isExpired();
-        assert cacheMap.containsKey("k");
+      assert load("k").getValue().equals("v");
+      assert load("k").getLifespan() == -1;
+      assert !load("k").isExpired();
+      assert cacheMap.containsKey("k");
 
-        long lifespan = 120000;
-        se = InternalEntryFactory.create("k", "v", lifespan);
-        store(se);
+      long lifespan = 120000;
+      se = InternalEntryFactory.create("k", "v", lifespan);
+      store(se);
 
-        assert load("k").getValue().equals("v");
-        assert load("k").getLifespan() == lifespan;
-        assert !load("k").isExpired();
-        assert cacheMap.containsKey("k");
+      assert load("k").getValue().equals("v");
+      assert load("k").getLifespan() == lifespan;
+      assert !load("k").isExpired();
+      assert cacheMap.containsKey("k");
 
-        lifespan = 1;
-        se = InternalEntryFactory.create("k", "v", lifespan);
-        store(se);
-        Thread.sleep(100);
-        assert se.isExpired();
-        assert load("k") == null;
-        assert !cacheMap.containsKey("k");
-    }
+      lifespan = 1;
+      se = InternalEntryFactory.create("k", "v", lifespan);
+      store(se);
+      Thread.sleep(100);
+      assert se.isExpired();
+      assert load("k") == null;
+      assert !cacheMap.containsKey("k");
+   }
 
 
-    public void testOnePhaseCommit() throws CacheLoaderException {
-        List<Modification> mods = new ArrayList<Modification>();
-        mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
-        mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
-        mods.add(new Remove("k1"));
-        Transaction tx = EasyMock.createNiceMock(Transaction.class);
-        prepare(mods, tx, true);
+   public void testOnePhaseCommit() throws CacheLoaderException {
+      List<Modification> mods = new ArrayList<Modification>();
+      mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
+      mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
+      mods.add(new Remove("k1"));
+      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      prepare(mods, tx, true);
 
-        Set s = loadAll();
+      Set s = loadAll();
 
-        assert load("k2").getValue().equals("v2");
-        assert !cacheMap.containsKey("k1");
+      assert load("k2").getValue().equals("v2");
+      assert !cacheMap.containsKey("k1");
 
-        cacheMap.clear();
+      cacheMap.clear();
 
-        mods = new ArrayList<Modification>();
-        mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
-        mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
-        mods.add(new Clear());
-        mods.add(new Store(InternalEntryFactory.create("k3", "v3")));
+      mods = new ArrayList<Modification>();
+      mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
+      mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
+      mods.add(new Clear());
+      mods.add(new Store(InternalEntryFactory.create("k3", "v3")));
 
-        prepare(mods, tx, true);
-        assert !cacheMap.containsKey("k1");
-        assert !cacheMap.containsKey("k2");
-        assert cacheMap.containsKey("k3");
-    }
+      prepare(mods, tx, true);
+      assert !cacheMap.containsKey("k1");
+      assert !cacheMap.containsKey("k2");
+      assert cacheMap.containsKey("k3");
+   }
 
 
-    public void testTwoPhaseCommit() throws Throwable {
-        final List<Throwable> throwables = new ArrayList<Throwable>();
-        List<Modification> mods = new ArrayList<Modification>();
-        mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
-        mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
-        mods.add(new Remove("k1"));
-        Transaction tx = EasyMock.createNiceMock(Transaction.class);
-        prepare(mods, tx, false);
+   public void testTwoPhaseCommit() throws Throwable {
+      final List<Throwable> throwables = new ArrayList<Throwable>();
+      List<Modification> mods = new ArrayList<Modification>();
+      mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
+      mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
+      mods.add(new Remove("k1"));
+      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      prepare(mods, tx, false);
 
 
-        Thread gets1 = new Thread(
-                new Runnable() {
-                    public void run() {
-                        try {
-                            assert load("k2").getValue().equals("v2");
-                            assert !cacheMap.containsKey("k1");
-                        } catch (Throwable e) {
-                            throwables.add(e);
-                        }
-                    }
-                }
-        );
+      Thread gets1 = new Thread(
+            new Runnable() {
+               public void run() {
+                  try {
+                     assert load("k2").getValue().equals("v2");
+                     assert !cacheMap.containsKey("k1");
+                  } catch (Throwable e) {
+                     throwables.add(e);
+                  }
+               }
+            }
+      );
 
-        gets1.start();
-        commit(tx);
+      gets1.start();
+      commit(tx);
 
-        gets1.join();
+      gets1.join();
 
-        if (!throwables.isEmpty()) throw throwables.get(0);
+      if (!throwables.isEmpty()) throw throwables.get(0);
 
 
-        cacheMap.clear();
+      cacheMap.clear();
 
-        mods = new ArrayList<Modification>();
-        mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
-        mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
-        mods.add(new Clear());
-        mods.add(new Store(InternalEntryFactory.create("k3", "v3")));
+      mods = new ArrayList<Modification>();
+      mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
+      mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
+      mods.add(new Clear());
+      mods.add(new Store(InternalEntryFactory.create("k3", "v3")));
 
-        prepare(mods, tx, false);
+      prepare(mods, tx, false);
 
-        Thread gets2 = new Thread(
-                new Runnable() {
-                    public void run() {
-                        try {
-                            assert !cacheMap.containsKey("k1");
-                            assert !cacheMap.containsKey("k2");
-                            assert cacheMap.containsKey("k3");
+      Thread gets2 = new Thread(
+            new Runnable() {
+               public void run() {
+                  try {
+                     assert !cacheMap.containsKey("k1");
+                     assert !cacheMap.containsKey("k2");
+                     assert cacheMap.containsKey("k3");
 
-                        } catch (Throwable e) {
-                            throwables.add(e);
-                        }
-                    }
-                }
-        );
+                  } catch (Throwable e) {
+                     throwables.add(e);
+                  }
+               }
+            }
+      );
 
-        gets2.start();
+      gets2.start();
 
 
-        commit(tx);
-        gets2.join();
+      commit(tx);
+      gets2.join();
 
-        if (!throwables.isEmpty()) throw throwables.get(0);
-        assert !cacheMap.containsKey("k1");
-        assert !cacheMap.containsKey("k2");
-        assert cacheMap.containsKey("k3");
-    }
+      if (!throwables.isEmpty()) throw throwables.get(0);
+      assert !cacheMap.containsKey("k1");
+      assert !cacheMap.containsKey("k2");
+      assert cacheMap.containsKey("k3");
+   }
 
 
-    public void testRollback() throws Throwable {
+   public void testRollback() throws Throwable {
 
-        store(InternalEntryFactory.create("old", "old"));
+      store(InternalEntryFactory.create("old", "old"));
 
 
-        List<Modification> mods = new ArrayList<Modification>();
-        mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
-        mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
-        mods.add(new Remove("k1"));
-        mods.add(new Remove("old"));
-        Transaction tx = EasyMock.createNiceMock(Transaction.class);
-        prepare(mods, tx, false);
+      List<Modification> mods = new ArrayList<Modification>();
+      mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
+      mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
+      mods.add(new Remove("k1"));
+      mods.add(new Remove("old"));
+      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      prepare(mods, tx, false);
 
-        rollback(tx);
+      rollback(tx);
 
-        assert !cacheMap.containsKey("k1");
-        assert !cacheMap.containsKey("k2");
-        assert cacheMap.containsKey("old");
+      assert !cacheMap.containsKey("k1");
+      assert !cacheMap.containsKey("k2");
+      assert cacheMap.containsKey("old");
 
-        mods = new ArrayList<Modification>();
-        mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
-        mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
-        mods.add(new Clear());
-        mods.add(new Store(InternalEntryFactory.create("k3", "v3")));
+      mods = new ArrayList<Modification>();
+      mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
+      mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
+      mods.add(new Clear());
+      mods.add(new Store(InternalEntryFactory.create("k3", "v3")));
 
-        prepare(mods, tx, false);
+      prepare(mods, tx, false);
 
-        rollback(tx);
+      rollback(tx);
 
-        assert !cacheMap.containsKey("k1");
-        assert !cacheMap.containsKey("k2");
-        assert !cacheMap.containsKey("k3");
-        assert cacheMap.containsKey("old");
-    }
+      assert !cacheMap.containsKey("k1");
+      assert !cacheMap.containsKey("k2");
+      assert !cacheMap.containsKey("k3");
+      assert cacheMap.containsKey("old");
+   }
 
 
-    public void testCommitAndRollbackWithoutPrepare() throws CacheLoaderException {
-        store(InternalEntryFactory.create("old", "old"));
-        Transaction tx = EasyMock.createNiceMock(Transaction.class);
-        commit(tx);
-        store(InternalEntryFactory.create("old", "old"));
-        rollback(tx);
+   public void testCommitAndRollbackWithoutPrepare() throws CacheLoaderException {
+      store(InternalEntryFactory.create("old", "old"));
+      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      commit(tx);
+      store(InternalEntryFactory.create("old", "old"));
+      rollback(tx);
 
-        assert cacheMap.containsKey("old");
-    }
+      assert cacheMap.containsKey("old");
+   }
 
-    public void testPreload() throws CacheLoaderException {
-        store(InternalEntryFactory.create("k1", "v1"));
-        store(InternalEntryFactory.create("k2", "v2"));
-        store(InternalEntryFactory.create("k3", "v3"));
+   public void testPreload() throws CacheLoaderException {
+      store(InternalEntryFactory.create("k1", "v1"));
+      store(InternalEntryFactory.create("k2", "v2"));
+      store(InternalEntryFactory.create("k3", "v3"));
 
-        Set<InternalCacheEntry> set = loadAll();
+      Set<InternalCacheEntry> set = loadAll();
 
-        assert set.size() == 3;
-        Set expected = new HashSet();
-        expected.add("k1");
-        expected.add("k2");
-        expected.add("k3");
-        for (InternalCacheEntry se : set) assert expected.remove(se.getKey());
-        assert expected.isEmpty();
-    }
+      assert set.size() == 3;
+      Set expected = new HashSet();
+      expected.add("k1");
+      expected.add("k2");
+      expected.add("k3");
+      for (InternalCacheEntry se : set) assert expected.remove(se.getKey());
+      assert expected.isEmpty();
+   }
 
-    public void testPurgeExpired() throws Exception {
-        long now = System.currentTimeMillis();
-        long lifespan = 1000;
-        store(InternalEntryFactory.create("k1", "v1", lifespan));
-        store(InternalEntryFactory.create("k2", "v2", lifespan));
-        store(InternalEntryFactory.create("k3", "v3", lifespan));
+   public void testPurgeExpired() throws Exception {
+      long now = System.currentTimeMillis();
+      long lifespan = 1000;
+      store(InternalEntryFactory.create("k1", "v1", lifespan));
+      store(InternalEntryFactory.create("k2", "v2", lifespan));
+      store(InternalEntryFactory.create("k3", "v3", lifespan));
 
-        assert cacheMap.containsKey("k1");
-        assert cacheMap.containsKey("k2");
-        assert cacheMap.containsKey("k3");
-        Thread.sleep(lifespan + 100);
-        purgeExpired();
-        assert !cacheMap.containsKey("k1");
-        assert !cacheMap.containsKey("k2");
-        assert !cacheMap.containsKey("k3");
-    }
+      assert cacheMap.containsKey("k1");
+      assert cacheMap.containsKey("k2");
+      assert cacheMap.containsKey("k3");
+      Thread.sleep(lifespan + 100);
+      purgeExpired();
+      assert !cacheMap.containsKey("k1");
+      assert !cacheMap.containsKey("k2");
+      assert !cacheMap.containsKey("k3");
+   }
 
 
-    public void testStreamingAPI() throws IOException, ClassNotFoundException, CacheLoaderException {
-        store(InternalEntryFactory.create("k1", "v1"));
-        store(InternalEntryFactory.create("k2", "v2"));
-        store(InternalEntryFactory.create("k3", "v3"));
+   public void testStreamingAPI() throws IOException, ClassNotFoundException, CacheLoaderException {
+      store(InternalEntryFactory.create("k1", "v1"));
+      store(InternalEntryFactory.create("k2", "v2"));
+      store(InternalEntryFactory.create("k3", "v3"));
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        toStream(out);
-        out.close();
-        cacheMap.clear();
-        fromStream(new ByteArrayInputStream(out.toByteArray()));
+      ByteArrayOutputStream out = new ByteArrayOutputStream();
+      toStream(out);
+      out.close();
+      cacheMap.clear();
+      fromStream(new ByteArrayInputStream(out.toByteArray()));
 
-        Set<InternalCacheEntry> set = loadAll();
+      Set<InternalCacheEntry> set = loadAll();
 
-        assert set.size() == 3;
-        Set expected = new HashSet();
-        expected.add("k1");
-        expected.add("k2");
-        expected.add("k3");
-        for (InternalCacheEntry se : set) assert expected.remove(se.getKey());
-        assert expected.isEmpty();
-    }
+      assert set.size() == 3;
+      Set expected = new HashSet();
+      expected.add("k1");
+      expected.add("k2");
+      expected.add("k3");
+      for (InternalCacheEntry se : set) assert expected.remove(se.getKey());
+      assert expected.isEmpty();
+   }
 
 
-    public void testStreamingAPIReusingStreams() throws IOException, ClassNotFoundException, CacheLoaderException {
-        store(InternalEntryFactory.create("k1", "v1"));
-        store(InternalEntryFactory.create("k2", "v2"));
-        store(InternalEntryFactory.create("k3", "v3"));
+   public void testStreamingAPIReusingStreams() throws IOException, ClassNotFoundException, CacheLoaderException {
+      store(InternalEntryFactory.create("k1", "v1"));
+      store(InternalEntryFactory.create("k2", "v2"));
+      store(InternalEntryFactory.create("k3", "v3"));
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        byte[] dummyStartBytes = {1, 2, 3, 4, 5, 6, 7, 8};
-        byte[] dummyEndBytes = {8, 7, 6, 5, 4, 3, 2, 1};
-        out.write(dummyStartBytes);
-        toStream(out);
-        out.write(dummyEndBytes);
-        out.close();
-        cacheMap.clear();
+      ByteArrayOutputStream out = new ByteArrayOutputStream();
+      byte[] dummyStartBytes = {1, 2, 3, 4, 5, 6, 7, 8};
+      byte[] dummyEndBytes = {8, 7, 6, 5, 4, 3, 2, 1};
+      out.write(dummyStartBytes);
+      toStream(out);
+      out.write(dummyEndBytes);
+      out.close();
+      cacheMap.clear();
 
-        // first pop the start bytes
-        byte[] dummy = new byte[8];
-        ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
-        int bytesRead = in.read(dummy, 0, 8);
-        assert bytesRead == 8;
-        for (int i = 1; i < 9; i++) assert dummy[i - 1] == i : "Start byte stream corrupted!";
-        fromStream(in);
-        bytesRead = in.read(dummy, 0, 8);
-        assert bytesRead == 8;
-        for (int i = 8; i > 0; i--) assert dummy[8 - i] == i : "Start byte stream corrupted!";
+      // first pop the start bytes
+      byte[] dummy = new byte[8];
+      ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
+      int bytesRead = in.read(dummy, 0, 8);
+      assert bytesRead == 8;
+      for (int i = 1; i < 9; i++) assert dummy[i - 1] == i : "Start byte stream corrupted!";
+      fromStream(in);
+      bytesRead = in.read(dummy, 0, 8);
+      assert bytesRead == 8;
+      for (int i = 8; i > 0; i--) assert dummy[8 - i] == i : "Start byte stream corrupted!";
 
-        Set<InternalCacheEntry> set = loadAll();
+      Set<InternalCacheEntry> set = loadAll();
 
-        assert set.size() == 3;
-        Set expected = new HashSet();
-        expected.add("k1");
-        expected.add("k2");
-        expected.add("k3");
-        for (InternalCacheEntry se : set) assert expected.remove(se.getKey());
-        assert expected.isEmpty();
-    }
+      assert set.size() == 3;
+      Set expected = new HashSet();
+      expected.add("k1");
+      expected.add("k2");
+      expected.add("k3");
+      for (InternalCacheEntry se : set) assert expected.remove(se.getKey());
+      assert expected.isEmpty();
+   }
 
-    @Test(enabled=false)
-    public void testConcurrency() throws Throwable {
-        int numThreads = 3;
-        final int loops = 500;
-        final String[] keys = new String[10];
-        final String[] values = new String[10];
-        for (int i = 0; i < 10; i++) keys[i] = "k" + i;
-        for (int i = 0; i < 10; i++) values[i] = "v" + i;
+   @Test(enabled = false)
+   public void testConcurrency() throws Throwable {
+      int numThreads = 3;
+      final int loops = 500;
+      final String[] keys = new String[10];
+      final String[] values = new String[10];
+      for (int i = 0; i < 10; i++) keys[i] = "k" + i;
+      for (int i = 0; i < 10; i++) values[i] = "v" + i;
 
 
-        final Random r = new Random();
-        final List<Throwable> throwables = new LinkedList<Throwable>();
+      final Random r = new Random();
+      final List<Throwable> throwables = new LinkedList<Throwable>();
 
-        final Runnable store = new Runnable() {
-            public void run() {
-                try {
-                    int randomInt = r.nextInt(10);
-                    store(InternalEntryFactory.create(keys[randomInt], values[randomInt]));
-                } catch (Throwable e) {
-                    throwables.add(e);
-                }
+      final Runnable store = new Runnable() {
+         public void run() {
+            try {
+               int randomInt = r.nextInt(10);
+               store(InternalEntryFactory.create(keys[randomInt], values[randomInt]));
+            } catch (Throwable e) {
+               throwables.add(e);
             }
-        };
+         }
+      };
 
-        final Runnable remove = new Runnable() {
-            public void run() {
-                try {
-                    cacheMap.remove(keys[r.nextInt(10)]);
-                } catch (Throwable e) {
-                    throwables.add(e);
-                }
+      final Runnable remove = new Runnable() {
+         public void run() {
+            try {
+               cacheMap.remove(keys[r.nextInt(10)]);
+            } catch (Throwable e) {
+               throwables.add(e);
             }
-        };
+         }
+      };
 
-        final Runnable get = new Runnable() {
-            public void run() {
-                try {
-                    int randomInt = r.nextInt(10);
-                    InternalCacheEntry se = load(keys[randomInt]);
-                    assert se == null || se.getValue().equals(values[randomInt]);
-                    loadAll();
-                } catch (Throwable e) {
-                    throwables.add(e);
-                }
+      final Runnable get = new Runnable() {
+         public void run() {
+            try {
+               int randomInt = r.nextInt(10);
+               InternalCacheEntry se = load(keys[randomInt]);
+               assert se == null || se.getValue().equals(values[randomInt]);
+               loadAll();
+            } catch (Throwable e) {
+               throwables.add(e);
             }
-        };
+         }
+      };
 
-        Thread[] threads = new Thread[numThreads];
+      Thread[] threads = new Thread[numThreads];
 
-        for (int i = 0; i < numThreads; i++) {
-            threads[i] = new Thread(getClass().getSimpleName() + "-" + i) {
-                public void run() {
-                    for (int i = 0; i < loops; i++) {
-                        store.run();
-                        remove.run();
-                        get.run();
-                    }
-                }
-            };
-        }
+      for (int i = 0; i < numThreads; i++) {
+         threads[i] = new Thread(getClass().getSimpleName() + "-" + i) {
+            public void run() {
+               for (int i = 0; i < loops; i++) {
+                  store.run();
+                  remove.run();
+                  get.run();
+               }
+            }
+         };
+      }
 
-        for (Thread t : threads) t.start();
-        for (Thread t : threads) t.join();
+      for (Thread t : threads) t.start();
+      for (Thread t : threads) t.join();
 
-        if (!throwables.isEmpty()) throw throwables.get(0);
-    }
+      if (!throwables.isEmpty()) throw throwables.get(0);
+   }
 
 
 }

Modified: trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeResourceFactoryTest.java
===================================================================
--- trunk/cachestore/bdbje/src/test/java/org/infinispan/loader/bdbje/BdbjeResourceFactoryTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeResourceFactoryTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,11 +1,11 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
 import com.sleepycat.bind.serial.StoredClassCatalog;
 import com.sleepycat.je.Database;
 import com.sleepycat.je.DatabaseException;
 import com.sleepycat.je.Environment;
 import static org.easymock.classextension.EasyMock.createMock;
-import org.infinispan.loader.CacheLoaderException;
+import org.infinispan.loaders.CacheLoaderException;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -15,7 +15,7 @@
  * @version $Id$
  * @since 4.0
  */
- at Test(groups = "unit", enabled = true, testName = "loader.bdbje.BdbjeResourceFactoryTest")
+ at Test(groups = "unit", enabled = true, testName = "loaders.bdbje.BdbjeResourceFactoryTest")
 public class BdbjeResourceFactoryTest {
    private BdbjeCacheStoreConfig cfg;
    private Environment env;

Modified: trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/ModificationsTransactionWorkerTest.java
===================================================================
--- trunk/cachestore/bdbje/src/test/java/org/infinispan/loader/bdbje/ModificationsTransactionWorkerTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/ModificationsTransactionWorkerTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,14 +1,14 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
 import static org.easymock.classextension.EasyMock.*;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.modifications.Clear;
-import org.infinispan.loader.modifications.Modification;
-import org.infinispan.loader.modifications.PurgeExpired;
-import org.infinispan.loader.modifications.Remove;
-import org.infinispan.loader.modifications.Store;
+import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.InternalEntryFactory;
-import org.infinispan.container.entries.InternalCacheEntry;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.modifications.Clear;
+import org.infinispan.loaders.modifications.Modification;
+import org.infinispan.loaders.modifications.PurgeExpired;
+import org.infinispan.loaders.modifications.Remove;
+import org.infinispan.loaders.modifications.Store;
 import org.testng.annotations.Test;
 
 import java.util.Collections;
@@ -20,7 +20,7 @@
  * @version $Id$
  * @since 4.0
  */
- at Test(groups = "unit", enabled = true, testName = "loader.bdbje.ModificationsTransactionWorkerTest")
+ at Test(groups = "unit", enabled = true, testName = "loaders.bdbje.ModificationsTransactionWorkerTest")
 public class ModificationsTransactionWorkerTest {
 
    @Test

Modified: trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/PreparableTransactionRunnerTest.java
===================================================================
--- trunk/cachestore/bdbje/src/test/java/org/infinispan/loader/bdbje/PreparableTransactionRunnerTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/PreparableTransactionRunnerTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.bdbje;
+package org.infinispan.loaders.bdbje;
 
 import com.sleepycat.collections.CurrentTransaction;
 import com.sleepycat.collections.TransactionWorker;
@@ -10,7 +10,7 @@
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.expectLastCall;
 import static org.easymock.classextension.EasyMock.*;
-import org.infinispan.loader.CacheLoaderException;
+import org.infinispan.loaders.CacheLoaderException;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -22,7 +22,7 @@
  * @version $Id$
  * @since 4.0
  */
- at Test(groups = "unit", enabled = true, testName = "loader.bdbje.PreparableTransactionRunnerTest")
+ at Test(groups = "unit", enabled = true, testName = "loaders.bdbje.PreparableTransactionRunnerTest")
 public class PreparableTransactionRunnerTest {
    PreparableTransactionRunner runner;
    Environment env;

Copied: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders (from rev 208, trunk/cachestore/jdbc/src/main/java/org/infinispan/loader)

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/JdbcUtil.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/JdbcUtil.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/JdbcUtil.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,7 @@
-package org.infinispan.loader.jdbc;
+package org.infinispan.loaders.jdbc;
 
 import org.infinispan.io.ByteBuffer;
-import org.infinispan.loader.CacheLoaderException;
+import org.infinispan.loaders.CacheLoaderException;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.marshall.Marshaller;
@@ -21,6 +21,7 @@
 public class JdbcUtil {
 
    private static Log log = LogFactory.getLog(JdbcUtil.class);
+
    public static void safeClose(Statement ps) {
       if (ps != null) {
          try {

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/TableManipulation.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/TableManipulation.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/TableManipulation.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,7 @@
-package org.infinispan.loader.jdbc;
+package org.infinispan.loaders.jdbc;
 
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 
@@ -339,8 +339,8 @@
    }
 
    /**
-    * For DB queries (e.g. {@link org.infinispan.loader.CacheStore#toStream(java.io.ObjectOutput)} ) the fetch size will be
-    * set on {@link java.sql.ResultSet#setFetchSize(int)}. This is optional parameter, if not specified will be
+    * For DB queries (e.g. {@link org.infinispan.loaders.CacheStore#toStream(java.io.ObjectOutput)} ) the fetch size
+    * will be set on {@link java.sql.ResultSet#setFetchSize(int)}. This is optional parameter, if not specified will be
     * defaulted to {@link #DEFAULT_FETCH_SIZE}.
     */
    public int getFetchSize() {
@@ -355,7 +355,7 @@
    }
 
    /**
-    * When doing repetitive DB inserts (e.g. on {@link org.infinispan.loader.CacheStore#fromStream(java.io.ObjectInput)}
+    * When doing repetitive DB inserts (e.g. on {@link org.infinispan.loaders.CacheStore#fromStream(java.io.ObjectInput)}
     * this will be batched according to this parameter. This is an optional parameter, and if it is not specified it
     * will be defaulted to {@link #DEFAULT_BATCH_SIZE}.
     */

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStore.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/binary/JdbcBinaryCacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,15 +1,15 @@
-package org.infinispan.loader.jdbc.binary;
+package org.infinispan.loaders.jdbc.binary;
 
 import org.infinispan.Cache;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.io.ByteBuffer;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.bucket.Bucket;
-import org.infinispan.loader.bucket.BucketBasedCacheStore;
-import org.infinispan.loader.jdbc.JdbcUtil;
-import org.infinispan.loader.jdbc.TableManipulation;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.bucket.Bucket;
+import org.infinispan.loaders.bucket.BucketBasedCacheStore;
+import org.infinispan.loaders.jdbc.JdbcUtil;
+import org.infinispan.loaders.jdbc.TableManipulation;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.marshall.Marshaller;
@@ -29,17 +29,17 @@
 
 /**
  * {@link BucketBasedCacheStore} implementation that will store all the buckets as rows in database, each row
- * coresponding to a bucket. This is in contrast to {@link org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore}
+ * coresponding to a bucket. This is in contrast to {@link org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore}
  * which stores each StoredEntry as an row in the database.
  * <p/>
  * This class has the benefit of being able to store StoredEntries that do not have String keys, at the cost of coarser
  * grained access granularity, and inherently performance.
  * <p/>
- * All the DB releated configurations are described in {@link org.infinispan.loader.jdbc.binary.JdbcBinaryCacheStoreConfig}.
+ * All the DB releated configurations are described in {@link org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStoreConfig}.
  *
  * @author Mircea.Markus at jboss.com
  * @see JdbcBinaryCacheStoreConfig
- * @see org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore
+ * @see org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore
  */
 public class JdbcBinaryCacheStore extends BucketBasedCacheStore {
 
@@ -413,9 +413,9 @@
 
    /**
     * Keeps a reference to the connection factory for further use. Also initializes the {@link
-    * org.infinispan.loader.jdbc.TableManipulation} that needs connections. This method should be called when you don't
+    * org.infinispan.loaders.jdbc.TableManipulation} that needs connections. This method should be called when you don't
     * want the store to manage the connection factory, perhaps because it is using an shared connection factory: see
-    * {@link org.infinispan.loader.jdbc.mixed.JdbcMixedCacheStore} for such an example of this.
+    * {@link org.infinispan.loaders.jdbc.mixed.JdbcMixedCacheStore} for such an example of this.
     */
    public void doConnectionFactoryInitialization(ConnectionFactory connectionFactory) throws CacheLoaderException {
       this.connectionFactory = connectionFactory;

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStoreConfig.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/binary/JdbcBinaryCacheStoreConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStoreConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,11 +1,11 @@
-package org.infinispan.loader.jdbc.binary;
+package org.infinispan.loaders.jdbc.binary;
 
-import org.infinispan.loader.LockSupportCacheStoreConfig;
-import org.infinispan.loader.jdbc.TableManipulation;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.LockSupportCacheStoreConfig;
+import org.infinispan.loaders.jdbc.TableManipulation;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
 
 /**
- * Defines available configuration elements for {@link org.infinispan.loader.jdbc.binary.JdbcBinaryCacheStore}.
+ * Defines available configuration elements for {@link org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStore}.
  *
  * @author Mircea.Markus at jboss.com
  */
@@ -109,7 +109,7 @@
    }
 
    /**
-    * Driver class, will be loaded before initializing the {@link org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory}
+    * Driver class, will be loaded before initializing the {@link org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory}
     */
    public void setDriverClass(String driverClass) {
       testImmutability("connectionFactoryConfig");
@@ -118,7 +118,8 @@
 
    /**
     * Name of the connection factory class.
-    * @see org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory
+    *
+    * @see org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory
     */
    public void setConnectionFactoryClass(String connectionFactoryClass) {
       testImmutability("connectionFactoryConfig");
@@ -148,7 +149,7 @@
    }
 
    /**
-    * @see org.infinispan.loader.jdbc.TableManipulation#getFetchSize()
+    * @see org.infinispan.loaders.jdbc.TableManipulation#getFetchSize()
     */
    public void setFetchSize(int fetchSize) {
       testImmutability("tableManipulation");
@@ -156,7 +157,7 @@
    }
 
    /**
-    * @see org.infinispan.loader.jdbc.TableManipulation#getBatchSize()
+    * @see org.infinispan.loaders.jdbc.TableManipulation#getBatchSize()
     */
    public void setBatchSize(int batchSize) {
       testImmutability("tableManipulation");
@@ -164,14 +165,14 @@
    }
 
    /**
-    * @see org.infinispan.loader.jdbc.TableManipulation#getFetchSize()
+    * @see org.infinispan.loaders.jdbc.TableManipulation#getFetchSize()
     */
    public int getFetchSize() {
       return this.tableManipulation.getFetchSize();
    }
 
    /**
-    * @see org.infinispan.loader.jdbc.TableManipulation#getBatchSize()
+    * @see org.infinispan.loaders.jdbc.TableManipulation#getBatchSize()
     */
    public int getBatchSize() {
       return this.tableManipulation.getBatchSize();

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/ConnectionFactory.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/connectionfactory/ConnectionFactory.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/ConnectionFactory.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,6 +1,6 @@
-package org.infinispan.loader.jdbc.connectionfactory;
+package org.infinispan.loaders.jdbc.connectionfactory;
 
-import org.infinispan.loader.CacheLoaderException;
+import org.infinispan.loaders.CacheLoaderException;
 import org.infinispan.util.Util;
 
 import java.sql.Connection;
@@ -13,7 +13,8 @@
 public abstract class ConnectionFactory {
 
    /**
-    * Constructs a {@link org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory} based on the supplied class name.
+    * Constructs a {@link org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory} based on the supplied class
+    * name.
     */
    public static ConnectionFactory getConnectionFactory(String connectionFactoryClass) throws CacheLoaderException {
       try {

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/ConnectionFactoryConfig.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/connectionfactory/ConnectionFactoryConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/ConnectionFactoryConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,7 @@
-package org.infinispan.loader.jdbc.connectionfactory;
+package org.infinispan.loaders.jdbc.connectionfactory;
 
 /**
- * Contains configuration elements for a {@link org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory}.
+ * Contains configuration elements for a {@link org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory}.
  *
  * @author Mircea.Markus at jboss.com
  */

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/PooledConnectionFactory.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/connectionfactory/PooledConnectionFactory.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/PooledConnectionFactory.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,9 +1,9 @@
-package org.infinispan.loader.jdbc.connectionfactory;
+package org.infinispan.loaders.jdbc.connectionfactory;
 
 import com.mchange.v2.c3p0.ComboPooledDataSource;
 import com.mchange.v2.c3p0.DataSources;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.jdbc.JdbcUtil;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.jdbc.JdbcUtil;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/SimpleConnectionFactory.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/connectionfactory/SimpleConnectionFactory.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/SimpleConnectionFactory.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,6 +1,6 @@
-package org.infinispan.loader.jdbc.connectionfactory;
+package org.infinispan.loaders.jdbc.connectionfactory;
 
-import org.infinispan.loader.CacheLoaderException;
+import org.infinispan.loaders.CacheLoaderException;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 
@@ -10,7 +10,7 @@
 
 /**
  * Connection factory implementation that will create database connection on a per invocation basis. Not recommanded in
- * production, {@link org.infinispan.loader.jdbc.connectionfactory.PooledConnectionFactory} should rather be used.
+ * production, {@link org.infinispan.loaders.jdbc.connectionfactory.PooledConnectionFactory} should rather be used.
  *
  * @author Mircea.Markus at jboss.com
  */

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStore.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/mixed/JdbcMixedCacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,15 +1,15 @@
-package org.infinispan.loader.jdbc.mixed;
+package org.infinispan.loaders.jdbc.mixed;
 
 import org.infinispan.Cache;
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.AbstractCacheStore;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.jdbc.binary.JdbcBinaryCacheStore;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
-import org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore;
+import org.infinispan.loaders.AbstractCacheStore;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStore;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore;
 import org.infinispan.marshall.Marshaller;
 
 import java.io.ObjectInput;
@@ -20,10 +20,11 @@
  * Cache store that combines functionality of {@link JdbcBinaryCacheStore} and {@link JdbcStringBasedCacheStore}. It
  * aggregates an instance of JdbcBinaryCacheStore and JdbcStringBasedCacheStore, delegating work to one of them
  * (sometimes both, see below) based on the passed in key. In order to determine which store to use it will rely on the
- * configured {@link org.infinispan.loader.jdbc.stringbased.Key2StringMapper} )(see configuration).
+ * configured {@link org.infinispan.loaders.jdbc.stringbased.Key2StringMapper} )(see configuration).
  * <p/>
- * The advantage it brings is the possibility of effeciently storing string(able) keyd {@link org.infinispan.container.entries.InternalCacheEntry}s, and at the same time being able to store any other keys, a la {@link
- * org.infinispan.loader.jdbc.binary.JdbcBinaryCacheStore}.
+ * The advantage it brings is the possibility of effeciently storing string(able) keyd {@link
+ * org.infinispan.container.entries.InternalCacheEntry}s, and at the same time being able to store any other keys, a la
+ * {@link org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStore}.
  * <p/>
  * There will only be a performance cost for the aggregate operations: loadAll, fromStream, toStream and clear. For
  * these operations there will be two distinct database call, one for each JdbcStore implementation. Most of application
@@ -36,9 +37,9 @@
  * resource.
  *
  * @author Mircea.Markus at jboss.com
- * @see org.infinispan.loader.jdbc.mixed.JdbcMixedCacheStoreConfig
- * @see org.infinispan.loader.jdbc.binary.JdbcBinaryCacheStore
- * @see org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore
+ * @see org.infinispan.loaders.jdbc.mixed.JdbcMixedCacheStoreConfig
+ * @see org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStore
+ * @see org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore
  */
 public class JdbcMixedCacheStore extends AbstractCacheStore {
 

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreConfig.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/mixed/JdbcMixedCacheStoreConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,14 +1,14 @@
-package org.infinispan.loader.jdbc.mixed;
+package org.infinispan.loaders.jdbc.mixed;
 
-import org.infinispan.loader.AbstractCacheStoreConfig;
-import org.infinispan.loader.LockSupportCacheStoreConfig;
-import org.infinispan.loader.jdbc.binary.JdbcBinaryCacheStoreConfig;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
-import org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStoreConfig;
-import org.infinispan.loader.jdbc.TableManipulation;
+import org.infinispan.loaders.AbstractCacheStoreConfig;
+import org.infinispan.loaders.LockSupportCacheStoreConfig;
+import org.infinispan.loaders.jdbc.TableManipulation;
+import org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStoreConfig;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStoreConfig;
 
 /**
- * Configureation for {@link org.infinispan.loader.jdbc.mixed.JdbcMixedCacheStore}.
+ * Configureation for {@link org.infinispan.loaders.jdbc.mixed.JdbcMixedCacheStore}.
  *
  * @author Mircea.Markus at jboss.com
  */
@@ -208,7 +208,7 @@
    }
 
    /**
-    * @see org.infinispan.loader.jdbc.TableManipulation#getFetchSize()
+    * @see org.infinispan.loaders.jdbc.TableManipulation#getFetchSize()
     */
    public void setFetchSize(int fetchSize) {
       testImmutability("tableManipulation");
@@ -217,7 +217,7 @@
    }
 
    /**
-    * @see org.infinispan.loader.jdbc.TableManipulation#getBatchSize()
+    * @see org.infinispan.loaders.jdbc.TableManipulation#getBatchSize()
     */
    public void setBatchSize(int batchSize) {
       testImmutability("tableManipulation");

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/DefaultKey2StringMapper.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/stringbased/DefaultKey2StringMapper.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/DefaultKey2StringMapper.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,7 @@
-package org.infinispan.loader.jdbc.stringbased;
+package org.infinispan.loaders.jdbc.stringbased;
 
 /**
- * Default implementation for {@link org.infinispan.loader.jdbc.stringbased.Key2StringMapper}. It supports all the
+ * Default implementation for {@link org.infinispan.loaders.jdbc.stringbased.Key2StringMapper}. It supports all the
  * primitive wrappers(e.g. Integer, Long etc).
  *
  * @author Mircea.Markus at jboss.com

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStore.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/stringbased/JdbcStringBasedCacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,14 +1,14 @@
-package org.infinispan.loader.jdbc.stringbased;
+package org.infinispan.loaders.jdbc.stringbased;
 
 import org.infinispan.Cache;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.io.ByteBuffer;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.LockSupportCacheStore;
-import org.infinispan.loader.jdbc.JdbcUtil;
-import org.infinispan.loader.jdbc.TableManipulation;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.LockSupportCacheStore;
+import org.infinispan.loaders.jdbc.JdbcUtil;
+import org.infinispan.loaders.jdbc.TableManipulation;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.marshall.Marshaller;
@@ -25,10 +25,11 @@
 import java.util.Set;
 
 /**
- * {@link org.infinispan.loader.CacheStore} implementation that stores the entries in a database. In contrast to the {@link
- * org.infinispan.loader.jdbc.binary.JdbcBinaryCacheStore}, this cache store will store each entry within a row in the
- * table (rather than grouping multiple entries into an row). This assures a finer graned granularity for all operation,
- * and better performance. In order to be able to store non-string keys, it relies on an {@link Key2StringMapper}.
+ * {@link org.infinispan.loaders.CacheStore} implementation that stores the entries in a database. In contrast to the
+ * {@link org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStore}, this cache store will store each entry within a row
+ * in the table (rather than grouping multiple entries into an row). This assures a finer graned granularity for all
+ * operation, and better performance. In order to be able to store non-string keys, it relies on an {@link
+ * Key2StringMapper}.
  * <p/>
  * The actual storage table is defined through configuration {@link JdbcStringBasedCacheStore}. The table can be
  * created/dropped on-the-fly, at deployment time. For more details consult javadoc for {@link
@@ -42,13 +43,16 @@
 
    private static Log log = LogFactory.getLog(JdbcStringBasedCacheStore.class);
 
-   /** delimits the stram for stream trasfer operations */
+   /**
+    * delimits the stram for stream trasfer operations
+    */
    private static final String STRING_STREAM_DELIMITER = "__JdbcCacheStore_done__";
 
    private JdbcStringBasedCacheStoreConfig config;
    private Key2StringMapper key2StringMapper;
    private ConnectionFactory connectionFactory;
    private TableManipulation tableManipulation;
+
    public void init(CacheLoaderConfig config, Cache cache, Marshaller m) {
       super.init(config, cache, m);
       this.config = (JdbcStringBasedCacheStoreConfig) config;
@@ -316,9 +320,9 @@
 
    /**
     * Keeps a reference to the connection factory for further use. Also initializes the {@link
-    * org.infinispan.loader.jdbc.TableManipulation} that needs connections. This method should be called when you don't
+    * org.infinispan.loaders.jdbc.TableManipulation} that needs connections. This method should be called when you don't
     * want the store to manage the connection factory, perhaps because it is using an shared connection factory: see
-    * {@link org.infinispan.loader.jdbc.mixed.JdbcMixedCacheStore} for such an example of this.
+    * {@link org.infinispan.loaders.jdbc.mixed.JdbcMixedCacheStore} for such an example of this.
     */
    public void doConnectionFactoryInitialization(ConnectionFactory connectionFactory) throws CacheLoaderException {
       this.connectionFactory = connectionFactory;

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreConfig.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/stringbased/JdbcStringBasedCacheStoreConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,15 +1,15 @@
-package org.infinispan.loader.jdbc.stringbased;
+package org.infinispan.loaders.jdbc.stringbased;
 
-import org.infinispan.loader.LockSupportCacheStoreConfig;
-import org.infinispan.loader.jdbc.TableManipulation;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.LockSupportCacheStoreConfig;
+import org.infinispan.loaders.jdbc.TableManipulation;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
 import org.infinispan.util.Util;
 
 /**
- * Configuration for {@link org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore} cache store.
+ * Configuration for {@link org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore} cache store.
  *
  * @author Mircea.Markus at jboss.com
- * @see org.infinispan.loader.jdbc.stringbased.Key2StringMapper
+ * @see org.infinispan.loaders.jdbc.stringbased.Key2StringMapper
  */
 public class JdbcStringBasedCacheStoreConfig extends LockSupportCacheStoreConfig {
 
@@ -46,9 +46,9 @@
    }
 
    /**
-    * Name of the class implementing Key2StringMapper. The default value is {@link org.infinispan.loader.jdbc.stringbased.DefaultKey2StringMapper}
+    * Name of the class implementing Key2StringMapper. The default value is {@link org.infinispan.loaders.jdbc.stringbased.DefaultKey2StringMapper}
     *
-    * @see org.infinispan.loader.jdbc.stringbased.Key2StringMapper
+    * @see org.infinispan.loaders.jdbc.stringbased.Key2StringMapper
     */
    public void setKey2StringMapperClass(String className) {
       testImmutability("key2StringMapper");
@@ -169,8 +169,8 @@
 
    /**
     * If this method returns false, then the connection factory should not be created by the {@link
-    * org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore}, but will be injected through {@link
-    * org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore#doConnectionFactoryInitialization(org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory)}
+    * org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore}, but will be injected through {@link
+    * org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore#doConnectionFactoryInitialization(org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory)}
     */
    boolean isManageConnectionFactory() {
       return manageConnectionFactory;
@@ -182,7 +182,7 @@
    }
 
    /**
-    * @see org.infinispan.loader.jdbc.TableManipulation#getFetchSize()
+    * @see org.infinispan.loaders.jdbc.TableManipulation#getFetchSize()
     */
    public void setFetchSize(int fetchSize) {
       testImmutability("tableManipulation");
@@ -190,7 +190,7 @@
    }
 
    /**
-    * @see org.infinispan.loader.jdbc.TableManipulation#getBatchSize()
+    * @see org.infinispan.loaders.jdbc.TableManipulation#getBatchSize()
     */
    public void setBatchSize(int batchSize) {
       testImmutability("tableManipulation");
@@ -198,14 +198,14 @@
    }
 
    /**
-    * @see org.infinispan.loader.jdbc.TableManipulation#getFetchSize()
+    * @see org.infinispan.loaders.jdbc.TableManipulation#getFetchSize()
     */
    public int getFetchSize() {
       return this.tableManipulation.getFetchSize();
    }
 
    /**
-    * @see org.infinispan.loader.jdbc.TableManipulation#getBatchSize()
+    * @see org.infinispan.loaders.jdbc.TableManipulation#getBatchSize()
     */
    public int getBatchSize() {
       return this.tableManipulation.getBatchSize();

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/Key2StringMapper.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/stringbased/Key2StringMapper.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/Key2StringMapper.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,10 +1,10 @@
-package org.infinispan.loader.jdbc.stringbased;
+package org.infinispan.loaders.jdbc.stringbased;
 
 /**
  * Defines the logic of mapping an key object to a String. This is required {@link
- * org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore}, in order to map each {@link
- * org.infinispan.loader.StoredEntry} as an single row within a database. It bassically should generate an unique String PK
- * based on the supplied key.
+ * org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore}, in order to map each {@link
+ * org.infinispan.loaders.StoredEntry} as an single row within a database. It bassically should generate an unique
+ * String PK based on the supplied key.
  *
  * @author Mircea.Markus at jboss.com
  */
@@ -12,7 +12,7 @@
 
    /**
     * Do we support this key type?
-    */   
+    */
    boolean isSupportedType(Class keyType);
 
    /**

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/UnsupportedKeyTypeException.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loader/jdbc/stringbased/UnsupportedKeyTypeException.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/UnsupportedKeyTypeException.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,18 +1,18 @@
-package org.infinispan.loader.jdbc.stringbased;
+package org.infinispan.loaders.jdbc.stringbased;
 
-import org.infinispan.loader.CacheLoaderException;
+import org.infinispan.loaders.CacheLoaderException;
 
 /**
- * Exception thrown by {@link org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore} when one tries to persist
- * a StoredEntry with an unsupported key type.
+ * Exception thrown by {@link org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore} when one tries to
+ * persist a StoredEntry with an unsupported key type.
  *
- * @see org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore
  * @author Mircea.Markus at jboss.com
+ * @see org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore
  */
 public class UnsupportedKeyTypeException extends CacheLoaderException {
 
    public UnsupportedKeyTypeException(Object key) {
-      this("Unsupported key type: '" + key.getClass().getName() + "' on key: " + key );
+      this("Unsupported key type: '" + key.getClass().getName() + "' on key: " + key);
    }
 
    public UnsupportedKeyTypeException(String message) {

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/config/parsing/JdbcConfigurationParserTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/config/parsing/JdbcConfigurationParserTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/config/parsing/JdbcConfigurationParserTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -2,13 +2,13 @@
 
 import org.infinispan.config.CacheLoaderManagerConfig;
 import org.infinispan.config.Configuration;
-import org.infinispan.loader.CacheStoreConfig;
-import org.infinispan.loader.decorators.SingletonStoreConfig;
-import org.infinispan.loader.jdbc.TableManipulation;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
-import org.infinispan.loader.jdbc.connectionfactory.PooledConnectionFactory;
-import org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore;
-import org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStoreConfig;
+import org.infinispan.loaders.CacheStoreConfig;
+import org.infinispan.loaders.decorators.SingletonStoreConfig;
+import org.infinispan.loaders.jdbc.TableManipulation;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.jdbc.connectionfactory.PooledConnectionFactory;
+import org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore;
+import org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStoreConfig;
 import org.testng.annotations.Test;
 import org.w3c.dom.Element;
 
@@ -18,10 +18,10 @@
       XmlConfigurationParserImpl parser = new XmlConfigurationParserImpl();
       String xml =
             "      <loaders passivation=\"true\" shared=\"true\" preload=\"true\">\n" +
-                  "         <loader class=\"org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore\" fetchPersistentState=\"true\"\n" +
+                  "         <loader class=\"org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore\" fetchPersistentState=\"true\"\n" +
                   "                 ignoreModifications=\"true\" purgeOnStartup=\"true\">\n" +
                   "            <properties>\n" +
-                  "               <property name=\"connectionFactoryClass\" value=\"org.infinispan.loader.jdbc.connectionfactory.PooledConnectionFactory\"/>\n" +
+                  "               <property name=\"connectionFactoryClass\" value=\"org.infinispan.loaders.jdbc.connectionfactory.PooledConnectionFactory\"/>\n" +
                   "               <property name=\"connectionUrl\" value=\"jdbc://some-url\"/>\n" +
                   "               <property name=\"userName\" value=\"root\"/>\n" +
                   "               <property name=\"driverClass\" value=\"org.dbms.Driver\"/>\n" +
@@ -59,7 +59,7 @@
 
       assert clc.getCacheLoaderConfigs().size() == 1;
       JdbcStringBasedCacheStoreConfig csConf = (JdbcStringBasedCacheStoreConfig) clc.getFirstCacheLoaderConfig();
-      assert csConf.getCacheLoaderClassName().equals("org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore");
+      assert csConf.getCacheLoaderClassName().equals("org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore");
       assert csConf.isFetchPersistentState();
       assert csConf.isIgnoreModifications();
       assert csConf.isPurgeOnStartup();

Copied: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders (from rev 208, trunk/cachestore/jdbc/src/test/java/org/infinispan/loader)

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/JdbcBinaryCacheStoreTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/jdbc/JdbcBinaryCacheStoreTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/JdbcBinaryCacheStoreTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,12 +1,12 @@
-package org.infinispan.loader.jdbc;
+package org.infinispan.loaders.jdbc;
 
 import static org.easymock.classextension.EasyMock.*;
-import org.infinispan.loader.BaseCacheStoreTest;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.jdbc.binary.JdbcBinaryCacheStore;
-import org.infinispan.loader.jdbc.binary.JdbcBinaryCacheStoreConfig;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.BaseCacheStoreTest;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStore;
+import org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStoreConfig;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
 import org.infinispan.marshall.ObjectStreamMarshaller;
 import org.infinispan.test.fwk.UnitTestDatabaseManager;
 import org.testng.annotations.Test;
@@ -16,7 +16,7 @@
  *
  * @author Mircea.Markus at jboss.com
  */
- at Test(groups = "functional", testName = "loader.jdbc.JdbcBinaryCacheStoreTest")
+ at Test(groups = "functional", testName = "loaders.jdbc.JdbcBinaryCacheStoreTest")
 public class JdbcBinaryCacheStoreTest extends BaseCacheStoreTest {
 
    protected CacheStore createCacheStore() throws Exception {

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/PooledConnectionFactoryTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/jdbc/PooledConnectionFactoryTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/PooledConnectionFactoryTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,7 @@
-package org.infinispan.loader.jdbc;
+package org.infinispan.loaders.jdbc;
 
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
-import org.infinispan.loader.jdbc.connectionfactory.PooledConnectionFactory;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.jdbc.connectionfactory.PooledConnectionFactory;
 import org.infinispan.test.fwk.UnitTestDatabaseManager;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.Test;
@@ -11,11 +11,11 @@
 import java.util.Set;
 
 /**
- * Tester class for {@link org.infinispan.loader.jdbc.connectionfactory.PooledConnectionFactory}.
+ * Tester class for {@link org.infinispan.loaders.jdbc.connectionfactory.PooledConnectionFactory}.
  *
  * @author Mircea.Markus at jboss.com
  */
- at Test(groups = "functional", testName = "loader.jdbc.PooledConnectionFactoryTest", enabled = false,
+ at Test(groups = "functional", testName = "loaders.jdbc.PooledConnectionFactoryTest", enabled = false,
       description = "This test is disabled due to: http://sourceforge.net/tracker/index.php?func=detail&aid=1892195&group_id=25357&atid=383690")
 public class PooledConnectionFactoryTest {
 

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/TableManipulationTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/jdbc/TableManipulationTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/TableManipulationTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,8 +1,8 @@
-package org.infinispan.loader.jdbc;
+package org.infinispan.loaders.jdbc;
 
 import static org.easymock.EasyMock.*;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
 import org.infinispan.test.fwk.UnitTestDatabaseManager;
 import org.testng.annotations.AfterTest;
 import org.testng.annotations.BeforeTest;
@@ -16,11 +16,11 @@
 import java.sql.Statement;
 
 /**
- * Tester class for {@link org.infinispan.loader.jdbc.TableManipulation}.
+ * Tester class for {@link org.infinispan.loaders.jdbc.TableManipulation}.
  *
  * @author Mircea.Markus at jboss.com
  */
- at Test(groups = "functional", testName = "loader.jdbc.TableManipulationTest")
+ at Test(groups = "functional", testName = "loaders.jdbc.TableManipulationTest")
 public class TableManipulationTest {
    Connection connection;
    TableManipulation tableManipulation;

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreConfigTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/jdbc/mixed/JdbcMixedCacheStoreConfigTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreConfigTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,16 +1,16 @@
-package org.infinispan.loader.jdbc.mixed;
+package org.infinispan.loaders.jdbc.mixed;
 
+import org.infinispan.loaders.LockSupportCacheStoreConfig;
+import org.infinispan.loaders.jdbc.stringbased.PersonKey2StringMapper;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
-import org.infinispan.loader.jdbc.stringbased.PersonKey2StringMapper;
-import org.infinispan.loader.LockSupportCacheStoreConfig;
 
 /**
  * Tester class for {@link JdbcMixedCacheStoreConfig}.
  *
  * @author Mircea.Markus at jboss.com
  */
- at Test(groups = "unit", testName = "loader.jdbc.mixed.JdbcMixedCacheStoreConfigTest")
+ at Test(groups = "unit", testName = "loaders.jdbc.mixed.JdbcMixedCacheStoreConfigTest")
 public class JdbcMixedCacheStoreConfigTest {
    private JdbcMixedCacheStoreConfig config;
 
@@ -47,7 +47,7 @@
       config.setTableNameForBinary("table");
       try {
          config.setTableNameForStrings("table");
-         assert false: "expection expected as same table name is not allowed for both cache stores";
+         assert false : "expection expected as same table name is not allowed for both cache stores";
       } catch (Exception e) {
          //expected
       }
@@ -55,7 +55,7 @@
       config.setTableNameForStrings("table2");
       try {
          config.setTableNameForBinary("table2");
-         assert false: "expection expected as same table name is not allowed for both cache stores";
+         assert false : "expection expected as same table name is not allowed for both cache stores";
       } catch (Exception e) {
          //expected
       }

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/jdbc/mixed/JdbcMixedCacheStoreTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,14 +1,14 @@
-package org.infinispan.loader.jdbc.mixed;
+package org.infinispan.loaders.jdbc.mixed;
 
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.InternalEntryFactory;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.jdbc.TableManipulation;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
-import org.infinispan.loader.jdbc.stringbased.DefaultKey2StringMapper;
-import org.infinispan.loader.jdbc.stringbased.Person;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.jdbc.TableManipulation;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.jdbc.stringbased.DefaultKey2StringMapper;
+import org.infinispan.loaders.jdbc.stringbased.Person;
 import org.infinispan.marshall.ObjectStreamMarshaller;
 import org.infinispan.test.fwk.UnitTestDatabaseManager;
 import org.testng.annotations.AfterMethod;
@@ -27,7 +27,7 @@
  *
  * @author Mircea.Markus at jboss.com
  */
- at Test(groups = "functional", testName = "loader.jdbc.mixed.JdbcMixedCacheStoreTest")
+ at Test(groups = "functional", testName = "loaders.jdbc.mixed.JdbcMixedCacheStoreTest")
 public class JdbcMixedCacheStoreTest {
 
    private CacheStore cacheStore;

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreTest2.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/jdbc/mixed/JdbcMixedCacheStoreTest2.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreTest2.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,13 +1,13 @@
-package org.infinispan.loader.jdbc.mixed;
+package org.infinispan.loaders.jdbc.mixed;
 
-import org.infinispan.loader.BaseCacheStoreTest;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.jdbc.TableManipulation;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.BaseCacheStoreTest;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.jdbc.TableManipulation;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
 import org.infinispan.test.fwk.UnitTestDatabaseManager;
 import org.testng.annotations.Test;
 
- at Test(groups = "functional", testName = "loader.jdbc.mixed.JdbcMixedCacheStoreTest2")
+ at Test(groups = "functional", testName = "loaders.jdbc.mixed.JdbcMixedCacheStoreTest2")
 public class JdbcMixedCacheStoreTest2 extends BaseCacheStoreTest {
    protected CacheStore createCacheStore() throws Exception {
       JdbcMixedCacheStoreConfig jdbcCacheStoreConfig = new JdbcMixedCacheStoreConfig();

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/DefaultKey2StringMapperTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/jdbc/stringbased/DefaultKey2StringMapperTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/DefaultKey2StringMapperTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,13 +1,13 @@
-package org.infinispan.loader.jdbc.stringbased;
+package org.infinispan.loaders.jdbc.stringbased;
 
 import org.testng.annotations.Test;
 
 /**
- * Tester for {@link org.infinispan.loader.jdbc.stringbased.Key2StringMapper}.
+ * Tester for {@link org.infinispan.loaders.jdbc.stringbased.Key2StringMapper}.
  *
  * @author Mircea.Markus at jboss.com
  */
- at Test(groups = "unit", testName = "loader.jdbc.stringbased.DefaultKey2StringMapperTest")
+ at Test(groups = "unit", testName = "loaders.jdbc.stringbased.DefaultKey2StringMapperTest")
 public class DefaultKey2StringMapperTest {
 
    DefaultKey2StringMapper mapper = new DefaultKey2StringMapper();

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/jdbc/stringbased/JdbcStringBasedCacheStoreTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,21 +1,21 @@
-package org.infinispan.loader.jdbc.stringbased;
+package org.infinispan.loaders.jdbc.stringbased;
 
 import static org.easymock.classextension.EasyMock.*;
-import org.infinispan.loader.BaseCacheStoreTest;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.jdbc.TableManipulation;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.BaseCacheStoreTest;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.jdbc.TableManipulation;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
 import org.infinispan.marshall.ObjectStreamMarshaller;
 import org.infinispan.test.fwk.UnitTestDatabaseManager;
 import org.testng.annotations.Test;
 
 /**
- * Tester class  for {@link org.infinispan.loader.jdbc.stringbased.JdbcStringBasedCacheStore}.
+ * Tester class  for {@link org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore}.
  *
  * @author Mircea.Markus at jboss.com
  */
- at Test(groups = "functional", testName = "loader.jdbc.stringbased.JdbcStringBasedCacheStoreTest")
+ at Test(groups = "functional", testName = "loaders.jdbc.stringbased.JdbcStringBasedCacheStoreTest")
 public class JdbcStringBasedCacheStoreTest extends BaseCacheStoreTest {
 
    protected CacheStore createCacheStore() throws Exception {

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest2.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/jdbc/stringbased/JdbcStringBasedCacheStoreTest2.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest2.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,12 +1,12 @@
-package org.infinispan.loader.jdbc.stringbased;
+package org.infinispan.loaders.jdbc.stringbased;
 
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.InternalEntryFactory;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.jdbc.TableManipulation;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.jdbc.TableManipulation;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
 import org.infinispan.marshall.ObjectStreamMarshaller;
 import org.infinispan.test.fwk.UnitTestDatabaseManager;
 import org.testng.annotations.AfterMethod;
@@ -19,11 +19,11 @@
 import java.util.Set;
 
 /**
- * Tester for {@link JdbcStringBasedCacheStore} with an alternative {@link org.infinispan.loader.jdbc.stringbased.Key2StringMapper}.
+ * Tester for {@link JdbcStringBasedCacheStore} with an alternative {@link org.infinispan.loaders.jdbc.stringbased.Key2StringMapper}.
  *
  * @author Mircea.Markus at jboss.com
  */
- at Test(groups = "functional", testName = "loader.jdbc.stringbased.JdbcStringBasedCacheStoreTest2")
+ at Test(groups = "functional", testName = "loaders.jdbc.stringbased.JdbcStringBasedCacheStoreTest2")
 public class JdbcStringBasedCacheStoreTest2 {
 
    CacheStore cacheStore;

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/Person.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/jdbc/stringbased/Person.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/Person.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.jdbc.stringbased;
+package org.infinispan.loaders.jdbc.stringbased;
 
 import java.io.Serializable;
 

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/PersonKey2StringMapper.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loader/jdbc/stringbased/PersonKey2StringMapper.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/PersonKey2StringMapper.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.jdbc.stringbased;
+package org.infinispan.loaders.jdbc.stringbased;
 
 /**
  * Used for testing jdbc cache stores.

Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/test/fwk/UnitTestDatabaseManager.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/test/fwk/UnitTestDatabaseManager.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/test/fwk/UnitTestDatabaseManager.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,13 +1,18 @@
 package org.infinispan.test.fwk;
 
 
-import org.infinispan.loader.jdbc.JdbcUtil;
-import org.infinispan.loader.jdbc.TableManipulation;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactory;
-import org.infinispan.loader.jdbc.connectionfactory.ConnectionFactoryConfig;
-import org.infinispan.loader.jdbc.connectionfactory.PooledConnectionFactory;
+import org.infinispan.loaders.jdbc.JdbcUtil;
+import org.infinispan.loaders.jdbc.TableManipulation;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory;
+import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
+import org.infinispan.loaders.jdbc.connectionfactory.PooledConnectionFactory;
 
-import java.sql.*;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
 import java.util.Properties;
 import java.util.StringTokenizer;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -22,130 +27,130 @@
  */
 
 public class UnitTestDatabaseManager {
-    private static final ConnectionFactoryConfig realConfig = new ConnectionFactoryConfig();
+   private static final ConnectionFactoryConfig realConfig = new ConnectionFactoryConfig();
 
-    private static AtomicInteger userIndex = new AtomicInteger(0);
+   private static AtomicInteger userIndex = new AtomicInteger(0);
 
-    static {
-        try {
-            Class.forName("org.hsqldb.jdbcDriver");
-        } catch (ClassNotFoundException e) {
-            throw new RuntimeException(e);
-        }
-        realConfig.setDriverClass("org.hsqldb.jdbcDriver");
-        realConfig.setConnectionUrl("jdbc:hsqldb:mem:infinispan");
-        realConfig.setConnectionFactoryClass(PooledConnectionFactory.class.getName());
-        realConfig.setUserName("sa");
-    }
+   static {
+      try {
+         Class.forName("org.hsqldb.jdbcDriver");
+      } catch (ClassNotFoundException e) {
+         throw new RuntimeException(e);
+      }
+      realConfig.setDriverClass("org.hsqldb.jdbcDriver");
+      realConfig.setConnectionUrl("jdbc:hsqldb:mem:infinispan");
+      realConfig.setConnectionFactoryClass(PooledConnectionFactory.class.getName());
+      realConfig.setUserName("sa");
+   }
 
-    public static ConnectionFactoryConfig getUniqueConnectionFactoryConfig() {
-        synchronized (realConfig) {
-            return returnBasedOnDifferentInstance();
-        }
-    }
+   public static ConnectionFactoryConfig getUniqueConnectionFactoryConfig() {
+      synchronized (realConfig) {
+         return returnBasedOnDifferentInstance();
+      }
+   }
 
-    public static void shutdownInMemoryDatabase(ConnectionFactoryConfig config) {
+   public static void shutdownInMemoryDatabase(ConnectionFactoryConfig config) {
 
-        Connection conn = null;
-        Statement st = null;
-        try {
-            String shutDownConnection = getShutdownUrl(config);
-            String url = config.getConnectionUrl();
-            assert url != null;
-            conn = DriverManager.getConnection(shutDownConnection);
-            st = conn.createStatement();
-            st.execute("SHUTDOWN");
-        }
-        catch (Throwable e) {
-            throw new IllegalStateException(e);
-        }
-        finally {
-            try {
-                conn.close();
-                st.close();
-            }
-            catch (SQLException e) {
-                e.printStackTrace();
-            }
-        }
+      Connection conn = null;
+      Statement st = null;
+      try {
+         String shutDownConnection = getShutdownUrl(config);
+         String url = config.getConnectionUrl();
+         assert url != null;
+         conn = DriverManager.getConnection(shutDownConnection);
+         st = conn.createStatement();
+         st.execute("SHUTDOWN");
+      }
+      catch (Throwable e) {
+         throw new IllegalStateException(e);
+      }
+      finally {
+         try {
+            conn.close();
+            st.close();
+         }
+         catch (SQLException e) {
+            e.printStackTrace();
+         }
+      }
 
-    }
+   }
 
-    public static String getDatabaseName(Properties prop) {
-        StringTokenizer tokenizer = new StringTokenizer(prop.getProperty("cache.jdbc.url"), ":");
-        tokenizer.nextToken();
-        tokenizer.nextToken();
-        tokenizer.nextToken();
-        return tokenizer.nextToken();
-    }
+   public static String getDatabaseName(Properties prop) {
+      StringTokenizer tokenizer = new StringTokenizer(prop.getProperty("cache.jdbc.url"), ":");
+      tokenizer.nextToken();
+      tokenizer.nextToken();
+      tokenizer.nextToken();
+      return tokenizer.nextToken();
+   }
 
 
-    private static String getShutdownUrl(ConnectionFactoryConfig props) {
-        String url = props.getConnectionUrl();
-        assert url != null;
-        StringTokenizer tokenizer = new StringTokenizer(url, ";");
-        String result = tokenizer.nextToken() + ";" + "shutdown=true";
-        return result;
-    }
+   private static String getShutdownUrl(ConnectionFactoryConfig props) {
+      String url = props.getConnectionUrl();
+      assert url != null;
+      StringTokenizer tokenizer = new StringTokenizer(url, ";");
+      String result = tokenizer.nextToken() + ";" + "shutdown=true";
+      return result;
+   }
 
 
-    private static ConnectionFactoryConfig returnBasedOnDifferentInstance() {
-        ConnectionFactoryConfig result = realConfig.clone();
-        String jdbcUrl = result.getConnectionUrl();
-        Pattern pattern = Pattern.compile("infinispan");
-        Matcher matcher = pattern.matcher(jdbcUrl);
-        boolean found = matcher.find();
-        assert found : String.format("%1s not found in %1s", pattern, jdbcUrl);
-        String newJdbcUrl = matcher.replaceFirst(extractTestName() + userIndex.incrementAndGet());
-        result.setConnectionUrl(newJdbcUrl);
-        return result;
-    }
+   private static ConnectionFactoryConfig returnBasedOnDifferentInstance() {
+      ConnectionFactoryConfig result = realConfig.clone();
+      String jdbcUrl = result.getConnectionUrl();
+      Pattern pattern = Pattern.compile("infinispan");
+      Matcher matcher = pattern.matcher(jdbcUrl);
+      boolean found = matcher.find();
+      assert found : String.format("%1s not found in %1s", pattern, jdbcUrl);
+      String newJdbcUrl = matcher.replaceFirst(extractTestName() + userIndex.incrementAndGet());
+      result.setConnectionUrl(newJdbcUrl);
+      return result;
+   }
 
-    private static String extractTestName() {
-        StackTraceElement[] stack = Thread.currentThread().getStackTrace();
-        if (stack.length == 0) return null;
-        for (int i = stack.length - 1; i > 0; i--) {
-            StackTraceElement e = stack[i];
-            String className = e.getClassName();
-            if (className.indexOf("org.infinispan") != -1) return className.replace('.', '_') + "_" + e.getMethodName();
-        }
-        return null;
-    }
+   private static String extractTestName() {
+      StackTraceElement[] stack = Thread.currentThread().getStackTrace();
+      if (stack.length == 0) return null;
+      for (int i = stack.length - 1; i > 0; i--) {
+         StackTraceElement e = stack[i];
+         String className = e.getClassName();
+         if (className.indexOf("org.infinispan") != -1) return className.replace('.', '_') + "_" + e.getMethodName();
+      }
+      return null;
+   }
 
 
-    public static TableManipulation buildDefaultTableManipulation() {
+   public static TableManipulation buildDefaultTableManipulation() {
 
-        return new TableManipulation("ID_COLUMN", "VARCHAR(255)", "HORIZON_JDBC", "DATA_COLUMN",
-                "BINARY", "TIMESTAMP_COLUMN", "BIGINT");
+      return new TableManipulation("ID_COLUMN", "VARCHAR(255)", "HORIZON_JDBC", "DATA_COLUMN",
+                                   "BINARY", "TIMESTAMP_COLUMN", "BIGINT");
 
-    }
+   }
 
 
-    /**
-     * Counts the number of rows in the given table.
-     */
+   /**
+    * Counts the number of rows in the given table.
+    */
 
 
-    public static int rowCount(ConnectionFactory connectionFactory, String tableName) {
+   public static int rowCount(ConnectionFactory connectionFactory, String tableName) {
 
-        Connection conn = null;
-        PreparedStatement statement = null;
-        ResultSet resultSet = null;
-        try {
-            conn = connectionFactory.getConnection();
-            String sql = "SELECT count(*) FROM " + tableName;
-            statement = conn.prepareStatement(sql);
-            resultSet = statement.executeQuery();
-            resultSet.next();
-            return resultSet.getInt(1);
-        } catch (Exception ex) {
-            throw new RuntimeException(ex);
-        }
-        finally {
-            JdbcUtil.safeClose(resultSet);
-            JdbcUtil.safeClose(statement);
-            connectionFactory.releaseConnection(conn);
-        }
-    }
+      Connection conn = null;
+      PreparedStatement statement = null;
+      ResultSet resultSet = null;
+      try {
+         conn = connectionFactory.getConnection();
+         String sql = "SELECT count(*) FROM " + tableName;
+         statement = conn.prepareStatement(sql);
+         resultSet = statement.executeQuery();
+         resultSet.next();
+         return resultSet.getInt(1);
+      } catch (Exception ex) {
+         throw new RuntimeException(ex);
+      }
+      finally {
+         JdbcUtil.safeClose(resultSet);
+         JdbcUtil.safeClose(statement);
+         connectionFactory.releaseConnection(conn);
+      }
+   }
 
 }

Copied: trunk/cachestore/s3/src/main/java/org/infinispan/loaders (from rev 208, trunk/cachestore/s3/src/main/java/org/infinispan/loader)

Modified: trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3Bucket.java
===================================================================
--- trunk/cachestore/s3/src/main/java/org/infinispan/loader/s3/S3Bucket.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3Bucket.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,6 +1,6 @@
-package org.infinispan.loader.s3;
+package org.infinispan.loaders.s3;
 
-import org.infinispan.loader.bucket.Bucket;
+import org.infinispan.loaders.bucket.Bucket;
 
 import java.util.Set;
 
@@ -13,50 +13,52 @@
  */
 public interface S3Bucket<B, C extends S3Connection> {
 
-    /**
-     * Creates a connection to S3, and associates this object with an S3Bucket.
-     *
-     * @param connection - third-party connection to S3
-     * @param bucket - third-party representation of an  S3 Bucket
-     */
-    void init(C connection, B bucket);
+   /**
+    * Creates a connection to S3, and associates this object with an S3Bucket.
+    *
+    * @param connection - third-party connection to S3
+    * @param bucket     - third-party representation of an  S3 Bucket
+    */
+   void init(C connection, B bucket);
 
-    /**
-     * @return name of the S3Bucket data will be stored in
-     */
-    String getName();
+   /**
+    * @return name of the S3Bucket data will be stored in
+    */
+   String getName();
 
-    /**
-     * Adds the Infinispan bucket into the S3 Bucket at location {@link org.infinispan.loader.bucket.Bucket#getBucketName()}
-     * @param object what to persist into S3
-     */
-    void insert(Bucket object) throws S3ConnectionException;
+   /**
+    * Adds the Infinispan bucket into the S3 Bucket at location {@link org.infinispan.loaders.bucket.Bucket#getBucketName()}
+    *
+    * @param object what to persist into S3
+    */
+   void insert(Bucket object) throws S3ConnectionException;
 
-    /**
-     * @param key - location in the S3Bucket where we can find the infinispan Bucket
-     * @return Infinispan bucket associated with the key
-     */
-    Bucket get(String key) throws S3ConnectionException;
+   /**
+    * @param key - location in the S3Bucket where we can find the infinispan Bucket
+    * @return Infinispan bucket associated with the key
+    */
+   Bucket get(String key) throws S3ConnectionException;
 
-    /**
-     * @return names all infinispan buckets stored in this S3 Bucket
-     */
-    Set<String> keySet() throws S3ConnectionException;
+   /**
+    * @return names all infinispan buckets stored in this S3 Bucket
+    */
+   Set<String> keySet() throws S3ConnectionException;
 
-    /**
-     * @return all infinispan buckets stored in this S3 Bucket
-     */
-    Set<Bucket> values() throws S3ConnectionException;
+   /**
+    * @return all infinispan buckets stored in this S3 Bucket
+    */
+   Set<Bucket> values() throws S3ConnectionException;
 
-    /**
-     * Removes the Infinispan bucket from the S3 Bucket at location <code>key</code>
-     * @param key what to remove from S3
-     */
-    public void remove(String key) throws S3ConnectionException;
+   /**
+    * Removes the Infinispan bucket from the S3 Bucket at location <code>key</code>
+    *
+    * @param key what to remove from S3
+    */
+   public void remove(String key) throws S3ConnectionException;
 
-    /**
-     * removes all Infinispan buckets from the S3 bucket
-     */
-    void clear() throws S3ConnectionException;
+   /**
+    * removes all Infinispan buckets from the S3 bucket
+    */
+   void clear() throws S3ConnectionException;
 
 }
\ No newline at end of file

Modified: trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStore.java
===================================================================
--- trunk/cachestore/s3/src/main/java/org/infinispan/loader/s3/S3CacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,11 +1,11 @@
-package org.infinispan.loader.s3;
+package org.infinispan.loaders.s3;
 
 import org.infinispan.Cache;
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.bucket.Bucket;
-import org.infinispan.loader.bucket.BucketBasedCacheStore;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.bucket.Bucket;
+import org.infinispan.loaders.bucket.BucketBasedCacheStore;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.marshall.Marshaller;
@@ -17,8 +17,8 @@
 import java.util.Set;
 
 /**
- * By default, a JClouds implementation of a {@link org.infinispan.loader.bucket.BucketBasedCacheStore}. This file store stores
- * stuff in the following format: <tt>http://s3.amazon.com/{bucket}/bucket_number.bucket</tt>
+ * By default, a JClouds implementation of a {@link org.infinispan.loaders.bucket.BucketBasedCacheStore}. This file
+ * store stores stuff in the following format: <tt>http://s3.amazon.com/{bucket}/bucket_number.bucket</tt>
  * <p/>
  *
  * @author Adrian Cole
@@ -44,7 +44,7 @@
     * {@inheritDoc} This initializes the internal <tt>s3Connection</tt> to a default implementation
     */
    public void init(CacheLoaderConfig config, Cache cache, Marshaller m) {
-        init(config, cache, m, null, null);
+      init(config, cache, m, null, null);
    }
 
    @Override

Modified: trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStoreConfig.java
===================================================================
--- trunk/cachestore/s3/src/main/java/org/infinispan/loader/s3/S3CacheStoreConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStoreConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,16 +1,16 @@
-package org.infinispan.loader.s3;
+package org.infinispan.loaders.s3;
 
-import org.infinispan.loader.LockSupportCacheStoreConfig;
+import org.infinispan.loaders.LockSupportCacheStoreConfig;
 
 /**
- * Configures {@link org.infinispan.loader.s3.S3CacheStore}.  This allows you to tune a number of characteristics of the
- * {@link S3CacheStore}.
+ * Configures {@link org.infinispan.loaders.s3.S3CacheStore}.  This allows you to tune a number of characteristics of
+ * the {@link S3CacheStore}.
  * <p/>
  * <ul> <li><tt>awsAccessKey</tt> - identifies you as the party responsible for s3 requests.  This is required and there
  * is no default.</li> <li><tt>awsSecretKey</tt> - used to authenticate you as the owner of <tt>awsAccessKey</tt>.  This
  * is required and there is no default.</li> <li><tt>bucket</tt> - the name of the s3 bucket used to store cache data.
- * This is required and there is no default.</li>
- * <li><tt>requestTimeout</tt> - The maximum amount of milliseconds a single S3 request can take before throwing an exception.  Default is 10000</li></ul>
+ * This is required and there is no default.</li> <li><tt>requestTimeout</tt> - The maximum amount of milliseconds a
+ * single S3 request can take before throwing an exception.  Default is 10000</li></ul>
  *
  * @author Adrian Cole
  * @since 4.0

Modified: trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3Connection.java
===================================================================
--- trunk/cachestore/s3/src/main/java/org/infinispan/loader/s3/S3Connection.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3Connection.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.s3;
+package org.infinispan.loaders.s3;
 
 import org.infinispan.marshall.Marshaller;
 
@@ -10,15 +10,15 @@
  */
 public interface S3Connection<C, B> {
 
-    void connect(S3CacheStoreConfig config, Marshaller m) throws S3ConnectionException;
+   void connect(S3CacheStoreConfig config, Marshaller m) throws S3ConnectionException;
 
-    C getConnection() throws S3ConnectionException;
+   C getConnection() throws S3ConnectionException;
 
-    B verifyOrCreateBucket(String bucketName) throws S3ConnectionException;
+   B verifyOrCreateBucket(String bucketName) throws S3ConnectionException;
 
-    void destroyBucket(String name) throws S3ConnectionException;
+   void destroyBucket(String name) throws S3ConnectionException;
 
-    void copyBucket(String sourceBucket, String destinationBucket) throws S3ConnectionException;
+   void copyBucket(String sourceBucket, String destinationBucket) throws S3ConnectionException;
 
-    void disconnect();
+   void disconnect();
 }
\ No newline at end of file

Modified: trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3ConnectionException.java
===================================================================
--- trunk/cachestore/s3/src/main/java/org/infinispan/loader/s3/S3ConnectionException.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3ConnectionException.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,6 +1,6 @@
-package org.infinispan.loader.s3;
+package org.infinispan.loaders.s3;
 
-import org.infinispan.loader.CacheLoaderException;
+import org.infinispan.loaders.CacheLoaderException;
 
 /**
  * An exception thrown by a {@link S3Bucket} implementation if there are problems reading from S3.

Modified: trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/jclouds/JCloudsBucket.java
===================================================================
--- trunk/cachestore/s3/src/main/java/org/infinispan/loader/s3/jclouds/JCloudsBucket.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/jclouds/JCloudsBucket.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,9 +1,9 @@
-package org.infinispan.loader.s3.jclouds;
+package org.infinispan.loaders.s3.jclouds;
 
-import org.infinispan.loader.bucket.Bucket;
-import org.infinispan.loader.s3.S3ConnectionException;
+import org.infinispan.loaders.bucket.Bucket;
+import org.infinispan.loaders.s3.S3ConnectionException;
+import org.jclouds.aws.s3.S3InputStreamMap;
 import org.jclouds.aws.s3.domain.S3Bucket;
-import org.jclouds.aws.s3.S3InputStreamMap;
 
 import java.io.InputStream;
 import java.util.HashSet;
@@ -11,7 +11,7 @@
 import java.util.Set;
 
 /**
- * A {@link org.jclouds.aws.s3.S3Connection JClouds} implementation of {@link org.infinispan.loader.s3.S3Bucket}.
+ * A {@link org.jclouds.aws.s3.S3Connection JClouds} implementation of {@link org.infinispan.loaders.s3.S3Bucket}.
  * <p/>
  * Tuning and configuration parameters can be overridden by creating <tt>jclouds.properties</tt> and adding it to your
  * classpath.
@@ -20,117 +20,117 @@
  * @link http://code.google.com/p/jclouds
  * @since 4.0
  */
-public class JCloudsBucket implements org.infinispan.loader.s3.S3Bucket<S3Bucket, org.infinispan.loader.s3.jclouds.JCloudsConnection> {
+public class JCloudsBucket implements org.infinispan.loaders.s3.S3Bucket<S3Bucket, org.infinispan.loaders.s3.jclouds.JCloudsConnection> {
 
-    private JCloudsConnection connection;
-    private String name;
-    private S3Bucket rootS3Bucket;
-    private Map<String, InputStream> map;
+   private JCloudsConnection connection;
+   private String name;
+   private S3Bucket rootS3Bucket;
+   private Map<String, InputStream> map;
 
-    public void init(JCloudsConnection connection, S3Bucket bucket) {
-        this.connection = connection;
-        this.rootS3Bucket = bucket;
-        this.name = bucket.getName();
-        this.map = connection.context.createInputStreamMap(rootS3Bucket);
-    }
+   public void init(JCloudsConnection connection, S3Bucket bucket) {
+      this.connection = connection;
+      this.rootS3Bucket = bucket;
+      this.name = bucket.getName();
+      this.map = connection.context.createInputStreamMap(rootS3Bucket);
+   }
 
-    public String getName() {
-        return name;
-    }
+   public String getName() {
+      return name;
+   }
 
 
-    /**
-     * {@inheritDoc}
-     */
-    public Bucket get(String key) throws S3ConnectionException {
-        InputStream input = null;
-        try {
-            input = map.get(key);
-            // it is possible that the object never existed. in this case, fall out.
-            if (input != null) {
-                return bucketFromStream(key, input);
-            }
-            return null;
-        } catch (Exception e) {
-            throw connection.convertToS3ConnectionException("Error while reading from object: " + key, e);
-        } finally {
-            safeClose(input);
-        }
-    }
+   /**
+    * {@inheritDoc}
+    */
+   public Bucket get(String key) throws S3ConnectionException {
+      InputStream input = null;
+      try {
+         input = map.get(key);
+         // it is possible that the object never existed. in this case, fall out.
+         if (input != null) {
+            return bucketFromStream(key, input);
+         }
+         return null;
+      } catch (Exception e) {
+         throw connection.convertToS3ConnectionException("Error while reading from object: " + key, e);
+      } finally {
+         safeClose(input);
+      }
+   }
 
-    private Bucket bucketFromStream(String key, InputStream input) throws S3ConnectionException {
-        try {
-            Bucket bucket = (Bucket) connection.marshaller.objectFromStream(input);
-            // TODO hack until we are sure the bucket has an immutable name
-            bucket.setBucketName(key);
-            return bucket;
-        } catch (Exception e) {
-            throw connection.convertToS3ConnectionException("Error while reading from object: " + key, e);
-        } finally {
-            safeClose(input);
-        }
-    }
+   private Bucket bucketFromStream(String key, InputStream input) throws S3ConnectionException {
+      try {
+         Bucket bucket = (Bucket) connection.marshaller.objectFromStream(input);
+         // TODO hack until we are sure the bucket has an immutable name
+         bucket.setBucketName(key);
+         return bucket;
+      } catch (Exception e) {
+         throw connection.convertToS3ConnectionException("Error while reading from object: " + key, e);
+      } finally {
+         safeClose(input);
+      }
+   }
 
-    /**
-     * {@inheritDoc}
-     */
+   /**
+    * {@inheritDoc}
+    */
 
-    public void remove(String key) throws S3ConnectionException {
-        try {
-            map.remove(key);
-        } catch (Exception ex) {
-            throw connection.convertToS3ConnectionException("Exception removing key " + key, ex);
-        }
-    }
+   public void remove(String key) throws S3ConnectionException {
+      try {
+         map.remove(key);
+      } catch (Exception ex) {
+         throw connection.convertToS3ConnectionException("Exception removing key " + key, ex);
+      }
+   }
 
-    /**
-     * {@inheritDoc}
-     */
-    public Set<String> keySet() throws S3ConnectionException {
-        return connection.keysInBucket(rootS3Bucket);
-    }
+   /**
+    * {@inheritDoc}
+    */
+   public Set<String> keySet() throws S3ConnectionException {
+      return connection.keysInBucket(rootS3Bucket);
+   }
 
-    public Set<Bucket> values() throws S3ConnectionException {
-        Set<Bucket> buckets = new HashSet<Bucket>();
-        for (Map.Entry<String, InputStream> entry : map.entrySet()) {
-            buckets.add(bucketFromStream(entry.getKey(), entry.getValue()));
-        }
-        return buckets;
-    }
+   public Set<Bucket> values() throws S3ConnectionException {
+      Set<Bucket> buckets = new HashSet<Bucket>();
+      for (Map.Entry<String, InputStream> entry : map.entrySet()) {
+         buckets.add(bucketFromStream(entry.getKey(), entry.getValue()));
+      }
+      return buckets;
+   }
 
-    /**
-     * {@inheritDoc}
-     */
-    public void clear() throws S3ConnectionException {
-        try {
-            map.clear();
-        } catch (Exception ex) {
-            throw connection.convertToS3ConnectionException("Exception clearing store", ex);
-        }
-    }
+   /**
+    * {@inheritDoc}
+    */
+   public void clear() throws S3ConnectionException {
+      try {
+         map.clear();
+      } catch (Exception ex) {
+         throw connection.convertToS3ConnectionException("Exception clearing store", ex);
+      }
+   }
 
-    /**
-     * {@inheritDoc}
-     */
-    public void insert(Bucket b) throws S3ConnectionException {
-        try {
-            if (b.getEntries().isEmpty()) {
-                map.remove(b.getBucketName());
-            } else {
-                ((S3InputStreamMap)map).putBytes(b.getBucketName(),connection.marshaller.objectToByteBuffer(b));
-            }
-        } catch (Exception ex) {
-            throw connection.convertToS3ConnectionException("Exception while saving bucket " + b, ex);
-        }
-    }
+   /**
+    * {@inheritDoc}
+    */
+   public void insert(Bucket b) throws S3ConnectionException {
+      try {
+         if (b.getEntries().isEmpty()) {
+            map.remove(b.getBucketName());
+         } else {
+            ((S3InputStreamMap) map).putBytes(b.getBucketName(), connection.marshaller.objectToByteBuffer(b));
+         }
+      } catch (Exception ex) {
+         throw connection.convertToS3ConnectionException("Exception while saving bucket " + b, ex);
+      }
+   }
 
-    protected final void safeClose(InputStream stream) throws S3ConnectionException {
-        if (stream == null) return;
-        try {
-            stream.close();
-        } catch (Exception e) {
-            throw new S3ConnectionException("Problems closing input stream", e);
-        }
-    }
+   protected final void safeClose(InputStream stream) throws S3ConnectionException {
+      if (stream == null) return;
+      try {
+         stream.close();
+      } catch (Exception e) {
+         throw new S3ConnectionException("Problems closing input stream", e);
+      }
+   }
 
 }
\ No newline at end of file

Modified: trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/jclouds/JCloudsConnection.java
===================================================================
--- trunk/cachestore/s3/src/main/java/org/infinispan/loader/s3/jclouds/JCloudsConnection.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/jclouds/JCloudsConnection.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,8 +1,9 @@
-package org.infinispan.loader.s3.jclouds;
+package org.infinispan.loaders.s3.jclouds;
 
-import org.infinispan.loader.s3.S3CacheStoreConfig;
-import org.infinispan.loader.s3.S3Connection;
-import org.infinispan.loader.s3.S3ConnectionException;
+import static com.google.common.base.Preconditions.checkNotNull;
+import org.infinispan.loaders.s3.S3CacheStoreConfig;
+import org.infinispan.loaders.s3.S3Connection;
+import org.infinispan.loaders.s3.S3ConnectionException;
 import org.infinispan.marshall.Marshaller;
 import org.jclouds.aws.s3.S3Constants;
 import org.jclouds.aws.s3.S3Context;
@@ -16,124 +17,123 @@
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
-import static com.google.common.base.Preconditions.checkNotNull;
-
 /**
- * An JClouds implementation of {@link S3Connection}.  This implementation uses the threadsafe {@link S3HttpNioConnectionPoolClientModule} transport.
+ * An JClouds implementation of {@link S3Connection}.  This implementation uses the threadsafe {@link
+ * S3HttpNioConnectionPoolClientModule} transport.
  *
  * @author Adrian Cole
  * @link http://code.google.com/p/jclouds
  */
 public class JCloudsConnection implements S3Connection<org.jclouds.aws.s3.S3Connection, org.jclouds.aws.s3.domain.S3Bucket> {
-    protected org.jclouds.aws.s3.S3Connection s3Service;
-    protected S3Context context;
-    protected Marshaller marshaller;
-    protected S3CacheStoreConfig config;
+   protected org.jclouds.aws.s3.S3Connection s3Service;
+   protected S3Context context;
+   protected Marshaller marshaller;
+   protected S3CacheStoreConfig config;
 
-    /**
-     * {@inheritDoc}
-     */
-    public void connect(S3CacheStoreConfig config, Marshaller m) throws S3ConnectionException {
-        this.config = config;
-        InputStream propertiesIS;
-        try {
-            propertiesIS = JCloudsConnection.class.getResourceAsStream("/jclouds.properties");
-            Properties properties = new Properties();
-            properties.load(propertiesIS);
-            if (!config.isSecure()) {
-                properties.setProperty(S3Constants.PROPERTY_HTTP_PORT, "80");
-                properties.setProperty(S3Constants.PROPERTY_HTTP_SECURE, "false");
-            }
-            if (properties.containsKey(S3Constants.PROPERTY_AWS_MAP_TIMEOUT)) {
-                config.setRequestTimeout(Long.parseLong(properties.getProperty(S3Constants.PROPERTY_AWS_MAP_TIMEOUT)));
-            } else {
-                properties.setProperty(S3Constants.PROPERTY_AWS_MAP_TIMEOUT, config.getRequestTimeout()+"");
-            }
-            if (!properties.containsKey(S3Constants.PROPERTY_AWS_ACCESSKEYID))
-                properties.setProperty(S3Constants.PROPERTY_AWS_ACCESSKEYID, checkNotNull(config.getAwsAccessKey(),"config.getAwsAccessKey()"));
-            if (!properties.containsKey(S3Constants.PROPERTY_AWS_SECRETACCESSKEY))
-                properties.setProperty(S3Constants.PROPERTY_AWS_SECRETACCESSKEY, checkNotNull(config.getAwsSecretKey(),"config.getAwsSecretKey()"));
-            if (!properties.containsKey(S3Constants.PROPERTY_POOL_MAX_CONNECTIONS))
-                properties.setProperty(S3Constants.PROPERTY_POOL_MAX_CONNECTIONS, config.getMaxConnections()+"");
-            //TODO proxy host/port
-            this.context = S3ContextFactory.createS3Context(properties, new S3HttpNioConnectionPoolClientModule());
-            this.s3Service = context.getConnection();
-            if (this.s3Service == null) {
-                throw new S3ConnectionException("Could not connect");
-            }
+   /**
+    * {@inheritDoc}
+    */
+   public void connect(S3CacheStoreConfig config, Marshaller m) throws S3ConnectionException {
+      this.config = config;
+      InputStream propertiesIS;
+      try {
+         propertiesIS = JCloudsConnection.class.getResourceAsStream("/jclouds.properties");
+         Properties properties = new Properties();
+         properties.load(propertiesIS);
+         if (!config.isSecure()) {
+            properties.setProperty(S3Constants.PROPERTY_HTTP_PORT, "80");
+            properties.setProperty(S3Constants.PROPERTY_HTTP_SECURE, "false");
+         }
+         if (properties.containsKey(S3Constants.PROPERTY_AWS_MAP_TIMEOUT)) {
+            config.setRequestTimeout(Long.parseLong(properties.getProperty(S3Constants.PROPERTY_AWS_MAP_TIMEOUT)));
+         } else {
+            properties.setProperty(S3Constants.PROPERTY_AWS_MAP_TIMEOUT, config.getRequestTimeout() + "");
+         }
+         if (!properties.containsKey(S3Constants.PROPERTY_AWS_ACCESSKEYID))
+            properties.setProperty(S3Constants.PROPERTY_AWS_ACCESSKEYID, checkNotNull(config.getAwsAccessKey(), "config.getAwsAccessKey()"));
+         if (!properties.containsKey(S3Constants.PROPERTY_AWS_SECRETACCESSKEY))
+            properties.setProperty(S3Constants.PROPERTY_AWS_SECRETACCESSKEY, checkNotNull(config.getAwsSecretKey(), "config.getAwsSecretKey()"));
+         if (!properties.containsKey(S3Constants.PROPERTY_POOL_MAX_CONNECTIONS))
+            properties.setProperty(S3Constants.PROPERTY_POOL_MAX_CONNECTIONS, config.getMaxConnections() + "");
+         //TODO proxy host/port
+         this.context = S3ContextFactory.createS3Context(properties, new S3HttpNioConnectionPoolClientModule());
+         this.s3Service = context.getConnection();
+         if (this.s3Service == null) {
+            throw new S3ConnectionException("Could not connect");
+         }
 
-        } catch (Exception ex) {
-            throw convertToS3ConnectionException("Exception connecting to s3", ex);
-        }
-        this.marshaller = m;
-    }
+      } catch (Exception ex) {
+         throw convertToS3ConnectionException("Exception connecting to s3", ex);
+      }
+      this.marshaller = m;
+   }
 
-    public org.jclouds.aws.s3.S3Connection getConnection() throws S3ConnectionException {
-        return s3Service;
-    }
+   public org.jclouds.aws.s3.S3Connection getConnection() throws S3ConnectionException {
+      return s3Service;
+   }
 
-    /**
-     * @see
-     */
-    public org.jclouds.aws.s3.domain.S3Bucket verifyOrCreateBucket(String bucketName) throws S3ConnectionException {
-        try {
-            org.jclouds.aws.s3.domain.S3Bucket bucket = new org.jclouds.aws.s3.domain.S3Bucket(bucketName);
-            s3Service.createBucketIfNotExists(bucket).get(config.getRequestTimeout(), TimeUnit.MILLISECONDS);
-            return bucket;
-        } catch (Exception ex) {
-            throw convertToS3ConnectionException("Exception retrieving or creating s3 bucket " + bucketName, ex);
-        }
-    }
+   /**
+    * @see
+    */
+   public org.jclouds.aws.s3.domain.S3Bucket verifyOrCreateBucket(String bucketName) throws S3ConnectionException {
+      try {
+         org.jclouds.aws.s3.domain.S3Bucket bucket = new org.jclouds.aws.s3.domain.S3Bucket(bucketName);
+         s3Service.createBucketIfNotExists(bucket).get(config.getRequestTimeout(), TimeUnit.MILLISECONDS);
+         return bucket;
+      } catch (Exception ex) {
+         throw convertToS3ConnectionException("Exception retrieving or creating s3 bucket " + bucketName, ex);
+      }
+   }
 
-    public void destroyBucket(String name) throws S3ConnectionException {
-        try {
-            org.jclouds.aws.s3.domain.S3Bucket bucket = new org.jclouds.aws.s3.domain.S3Bucket(name);
-            context.createS3ObjectMap(bucket).clear();
-            s3Service.deleteBucket(bucket);
-        } catch (Exception ex) {
-            throw convertToS3ConnectionException("Exception removing s3 bucket " + name, ex);
-        }
-    }
+   public void destroyBucket(String name) throws S3ConnectionException {
+      try {
+         org.jclouds.aws.s3.domain.S3Bucket bucket = new org.jclouds.aws.s3.domain.S3Bucket(name);
+         context.createS3ObjectMap(bucket).clear();
+         s3Service.deleteBucket(bucket);
+      } catch (Exception ex) {
+         throw convertToS3ConnectionException("Exception removing s3 bucket " + name, ex);
+      }
+   }
 
 
-    Set<String> keysInBucket(S3Bucket bucket) throws S3ConnectionException {
-        return context.createS3ObjectMap(bucket).keySet();
-    }
+   Set<String> keysInBucket(S3Bucket bucket) throws S3ConnectionException {
+      return context.createS3ObjectMap(bucket).keySet();
+   }
 
-    /**
-     * {@inheritDoc}
-     */
-    public void copyBucket(String sourceBucket, String destinationBucket) throws S3ConnectionException {
-        Set<String> sourceKeys;
-        try {
-            S3Bucket source = new S3Bucket(sourceBucket);
-            source = s3Service.getBucket(source).get(config.getRequestTimeout(), TimeUnit.MILLISECONDS);
-            sourceKeys = keysInBucket(source);
-            S3Bucket dest = new S3Bucket(destinationBucket);
+   /**
+    * {@inheritDoc}
+    */
+   public void copyBucket(String sourceBucket, String destinationBucket) throws S3ConnectionException {
+      Set<String> sourceKeys;
+      try {
+         S3Bucket source = new S3Bucket(sourceBucket);
+         source = s3Service.getBucket(source).get(config.getRequestTimeout(), TimeUnit.MILLISECONDS);
+         sourceKeys = keysInBucket(source);
+         S3Bucket dest = new S3Bucket(destinationBucket);
 
-            for (String key : sourceKeys) {
-                try {
-                    S3Object object = new S3Object(key);
-                    s3Service.copyObject(source, object, dest, object).get(config.getRequestTimeout(), TimeUnit.MILLISECONDS);
-                } catch (Exception ex) {
-                    throw convertToS3ConnectionException("Exception while copying key " + key + " from bucket " + sourceBucket, ex);
-                }
+         for (String key : sourceKeys) {
+            try {
+               S3Object object = new S3Object(key);
+               s3Service.copyObject(source, object, dest, object).get(config.getRequestTimeout(), TimeUnit.MILLISECONDS);
+            } catch (Exception ex) {
+               throw convertToS3ConnectionException("Exception while copying key " + key + " from bucket " + sourceBucket, ex);
             }
-        } catch (Exception ex) {
-            throw convertToS3ConnectionException("Cannot access bucket " + sourceBucket, ex);
-        }
+         }
+      } catch (Exception ex) {
+         throw convertToS3ConnectionException("Cannot access bucket " + sourceBucket, ex);
+      }
 
-    }
+   }
 
-    /**
-     * @see S3Context#close
-     */
-    public void disconnect() {
-        context.close();
-    }
+   /**
+    * @see S3Context#close
+    */
+   public void disconnect() {
+      context.close();
+   }
 
-    S3ConnectionException convertToS3ConnectionException(String message, Exception caught) {
-        return (caught instanceof S3ConnectionException) ? (S3ConnectionException) caught :
-                new S3ConnectionException(message, caught);
-    }
+   S3ConnectionException convertToS3ConnectionException(String message, Exception caught) {
+      return (caught instanceof S3ConnectionException) ? (S3ConnectionException) caught :
+            new S3ConnectionException(message, caught);
+   }
 }

Copied: trunk/cachestore/s3/src/test/java/org/infinispan/loaders (from rev 208, trunk/cachestore/s3/src/test/java/org/infinispan/loader)

Modified: trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/MockS3Bucket.java
===================================================================
--- trunk/cachestore/s3/src/test/java/org/infinispan/loader/s3/MockS3Bucket.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/MockS3Bucket.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,6 +1,6 @@
-package org.infinispan.loader.s3;
+package org.infinispan.loaders.s3;
 
-import org.infinispan.loader.bucket.Bucket;
+import org.infinispan.loaders.bucket.Bucket;
 import org.infinispan.marshall.Marshaller;
 
 import java.util.HashSet;
@@ -14,45 +14,45 @@
  * @version $Id: $
  * @since 4.0
  */
-public class MockS3Bucket implements S3Bucket<Map<String, Bucket>, org.infinispan.loader.s3.MockS3Connection> {
-    private String name;
-    private Map<String, Bucket> s3Bucket;
+public class MockS3Bucket implements S3Bucket<Map<String, Bucket>, org.infinispan.loaders.s3.MockS3Connection> {
+   private String name;
+   private Map<String, Bucket> s3Bucket;
 
-    public void init(String name, String awsAccessKey, String awsSecretKey, Marshaller m) throws S3ConnectionException {
-        this.name = name;
-    }
+   public void init(String name, String awsAccessKey, String awsSecretKey, Marshaller m) throws S3ConnectionException {
+      this.name = name;
+   }
 
-    public String getName() {
-        return name;
-    }
+   public String getName() {
+      return name;
+   }
 
-    public Set<Bucket> values() throws S3ConnectionException {
-        return new HashSet<Bucket>(s3Bucket.values());
-    }
+   public Set<Bucket> values() throws S3ConnectionException {
+      return new HashSet<Bucket>(s3Bucket.values());
+   }
 
-    public void init(org.infinispan.loader.s3.MockS3Connection connection, Map<String, Bucket> bucket) {
-        this.s3Bucket = bucket;
-    }
+   public void init(org.infinispan.loaders.s3.MockS3Connection connection, Map<String, Bucket> bucket) {
+      this.s3Bucket = bucket;
+   }
 
-    public void insert(Bucket object) throws S3ConnectionException {
-        s3Bucket.put(object.getBucketName(), object);
-    }
+   public void insert(Bucket object) throws S3ConnectionException {
+      s3Bucket.put(object.getBucketName(), object);
+   }
 
-    public Bucket get(String key) throws S3ConnectionException {
-        return s3Bucket.get(key);
-    }
+   public Bucket get(String key) throws S3ConnectionException {
+      return s3Bucket.get(key);
+   }
 
-    public Set<String> keySet() throws S3ConnectionException {
-        return s3Bucket.keySet();
-    }
+   public Set<String> keySet() throws S3ConnectionException {
+      return s3Bucket.keySet();
+   }
 
-    public void remove(String key) throws S3ConnectionException {
-        s3Bucket.remove(key);
-    }
+   public void remove(String key) throws S3ConnectionException {
+      s3Bucket.remove(key);
+   }
 
-    public void clear() throws S3ConnectionException {
-        s3Bucket.clear();
-    }
+   public void clear() throws S3ConnectionException {
+      s3Bucket.clear();
+   }
 
 }
 

Modified: trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/MockS3Connection.java
===================================================================
--- trunk/cachestore/s3/src/test/java/org/infinispan/loader/s3/MockS3Connection.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/MockS3Connection.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,6 +1,6 @@
-package org.infinispan.loader.s3;
+package org.infinispan.loaders.s3;
 
-import org.infinispan.loader.bucket.Bucket;
+import org.infinispan.loaders.bucket.Bucket;
 import org.infinispan.marshall.Marshaller;
 
 import java.util.Map;
@@ -9,40 +9,40 @@
 /**
  * Stores S3 Buckets in a map instead of connecting to a live server.
  *
+ * @author Adrian Cole
  * @since 4.0
- * @author Adrian Cole
  */
 public class MockS3Connection implements S3Connection<MockS3Connection, Map<String, Bucket>> {
-    private static Map<String, Map<String, Bucket>> bucketToContents = new ConcurrentHashMap<String, Map<String, Bucket>>();
+   private static Map<String, Map<String, Bucket>> bucketToContents = new ConcurrentHashMap<String, Map<String, Bucket>>();
 
-    public void connect(S3CacheStoreConfig config, Marshaller m) throws S3ConnectionException {
-        // Do nothing
-    }
+   public void connect(S3CacheStoreConfig config, Marshaller m) throws S3ConnectionException {
+      // Do nothing
+   }
 
-    public MockS3Connection getConnection() throws S3ConnectionException {
-        return this;
-    }
+   public MockS3Connection getConnection() throws S3ConnectionException {
+      return this;
+   }
 
-    public Map<String, Bucket> verifyOrCreateBucket(String bucketName) throws S3ConnectionException {
-        if (!bucketToContents.containsKey(bucketName)) {
-            bucketToContents.put(bucketName, new ConcurrentHashMap<String, Bucket>());
-        }
-        return bucketToContents.get(bucketName);
-    }
+   public Map<String, Bucket> verifyOrCreateBucket(String bucketName) throws S3ConnectionException {
+      if (!bucketToContents.containsKey(bucketName)) {
+         bucketToContents.put(bucketName, new ConcurrentHashMap<String, Bucket>());
+      }
+      return bucketToContents.get(bucketName);
+   }
 
-    public void destroyBucket(String name) throws S3ConnectionException {
-        bucketToContents.remove(name);
-    }
+   public void destroyBucket(String name) throws S3ConnectionException {
+      bucketToContents.remove(name);
+   }
 
-    public void disconnect() {
-        // na
-    }
+   public void disconnect() {
+      // na
+   }
 
-    public void copyBucket(String sourceBucket, String destinationBucket) throws S3ConnectionException {
-        Map<String, Bucket> source = bucketToContents.get(sourceBucket);
-        Map<String, Bucket> dest = bucketToContents.get(destinationBucket);
-        for (Bucket bucket : source.values()) {
-            dest.put(bucket.getBucketName(), bucket);
-        }
-    }
+   public void copyBucket(String sourceBucket, String destinationBucket) throws S3ConnectionException {
+      Map<String, Bucket> source = bucketToContents.get(sourceBucket);
+      Map<String, Bucket> dest = bucketToContents.get(destinationBucket);
+      for (Bucket bucket : source.values()) {
+         dest.put(bucket.getBucketName(), bucket);
+      }
+   }
 }

Modified: trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreIntegrationTest.java
===================================================================
--- trunk/cachestore/s3/src/test/java/org/infinispan/loader/s3/S3CacheStoreIntegrationTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreIntegrationTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,200 +1,207 @@
-package org.infinispan.loader.s3;
+package org.infinispan.loaders.s3;
 
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.InternalEntryFactory;
 import org.infinispan.io.UnclosableObjectInputStream;
 import org.infinispan.io.UnclosableObjectOutputStream;
-import org.infinispan.loader.BaseCacheStoreTest;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.s3.jclouds.JCloudsBucket;
-import org.infinispan.loader.s3.jclouds.JCloudsConnection;
+import org.infinispan.loaders.BaseCacheStoreTest;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.s3.jclouds.JCloudsBucket;
+import org.infinispan.loaders.s3.jclouds.JCloudsConnection;
 import static org.testng.Assert.assertEquals;
-import org.testng.annotations.*;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Optional;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
 
-import java.io.*;
-import java.util.Date;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 import java.util.HashSet;
 import java.util.Set;
-import java.util.logging.*;
 
 /**
  * @author Adrian Cole
  * @version $Id$
  * @since 4.0
  */
- at Test(groups = "unit", sequential = true, testName = "loader.s3.S3CacheStoreIntegrationTest")
+ at Test(groups = "unit", sequential = true, testName = "loaders.s3.S3CacheStoreIntegrationTest")
 public class S3CacheStoreIntegrationTest extends BaseCacheStoreTest {
 
-    private String proxyHost;
-    private int proxyPort = -1;
-    private int maxConnections = 20;
-    private boolean isSecure = false;
-    private Class<? extends S3Connection> connectionClass;
-    private Class<? extends S3Bucket> bucketClass;
-    private String csBucket;
-    private String cs2Bucket;
-    private String accessKey;
-    private String secretKey;
+   private String proxyHost;
+   private int proxyPort = -1;
+   private int maxConnections = 20;
+   private boolean isSecure = false;
+   private Class<? extends S3Connection> connectionClass;
+   private Class<? extends S3Bucket> bucketClass;
+   private String csBucket;
+   private String cs2Bucket;
+   private String accessKey;
+   private String secretKey;
 
-    private static final String sysAWSAccessKeyId = System
-            .getProperty("jclouds.aws.accesskeyid");
-    private static final String sysAWSSecretAccessKey = System
-            .getProperty("jclouds.aws.secretaccesskey");
+   private static final String sysAWSAccessKeyId = System
+         .getProperty("jclouds.aws.accesskeyid");
+   private static final String sysAWSSecretAccessKey = System
+         .getProperty("jclouds.aws.secretaccesskey");
 
-    @BeforeTest
-    @Parameters({"jclouds.aws.accesskeyid", "jclouds.aws.secretaccesskey"})
-    protected void setUpClient(@Optional String AWSAccessKeyId,
-                               @Optional String AWSSecretAccessKey) throws Exception {
+   @BeforeTest
+   @Parameters({"jclouds.aws.accesskeyid", "jclouds.aws.secretaccesskey"})
+   protected void setUpClient(@Optional String AWSAccessKeyId,
+                              @Optional String AWSSecretAccessKey) throws Exception {
 
-        accessKey = (AWSAccessKeyId == null) ? sysAWSAccessKeyId : AWSAccessKeyId;
-        secretKey = (AWSSecretAccessKey == null) ? sysAWSSecretAccessKey : AWSSecretAccessKey;
+      accessKey = (AWSAccessKeyId == null) ? sysAWSAccessKeyId : AWSAccessKeyId;
+      secretKey = (AWSSecretAccessKey == null) ? sysAWSSecretAccessKey : AWSSecretAccessKey;
 
-        if (accessKey == null || accessKey.trim().equals("") ||
-                secretKey == null || secretKey.trim().equals("")) {
-            accessKey = "dummy";
-            secretKey = "dummy";
-            connectionClass = MockS3Connection.class;
-            bucketClass = MockS3Bucket.class;
-        } else {
-            connectionClass = JCloudsConnection.class;
-            bucketClass = JCloudsBucket.class;
-            proxyHost = "localhost";  // TODO  not yet used
-            proxyPort = 8888; // TODO  not yet used
-        }
-        csBucket = System.getProperty("user.name")
-                + "." + this.getClass().getName();
-        System.err.printf("accessKey: %1s, connectionClass: %2s, bucketClass: %3s, bucket: %4s%n", accessKey,
-                connectionClass, bucketClass, csBucket);
+      if (accessKey == null || accessKey.trim().equals("") ||
+            secretKey == null || secretKey.trim().equals("")) {
+         accessKey = "dummy";
+         secretKey = "dummy";
+         connectionClass = MockS3Connection.class;
+         bucketClass = MockS3Bucket.class;
+      } else {
+         connectionClass = JCloudsConnection.class;
+         bucketClass = JCloudsBucket.class;
+         proxyHost = "localhost";  // TODO  not yet used
+         proxyPort = 8888; // TODO  not yet used
+      }
+      csBucket = System.getProperty("user.name")
+            + "." + this.getClass().getName();
+      System.err.printf("accessKey: %1s, connectionClass: %2s, bucketClass: %3s, bucket: %4s%n", accessKey,
+                        connectionClass, bucketClass, csBucket);
 
-        cs2Bucket = csBucket + "2";
-    }
+      cs2Bucket = csBucket + "2";
+   }
 
-    protected CacheStore createCacheStore() throws Exception {
-        return createAndStartCacheStore(csBucket);
-    }
+   protected CacheStore createCacheStore() throws Exception {
+      return createAndStartCacheStore(csBucket);
+   }
 
-    protected CacheStore createAnotherCacheStore() throws Exception {
-        return createAndStartCacheStore(cs2Bucket);
-    }
+   protected CacheStore createAnotherCacheStore() throws Exception {
+      return createAndStartCacheStore(cs2Bucket);
+   }
 
-    private CacheStore createAndStartCacheStore(String bucket) throws Exception {
-        S3CacheStore cs = new S3CacheStore();
-        S3CacheStoreConfig cfg = new S3CacheStoreConfig();
-        cfg.setBucket(bucket);
-        cfg.setAwsAccessKey(accessKey);
-        cfg.setAwsSecretKey(secretKey);
-        cfg.setProxyHost(proxyHost);
-        cfg.setProxyPort(proxyPort);
-        cfg.setSecure(isSecure);
-        cfg.setMaxConnections(maxConnections);
-        cfg.setPurgeSynchronously(true); // for more accurate unit testing
-        cs.init(cfg, getCache(), getMarshaller(), connectionClass.newInstance(), bucketClass.newInstance());
-        cs.start();
-        return cs;
-    }
+   private CacheStore createAndStartCacheStore(String bucket) throws Exception {
+      S3CacheStore cs = new S3CacheStore();
+      S3CacheStoreConfig cfg = new S3CacheStoreConfig();
+      cfg.setBucket(bucket);
+      cfg.setAwsAccessKey(accessKey);
+      cfg.setAwsSecretKey(secretKey);
+      cfg.setProxyHost(proxyHost);
+      cfg.setProxyPort(proxyPort);
+      cfg.setSecure(isSecure);
+      cfg.setMaxConnections(maxConnections);
+      cfg.setPurgeSynchronously(true); // for more accurate unit testing
+      cs.init(cfg, getCache(), getMarshaller(), connectionClass.newInstance(), bucketClass.newInstance());
+      cs.start();
+      return cs;
+   }
 
-    /*  Changes below are needed to support testing of multiple cache stores */
+   /*  Changes below are needed to support testing of multiple cache stores */
 
-    protected CacheStore cs2;
+   protected CacheStore cs2;
 
-    @BeforeMethod
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        cs.clear();
-        Set entries = cs.loadAll();
-        assert entries.size() == 0;
-        cs2 = createAnotherCacheStore();
-        cs2.clear();
-        entries = cs2.loadAll();
-        assert entries.size() == 0;
-    }
+   @BeforeMethod
+   @Override
+   public void setUp() throws Exception {
+      super.setUp();
+      cs.clear();
+      Set entries = cs.loadAll();
+      assert entries.size() == 0;
+      cs2 = createAnotherCacheStore();
+      cs2.clear();
+      entries = cs2.loadAll();
+      assert entries.size() == 0;
+   }
 
 
-    @AfterMethod
-    @Override
-    public void tearDown() throws CacheLoaderException {
-        if (cs != null) {
-            cs.clear();
-            cs.stop();
+   @AfterMethod
+   @Override
+   public void tearDown() throws CacheLoaderException {
+      if (cs != null) {
+         cs.clear();
+         cs.stop();
 
-        }
-        cs = null;
-        if (cs2 != null) {
-            cs2.clear();
+      }
+      cs = null;
+      if (cs2 != null) {
+         cs2.clear();
 
-            cs2.stop();
-        }
-        cs2 = null;
-    }
+         cs2.stop();
+      }
+      cs2 = null;
+   }
 
 
-    @SuppressWarnings("unchecked")
-    @Override
-    public void testStreamingAPI() throws IOException, ClassNotFoundException, CacheLoaderException {
-        cs.store(InternalEntryFactory.create("k1", "v1", -1, -1));
-        cs.store(InternalEntryFactory.create("k2", "v2", -1, -1));
-        cs.store(InternalEntryFactory.create("k3", "v3", -1, -1));
+   @SuppressWarnings("unchecked")
+   @Override
+   public void testStreamingAPI() throws IOException, ClassNotFoundException, CacheLoaderException {
+      cs.store(InternalEntryFactory.create("k1", "v1", -1, -1));
+      cs.store(InternalEntryFactory.create("k2", "v2", -1, -1));
+      cs.store(InternalEntryFactory.create("k3", "v3", -1, -1));
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        ObjectOutputStream oos = new ObjectOutputStream(out);
-        cs.toStream(new UnclosableObjectOutputStream(oos));
-        oos.flush();
-        oos.close();
-        out.close();
-        ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray()));
-        cs2.fromStream(new UnclosableObjectInputStream(ois));
+      ByteArrayOutputStream out = new ByteArrayOutputStream();
+      ObjectOutputStream oos = new ObjectOutputStream(out);
+      cs.toStream(new UnclosableObjectOutputStream(oos));
+      oos.flush();
+      oos.close();
+      out.close();
+      ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray()));
+      cs2.fromStream(new UnclosableObjectInputStream(ois));
 
-        Set<InternalCacheEntry> set = cs2.loadAll();
+      Set<InternalCacheEntry> set = cs2.loadAll();
 
-        assertEquals(set.size(), 3);
-        Set expected = new HashSet();
-        expected.add("k1");
-        expected.add("k2");
-        expected.add("k3");
-        for (InternalCacheEntry se : set) assert expected.remove(se.getKey());
-        assert expected.isEmpty();
-    }
+      assertEquals(set.size(), 3);
+      Set expected = new HashSet();
+      expected.add("k1");
+      expected.add("k2");
+      expected.add("k3");
+      for (InternalCacheEntry se : set) assert expected.remove(se.getKey());
+      assert expected.isEmpty();
+   }
 
 
-    @SuppressWarnings("unchecked")
-    @Override
-    public void testStreamingAPIReusingStreams() throws IOException, ClassNotFoundException, CacheLoaderException {
-        cs.store(InternalEntryFactory.create("k1", "v1", -1, -1));
-        cs.store(InternalEntryFactory.create("k2", "v2", -1, -1));
-        cs.store(InternalEntryFactory.create("k3", "v3", -1, -1));
+   @SuppressWarnings("unchecked")
+   @Override
+   public void testStreamingAPIReusingStreams() throws IOException, ClassNotFoundException, CacheLoaderException {
+      cs.store(InternalEntryFactory.create("k1", "v1", -1, -1));
+      cs.store(InternalEntryFactory.create("k2", "v2", -1, -1));
+      cs.store(InternalEntryFactory.create("k3", "v3", -1, -1));
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        byte[] dummyStartBytes = {1, 2, 3, 4, 5, 6, 7, 8};
-        byte[] dummyEndBytes = {8, 7, 6, 5, 4, 3, 2, 1};
-        out.write(dummyStartBytes);
-        ObjectOutputStream oos = new ObjectOutputStream(out);
-        cs.toStream(new UnclosableObjectOutputStream(oos));
-        oos.flush();
-        oos.close();
-        out.write(dummyEndBytes);
-        out.close();
+      ByteArrayOutputStream out = new ByteArrayOutputStream();
+      byte[] dummyStartBytes = {1, 2, 3, 4, 5, 6, 7, 8};
+      byte[] dummyEndBytes = {8, 7, 6, 5, 4, 3, 2, 1};
+      out.write(dummyStartBytes);
+      ObjectOutputStream oos = new ObjectOutputStream(out);
+      cs.toStream(new UnclosableObjectOutputStream(oos));
+      oos.flush();
+      oos.close();
+      out.write(dummyEndBytes);
+      out.close();
 
-        // first pop the start bytes
-        byte[] dummy = new byte[8];
-        ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
-        int bytesRead = in.read(dummy, 0, 8);
-        assertEquals(bytesRead, 8);
-        for (int i = 1; i < 9; i++) assert dummy[i - 1] == i : "Start byte stream corrupted!";
-        cs2.fromStream(new UnclosableObjectInputStream(new ObjectInputStream(in)));
-        bytesRead = in.read(dummy, 0, 8);
-        assertEquals(bytesRead, 8);
-        for (int i = 8; i > 0; i--) assert dummy[8 - i] == i : "Start byte stream corrupted!";
+      // first pop the start bytes
+      byte[] dummy = new byte[8];
+      ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
+      int bytesRead = in.read(dummy, 0, 8);
+      assertEquals(bytesRead, 8);
+      for (int i = 1; i < 9; i++) assert dummy[i - 1] == i : "Start byte stream corrupted!";
+      cs2.fromStream(new UnclosableObjectInputStream(new ObjectInputStream(in)));
+      bytesRead = in.read(dummy, 0, 8);
+      assertEquals(bytesRead, 8);
+      for (int i = 8; i > 0; i--) assert dummy[8 - i] == i : "Start byte stream corrupted!";
 
-        Set<InternalCacheEntry> set = cs2.loadAll();
+      Set<InternalCacheEntry> set = cs2.loadAll();
 
-        assertEquals(set.size(), 3);
-        Set expected = new HashSet();
-        expected.add("k1");
-        expected.add("k2");
-        expected.add("k3");
-        for (InternalCacheEntry se : set) assert expected.remove(se.getKey());
-        assert expected.isEmpty();
-    }
+      assertEquals(set.size(), 3);
+      Set expected = new HashSet();
+      expected.add("k1");
+      expected.add("k2");
+      expected.add("k3");
+      for (InternalCacheEntry se : set) assert expected.remove(se.getKey());
+      assert expected.isEmpty();
+   }
 }
\ No newline at end of file

Modified: trunk/core/src/main/java/org/infinispan/Cache.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/Cache.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/Cache.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -33,11 +33,15 @@
 
 /**
  * The central interface of Infinispan.  A Cache provides a highly concurrent, optionally distributed data structure
- * with additional features such as: <ul> <li>JTA transaction compatibility</li> <li>Eviction support to prevent
- * evicting entries from memory to prevent {@link OutOfMemoryError}s</li> <li>Persisting entries to a {@link
- * org.infinispan.loader.CacheStore}, either when they are evicted as an overflow, or all the time, to maintain
- * persistent copies that would withstand server failure or restarts.</li> </ul>
+ * with additional features such as:
  * <p/>
+ * <ul> <li>JTA transaction compatibility</li> <li>Eviction support for evicting entries from memory to prevent {@link
+ * OutOfMemoryError}s</li> <li>Persisting entries to a {@link org.infinispan.loaders.CacheStore}, either when they are
+ * evicted as an overflow, or all the time, to maintain persistent copies that would withstand server failure or
+ * restarts.</li> </ul>
+ * <p/>
+ * <p/>
+ * <p/>
  * For convenience, Cache extends {@link java.util.concurrent.ConcurrentMap} and implements all methods accordingly,
  * although methods like {@link java.util.concurrent.ConcurrentMap#keySet()}, {@link
  * java.util.concurrent.ConcurrentMap#values()} and {@link java.util.concurrent.ConcurrentMap#entrySet()} are expensive
@@ -46,11 +50,24 @@
  * Also, like most {@link java.util.concurrent.ConcurrentMap} implementations, Cache does not support the use of
  * <tt>null</tt> keys (although <tt>null</tt> values are allowed).
  * <p/>
- * Please see the <a href="http://www.jboss.org/infinispan/docs">Infinispan documentation</a> for more details.
+ * An instance of the Cache is usually obtained by using a {@link CacheManager}.
+ * <pre>
+ *   CacheManager cm = new DefaultCacheManager(); // optionally pass in a default configuration
+ *   Cache c = cm.getCache();
+ * </pre>
+ * See the {@link CacheManager} interface for more details on providing specific configurations, using multiple caches
+ * in the same JVM, etc.
  * <p/>
+ * Please see the <a href="http://www.jboss.org/infinispan/docs">Infinispan documentation</a> and/or the <a
+ * href="http://www.jboss.org/community/wiki/5minutetutorialonInfinispan">5 Minute Usage Tutorial</a> for more details.
+ * <p/>
  *
  * @author Mircea.Markus at jboss.com
  * @author Manik Surtani
+ * @see CacheManager
+ * @see org.infinispan.manager.DefaultCacheManager
+ * @see <a href="http://www.jboss.org/infinispan/docs">Infinispan documentation</a>
+ * @see <a href="http://www.jboss.org/community/wiki/5minutetutorialonInfinispan">5 Minute Usage Tutorial</a>
  * @since 4.0
  */
 public interface Cache<K, V> extends ConcurrentMap<K, V>, Lifecycle, Listenable {

Modified: trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -43,7 +43,7 @@
 import org.infinispan.distribution.DistributionManager;
 import org.infinispan.factories.annotations.Inject;
 import org.infinispan.interceptors.InterceptorChain;
-import org.infinispan.loader.CacheLoaderManager;
+import org.infinispan.loaders.CacheLoaderManager;
 import org.infinispan.notifications.cachelistener.CacheNotifier;
 import org.infinispan.remoting.transport.Address;
 import org.infinispan.transaction.GlobalTransaction;

Modified: trunk/core/src/main/java/org/infinispan/commands/remote/ClusteredGetCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/remote/ClusteredGetCommand.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/commands/remote/ClusteredGetCommand.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -26,12 +26,12 @@
 import org.infinispan.container.entries.CacheEntry;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.context.InvocationContext;
-import org.infinispan.loader.CacheLoaderManager;
+import org.infinispan.loaders.CacheLoaderManager;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 
 /**
- * Issues a clustered get call, for use primarily by the {@link org.infinispan.loader.cluster.ClusterCacheLoader}.  This
+ * Issues a clustered get call, for use primarily by the {@link org.infinispan.loaders.cluster.ClusterCacheLoader}. This
  * is not a {@link org.infinispan.commands.VisitableCommand} and hence not passed up the {@link
  * org.infinispan.interceptors.base.CommandInterceptor} chain.
  * <p/>

Modified: trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -21,8 +21,8 @@
  */
 package org.infinispan.config;
 
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheStoreConfig;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheStoreConfig;
 import org.infinispan.util.Util;
 
 import java.util.LinkedList;
@@ -142,7 +142,7 @@
    public boolean isFetchPersistentState() {
       for (CacheLoaderConfig iclc : cacheLoaderConfigs) {
          if (iclc instanceof CacheStoreConfig)
-         if (((CacheStoreConfig)iclc).isFetchPersistentState()) return true;
+            if (((CacheStoreConfig) iclc).isFetchPersistentState()) return true;
       }
       return false;
    }

Modified: trunk/core/src/main/java/org/infinispan/config/parsing/element/LoadersElementParser.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/parsing/element/LoadersElementParser.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/config/parsing/element/LoadersElementParser.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -25,11 +25,11 @@
 import org.infinispan.config.ConfigurationException;
 import org.infinispan.config.parsing.XmlConfigHelper;
 import org.infinispan.config.parsing.XmlParserBase;
-import org.infinispan.loader.CacheLoader;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheStoreConfig;
-import org.infinispan.loader.decorators.AsyncStoreConfig;
-import org.infinispan.loader.decorators.SingletonStoreConfig;
+import org.infinispan.loaders.CacheLoader;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheStoreConfig;
+import org.infinispan.loaders.decorators.AsyncStoreConfig;
+import org.infinispan.loaders.decorators.SingletonStoreConfig;
 import org.infinispan.util.Util;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;

Modified: trunk/core/src/main/java/org/infinispan/eviction/EvictionManagerImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/eviction/EvictionManagerImpl.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/eviction/EvictionManagerImpl.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -10,8 +10,8 @@
 import org.infinispan.factories.annotations.Inject;
 import org.infinispan.factories.annotations.Start;
 import org.infinispan.factories.annotations.Stop;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.CacheLoaderManager;
+import org.infinispan.loaders.CacheLoaderManager;
+import org.infinispan.loaders.CacheStore;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 
@@ -45,13 +45,15 @@
       this.cacheLoaderManager = cacheLoaderManager;
    }
 
-   @Start (priority = 55) // make sure this starts after the CacheLoaderManager
+   @Start(priority = 55)
+   // make sure this starts after the CacheLoaderManager
    public void start() {
       // first check if eviction is enabled!
       enabled = configuration.getEvictionStrategy() != EvictionStrategy.NONE;
       if (enabled) {
          maxEntries = configuration.getEvictionMaxEntries();
-         if (cacheLoaderManager != null && cacheLoaderManager.isEnabled()) cacheStore = cacheLoaderManager.getCacheStore();
+         if (cacheLoaderManager != null && cacheLoaderManager.isEnabled())
+            cacheStore = cacheLoaderManager.getCacheStore();
          // Set up the eviction timer task
          if (configuration.getEvictionWakeUpInterval() <= 0) {
             log.info("wakeUpInterval is <= 0, not starting eviction thread");
@@ -83,7 +85,7 @@
       int dcsz = dataContainer.size();
       if (dcsz > maxEntries) {
          if (trace) log.trace("Data container is larger than maxEntries, size is {0}.  Evicting...", dcsz);
-         for (InternalCacheEntry ice: dataContainer) {
+         for (InternalCacheEntry ice : dataContainer) {
             dcsz = dataContainer.size();
             if (dcsz > maxEntries) {
                cache.evict(ice.getKey());

Modified: trunk/core/src/main/java/org/infinispan/factories/AbstractComponentFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/factories/AbstractComponentFactory.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/factories/AbstractComponentFactory.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -32,9 +32,9 @@
 /**
  * Factory that creates components used internally within Infinispan, and also wires dependencies into the components.
  * <p/>
- * The {@link DefaultCacheFactory} is a special subclass of this, which bootstraps the construction of other components.
- * When this class is loaded, it maintains a static list of known default factories for known components, which it then
- * delegates to, when actually performing the construction.
+ * The {@link InternalCacheFactory} is a special subclass of this, which bootstraps the construction of other
+ * components. When this class is loaded, it maintains a static list of known default factories for known components,
+ * which it then delegates to, when actually performing the construction.
  * <p/>
  *
  * @author Manik Surtani (<a href="mailto:manik at jboss.org">manik at jboss.org</a>)

Deleted: trunk/core/src/main/java/org/infinispan/factories/DefaultCacheFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/factories/DefaultCacheFactory.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/factories/DefaultCacheFactory.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,106 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2000 - 2008, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.infinispan.factories;
-
-import org.infinispan.AdvancedCache;
-import org.infinispan.Cache;
-import org.infinispan.CacheDelegate;
-import org.infinispan.config.Configuration;
-import org.infinispan.config.ConfigurationException;
-import org.infinispan.jmx.CacheJmxRegistration;
-import org.infinispan.manager.DefaultCacheManager;
-
-/**
- * Default implementation of the {@link CacheFactory} interface.
- * <p/>
- * This is a special instance of a {@link AbstractComponentFactory} which contains bootstrap information for the {@link
- * ComponentRegistry}.
- * <p/>
- *
- * @author <a href="mailto:manik at jboss.org">Manik Surtani (manik at jboss.org)</a>
- * @see AbstractComponentFactory
- * @since 4.0
- */
-public class DefaultCacheFactory<K, V> extends AbstractNamedCacheComponentFactory// implements CacheFactory<K, V>
-{
-   private ClassLoader defaultClassLoader;
-
-   /**
-    * This implementation clones the configuration passed in before using it.
-    *
-    * @param configuration to use
-    * @param start         whether to start the cache
-    * @return a cache
-    * @throws ConfigurationException if there are problems with the cfg
-    */
-   public Cache<K, V> createCache(Configuration configuration, GlobalComponentRegistry globalComponentRegistry, String cacheName) throws ConfigurationException {
-      try {
-         return createAndWire(configuration, globalComponentRegistry, cacheName);
-      }
-      catch (ConfigurationException ce) {
-         throw ce;
-      }
-      catch (RuntimeException re) {
-         throw re;
-      }
-      catch (Exception e) {
-         throw new RuntimeException(e);
-      }
-   }
-
-   public Cache<K, V> createDefaultCache(Configuration configuration) throws ConfigurationException {
-      return createCache(configuration, null, DefaultCacheManager.DEFAULT_CACHE_NAME);
-   }
-
-   protected AdvancedCache<K, V> createAndWire(Configuration configuration, GlobalComponentRegistry globalComponentRegistry, String cacheName) throws Exception {
-      AdvancedCache<K, V> spi = new CacheDelegate<K, V>(cacheName);
-      bootstrap(cacheName, spi, configuration, globalComponentRegistry);
-      return spi;
-   }
-
-   /**
-    * Bootstraps this factory with a Configuration and a ComponentRegistry.
-    */
-   private void bootstrap(String cacheName, AdvancedCache spi, Configuration configuration, GlobalComponentRegistry globalComponentRegistry) {
-      this.configuration = configuration;
-
-      // injection bootstrap stuff
-      componentRegistry = new ComponentRegistry(cacheName, configuration, spi, globalComponentRegistry);
-      componentRegistry.registerDefaultClassLoader(defaultClassLoader);
-      componentRegistry.registerComponent(spi, AdvancedCache.class);
-      componentRegistry.registerComponent(new CacheJmxRegistration(), CacheJmxRegistration.class);
-   }
-
-   /**
-    * Allows users to specify a default class loader to use for both the construction and running of the cache.
-    *
-    * @param loader class loader to use as a default.
-    */
-   public void setDefaultClassLoader(ClassLoader loader) {
-      this.defaultClassLoader = loader;
-   }
-
-   @Override
-   public <T> T construct(Class<T> componentType) {
-      throw new UnsupportedOperationException("Should never be invoked - this is a bootstrap factory.");
-   }
-}

Modified: trunk/core/src/main/java/org/infinispan/factories/EmptyConstructorNamedCacheFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/factories/EmptyConstructorNamedCacheFactory.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/factories/EmptyConstructorNamedCacheFactory.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -28,7 +28,7 @@
 import org.infinispan.eviction.EvictionManager;
 import org.infinispan.factories.annotations.DefaultFactoryFor;
 import org.infinispan.invocation.InvocationContextContainer;
-import org.infinispan.loader.CacheLoaderManager;
+import org.infinispan.loaders.CacheLoaderManager;
 import org.infinispan.marshall.Marshaller;
 import org.infinispan.marshall.VersionAwareMarshaller;
 import org.infinispan.notifications.cachelistener.CacheNotifier;

Copied: trunk/core/src/main/java/org/infinispan/factories/InternalCacheFactory.java (from rev 208, trunk/core/src/main/java/org/infinispan/factories/DefaultCacheFactory.java)
===================================================================
--- trunk/core/src/main/java/org/infinispan/factories/InternalCacheFactory.java	                        (rev 0)
+++ trunk/core/src/main/java/org/infinispan/factories/InternalCacheFactory.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -0,0 +1,106 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2000 - 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.infinispan.factories;
+
+import org.infinispan.AdvancedCache;
+import org.infinispan.Cache;
+import org.infinispan.CacheDelegate;
+import org.infinispan.config.Configuration;
+import org.infinispan.config.ConfigurationException;
+import org.infinispan.jmx.CacheJmxRegistration;
+import org.infinispan.manager.DefaultCacheManager;
+
+/**
+ * An internal factory for constructing Caches.  Used by the {@link DefaultCacheManager}, this is not intended as public
+ * API.
+ * <p/>
+ * This is a special instance of a {@link AbstractComponentFactory} which contains bootstrap information for the {@link
+ * ComponentRegistry}.
+ * <p/>
+ *
+ * @author <a href="mailto:manik at jboss.org">Manik Surtani (manik at jboss.org)</a>
+ * @since 4.0
+ */
+public class InternalCacheFactory<K, V> extends AbstractNamedCacheComponentFactory {
+   private ClassLoader defaultClassLoader;
+
+   /**
+    * This implementation clones the configuration passed in before using it.
+    *
+    * @param configuration           to use
+    * @param globalComponentRegistry global component registry to attach the cache to
+    * @param cacheName               name of the cache
+    * @return a cache
+    * @throws ConfigurationException if there are problems with the cfg
+    */
+   public Cache<K, V> createCache(Configuration configuration, GlobalComponentRegistry globalComponentRegistry, String cacheName) throws ConfigurationException {
+      try {
+         return createAndWire(configuration, globalComponentRegistry, cacheName);
+      }
+      catch (ConfigurationException ce) {
+         throw ce;
+      }
+      catch (RuntimeException re) {
+         throw re;
+      }
+      catch (Exception e) {
+         throw new RuntimeException(e);
+      }
+   }
+
+   public Cache<K, V> createDefaultCache(Configuration configuration) throws ConfigurationException {
+      return createCache(configuration, null, DefaultCacheManager.DEFAULT_CACHE_NAME);
+   }
+
+   protected AdvancedCache<K, V> createAndWire(Configuration configuration, GlobalComponentRegistry globalComponentRegistry, String cacheName) throws Exception {
+      AdvancedCache<K, V> spi = new CacheDelegate<K, V>(cacheName);
+      bootstrap(cacheName, spi, configuration, globalComponentRegistry);
+      return spi;
+   }
+
+   /**
+    * Bootstraps this factory with a Configuration and a ComponentRegistry.
+    */
+   private void bootstrap(String cacheName, AdvancedCache spi, Configuration configuration, GlobalComponentRegistry globalComponentRegistry) {
+      this.configuration = configuration;
+
+      // injection bootstrap stuff
+      componentRegistry = new ComponentRegistry(cacheName, configuration, spi, globalComponentRegistry);
+      componentRegistry.registerDefaultClassLoader(defaultClassLoader);
+      componentRegistry.registerComponent(spi, AdvancedCache.class);
+      componentRegistry.registerComponent(new CacheJmxRegistration(), CacheJmxRegistration.class);
+   }
+
+   /**
+    * Allows users to specify a default class loader to use for both the construction and running of the cache.
+    *
+    * @param loader class loader to use as a default.
+    */
+   public void setDefaultClassLoader(ClassLoader loader) {
+      this.defaultClassLoader = loader;
+   }
+
+   @Override
+   public <T> T construct(Class<T> componentType) {
+      throw new UnsupportedOperationException("Should never be invoked - this is a bootstrap factory.");
+   }
+}


Property changes on: trunk/core/src/main/java/org/infinispan/factories/InternalCacheFactory.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: trunk/core/src/main/java/org/infinispan/interceptors/ActivationInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/ActivationInterceptor.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/interceptors/ActivationInterceptor.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -10,8 +10,8 @@
 import org.infinispan.factories.annotations.Start;
 import org.infinispan.jmx.annotations.ManagedAttribute;
 import org.infinispan.jmx.annotations.ManagedOperation;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
 
 import java.util.concurrent.atomic.AtomicLong;
 

Modified: trunk/core/src/main/java/org/infinispan/interceptors/CacheLoaderInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/CacheLoaderInterceptor.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/interceptors/CacheLoaderInterceptor.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -27,9 +27,9 @@
 import org.infinispan.commands.write.RemoveCommand;
 import org.infinispan.commands.write.ReplaceCommand;
 import org.infinispan.container.DataContainer;
+import org.infinispan.container.entries.CacheEntry;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.MVCCEntry;
-import org.infinispan.container.entries.CacheEntry;
 import org.infinispan.context.InvocationContext;
 import org.infinispan.factories.EntryFactory;
 import org.infinispan.factories.annotations.Inject;
@@ -37,8 +37,8 @@
 import org.infinispan.interceptors.base.JmxStatsCommandInterceptor;
 import org.infinispan.jmx.annotations.ManagedAttribute;
 import org.infinispan.jmx.annotations.ManagedOperation;
-import org.infinispan.loader.CacheLoader;
-import org.infinispan.loader.CacheLoaderManager;
+import org.infinispan.loaders.CacheLoader;
+import org.infinispan.loaders.CacheLoaderManager;
 import org.infinispan.notifications.cachelistener.CacheNotifier;
 
 import java.util.concurrent.atomic.AtomicLong;
@@ -170,7 +170,7 @@
    protected void sendNotification(Object key, boolean pre, InvocationContext ctx) {
       notifier.notifyCacheEntryLoaded(key, pre, ctx);
    }
-   
+
    private void loadIfNeededAndUpdateStats(InvocationContext ctx, Object key) throws Throwable {
       boolean found = loadIfNeeded(ctx, key);
       if (!found && getStatisticsEnabled()) {

Modified: trunk/core/src/main/java/org/infinispan/interceptors/CacheStoreInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/CacheStoreInterceptor.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/interceptors/CacheStoreInterceptor.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -44,12 +44,12 @@
 import org.infinispan.invocation.Flag;
 import org.infinispan.jmx.annotations.ManagedAttribute;
 import org.infinispan.jmx.annotations.ManagedOperation;
-import org.infinispan.loader.CacheLoaderManager;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.modifications.Clear;
-import org.infinispan.loader.modifications.Modification;
-import org.infinispan.loader.modifications.Remove;
-import org.infinispan.loader.modifications.Store;
+import org.infinispan.loaders.CacheLoaderManager;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.modifications.Clear;
+import org.infinispan.loaders.modifications.Modification;
+import org.infinispan.loaders.modifications.Remove;
+import org.infinispan.loaders.modifications.Store;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.transaction.GlobalTransaction;
 

Modified: trunk/core/src/main/java/org/infinispan/interceptors/PassivationInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/PassivationInterceptor.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/interceptors/PassivationInterceptor.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -10,8 +10,8 @@
 import org.infinispan.interceptors.base.JmxStatsCommandInterceptor;
 import org.infinispan.jmx.annotations.ManagedAttribute;
 import org.infinispan.jmx.annotations.ManagedOperation;
-import org.infinispan.loader.CacheLoaderManager;
-import org.infinispan.loader.CacheStore;
+import org.infinispan.loaders.CacheLoaderManager;
+import org.infinispan.loaders.CacheStore;
 import org.infinispan.notifications.cachelistener.CacheNotifier;
 
 import java.util.concurrent.atomic.AtomicLong;

Modified: trunk/core/src/main/java/org/infinispan/invocation/Flag.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/invocation/Flag.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/invocation/Flag.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -14,7 +14,7 @@
  * is {@link org.infinispan.lifecycle.ComponentStatus#RUNNING}.  May break operation in weird ways!</li> <li>{@link
  * #FORCE_ASYNCHRONOUS} - forces asynchronous network calls where possible</li> <li>{@link #FORCE_SYNCHRONOUS} - forces
  * synchronous network calls where possible</li> <li>{@link #SKIP_CACHE_STORE} - skips storing an entry to any
- * configured {@link org.infinispan.loader.CacheStore}s</li> <li>{@link #FAIL_SILENTLY} - swallows any exceptions,
+ * configured {@link org.infinispan.loaders.CacheStore}s</li> <li>{@link #FAIL_SILENTLY} - swallows any exceptions,
  * logging them instead at a low log level</li> <li>{@link #SKIP_REMOTE_LOOKUP} - when used with DIST cache mode, will
  * skip retrieving a remote value either when doing a get() or exists(), or to provide an overwritten value with a put()
  * or remove().  This could render return values for some operations (such as {@link org.infinispan.Cache#put(Object,

Copied: trunk/core/src/main/java/org/infinispan/loaders (from rev 208, trunk/core/src/main/java/org/infinispan/loader)

Modified: trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoader.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/AbstractCacheLoader.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoader.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,7 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 /**
- * An abstract {@link org.infinispan.loader.CacheLoader} that holds common implementations for some methods
+ * An abstract {@link org.infinispan.loaders.CacheLoader} that holds common implementations for some methods
  *
  * @author Manik Surtani
  * @since 4.0

Modified: trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoaderConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/AbstractCacheLoaderConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoaderConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.infinispan.CacheException;
 import org.infinispan.config.PluggableConfigurationComponent;

Modified: trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/AbstractCacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,9 +1,9 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.infinispan.Cache;
-import org.infinispan.loader.modifications.Modification;
-import org.infinispan.loader.modifications.Remove;
-import org.infinispan.loader.modifications.Store;
+import org.infinispan.loaders.modifications.Modification;
+import org.infinispan.loaders.modifications.Remove;
+import org.infinispan.loaders.modifications.Store;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.marshall.Marshaller;
@@ -20,7 +20,7 @@
 import java.util.concurrent.Executors;
 
 /**
- * An abstract {@link org.infinispan.loader.CacheStore} that holds common implementations for some methods
+ * An abstract {@link org.infinispan.loaders.CacheStore} that holds common implementations for some methods
  *
  * @author Manik Surtani
  * @since 4.0

Modified: trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/AbstractCacheStoreConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStoreConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,15 +1,15 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.infinispan.config.PluggableConfigurationComponent;
-import org.infinispan.loader.decorators.AsyncStoreConfig;
-import org.infinispan.loader.decorators.SingletonStoreConfig;
+import org.infinispan.loaders.decorators.AsyncStoreConfig;
+import org.infinispan.loaders.decorators.SingletonStoreConfig;
 import org.infinispan.util.Util;
 
 /**
  * Configures {@link AbstractCacheStore}.  This allows you to tune a number of characteristics of the {@link
  * AbstractCacheStore}.
  * <p/>
- * <ul> <li><tt>purgeSynchronously</tt> - whether {@link org.infinispan.loader.CacheStore#purgeExpired()} calls happen
+ * <ul> <li><tt>purgeSynchronously</tt> - whether {@link org.infinispan.loaders.CacheStore#purgeExpired()} calls happen
  * synchronously or not.  By default, this is set to <tt>false</tt>.</li>
  * <p/>
  * </ul>

Modified: trunk/core/src/main/java/org/infinispan/loaders/CacheLoader.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/CacheLoader.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/CacheLoader.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.infinispan.Cache;
 import org.infinispan.container.entries.InternalCacheEntry;
@@ -15,8 +15,8 @@
 public interface CacheLoader {
 
    /**
-    * Used to initialize a cache loader.  Typically invoked by the {@link org.infinispan.loader.CacheLoaderManager} when
-    * setting up cache loaders.
+    * Used to initialize a cache loader.  Typically invoked by the {@link org.infinispan.loaders.CacheLoaderManager}
+    * when setting up cache loaders.
     *
     * @param config the cache loader configuration bean
     * @param cache  cache associated with this cache loader. Implementations may use this to determine cache name when
@@ -56,8 +56,8 @@
 
 
    /**
-    * @return the type of the {@link org.infinispan.loader.CacheLoaderConfig} bean used to configure this implementation of
-    *         {@link org.infinispan.loader.CacheLoader}
+    * @return the type of the {@link org.infinispan.loaders.CacheLoaderConfig} bean used to configure this
+    *         implementation of {@link org.infinispan.loaders.CacheLoader}
     */
    Class<? extends CacheLoaderConfig> getConfigurationClass();
 }

Modified: trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/CacheLoaderConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 /**
  * Configures individual cache loaders

Modified: trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderException.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/CacheLoaderException.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderException.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 /**
  * An exception thrown by a {@link CacheLoader} implementation if there are problems reading from a loader.

Modified: trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderManager.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/CacheLoaderManager.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderManager.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.infinispan.lifecycle.Lifecycle;
 

Modified: trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderManagerImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/CacheLoaderManagerImpl.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderManagerImpl.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.infinispan.Cache;
 import org.infinispan.CacheException;
@@ -10,11 +10,11 @@
 import org.infinispan.factories.annotations.Start;
 import org.infinispan.factories.annotations.Stop;
 import static org.infinispan.invocation.Flag.SKIP_CACHE_STATUS_CHECK;
-import org.infinispan.loader.decorators.AsyncStore;
-import org.infinispan.loader.decorators.ChainingCacheStore;
-import org.infinispan.loader.decorators.ReadOnlyStore;
-import org.infinispan.loader.decorators.SingletonStore;
-import org.infinispan.loader.decorators.SingletonStoreConfig;
+import org.infinispan.loaders.decorators.AsyncStore;
+import org.infinispan.loaders.decorators.ChainingCacheStore;
+import org.infinispan.loaders.decorators.ReadOnlyStore;
+import org.infinispan.loaders.decorators.SingletonStore;
+import org.infinispan.loaders.decorators.SingletonStoreConfig;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.marshall.Marshaller;

Modified: trunk/core/src/main/java/org/infinispan/loaders/CacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/CacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/CacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,7 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.modifications.Modification;
+import org.infinispan.loaders.modifications.Modification;
 
 import javax.transaction.Transaction;
 import java.io.ObjectInput;
@@ -28,8 +28,8 @@
    /**
     * Writes contents of the stream to the store.  Implementations should expect that the stream contains data in an
     * implementation-specific format, typically generated using {@link #toStream(java.io.ObjectOutput)}.  While not a
-    * requirement, it is recommended that implementations make use of the {@link org.infinispan.marshall.Marshaller} when
-    * dealing with the stream to make use of efficient marshalling.
+    * requirement, it is recommended that implementations make use of the {@link org.infinispan.marshall.Marshaller}
+    * when dealing with the stream to make use of efficient marshalling.
     * <p/>
     * It is imperative that implementations <b><i>do not</i></b> close the stream after finishing with it.
     * <p/>

Modified: trunk/core/src/main/java/org/infinispan/loaders/CacheStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/CacheStoreConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/CacheStoreConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,7 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
-import org.infinispan.loader.decorators.SingletonStoreConfig;
-import org.infinispan.loader.decorators.AsyncStoreConfig;
+import org.infinispan.loaders.decorators.AsyncStoreConfig;
+import org.infinispan.loaders.decorators.SingletonStoreConfig;
 
 /**
  * Defines config elements for all CacheStoreConfigs.
@@ -9,7 +9,7 @@
  * @author Mircea.Markus at jboss.com
  */
 public interface CacheStoreConfig extends CacheLoaderConfig, Cloneable {
-   
+
    boolean isPurgeOnStartup();
 
    boolean isFetchPersistentState();

Modified: trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/LockSupportCacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.infinispan.Cache;
 import org.infinispan.container.entries.InternalCacheEntry;
@@ -12,7 +12,7 @@
 import java.util.Set;
 
 /**
- * This class extends {@link org.infinispan.loader.AbstractCacheStore} adding lock support for consistently acceessing
+ * This class extends {@link org.infinispan.loaders.AbstractCacheStore} adding lock support for consistently acceessing
  * stored data.
  * <p/>
  * In-memory locking is needed by aggregation operations(e.g. loadAll, toStream, fromStream) to make sure that
@@ -21,7 +21,7 @@
  * <p/>
  * Locking is based on a {@link org.infinispan.lock.StripedLock}. You can tune the concurrency level of the striped lock
  * (see the Javadocs of StripedLock for details on what this is) by using the {@link
- * org.infinispan.loader.LockSupportCacheStore#setLockConcurrencyLevel(int)} setter.
+ * org.infinispan.loaders.LockSupportCacheStore#setLockConcurrencyLevel(int)} setter.
  * <p/>
  *
  * @author Mircea.Markus at jboss.com

Modified: trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/LockSupportCacheStoreConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStoreConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 /**
  * Adds configuration support for {@link LockSupportCacheStore}.

Modified: trunk/core/src/main/java/org/infinispan/loaders/bucket/Bucket.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/bucket/Bucket.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/bucket/Bucket.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.bucket;
+package org.infinispan.loaders.bucket;
 
 import org.infinispan.container.entries.InternalCacheEntry;
 
@@ -6,10 +6,10 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
-import java.util.Collection;
 
 /**
  * A bucket is where entries are stored.

Modified: trunk/core/src/main/java/org/infinispan/loaders/bucket/BucketBasedCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/bucket/BucketBasedCacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/bucket/BucketBasedCacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,8 +1,8 @@
-package org.infinispan.loader.bucket;
+package org.infinispan.loaders.bucket;
 
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.LockSupportCacheStore;
 import org.infinispan.container.entries.InternalCacheEntry;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.LockSupportCacheStore;
 
 /**
  * Base class for cache store that want to use the 'buckets approach' for storing data.
@@ -77,8 +77,8 @@
    }
 
    /**
-    * For {@link org.infinispan.loader.bucket.BucketBasedCacheStore}s the lock should be acquired at bucket level. So we're
-    * locking based on the hashCode of the key, as all keys having same hascode will be mapped to same bucket.
+    * For {@link org.infinispan.loaders.bucket.BucketBasedCacheStore}s the lock should be acquired at bucket level. So
+    * we're locking based on the hashCode of the key, as all keys having same hascode will be mapped to same bucket.
     */
    protected String getLockFromKey(Object key) {
       return String.valueOf(key.hashCode());

Modified: trunk/core/src/main/java/org/infinispan/loaders/cluster/ClusterCacheLoader.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/cluster/ClusterCacheLoader.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/cluster/ClusterCacheLoader.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.cluster;
+package org.infinispan.loaders.cluster;
 
 import org.infinispan.AdvancedCache;
 import org.infinispan.Cache;
@@ -6,9 +6,9 @@
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.context.InvocationContext;
 import org.infinispan.lifecycle.ComponentStatus;
-import org.infinispan.loader.AbstractCacheLoader;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheLoaderException;
+import org.infinispan.loaders.AbstractCacheLoader;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheLoaderException;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.marshall.Marshaller;

Modified: trunk/core/src/main/java/org/infinispan/loaders/cluster/ClusterCacheLoaderConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/cluster/ClusterCacheLoaderConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/cluster/ClusterCacheLoaderConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,9 +1,9 @@
-package org.infinispan.loader.cluster;
+package org.infinispan.loaders.cluster;
 
-import org.infinispan.loader.AbstractCacheLoaderConfig;
+import org.infinispan.loaders.AbstractCacheLoaderConfig;
 
 /**
- * Configuration for {@link org.infinispan.loader.cluster.ClusterCacheLoader}.
+ * Configuration for {@link org.infinispan.loaders.cluster.ClusterCacheLoader}.
  *
  * @author Mircea.Markus at jboss.com
  */

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/AbstractDelegatingStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/decorators/AbstractDelegatingStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/AbstractDelegatingStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,11 +1,11 @@
-package org.infinispan.loader.decorators;
+package org.infinispan.loaders.decorators;
 
 import org.infinispan.Cache;
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.modifications.Modification;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.modifications.Modification;
 import org.infinispan.marshall.Marshaller;
 
 import javax.transaction.Transaction;

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/decorators/AsyncStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,14 +1,14 @@
-package org.infinispan.loader.decorators;
+package org.infinispan.loaders.decorators;
 
 import org.infinispan.CacheException;
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.modifications.Clear;
-import org.infinispan.loader.modifications.Modification;
-import org.infinispan.loader.modifications.PurgeExpired;
-import org.infinispan.loader.modifications.Remove;
-import org.infinispan.loader.modifications.Store;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.modifications.Clear;
+import org.infinispan.loaders.modifications.Modification;
+import org.infinispan.loaders.modifications.PurgeExpired;
+import org.infinispan.loaders.modifications.Remove;
+import org.infinispan.loaders.modifications.Store;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/decorators/AsyncStoreConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStoreConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.decorators;
+package org.infinispan.loaders.decorators;
 
 import org.infinispan.config.AbstractNamedCacheConfigurationBean;
 

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/ChainingCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/decorators/ChainingCacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/ChainingCacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,13 +1,13 @@
-package org.infinispan.loader.decorators;
+package org.infinispan.loaders.decorators;
 
 import org.infinispan.Cache;
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.CacheLoader;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.CacheStoreConfig;
-import org.infinispan.loader.modifications.Modification;
+import org.infinispan.loaders.CacheLoader;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.CacheStoreConfig;
+import org.infinispan.loaders.modifications.Modification;
 import org.infinispan.marshall.Marshaller;
 
 import javax.transaction.Transaction;

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/ReadOnlyStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/decorators/ReadOnlyStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/ReadOnlyStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,15 +1,15 @@
-package org.infinispan.loader.decorators;
+package org.infinispan.loaders.decorators;
 
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.modifications.Modification;
 import org.infinispan.container.entries.InternalCacheEntry;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.modifications.Modification;
 
 import javax.transaction.Transaction;
 import java.io.ObjectInput;
 import java.util.List;
 
 /**
- * A decorator that makes the underlying store a {@link org.infinispan.loader.CacheLoader}, i.e., suppressing all write
+ * A decorator that makes the underlying store a {@link org.infinispan.loaders.CacheLoader}, i.e., suppressing all write
  * methods.
  *
  * @author Manik Surtani

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/decorators/SingletonStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,11 +1,11 @@
-package org.infinispan.loader.decorators;
+package org.infinispan.loaders.decorators;
 
 import org.infinispan.Cache;
 import org.infinispan.container.DataContainer;
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.modifications.Modification;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.modifications.Modification;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.manager.CacheManager;

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/decorators/SingletonStoreConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStoreConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.decorators;
+package org.infinispan.loaders.decorators;
 
 import org.infinispan.config.AbstractNamedCacheConfigurationBean;
 

Modified: trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/file/FileCacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,12 +1,12 @@
-package org.infinispan.loader.file;
+package org.infinispan.loaders.file;
 
 import org.infinispan.Cache;
 import org.infinispan.config.ConfigurationException;
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.bucket.Bucket;
-import org.infinispan.loader.bucket.BucketBasedCacheStore;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.bucket.Bucket;
+import org.infinispan.loaders.bucket.BucketBasedCacheStore;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.marshall.Marshaller;
@@ -16,8 +16,8 @@
 import java.util.Set;
 
 /**
- * A filesystem-based implementation of a {@link org.infinispan.loader.bucket.BucketBasedCacheStore}.  This file store stores stuff in the
- * following format: <tt>/{location}/cache name/bucket_number.bucket</tt>
+ * A filesystem-based implementation of a {@link org.infinispan.loaders.bucket.BucketBasedCacheStore}.  This file store
+ * stores stuff in the following format: <tt>/{location}/cache name/bucket_number.bucket</tt>
  *
  * @author Manik Surtani
  * @author Mircea.Markus at jboss.com
@@ -25,193 +25,194 @@
  */
 public class FileCacheStore extends BucketBasedCacheStore {
 
-    private static final Log log = LogFactory.getLog(FileCacheStore.class);
-    private int streamBufferSize;
+   private static final Log log = LogFactory.getLog(FileCacheStore.class);
+   private int streamBufferSize;
 
 
-    FileCacheStoreConfig config;
-    Cache cache;
-    File root;
+   FileCacheStoreConfig config;
+   Cache cache;
+   File root;
 
-    /**
-     * @return root directory where all files for this {@link org.infinispan.loader.CacheStore CacheStore} are written.
-     */
-    public File getRoot() {
-        return root;
-    }
+   /**
+    * @return root directory where all files for this {@link org.infinispan.loaders.CacheStore CacheStore} are
+    *         written.
+    */
+   public File getRoot() {
+      return root;
+   }
 
-    public void init(CacheLoaderConfig config, Cache cache, Marshaller m) {
-        super.init(config, cache, m);
-        this.config = (FileCacheStoreConfig) config;
-        this.cache = cache;
-    }
+   public void init(CacheLoaderConfig config, Cache cache, Marshaller m) {
+      super.init(config, cache, m);
+      this.config = (FileCacheStoreConfig) config;
+      this.cache = cache;
+   }
 
-    protected Set<InternalCacheEntry> loadAllLockSafe() throws CacheLoaderException {
-        Set<InternalCacheEntry> result = new HashSet<InternalCacheEntry>();
-        for (File bucketFile : root.listFiles()) {
-            Bucket bucket = loadBucket(bucketFile);
-            if (bucket != null) {
-                if (bucket.removeExpiredEntries()) {
-                    saveBucket(bucket);
-                }
-                result.addAll(bucket.getStoredEntries());
+   protected Set<InternalCacheEntry> loadAllLockSafe() throws CacheLoaderException {
+      Set<InternalCacheEntry> result = new HashSet<InternalCacheEntry>();
+      for (File bucketFile : root.listFiles()) {
+         Bucket bucket = loadBucket(bucketFile);
+         if (bucket != null) {
+            if (bucket.removeExpiredEntries()) {
+               saveBucket(bucket);
             }
-        }
-        return result;
-    }
+            result.addAll(bucket.getStoredEntries());
+         }
+      }
+      return result;
+   }
 
-    protected void fromStreamLockSafe(ObjectInput objectInput) throws CacheLoaderException {
-        try {
-            int numFiles = objectInput.readInt();
-            byte[] buffer = new byte[streamBufferSize];
-            int bytesRead, totalBytesRead = 0;
-            for (int i = 0; i < numFiles; i++) {
-                String fName = (String) objectInput.readObject();
-                int numBytes = objectInput.readInt();
-                FileOutputStream fos = new FileOutputStream(root.getAbsolutePath() + File.separator + fName);
-                BufferedOutputStream bos = new BufferedOutputStream(fos, streamBufferSize);
+   protected void fromStreamLockSafe(ObjectInput objectInput) throws CacheLoaderException {
+      try {
+         int numFiles = objectInput.readInt();
+         byte[] buffer = new byte[streamBufferSize];
+         int bytesRead, totalBytesRead = 0;
+         for (int i = 0; i < numFiles; i++) {
+            String fName = (String) objectInput.readObject();
+            int numBytes = objectInput.readInt();
+            FileOutputStream fos = new FileOutputStream(root.getAbsolutePath() + File.separator + fName);
+            BufferedOutputStream bos = new BufferedOutputStream(fos, streamBufferSize);
 
-                while (numBytes > totalBytesRead) {
-                    bytesRead = objectInput.read(buffer, 0, streamBufferSize);
-                    if (bytesRead == -1) break;
-                    totalBytesRead += bytesRead;
-                    bos.write(buffer, 0, bytesRead);
-                }
-                bos.flush();
-                safeClose(bos);
-                fos.flush();
-                safeClose(fos);
-                totalBytesRead = 0;
+            while (numBytes > totalBytesRead) {
+               bytesRead = objectInput.read(buffer, 0, streamBufferSize);
+               if (bytesRead == -1) break;
+               totalBytesRead += bytesRead;
+               bos.write(buffer, 0, bytesRead);
             }
-        } catch (IOException e) {
-            throw new CacheLoaderException("I/O error", e);
-        } catch (ClassNotFoundException e) {
-            throw new CacheLoaderException("Unexpected expcetion", e);
-        }
-    }
+            bos.flush();
+            safeClose(bos);
+            fos.flush();
+            safeClose(fos);
+            totalBytesRead = 0;
+         }
+      } catch (IOException e) {
+         throw new CacheLoaderException("I/O error", e);
+      } catch (ClassNotFoundException e) {
+         throw new CacheLoaderException("Unexpected expcetion", e);
+      }
+   }
 
-    protected void toStreamLockSafe(ObjectOutput objectOutput) throws CacheLoaderException {
-        try {
-            File[] files = root.listFiles();
-            objectOutput.writeInt(files.length);
-            byte[] buffer = new byte[streamBufferSize];
-            for (File file : files) {
-                int bytesRead, totalBytesRead = 0;
-                FileInputStream fileInStream = new FileInputStream(file);
-                int sz = fileInStream.available();
-                BufferedInputStream bis = new BufferedInputStream(fileInStream);
-                objectOutput.writeObject(file.getName());
-                objectOutput.writeInt(sz);
+   protected void toStreamLockSafe(ObjectOutput objectOutput) throws CacheLoaderException {
+      try {
+         File[] files = root.listFiles();
+         objectOutput.writeInt(files.length);
+         byte[] buffer = new byte[streamBufferSize];
+         for (File file : files) {
+            int bytesRead, totalBytesRead = 0;
+            FileInputStream fileInStream = new FileInputStream(file);
+            int sz = fileInStream.available();
+            BufferedInputStream bis = new BufferedInputStream(fileInStream);
+            objectOutput.writeObject(file.getName());
+            objectOutput.writeInt(sz);
 
-                while (sz > totalBytesRead) {
-                    bytesRead = bis.read(buffer, 0, streamBufferSize);
-                    if (bytesRead == -1) break;
-                    totalBytesRead += bytesRead;
-                    objectOutput.write(buffer, 0, bytesRead);
-                }
-                bis.close();
-                fileInStream.close();
+            while (sz > totalBytesRead) {
+               bytesRead = bis.read(buffer, 0, streamBufferSize);
+               if (bytesRead == -1) break;
+               totalBytesRead += bytesRead;
+               objectOutput.write(buffer, 0, bytesRead);
             }
-        } catch (IOException e) {
-            throw new CacheLoaderException("I/O expcetion while generating stream", e);
-        }
-    }
+            bis.close();
+            fileInStream.close();
+         }
+      } catch (IOException e) {
+         throw new CacheLoaderException("I/O expcetion while generating stream", e);
+      }
+   }
 
-    protected void clearLockSafe() throws CacheLoaderException {
-        File[] toDelete = root.listFiles();
-        if (toDelete == null) {
-            return;
-        }
-        for (File f : toDelete) {
-            f.delete();
-            if (f.exists()) log.warn("Had problems removing file {0}", f);
-        }
-    }
+   protected void clearLockSafe() throws CacheLoaderException {
+      File[] toDelete = root.listFiles();
+      if (toDelete == null) {
+         return;
+      }
+      for (File f : toDelete) {
+         f.delete();
+         if (f.exists()) log.warn("Had problems removing file {0}", f);
+      }
+   }
 
-    protected void purgeInternal() throws CacheLoaderException {
-        loadAll();
-    }
+   protected void purgeInternal() throws CacheLoaderException {
+      loadAll();
+   }
 
-    protected Bucket loadBucket(String bucketName) throws CacheLoaderException {
-        return loadBucket(new File(root, bucketName));
-    }
+   protected Bucket loadBucket(String bucketName) throws CacheLoaderException {
+      return loadBucket(new File(root, bucketName));
+   }
 
-    protected Bucket loadBucket(File bucketFile) throws CacheLoaderException {
-        Bucket bucket = null;
-        if (bucketFile.exists()) {
-            if (log.isTraceEnabled()) log.trace("Found bucket file: '" + bucketFile + "'");
-            FileInputStream is = null;
-            ObjectInputStream ois = null;
-            try {
-                is = new FileInputStream(bucketFile);
-                ois = new ObjectInputStream(is);
-                bucket = (Bucket) ois.readObject();
-            } catch (Exception e) {
-                String message = "Error while reading from file: " + bucketFile.getAbsoluteFile();
-                log.error(message, e);
-                throw new CacheLoaderException(message, e);
-            } finally {
-                safeClose(ois);
-                safeClose(is);
-            }
-        }
-        if (bucket != null) {
-            bucket.setBucketName(bucketFile.getName());
-        }
-        return bucket;
-    }
+   protected Bucket loadBucket(File bucketFile) throws CacheLoaderException {
+      Bucket bucket = null;
+      if (bucketFile.exists()) {
+         if (log.isTraceEnabled()) log.trace("Found bucket file: '" + bucketFile + "'");
+         FileInputStream is = null;
+         ObjectInputStream ois = null;
+         try {
+            is = new FileInputStream(bucketFile);
+            ois = new ObjectInputStream(is);
+            bucket = (Bucket) ois.readObject();
+         } catch (Exception e) {
+            String message = "Error while reading from file: " + bucketFile.getAbsoluteFile();
+            log.error(message, e);
+            throw new CacheLoaderException(message, e);
+         } finally {
+            safeClose(ois);
+            safeClose(is);
+         }
+      }
+      if (bucket != null) {
+         bucket.setBucketName(bucketFile.getName());
+      }
+      return bucket;
+   }
 
-    protected void insertBucket(Bucket bucket) throws CacheLoaderException {
-        saveBucket(bucket);
-    }
+   protected void insertBucket(Bucket bucket) throws CacheLoaderException {
+      saveBucket(bucket);
+   }
 
-    public void saveBucket(Bucket b) throws CacheLoaderException {
-        File f = new File(root, b.getBucketName());
-        if (f.exists()) {
-            if (!f.delete()) log.warn("Had problems removing file {0}", f);
-        } else if (log.isTraceEnabled()) {
-            log.trace("Successfully deleted file: '" + f.getName() + "'");
-        }
+   public void saveBucket(Bucket b) throws CacheLoaderException {
+      File f = new File(root, b.getBucketName());
+      if (f.exists()) {
+         if (!f.delete()) log.warn("Had problems removing file {0}", f);
+      } else if (log.isTraceEnabled()) {
+         log.trace("Successfully deleted file: '" + f.getName() + "'");
+      }
 
-        if (!b.getEntries().isEmpty()) {
-            FileOutputStream fos = null;
-            ObjectOutputStream oos = null;
-            try {
-                fos = new FileOutputStream(f);
-                oos = new ObjectOutputStream(fos);
-                oos.writeObject(b);
-                oos.flush();
-                fos.flush();
-            } catch (IOException ex) {
-                log.error("Exception while saving bucket " + b, ex);
-                throw new CacheLoaderException(ex);
-            }
-            finally {
-                safeClose(oos);
-                safeClose(fos);
-            }
-        }
-    }
+      if (!b.getEntries().isEmpty()) {
+         FileOutputStream fos = null;
+         ObjectOutputStream oos = null;
+         try {
+            fos = new FileOutputStream(f);
+            oos = new ObjectOutputStream(fos);
+            oos.writeObject(b);
+            oos.flush();
+            fos.flush();
+         } catch (IOException ex) {
+            log.error("Exception while saving bucket " + b, ex);
+            throw new CacheLoaderException(ex);
+         }
+         finally {
+            safeClose(oos);
+            safeClose(fos);
+         }
+      }
+   }
 
-    public Class<? extends CacheLoaderConfig> getConfigurationClass() {
-        return FileCacheStoreConfig.class;
-    }
+   public Class<? extends CacheLoaderConfig> getConfigurationClass() {
+      return FileCacheStoreConfig.class;
+   }
 
-    public void start() throws CacheLoaderException {
-        super.start();
-        String location = config.getLocation();
-        if (location == null || location.trim().length() == 0)
-            location = "Infinispan-FileCacheStore"; // use relative path!
-        location += File.separator + cache.getName();
-        root = new File(location);
-        root.mkdirs();
-        if (!root.exists()) {
-            throw new ConfigurationException("Directory " + root.getAbsolutePath() + " does not exist and cannot be created!");
-        }
-        streamBufferSize = config.getStreamBufferSize();
-    }
+   public void start() throws CacheLoaderException {
+      super.start();
+      String location = config.getLocation();
+      if (location == null || location.trim().length() == 0)
+         location = "Infinispan-FileCacheStore"; // use relative path!
+      location += File.separator + cache.getName();
+      root = new File(location);
+      root.mkdirs();
+      if (!root.exists()) {
+         throw new ConfigurationException("Directory " + root.getAbsolutePath() + " does not exist and cannot be created!");
+      }
+      streamBufferSize = config.getStreamBufferSize();
+   }
 
-    public Bucket loadBucketContainingKey(String key) throws CacheLoaderException {
-        return loadBucket(key.hashCode() + "");
-    }
+   public Bucket loadBucketContainingKey(String key) throws CacheLoaderException {
+      return loadBucket(key.hashCode() + "");
+   }
 }

Modified: trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/file/FileCacheStoreConfig.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStoreConfig.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,15 +1,15 @@
-package org.infinispan.loader.file;
+package org.infinispan.loaders.file;
 
-import org.infinispan.loader.LockSupportCacheStoreConfig;
+import org.infinispan.loaders.LockSupportCacheStoreConfig;
 
 /**
- * Configures {@link org.infinispan.loader.file.FileCacheStore}.  This allows you to tune a number of characteristics of
- * the {@link FileCacheStore}.
+ * Configures {@link org.infinispan.loaders.file.FileCacheStore}.  This allows you to tune a number of characteristics
+ * of the {@link FileCacheStore}.
  * <p/>
  * <ul> <li><tt>location</tt> - a location on disk where the store can write internal files.  This defaults to
  * <tt>Horizon-FileCacheStore</tt> in the current working directory.</li> <li><tt>purgeSynchronously</tt> - whether
- * {@link org.infinispan.loader.CacheStore#purgeExpired()} calls happen synchronously or not.  By default, this is set to
- * <tt>false</tt>.</li> <li><tt>streamBufferSize</tt> - when writing state to disk, a buffered stream is used.  This
+ * {@link org.infinispan.loaders.CacheStore#purgeExpired()} calls happen synchronously or not.  By default, this is set
+ * to <tt>false</tt>.</li> <li><tt>streamBufferSize</tt> - when writing state to disk, a buffered stream is used.  This
  * parameter allows you to tune the buffer size.  Larger buffers are usually faster but take up more (temporary) memory,
  * resulting in more gc. By default, this is set to <tt>8192</tt>.</li> <li><tt>lockConcurrencyLevel</tt> - locking
  * granularity is per file bucket.  This setting defines the number of shared locks to use.  The more locks you have,

Modified: trunk/core/src/main/java/org/infinispan/loaders/modifications/Clear.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/modifications/Clear.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/modifications/Clear.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,7 @@
-package org.infinispan.loader.modifications;
+package org.infinispan.loaders.modifications;
 
 /**
- * Represents a {@link org.infinispan.loader.CacheStore#clear()} modification
+ * Represents a {@link org.infinispan.loaders.CacheStore#clear()} modification
  *
  * @author Manik Surtani
  * @since 4.0

Modified: trunk/core/src/main/java/org/infinispan/loaders/modifications/Modification.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/modifications/Modification.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/modifications/Modification.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,7 @@
-package org.infinispan.loader.modifications;
+package org.infinispan.loaders.modifications;
 
 /**
- * An interface that defines a {@link org.infinispan.loader.CacheStore} modification
+ * An interface that defines a {@link org.infinispan.loaders.CacheStore} modification
  *
  * @author Manik Surtani
  * @since 4.0

Modified: trunk/core/src/main/java/org/infinispan/loaders/modifications/PurgeExpired.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/modifications/PurgeExpired.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/modifications/PurgeExpired.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader.modifications;
+package org.infinispan.loaders.modifications;
 
 public class PurgeExpired implements Modification {
    public Type getType() {

Modified: trunk/core/src/main/java/org/infinispan/loaders/modifications/Remove.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/modifications/Remove.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/modifications/Remove.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,7 @@
-package org.infinispan.loader.modifications;
+package org.infinispan.loaders.modifications;
 
 /**
- * Represents a {@link org.infinispan.loader.CacheStore#remove(Object)} modification
+ * Represents a {@link org.infinispan.loaders.CacheStore#remove(Object)} modification
  *
  * @author Manik Surtani
  * @since 4.0

Modified: trunk/core/src/main/java/org/infinispan/loaders/modifications/Store.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loader/modifications/Store.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/loaders/modifications/Store.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,9 +1,9 @@
-package org.infinispan.loader.modifications;
+package org.infinispan.loaders.modifications;
 
 import org.infinispan.container.entries.InternalCacheEntry;
 
 /**
- * Modification representing {@link org.infinispan.loader.CacheStore#store(org.infinispan.container.entries.InternalCacheEntry)}
+ * Modification representing {@link org.infinispan.loaders.CacheStore#store(org.infinispan.container.entries.InternalCacheEntry)}
  *
  * @author Manik Surtani
  * @since 4.0

Modified: trunk/core/src/main/java/org/infinispan/lock/StripedLock.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/lock/StripedLock.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/lock/StripedLock.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -32,7 +32,7 @@
 
 /**
  * A simple implementation of lock striping, using cache entry keys to lock on, primarily used to help make {@link
- * org.infinispan.loader.CacheLoader} implemtations thread safe.
+ * org.infinispan.loaders.CacheLoader} implemtations thread safe.
  * <p/>
  * Backed by a set of {@link java.util.concurrent.locks.ReentrantReadWriteLock} instances, and using the key hashcodes
  * to determine buckets.
@@ -188,10 +188,10 @@
       for (int i = 0; i < sharedLocks.length; i++) {
          Lock toAcquire = exclusive ? sharedLocks[i].writeLock() : sharedLocks[i].readLock();
          try {
-             success = toAcquire.tryLock(timeout, TimeUnit.MILLISECONDS);
+            success = toAcquire.tryLock(timeout, TimeUnit.MILLISECONDS);
             if (!success) {
                if (log.isTraceEnabled())
-                  log.trace("Could not aquire lock on " + toAcquire + ". Exclusive?"  + exclusive);
+                  log.trace("Could not aquire lock on " + toAcquire + ". Exclusive?" + exclusive);
                break;
             }
          } catch (InterruptedException e) {

Modified: trunk/core/src/main/java/org/infinispan/manager/CacheManager.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/manager/CacheManager.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/manager/CacheManager.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -24,13 +24,14 @@
  * Constructing a <tt>CacheManager</tt> is done via one of its constructors, which optionally take in a {@link
  * org.infinispan.config.Configuration} or a path or URL to a configuration XML file.
  * <p/>
- * Lifecycle - <tt>CacheManager</tt>s have a lifecycle (it implements {@link org.infinispan.lifecycle.Lifecycle}) and the
- * default constructors also call {@link #start()}.  Overloaded versions of the constructors are available, that do not
- * start the <tt>CacheManager</tt>, although it must be kept in mind that <tt>CacheManager</tt>s need to be started
+ * Lifecycle - <tt>CacheManager</tt>s have a lifecycle (it implements {@link org.infinispan.lifecycle.Lifecycle}) and
+ * the default constructors also call {@link #start()}.  Overloaded versions of the constructors are available, that do
+ * not start the <tt>CacheManager</tt>, although it must be kept in mind that <tt>CacheManager</tt>s need to be started
  * before they can be used to create <tt>Cache</tt> instances.
  * <p/>
  * Once constructed, <tt>CacheManager</tt>s should be made available to any component that requires a <tt>Cache</tt>,
- * via JNDI or via some other mechanism such as an IoC container.
+ * via <a href="http://en.wikipedia.org/wiki/Java_Naming_and_Directory_Interface">JNDI</a> or via some other mechanism
+ * such as an <a href="http://en.wikipedia.org/wiki/Dependency_injection">dependency injection</a> framework.
  * <p/>
  * You obtain <tt>Cache</tt> instances from the <tt>CacheManager</tt> by using one of the overloaded
  * <tt>getCache()</tt>, methods.  Note that with <tt>getCache()</tt>, there is no guarantee that the instance you get is

Modified: trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -28,8 +28,8 @@
 import org.infinispan.config.GlobalConfiguration;
 import org.infinispan.config.parsing.XmlConfigurationParser;
 import org.infinispan.config.parsing.XmlConfigurationParserImpl;
-import org.infinispan.factories.DefaultCacheFactory;
 import org.infinispan.factories.GlobalComponentRegistry;
+import org.infinispan.factories.InternalCacheFactory;
 import org.infinispan.factories.annotations.NonVolatile;
 import org.infinispan.factories.scopes.Scope;
 import org.infinispan.factories.scopes.Scopes;
@@ -335,7 +335,7 @@
       }
 
       c.assertValid();
-      Cache cache = new DefaultCacheFactory().createCache(c, globalComponentRegistry, cacheName);
+      Cache cache = new InternalCacheFactory().createCache(c, globalComponentRegistry, cacheName);
       Cache other = caches.putIfAbsent(cacheName, cache);
       if (other == null) {
          cache.start();

Modified: trunk/core/src/main/java/org/infinispan/marshall/Marshaller.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/marshall/Marshaller.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/marshall/Marshaller.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -34,10 +34,11 @@
 /**
  * A marshaller is a class that is able to marshall and unmarshall objects efficiently.
  * <p/>
- * The reason why this is implemented specially in Infinispan rather than resorting to Java serialization or even the more
- * efficient JBoss serialization is that a lot of efficiency can be gained when a majority of the serialization that
- * occurs has to do with a small set of known types such as {@link org.infinispan.transaction.GlobalTransaction} or {@link
- * org.infinispan.commands.ReplicableCommand}, and class type information can be replaced with simple magic numbers.
+ * The reason why this is implemented specially in Infinispan rather than resorting to Java serialization or even the
+ * more efficient JBoss serialization is that a lot of efficiency can be gained when a majority of the serialization
+ * that occurs has to do with a small set of known types such as {@link org.infinispan.transaction.GlobalTransaction} or
+ * {@link org.infinispan.commands.ReplicableCommand}, and class type information can be replaced with simple magic
+ * numbers.
  * <p/>
  * Unknown types (typically user data) falls back to JBoss serialization.
  * <p/>
@@ -48,9 +49,9 @@
  * This interface is used to marshall {@link org.infinispan.commands.ReplicableCommand}s, their parameters and their
  * response values.
  * <p/>
- * The interface is also used by the {@link org.infinispan.loader.CacheStore} framework to efficiently serialize data to be
- * persisted, as well as the {@link org.infinispan.statetransfer.StateTransferManager} when serializing the cache for
- * transferring state en-masse.
+ * The interface is also used by the {@link org.infinispan.loaders.CacheStore} framework to efficiently serialize data
+ * to be persisted, as well as the {@link org.infinispan.statetransfer.StateTransferManager} when serializing the cache
+ * for transferring state en-masse.
  *
  * @author <a href="mailto://manik@jboss.org">Manik Surtani</a>
  * @author Galder Zamarreño
@@ -58,27 +59,25 @@
  */
 @Scope(Scopes.GLOBAL)
 public interface Marshaller {
-   
+
    /**
-    * Create and open a new ObjectOutput for the given output stream. This 
-    * method should be used for opening data outpus when multiple 
-    * objectToObjectStream() calls will be made before the stream is closed
-    * 
-    * @param os output stream 
+    * Create and open a new ObjectOutput for the given output stream. This method should be used for opening data outpus
+    * when multiple objectToObjectStream() calls will be made before the stream is closed
+    *
+    * @param os output stream
     * @return ObjectOutput to write to
     * @throws IOException
     */
    ObjectOutput startObjectOutput(OutputStream os) throws IOException;
-   
+
    /**
-    * Finish using the given ObjectOutput. After opening a ObjectOutput and 
-    * calling objectToObjectStream() mutliple times, use this method to flush 
-    * the data and close if necessary
-    * 
+    * Finish using the given ObjectOutput. After opening a ObjectOutput and calling objectToObjectStream() mutliple
+    * times, use this method to flush the data and close if necessary
+    *
     * @param oo data output that finished using
     */
    void finishObjectOutput(ObjectOutput oo);
-   
+
    /**
     * Marshalls an object to a given {@link java.io.ObjectOutput}
     *
@@ -88,25 +87,23 @@
    void objectToObjectStream(Object obj, ObjectOutput out) throws IOException;
 
    /**
-    * Create and open a new ObjectInput for the given input stream. This 
-    * method should be used for opening data inputs when multiple 
-    * objectFromObjectStream() calls will be made before the stream is closed.
-    * 
-    * @param is input stream 
+    * Create and open a new ObjectInput for the given input stream. This method should be used for opening data inputs
+    * when multiple objectFromObjectStream() calls will be made before the stream is closed.
+    *
+    * @param is input stream
     * @return ObjectInput to read from
     * @throws IOException
     */
    ObjectInput startObjectInput(InputStream is) throws IOException;
-   
+
    /**
-    * Finish using the given ObjectInput. After opening a ObjectInput and 
-    * calling objectFromObjectStream() mutliple times, use this method to flush 
-    * the data and close if necessary
-    * 
+    * Finish using the given ObjectInput. After opening a ObjectInput and calling objectFromObjectStream() mutliple
+    * times, use this method to flush the data and close if necessary
+    *
     * @param oi data input that finished using
     */
    void finishObjectInput(ObjectInput oi);
-   
+
    /**
     * Unmarshalls an object from an {@link java.io.ObjectInput}
     *

Modified: trunk/core/src/main/java/org/infinispan/notifications/cachelistener/annotation/CacheEntryLoaded.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/notifications/cachelistener/annotation/CacheEntryLoaded.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/notifications/cachelistener/annotation/CacheEntryLoaded.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -28,7 +28,7 @@
 
 /**
  * This annotation should be used on methods that need to be notified when a cache entry is loaded from a {@link
- * org.infinispan.loader.CacheLoaderOld}.
+ * org.infinispan.loaders.CacheLoaderOld}.
  * <p/>
  * Methods annotated with this annotation should be public and take in a single parameter, a {@link
  * org.infinispan.notifications.cachelistener.event.CacheEntryLoadedEvent} otherwise an {@link

Modified: trunk/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -33,18 +33,18 @@
 import org.infinispan.factories.annotations.Inject;
 import org.infinispan.factories.annotations.Start;
 import org.infinispan.interceptors.InterceptorChain;
-import org.infinispan.invocation.InvocationContextContainer;
 import org.infinispan.invocation.Flag;
+import org.infinispan.invocation.InvocationContextContainer;
 import org.infinispan.io.UnclosableObjectInputStream;
 import org.infinispan.io.UnclosableObjectOutputStream;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheLoaderManager;
-import org.infinispan.loader.CacheStore;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheLoaderManager;
+import org.infinispan.loaders.CacheStore;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.marshall.Marshaller;
-import org.infinispan.remoting.RpcManager;
 import org.infinispan.remoting.ResponseMode;
+import org.infinispan.remoting.RpcManager;
 import org.infinispan.remoting.transport.Address;
 import org.infinispan.remoting.transport.DistributedSync;
 import org.infinispan.transaction.TransactionLog;
@@ -53,14 +53,12 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.ObjectInput;
-import java.io.ObjectInputStream;
 import java.io.ObjectOutput;
-import java.io.ObjectOutputStream;
 import java.io.OutputStream;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.Set;
 import java.util.HashSet;
+import java.util.Set;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 
 public class StateTransferManagerImpl implements StateTransferManager {
@@ -123,7 +121,8 @@
       }
    }
 
-   @Start (priority = 1000) // needs to be the last thing that happens on this cache
+   @Start(priority = 1000)
+   // needs to be the last thing that happens on this cache
    public void releaseRPCBlock() throws Exception {
       if (needToUnblockRPC) {
          if (trace) log.trace("Stopping RPC block");
@@ -334,7 +333,7 @@
       // TODO is it safe enough to get these from the data container directly?
       try {
          Set<InternalCacheEntry> entries = new HashSet<InternalCacheEntry>();
-         for (InternalCacheEntry e: dataContainer) {
+         for (InternalCacheEntry e : dataContainer) {
             if (!e.isExpired()) entries.add(e);
          }
          if (log.isDebugEnabled()) log.debug("Writing {0} StoredEntries to stream", entries.size());

Modified: trunk/core/src/main/release/licenses/README-bdbje-lib.txt
===================================================================
--- trunk/core/src/main/release/licenses/README-bdbje-lib.txt	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/release/licenses/README-bdbje-lib.txt	2009-05-05 15:26:50 UTC (rev 209)
@@ -3,7 +3,7 @@
 
 NAME:    Sleepycat Berkeley DB Java Edition
 PROJECT: http://www.oracle.com/database/berkeley-db/je/index.html
-PURPOSE: Used for Berkeley DB-based CacheLoader (org.infinispan.loader.bdbje.BdbjeCacheStore) in Infinispan
+PURPOSE: Used for Berkeley DB-based CacheLoader (org.infinispan.loaders.bdbje.BdbjeCacheStore) in Infinispan
 RESTRICTION: Infinispan can use Berkeley DB Java Edition from Oracle
              for persistent, reliable and transaction-protected
              data storage. If you choose to use Berkeley DB Java Edition

Modified: trunk/core/src/main/resources/config-samples/all.xml
===================================================================
--- trunk/core/src/main/resources/config-samples/all.xml	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/main/resources/config-samples/all.xml	2009-05-05 15:26:50 UTC (rev 209)
@@ -34,7 +34,8 @@
          There is no added cost to defining a transport but not creating a cache that uses one, since the transport
          is created and initialized lazily.
       -->
-      <transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport" clusterName="infinispan-cluster"
+      <transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport"
+                 clusterName="infinispan-cluster"
                  distributedSyncTimeout="50000">
          <!-- Note that the JGroups transport uses sensible defaults if no configuration property is defined. -->
          <property name="configurationFile" value="udp.xml"/>
@@ -119,8 +120,8 @@
          Eviction configuration.  WakeupInterval defines how often the eviction thread runs, in milliseconds.  0 means
          the eviction thread will never run.  A separate executor is used for eviction in each cache.
       -->
-      <eviction wakeUpInterval="500" maxEntries="5000" strategy="FIFO" />
-      <expiration lifespan="60000" maxIdle="1000" />
+      <eviction wakeUpInterval="500" maxEntries="5000" strategy="FIFO"/>
+      <expiration lifespan="60000" maxIdle="1000"/>
    </namedCache>
 
 
@@ -143,12 +144,12 @@
          <!--
             We can have multiple cache loaders, which get chained
          -->
-         <loader class="org.infinispan.loader.file.FileCacheStore" fetchPersistentState="true"
+         <loader class="org.infinispan.loaders.file.FileCacheStore" fetchPersistentState="true"
                  ignoreModifications="true" purgeOnStartup="true">
 
             <!-- See the documentation for more configuration examples and flags. -->
             <properties>
-               <property name="location" value="/tmp" />
+               <property name="location" value="/tmp"/>
             </properties>
             <singletonStore enabled="true" pushStateWhenCoordinator="true" pushStateTimeout="20000"/>
             <async enabled="true" batchSize="1000" threadPoolSize="5"/>
@@ -159,9 +160,9 @@
 
    <namedCache name="distributedCache">
       <clustering mode="distribution">
-         <sync />
-         <hash numOwners="3" rehashWait="120000" />
-         <l1 enabled="true" lifespan="600000" />
+         <sync/>
+         <hash numOwners="3" rehashWait="120000"/>
+         <l1 enabled="true" lifespan="600000"/>
       </clustering>
    </namedCache>
 

Modified: trunk/core/src/test/java/org/infinispan/config/parsing/ConfigurationParserTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/config/parsing/ConfigurationParserTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/config/parsing/ConfigurationParserTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -5,10 +5,10 @@
 import org.infinispan.config.ConfigurationException;
 import org.infinispan.distribution.DefaultConsistentHash;
 import org.infinispan.eviction.EvictionStrategy;
-import org.infinispan.loader.CacheStoreConfig;
-import org.infinispan.loader.decorators.SingletonStoreConfig;
-import org.infinispan.loader.file.FileCacheStore;
-import org.infinispan.loader.file.FileCacheStoreConfig;
+import org.infinispan.loaders.CacheStoreConfig;
+import org.infinispan.loaders.decorators.SingletonStoreConfig;
+import org.infinispan.loaders.file.FileCacheStore;
+import org.infinispan.loaders.file.FileCacheStoreConfig;
 import org.infinispan.lock.IsolationLevel;
 import org.infinispan.transaction.GenericTransactionManagerLookup;
 import org.testng.annotations.Test;
@@ -156,7 +156,7 @@
       XmlConfigurationParserImpl parser = new XmlConfigurationParserImpl();
       String xml =
             "      <loaders passivation=\"true\" shared=\"true\" preload=\"true\">\n" +
-                  "         <loader class=\"org.infinispan.loader.file.FileCacheStore\" fetchPersistentState=\"true\"\n" +
+                  "         <loader class=\"org.infinispan.loaders.file.FileCacheStore\" fetchPersistentState=\"true\"\n" +
                   "                 ignoreModifications=\"true\" purgeOnStartup=\"true\">\n" +
                   "            <properties>\n" +
                   "               <property name=\"location\" value=\"blahblah\"/>\n" +
@@ -201,7 +201,7 @@
    public void testCacheLoadersDefaults() throws Exception {
       XmlConfigurationParserImpl parser = new XmlConfigurationParserImpl();
       String xml = "<loaders>\n" +
-            "         <loader class=\"org.infinispan.loader.file.FileCacheStore\">\n" +
+            "         <loader class=\"org.infinispan.loaders.file.FileCacheStore\">\n" +
             "            <properties />\n" +
             "         </loader>\n" +
             "      </loaders>";
@@ -218,7 +218,7 @@
       assert !clc.isPreload();
 
       CacheStoreConfig iclc = (CacheStoreConfig) clc.getFirstCacheLoaderConfig();
-      assert iclc.getCacheLoaderClassName().equals("org.infinispan.loader.file.FileCacheStore");
+      assert iclc.getCacheLoaderClassName().equals("org.infinispan.loaders.file.FileCacheStore");
       assert !iclc.getAsyncStoreConfig().isEnabled();
       assert !iclc.isFetchPersistentState();
       assert !iclc.isIgnoreModifications();

Modified: trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -3,9 +3,9 @@
 import org.infinispan.config.CacheLoaderManagerConfig;
 import org.infinispan.config.Configuration;
 import org.infinispan.config.GlobalConfiguration;
-import org.infinispan.loader.file.FileCacheStoreConfig;
+import org.infinispan.distribution.DefaultConsistentHash;
+import org.infinispan.loaders.file.FileCacheStoreConfig;
 import org.infinispan.lock.IsolationLevel;
-import org.infinispan.distribution.DefaultConsistentHash;
 import org.testng.annotations.Test;
 
 import java.io.IOException;
@@ -96,7 +96,7 @@
       CacheLoaderManagerConfig loaderManagerConfig = c.getCacheLoaderManagerConfig();
       assert loaderManagerConfig.getCacheLoaderConfigs().size() == 1;
       FileCacheStoreConfig csConf = (FileCacheStoreConfig) loaderManagerConfig.getFirstCacheLoaderConfig();
-      assert csConf.getCacheLoaderClassName().equals("org.infinispan.loader.file.FileCacheStore");
+      assert csConf.getCacheLoaderClassName().equals("org.infinispan.loaders.file.FileCacheStore");
       assert csConf.isFetchPersistentState();
       assert csConf.isIgnoreModifications();
       assert csConf.isPurgeOnStartup();

Modified: trunk/core/src/test/java/org/infinispan/jmx/ActivationAndPassivationInterceptorMBeanTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/ActivationAndPassivationInterceptorMBeanTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/jmx/ActivationAndPassivationInterceptorMBeanTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -5,9 +5,9 @@
 import org.infinispan.config.Configuration;
 import org.infinispan.config.GlobalConfiguration;
 import org.infinispan.container.entries.InternalEntryFactory;
-import org.infinispan.loader.CacheLoaderManager;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.CacheLoaderManager;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.manager.CacheManager;
 import org.infinispan.test.SingleCacheManagerTest;
 import org.infinispan.test.TestingUtil;

Modified: trunk/core/src/test/java/org/infinispan/jmx/CacheLoaderAndCacheStoreInterceptorMBeanTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/CacheLoaderAndCacheStoreInterceptorMBeanTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/jmx/CacheLoaderAndCacheStoreInterceptorMBeanTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -4,9 +4,9 @@
 import org.infinispan.config.Configuration;
 import org.infinispan.config.GlobalConfiguration;
 import org.infinispan.container.entries.InternalEntryFactory;
-import org.infinispan.loader.CacheLoaderManager;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.CacheLoaderManager;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.manager.CacheManager;
 import org.infinispan.test.SingleCacheManagerTest;
 import org.infinispan.test.TestingUtil;

Copied: trunk/core/src/test/java/org/infinispan/loaders (from rev 208, trunk/core/src/test/java/org/infinispan/loader)

Modified: trunk/core/src/test/java/org/infinispan/loaders/AbstractCacheStoreConfigTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/AbstractCacheStoreConfigTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/AbstractCacheStoreConfigTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
@@ -11,7 +11,7 @@
  * @version $Id$
  * @since 4.0
  */
- at Test(groups = "unit", testName = "loader.AbstractCacheStoreConfigTest")
+ at Test(groups = "unit", testName = "loaders.AbstractCacheStoreConfigTest")
 public class AbstractCacheStoreConfigTest {
    private AbstractCacheStoreConfig config;
 

Modified: trunk/core/src/test/java/org/infinispan/loaders/AbstractCacheStoreTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/AbstractCacheStoreTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/AbstractCacheStoreTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import static org.easymock.classextension.EasyMock.createMock;
 import org.infinispan.util.ReflectionUtil;
@@ -16,7 +16,7 @@
  * @version $Id$
  * @since 4.0
  */
- at Test(groups = "unit", testName = "loader.AbstractCacheStoreTest")
+ at Test(groups = "unit", testName = "loaders.AbstractCacheStoreTest")
 public class AbstractCacheStoreTest {
    private AbstractCacheStore cs;
    private AbstractCacheStoreConfig cfg;

Modified: trunk/core/src/test/java/org/infinispan/loaders/BaseCacheStoreTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/BaseCacheStoreTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/BaseCacheStoreTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,4 +1,4 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.easymock.EasyMock;
 import org.infinispan.Cache;
@@ -6,10 +6,10 @@
 import org.infinispan.container.entries.InternalEntryFactory;
 import org.infinispan.io.UnclosableObjectInputStream;
 import org.infinispan.io.UnclosableObjectOutputStream;
-import org.infinispan.loader.modifications.Clear;
-import org.infinispan.loader.modifications.Modification;
-import org.infinispan.loader.modifications.Remove;
-import org.infinispan.loader.modifications.Store;
+import org.infinispan.loaders.modifications.Clear;
+import org.infinispan.loaders.modifications.Modification;
+import org.infinispan.loaders.modifications.Remove;
+import org.infinispan.loaders.modifications.Store;
 import org.infinispan.marshall.Marshaller;
 import org.infinispan.marshall.ObjectStreamMarshaller;
 import org.infinispan.util.Util;
@@ -32,7 +32,7 @@
 
 @SuppressWarnings("unchecked")
 // this needs to be here for the test to run in an IDE
- at Test(groups = "unit", testName = "loader.BaseCacheStoreTest")
+ at Test(groups = "unit", testName = "loaders.BaseCacheStoreTest")
 public abstract class BaseCacheStoreTest {
 
    protected abstract CacheStore createCacheStore() throws Exception;
@@ -489,7 +489,7 @@
    public void testConfigFile() throws Exception {
       Class<? extends CacheLoaderConfig> cfgClass = cs.getConfigurationClass();
       CacheLoaderConfig clc = Util.getInstance(cfgClass);
-      assert clc.getCacheLoaderClassName().equals(cs.getClass().getName()) : "Cache loader doesn't provide a proper configuration type that is capable of creating the loader!";
+      assert clc.getCacheLoaderClassName().equals(cs.getClass().getName()) : "Cache loaders doesn't provide a proper configuration type that is capable of creating the loaders!";
    }
 
    public void testConcurrency() throws Exception {

Modified: trunk/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/CacheLoaderFunctionalTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,7 +1,6 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.infinispan.Cache;
-import org.infinispan.test.fwk.TestCacheManagerFactory;
 import static org.infinispan.api.mvcc.LockAssert.assertNoLocks;
 import org.infinispan.config.CacheLoaderManagerConfig;
 import org.infinispan.config.Configuration;
@@ -9,9 +8,10 @@
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.InternalEntryFactory;
 import org.infinispan.lifecycle.ComponentStatus;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.manager.CacheManager;
 import org.infinispan.test.TestingUtil;
+import org.infinispan.test.fwk.TestCacheManagerFactory;
 import org.infinispan.transaction.DummyTransactionManagerLookup;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.AfterTest;
@@ -28,7 +28,7 @@
  *
  * @author Manik Surtani
  */
- at Test(groups = "functional", testName = "loader.CacheLoaderFunctionalTest")
+ at Test(groups = "functional", testName = "loaders.CacheLoaderFunctionalTest")
 public class CacheLoaderFunctionalTest {
    Cache cache;
    CacheStore store;
@@ -197,7 +197,7 @@
 
    public void testLoading() throws CacheLoaderException {
       assertNotInCacheAndStore("k1", "k2", "k3", "k4");
-      for (int i = 1; i < 5; i++) store.store(InternalEntryFactory.create("k"+i, "v"+i));
+      for (int i = 1; i < 5; i++) store.store(InternalEntryFactory.create("k" + i, "v" + i));
       for (int i = 1; i < 5; i++) assert cache.get("k" + i).equals("v" + i);
       // make sure we have no stale locks!!
       assertNoLocks(cache);

Modified: trunk/core/src/test/java/org/infinispan/loaders/ClusterCacheLoaderTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/ClusterCacheLoaderTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/ClusterCacheLoaderTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,23 +1,23 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.infinispan.Cache;
 import org.infinispan.config.CacheLoaderManagerConfig;
 import org.infinispan.config.Configuration;
 import org.infinispan.container.entries.InternalEntryFactory;
-import org.infinispan.loader.cluster.ClusterCacheLoaderConfig;
-import org.infinispan.loader.decorators.ChainingCacheStore;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.cluster.ClusterCacheLoaderConfig;
+import org.infinispan.loaders.decorators.ChainingCacheStore;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.manager.CacheManager;
 import org.infinispan.test.MultipleCacheManagersTest;
 import org.infinispan.test.fwk.TestCacheManagerFactory;
 import org.testng.annotations.Test;
 
 /**
- * Tester for {@link org.infinispan.loader.cluster.ClusterCacheLoader}
+ * Tester for {@link org.infinispan.loaders.cluster.ClusterCacheLoader}
  *
  * @author Mircea.Markus at jboss.com
  */
- at Test(groups = "functional", testName = "loader.ClusterCacheLoaderTest")
+ at Test(groups = "functional", testName = "loaders.ClusterCacheLoaderTest")
 public class ClusterCacheLoaderTest extends MultipleCacheManagersTest {
    private Cache cache1;
    private Cache cache2;

Modified: trunk/core/src/test/java/org/infinispan/loaders/ConcurrentLoadAndEvictTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/ConcurrentLoadAndEvictTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/ConcurrentLoadAndEvictTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,6 +1,5 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
-import org.infinispan.test.fwk.TestCacheManagerFactory;
 import org.infinispan.commands.read.GetKeyValueCommand;
 import org.infinispan.commands.write.EvictCommand;
 import org.infinispan.config.CacheLoaderManagerConfig;
@@ -11,10 +10,11 @@
 import org.infinispan.context.InvocationContext;
 import org.infinispan.interceptors.CacheLoaderInterceptor;
 import org.infinispan.interceptors.base.CommandInterceptor;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.manager.CacheManager;
 import org.infinispan.test.SingleCacheManagerTest;
 import org.infinispan.test.TestingUtil;
+import org.infinispan.test.fwk.TestCacheManagerFactory;
 import org.testng.annotations.Test;
 
 import java.util.Collections;
@@ -33,7 +33,7 @@
  *
  * @author Manik Surtani
  */
- at Test(groups = "functional", testName = "loader.ConcurrentLoadAndEvictTest")
+ at Test(groups = "functional", testName = "loaders.ConcurrentLoadAndEvictTest")
 public class ConcurrentLoadAndEvictTest extends SingleCacheManagerTest {
    SlowDownInterceptor sdi;
 

Modified: trunk/core/src/test/java/org/infinispan/loaders/PassivationFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/PassivationFunctionalTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/PassivationFunctionalTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,13 +1,13 @@
-package org.infinispan.loader;
+package org.infinispan.loaders;
 
 import org.infinispan.Cache;
-import org.infinispan.test.fwk.TestCacheManagerFactory;
 import org.infinispan.config.CacheLoaderManagerConfig;
 import org.infinispan.config.Configuration;
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.manager.CacheManager;
 import org.infinispan.test.TestingUtil;
+import org.infinispan.test.fwk.TestCacheManagerFactory;
 import org.infinispan.transaction.DummyTransactionManagerLookup;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.AfterTest;
@@ -25,7 +25,7 @@
  *
  * @author Manik Surtani
  */
- at Test(groups = "functional", testName = "loader.PassivationFunctionalTest")
+ at Test(groups = "functional", testName = "loaders.PassivationFunctionalTest")
 public class PassivationFunctionalTest {
    Cache cache;
    CacheStore store;

Modified: trunk/core/src/test/java/org/infinispan/loaders/decorators/AsyncTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/decorators/AsyncTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/decorators/AsyncTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,9 +1,9 @@
-package org.infinispan.loader.decorators;
+package org.infinispan.loaders.decorators;
 
 import org.infinispan.CacheException;
 import org.infinispan.container.entries.InternalEntryFactory;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.test.TestingUtil;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.AfterTest;
@@ -12,7 +12,7 @@
 
 import java.util.concurrent.ExecutorService;
 
- at Test(groups = "unit", testName = "loader.decorators.AsyncTest")
+ at Test(groups = "unit", testName = "loaders.decorators.AsyncTest")
 public class AsyncTest {
 
    AsyncStore store;
@@ -42,7 +42,7 @@
    public void testRestrictionOnAddingToAsyncQueue() throws Exception {
       store.remove("blah");
 
-      for (int i=0; i<4; i++) store.store(InternalEntryFactory.create("k" + i, "v" + i));
+      for (int i = 0; i < 4; i++) store.store(InternalEntryFactory.create("k" + i, "v" + i));
 
       // stop the cache store
       store.stop();

Modified: trunk/core/src/test/java/org/infinispan/loaders/decorators/ChainingCacheLoaderTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/decorators/ChainingCacheLoaderTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/decorators/ChainingCacheLoaderTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,19 +1,19 @@
-package org.infinispan.loader.decorators;
+package org.infinispan.loaders.decorators;
 
 import org.easymock.EasyMock;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.InternalEntryFactory;
 import org.infinispan.io.UnclosableObjectInputStream;
 import org.infinispan.io.UnclosableObjectOutputStream;
-import org.infinispan.loader.BaseCacheStoreTest;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.CacheStoreConfig;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
-import org.infinispan.loader.modifications.Clear;
-import org.infinispan.loader.modifications.Modification;
-import org.infinispan.loader.modifications.Remove;
-import org.infinispan.loader.modifications.Store;
+import org.infinispan.loaders.BaseCacheStoreTest;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.CacheStoreConfig;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.modifications.Clear;
+import org.infinispan.loaders.modifications.Modification;
+import org.infinispan.loaders.modifications.Remove;
+import org.infinispan.loaders.modifications.Store;
 import org.infinispan.marshall.ObjectStreamMarshaller;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.Test;
@@ -29,7 +29,7 @@
 import java.util.List;
 import java.util.Set;
 
- at Test(groups = "unit", testName = "loader.decorators.ChainingCacheLoaderTest")
+ at Test(groups = "unit", testName = "loaders.decorators.ChainingCacheLoaderTest")
 public class ChainingCacheLoaderTest extends BaseCacheStoreTest {
 
    DummyInMemoryCacheStore store1, store2;

Modified: trunk/core/src/test/java/org/infinispan/loaders/decorators/ReadOnlyCacheStoreTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/decorators/ReadOnlyCacheStoreTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/decorators/ReadOnlyCacheStoreTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,12 +1,12 @@
-package org.infinispan.loader.decorators;
+package org.infinispan.loaders.decorators;
 
 import static org.easymock.EasyMock.*;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
 import org.infinispan.container.entries.InternalCacheEntry;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
 import org.testng.annotations.Test;
 
- at Test(groups = "unit", testName = "loader.decorators.ReadOnlyCacheStoreTest")
+ at Test(groups = "unit", testName = "loaders.decorators.ReadOnlyCacheStoreTest")
 public class ReadOnlyCacheStoreTest {
    public void testWriteMethods() throws CacheLoaderException {
       CacheStore mock = createMock(CacheStore.class);

Modified: trunk/core/src/test/java/org/infinispan/loaders/decorators/SingletonStoreTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/decorators/SingletonStoreTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/decorators/SingletonStoreTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,13 +1,13 @@
-package org.infinispan.loader.decorators;
+package org.infinispan.loaders.decorators;
 
 import org.infinispan.Cache;
 import org.infinispan.config.CacheLoaderManagerConfig;
 import org.infinispan.config.Configuration;
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheLoaderManager;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheLoaderManager;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.manager.CacheManager;
@@ -30,7 +30,7 @@
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 
- at Test(groups = "functional", testName = "loader.decorators.SingletonStoreTest")
+ at Test(groups = "functional", testName = "loaders.decorators.SingletonStoreTest")
 public class SingletonStoreTest extends MultipleCacheManagersTest {
    private static final Log log = LogFactory.getLog(SingletonStoreTest.class);
    private static final AtomicInteger storeCounter = new AtomicInteger(0);

Modified: trunk/core/src/test/java/org/infinispan/loaders/dummy/DummyInMemoryCacheStore.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/dummy/DummyInMemoryCacheStore.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/dummy/DummyInMemoryCacheStore.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,11 +1,11 @@
-package org.infinispan.loader.dummy;
+package org.infinispan.loaders.dummy;
 
 import org.infinispan.Cache;
 import org.infinispan.container.entries.InternalCacheEntry;
-import org.infinispan.loader.AbstractCacheStore;
-import org.infinispan.loader.AbstractCacheStoreConfig;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.CacheLoaderException;
+import org.infinispan.loaders.AbstractCacheStore;
+import org.infinispan.loaders.AbstractCacheStoreConfig;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.CacheLoaderException;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.marshall.Marshaller;

Modified: trunk/core/src/test/java/org/infinispan/loaders/dummy/DummyInMemoryCacheStoreTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/dummy/DummyInMemoryCacheStoreTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/dummy/DummyInMemoryCacheStoreTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,11 +1,11 @@
-package org.infinispan.loader.dummy;
+package org.infinispan.loaders.dummy;
 
-import org.infinispan.loader.BaseCacheStoreTest;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.CacheLoaderException;
+import org.infinispan.loaders.BaseCacheStoreTest;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
 import org.testng.annotations.Test;
 
- at Test(groups = "unit", testName = "loader.dummy.DummyInMemoryCacheStoreTest")
+ at Test(groups = "unit", testName = "loaders.dummy.DummyInMemoryCacheStoreTest")
 public class DummyInMemoryCacheStoreTest extends BaseCacheStoreTest {
 
    protected CacheStore createCacheStore() throws CacheLoaderException {

Modified: trunk/core/src/test/java/org/infinispan/loaders/file/FileCacheStoreTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loader/file/FileCacheStoreTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/loaders/file/FileCacheStoreTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,104 +1,111 @@
-package org.infinispan.loader.file;
+package org.infinispan.loaders.file;
 
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.InternalEntryFactory;
 import org.infinispan.io.UnclosableObjectOutputStream;
-import org.infinispan.loader.BaseCacheStoreTest;
-import org.infinispan.loader.CacheLoaderException;
-import org.infinispan.loader.CacheStore;
-import org.infinispan.loader.bucket.Bucket;
+import org.infinispan.loaders.BaseCacheStoreTest;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.loaders.CacheStore;
+import org.infinispan.loaders.bucket.Bucket;
 import org.infinispan.test.TestingUtil;
-import org.testng.annotations.*;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
 
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 
- at Test(groups = "unit", testName = "loader.file.FileCacheStoreTest")
+ at Test(groups = "unit", testName = "loaders.file.FileCacheStoreTest")
 public class FileCacheStoreTest extends BaseCacheStoreTest {
 
-    private FileCacheStore fcs;
-    private String tmpDirectory;
+   private FileCacheStore fcs;
+   private String tmpDirectory;
 
-    @BeforeTest
-    @Parameters({"basedir"})
-    protected void setUpTempDir(String basedir) {
-        tmpDirectory = basedir + TestingUtil.TEST_PATH + File.separator + getClass().getSimpleName();
-    }
+   @BeforeTest
+   @Parameters({"basedir"})
+   protected void setUpTempDir(String basedir) {
+      tmpDirectory = basedir + TestingUtil.TEST_PATH + File.separator + getClass().getSimpleName();
+   }
 
-    @AfterTest
-    protected void clearTempDir() {
-        TestingUtil.recursiveFileRemove(tmpDirectory);
-        new File(tmpDirectory).mkdirs();
-    }
+   @AfterTest
+   protected void clearTempDir() {
+      TestingUtil.recursiveFileRemove(tmpDirectory);
+      new File(tmpDirectory).mkdirs();
+   }
 
-    protected CacheStore createCacheStore() throws CacheLoaderException {
-        clearTempDir();
-        fcs = new FileCacheStore();
-        FileCacheStoreConfig cfg = new FileCacheStoreConfig();
-        cfg.setLocation(tmpDirectory);
-        cfg.setPurgeSynchronously(true); // for more accurate unit testing
-        fcs.init(cfg, getCache(), getMarshaller());
-        fcs.start();
-        return fcs;
-    }
+   protected CacheStore createCacheStore() throws CacheLoaderException {
+      clearTempDir();
+      fcs = new FileCacheStore();
+      FileCacheStoreConfig cfg = new FileCacheStoreConfig();
+      cfg.setLocation(tmpDirectory);
+      cfg.setPurgeSynchronously(true); // for more accurate unit testing
+      fcs.init(cfg, getCache(), getMarshaller());
+      fcs.start();
+      return fcs;
+   }
 
-    @Override
-    public void testPreload() throws CacheLoaderException {
-        super.testPreload();
-    }
+   @Override
+   public void testPreload() throws CacheLoaderException {
+      super.testPreload();
+   }
 
-    @Override
-    public void testPurgeExpired() throws Exception {
-        long lifespan = 1000;
-        cs.store(InternalEntryFactory.create("k1", "v1", lifespan));
-        cs.store(InternalEntryFactory.create("k2", "v2", lifespan));
-        cs.store(InternalEntryFactory.create("k3", "v3", lifespan));
-        assert cs.containsKey("k1");
-        assert cs.containsKey("k2");
-        assert cs.containsKey("k3");
-        Thread.sleep(lifespan + 100);
-        cs.purgeExpired();
-        FileCacheStore fcs = (FileCacheStore) cs;
-        assert fcs.load("k1") == null;
-        assert fcs.load("k2") == null;
-        assert fcs.load("k3") == null;
-    }
+   @Override
+   public void testPurgeExpired() throws Exception {
+      long lifespan = 1000;
+      cs.store(InternalEntryFactory.create("k1", "v1", lifespan));
+      cs.store(InternalEntryFactory.create("k2", "v2", lifespan));
+      cs.store(InternalEntryFactory.create("k3", "v3", lifespan));
+      assert cs.containsKey("k1");
+      assert cs.containsKey("k2");
+      assert cs.containsKey("k3");
+      Thread.sleep(lifespan + 100);
+      cs.purgeExpired();
+      FileCacheStore fcs = (FileCacheStore) cs;
+      assert fcs.load("k1") == null;
+      assert fcs.load("k2") == null;
+      assert fcs.load("k3") == null;
+   }
 
-    public void testBucketRemoval() throws Exception {
-        Bucket b;
-        InternalCacheEntry se = InternalEntryFactory.create("test", "value");
-        fcs.store(se);
-        b = fcs.loadBucketContainingKey("test");
-        assert b != null;
+   public void testBucketRemoval() throws Exception {
+      Bucket b;
+      InternalCacheEntry se = InternalEntryFactory.create("test", "value");
+      fcs.store(se);
+      b = fcs.loadBucketContainingKey("test");
+      assert b != null;
 
-        assert !b.getEntries().isEmpty();
+      assert !b.getEntries().isEmpty();
 
-        assert new File(fcs.root, b.getBucketName()).exists();
+      assert new File(fcs.root, b.getBucketName()).exists();
 
-        b.removeEntry("test");
-        assert b.getEntries().isEmpty();
+      b.removeEntry("test");
+      assert b.getEntries().isEmpty();
 
-        fcs.saveBucket(b);
-        assert !new File(fcs.root, b.getBucketName()).exists();
-    }
+      fcs.saveBucket(b);
+      assert !new File(fcs.root, b.getBucketName()).exists();
+   }
 
-    public void testToStream() throws Exception {
-        cs.store(InternalEntryFactory.create("k1", "v1", -1, -1));
+   public void testToStream() throws Exception {
+      cs.store(InternalEntryFactory.create("k1", "v1", -1, -1));
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        ObjectOutputStream oos = new ObjectOutputStream(out);
-        cs.toStream(new UnclosableObjectOutputStream(oos));
-        oos.flush();
-        oos.close();
-        out.close();
+      ByteArrayOutputStream out = new ByteArrayOutputStream();
+      ObjectOutputStream oos = new ObjectOutputStream(out);
+      cs.toStream(new UnclosableObjectOutputStream(oos));
+      oos.flush();
+      oos.close();
+      out.close();
 
-        ObjectInputStream ois = null;
-        try {
-            ois = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray()));
-            assert ois.readInt() == 1 : "we have 3 different buckets";
-            assert ois.readObject().equals("k1".hashCode() + "");
-            assert ois.readInt() > 0; //size on disk
-        } finally {
-            if (ois != null) ois.close();
-        }
-    }
+      ObjectInputStream ois = null;
+      try {
+         ois = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray()));
+         assert ois.readInt() == 1 : "we have 3 different buckets";
+         assert ois.readObject().equals("k1".hashCode() + "");
+         assert ois.readInt() > 0; //size on disk
+      } finally {
+         if (ois != null) ois.close();
+      }
+   }
 }

Modified: trunk/core/src/test/java/org/infinispan/marshall/MarshalledValueTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/marshall/MarshalledValueTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/marshall/MarshalledValueTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -12,8 +12,8 @@
 import org.infinispan.interceptors.InterceptorChain;
 import org.infinispan.interceptors.MarshalledValueInterceptor;
 import org.infinispan.interceptors.base.CommandInterceptor;
-import org.infinispan.loader.CacheLoaderConfig;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.notifications.Listener;
 import org.infinispan.notifications.cachelistener.annotation.CacheEntryModified;
 import org.infinispan.notifications.cachelistener.event.CacheEntryModifiedEvent;

Modified: trunk/core/src/test/java/org/infinispan/notifications/CacheListenerCacheLoaderTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/notifications/CacheListenerCacheLoaderTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/notifications/CacheListenerCacheLoaderTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -1,16 +1,16 @@
 package org.infinispan.notifications;
 
 import org.infinispan.Cache;
-import org.infinispan.test.fwk.TestCacheManagerFactory;
 import org.infinispan.config.CacheLoaderManagerConfig;
 import org.infinispan.config.Configuration;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.manager.CacheManager;
 import org.infinispan.notifications.cachelistener.annotation.CacheEntryActivated;
 import org.infinispan.notifications.cachelistener.annotation.CacheEntryLoaded;
 import org.infinispan.notifications.cachelistener.annotation.CacheEntryPassivated;
 import org.infinispan.notifications.cachelistener.event.CacheEntryEvent;
 import org.infinispan.test.TestingUtil;
+import org.infinispan.test.fwk.TestCacheManagerFactory;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;

Modified: trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferCacheLoaderFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferCacheLoaderFunctionalTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferCacheLoaderFunctionalTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -2,10 +2,10 @@
 
 import org.infinispan.Cache;
 import org.infinispan.config.CacheLoaderManagerConfig;
-import org.infinispan.loader.CacheLoader;
-import org.infinispan.loader.CacheLoaderManager;
-import org.infinispan.loader.CacheStoreConfig;
-import org.infinispan.loader.dummy.DummyInMemoryCacheStore;
+import org.infinispan.loaders.CacheLoader;
+import org.infinispan.loaders.CacheLoaderManager;
+import org.infinispan.loaders.CacheStoreConfig;
+import org.infinispan.loaders.dummy.DummyInMemoryCacheStore;
 import org.infinispan.manager.CacheManager;
 import org.infinispan.test.TestingUtil;
 import org.testng.annotations.Test;

Modified: trunk/core/src/test/java/org/infinispan/test/AbstractCacheTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/test/AbstractCacheTest.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/test/AbstractCacheTest.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -6,7 +6,7 @@
 import org.infinispan.container.DataContainer;
 import org.infinispan.context.InvocationContext;
 import org.infinispan.lifecycle.ComponentStatus;
-import org.infinispan.loader.CacheLoaderManager;
+import org.infinispan.loaders.CacheLoaderManager;
 import org.infinispan.logging.Log;
 import org.infinispan.logging.LogFactory;
 import org.infinispan.manager.CacheManager;

Modified: trunk/core/src/test/java/org/infinispan/test/TestingUtil.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/test/TestingUtil.java	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/java/org/infinispan/test/TestingUtil.java	2009-05-05 15:26:50 UTC (rev 209)
@@ -17,8 +17,8 @@
 import org.infinispan.interceptors.InterceptorChain;
 import org.infinispan.interceptors.base.CommandInterceptor;
 import org.infinispan.lifecycle.ComponentStatus;
-import org.infinispan.loader.CacheLoader;
-import org.infinispan.loader.CacheLoaderManager;
+import org.infinispan.loaders.CacheLoader;
+import org.infinispan.loaders.CacheLoaderManager;
 import org.infinispan.lock.LockManager;
 import org.infinispan.manager.CacheManager;
 import org.infinispan.remoting.transport.Address;
@@ -32,129 +32,129 @@
 import java.util.Random;
 
 public class TestingUtil {
-    private static Random random = new Random();
-    public static final String TEST_PATH = "target" + File.separator + "tempFiles";
+   private static Random random = new Random();
+   public static final String TEST_PATH = "target" + File.separator + "tempFiles";
 
-    /**
-     * Extracts the value of a field in a given target instance using reflection, able to extract private fields as
-     * well.
-     *
-     * @param target    object to extract field from
-     * @param fieldName name of field to extract
-     * @return field value
-     */
-    public static Object extractField(Object target, String fieldName) {
-        return extractField(target.getClass(), target, fieldName);
-    }
+   /**
+    * Extracts the value of a field in a given target instance using reflection, able to extract private fields as
+    * well.
+    *
+    * @param target    object to extract field from
+    * @param fieldName name of field to extract
+    * @return field value
+    */
+   public static Object extractField(Object target, String fieldName) {
+      return extractField(target.getClass(), target, fieldName);
+   }
 
-    public static void replaceField(Object newValue, String fieldName, Object owner, Class baseType) {
-        Field field;
-        try {
-            field = baseType.getDeclaredField(fieldName);
-            field.setAccessible(true);
-            field.set(owner, newValue);
-        }
-        catch (Exception e) {
-            throw new RuntimeException(e);//just to simplify exception handeling
-        }
-    }
+   public static void replaceField(Object newValue, String fieldName, Object owner, Class baseType) {
+      Field field;
+      try {
+         field = baseType.getDeclaredField(fieldName);
+         field.setAccessible(true);
+         field.set(owner, newValue);
+      }
+      catch (Exception e) {
+         throw new RuntimeException(e);//just to simplify exception handeling
+      }
+   }
 
 
-    public static Object extractField(Class type, Object target, String fieldName) {
-        Field field;
-        try {
-            field = type.getDeclaredField(fieldName);
-            field.setAccessible(true);
-            return field.get(target);
-        }
-        catch (Exception e) {
-            if (type.equals(Object.class)) {
-                e.printStackTrace();
-                return null;
-            } else {
-                // try with superclass!!
-                return extractField(type.getSuperclass(), target, fieldName);
-            }
-        }
-    }
+   public static Object extractField(Class type, Object target, String fieldName) {
+      Field field;
+      try {
+         field = type.getDeclaredField(fieldName);
+         field.setAccessible(true);
+         return field.get(target);
+      }
+      catch (Exception e) {
+         if (type.equals(Object.class)) {
+            e.printStackTrace();
+            return null;
+         } else {
+            // try with superclass!!
+            return extractField(type.getSuperclass(), target, fieldName);
+         }
+      }
+   }
 
-    public static <T extends CommandInterceptor> T findInterceptor(Cache<?, ?> cache, Class<T> interceptorToFind) {
-        for (CommandInterceptor i : cache.getAdvancedCache().getInterceptorChain()) {
-            if (interceptorToFind.isInstance(i)) return interceptorToFind.cast(i);
-        }
-        return null;
-    }
+   public static <T extends CommandInterceptor> T findInterceptor(Cache<?, ?> cache, Class<T> interceptorToFind) {
+      for (CommandInterceptor i : cache.getAdvancedCache().getInterceptorChain()) {
+         if (interceptorToFind.isInstance(i)) return interceptorToFind.cast(i);
+      }
+      return null;
+   }
 
-    /**
-     * Loops, continually calling {@link #areCacheViewsComplete(Cache[])} until it either returns true or
-     * <code>timeout</code> ms have elapsed.
-     *
-     * @param caches  caches which must all have consistent views
-     * @param timeout max number of ms to loop
-     * @throws RuntimeException if <code>timeout</code> ms have elapse without all caches having the same number of
-     *                          members.
-     */
-    public static void blockUntilViewsReceived(Cache[] caches, long timeout) {
-        long failTime = System.currentTimeMillis() + timeout;
+   /**
+    * Loops, continually calling {@link #areCacheViewsComplete(Cache[])} until it either returns true or
+    * <code>timeout</code> ms have elapsed.
+    *
+    * @param caches  caches which must all have consistent views
+    * @param timeout max number of ms to loop
+    * @throws RuntimeException if <code>timeout</code> ms have elapse without all caches having the same number of
+    *                          members.
+    */
+   public static void blockUntilViewsReceived(Cache[] caches, long timeout) {
+      long failTime = System.currentTimeMillis() + timeout;
 
-        while (System.currentTimeMillis() < failTime) {
-            sleepThread(100);
-            if (areCacheViewsComplete(caches)) {
-                return;
-            }
-        }
+      while (System.currentTimeMillis() < failTime) {
+         sleepThread(100);
+         if (areCacheViewsComplete(caches)) {
+            return;
+         }
+      }
 
-        throw new RuntimeException("timed out before caches had complete views");
-    }
+      throw new RuntimeException("timed out before caches had complete views");
+   }
 
-    /**
-     * Version of blockUntilViewsReceived that uses varargs
-     */
-    public static void blockUntilViewsReceived(long timeout, Cache... caches) {
-        blockUntilViewsReceived(caches, timeout);
-    }
+   /**
+    * Version of blockUntilViewsReceived that uses varargs
+    */
+   public static void blockUntilViewsReceived(long timeout, Cache... caches) {
+      blockUntilViewsReceived(caches, timeout);
+   }
 
-    /**
-     * Version of blockUntilViewsReceived that uses varargsa and cache managers
-     */
-    public static void blockUntilViewsReceived(long timeout, CacheManager... cacheManagers) {
-        blockUntilViewsReceived(timeout, true, cacheManagers);
-    }
+   /**
+    * Version of blockUntilViewsReceived that uses varargsa and cache managers
+    */
+   public static void blockUntilViewsReceived(long timeout, CacheManager... cacheManagers) {
+      blockUntilViewsReceived(timeout, true, cacheManagers);
+   }
 
-    /**
-     * Waits for the given memebrs to be removed from the cluster. The difference between this and {@link
-     * #blockUntilViewsReceived(long, org.infinispan.manager.CacheManager[])} methods(s) is that it does not barf if more
-     * than expected memebers is in the cluster - this is because we expect to start with a grater number fo memebers
-     * than we eventually expect. It will barf though, if the number of members is not the one expected but only after
-     * the timeout expieres.
-     */
-    public static void blockForMemberToFail(long timeout, CacheManager... cacheManagers) {
-        blockUntilViewsReceived(timeout, false, cacheManagers);
-        areCacheViewsComplete(true, cacheManagers);
-    }
+   /**
+    * Waits for the given memebrs to be removed from the cluster. The difference between this and {@link
+    * #blockUntilViewsReceived(long, org.infinispan.manager.CacheManager[])} methods(s) is that it does not barf if
+    * more than expected memebers is in the cluster - this is because we expect to start with a grater number fo
+    * memebers than we eventually expect. It will barf though, if the number of members is not the one expected but
+    * only after the timeout expieres.
+    */
+   public static void blockForMemberToFail(long timeout, CacheManager... cacheManagers) {
+      blockUntilViewsReceived(timeout, false, cacheManagers);
+      areCacheViewsComplete(true, cacheManagers);
+   }
 
-    public static void blockUntilViewsReceived(long timeout, boolean barfIfTooManyMembers, CacheManager... cacheManagers) {
-        long failTime = System.currentTimeMillis() + timeout;
+   public static void blockUntilViewsReceived(long timeout, boolean barfIfTooManyMembers, CacheManager... cacheManagers) {
+      long failTime = System.currentTimeMillis() + timeout;
 
-        while (System.currentTimeMillis() < failTime) {
-            sleepThread(100);
-            if (areCacheViewsComplete(barfIfTooManyMembers, cacheManagers)) {
-                return;
-            }
-        }
+      while (System.currentTimeMillis() < failTime) {
+         sleepThread(100);
+         if (areCacheViewsComplete(barfIfTooManyMembers, cacheManagers)) {
+            return;
+         }
+      }
 
-        throw new RuntimeException("timed out before caches had complete views");
-    }
+      throw new RuntimeException("timed out before caches had complete views");
+   }
 
-    /**
-     * Loops, continually calling {@link #areCacheViewsComplete(CacheSPI[])} until it either returns true or
-     * <code>timeout</code> ms have elapsed.
-     *
-     * @param caches  caches which must all have consistent views
-     * @param timeout max number of ms to loop
-     * @throws RuntimeException if <code>timeout</code> ms have elapse without all caches having the same number of
-     *                          members.
-     */
+   /**
+    * Loops, continually calling {@link #areCacheViewsComplete(CacheSPI[])} until it either returns true or
+    * <code>timeout</code> ms have elapsed.
+    *
+    * @param caches  caches which must all have consistent views
+    * @param timeout max number of ms to loop
+    * @throws RuntimeException if <code>timeout</code> ms have elapse without all caches having the same number of
+    *                          members.
+    */
 //   public static void blockUntilViewsReceived(Cache[] caches, long timeout) {
 //      long failTime = System.currentTimeMillis() + timeout;
 //
@@ -169,91 +169,91 @@
 //   }
 
 
-    /**
-     * An overloaded version of {@link #blockUntilViewsReceived(long,Cache[])} that allows for 'shrinking' clusters.
-     * I.e., the usual method barfs if there are more members than expected.  This one takes a param
-     * (barfIfTooManyMembers) which, if false, will NOT barf but will wait until the cluster 'shrinks' to the desired
-     * size.  Useful if in tests, you kill a member and want to wait until this fact is known across the cluster.
-     *
-     * @param timeout
-     * @param barfIfTooManyMembers
-     * @param caches
-     */
-    public static void blockUntilViewsReceived(long timeout, boolean barfIfTooManyMembers, Cache... caches) {
-        long failTime = System.currentTimeMillis() + timeout;
+   /**
+    * An overloaded version of {@link #blockUntilViewsReceived(long,Cache[])} that allows for 'shrinking' clusters.
+    * I.e., the usual method barfs if there are more members than expected.  This one takes a param
+    * (barfIfTooManyMembers) which, if false, will NOT barf but will wait until the cluster 'shrinks' to the desired
+    * size.  Useful if in tests, you kill a member and want to wait until this fact is known across the cluster.
+    *
+    * @param timeout
+    * @param barfIfTooManyMembers
+    * @param caches
+    */
+   public static void blockUntilViewsReceived(long timeout, boolean barfIfTooManyMembers, Cache... caches) {
+      long failTime = System.currentTimeMillis() + timeout;
 
-        while (System.currentTimeMillis() < failTime) {
-            sleepThread(100);
-            if (areCacheViewsComplete(caches, barfIfTooManyMembers)) {
-                return;
-            }
-        }
+      while (System.currentTimeMillis() < failTime) {
+         sleepThread(100);
+         if (areCacheViewsComplete(caches, barfIfTooManyMembers)) {
+            return;
+         }
+      }
 
-        throw new RuntimeException("timed out before caches had complete views");
-    }
+      throw new RuntimeException("timed out before caches had complete views");
+   }
 
-    /**
-     * Loops, continually calling {@link #areCacheViewsComplete(Cache[])} until it either returns true or
-     * <code>timeout</code> ms have elapsed.
-     *
-     * @param groupSize number of caches expected in the group
-     * @param timeout   max number of ms to loop
-     * @throws RuntimeException if <code>timeout</code> ms have elapse without all caches having the same number of
-     *                          members.
-     */
-    public static void blockUntilViewReceived(Cache cache, int groupSize, long timeout) {
-        blockUntilViewReceived(cache, groupSize, timeout, true);
-    }
+   /**
+    * Loops, continually calling {@link #areCacheViewsComplete(Cache[])} until it either returns true or
+    * <code>timeout</code> ms have elapsed.
+    *
+    * @param groupSize number of caches expected in the group
+    * @param timeout   max number of ms to loop
+    * @throws RuntimeException if <code>timeout</code> ms have elapse without all caches having the same number of
+    *                          members.
+    */
+   public static void blockUntilViewReceived(Cache cache, int groupSize, long timeout) {
+      blockUntilViewReceived(cache, groupSize, timeout, true);
+   }
 
-    public static void blockUntilViewReceived(Cache cache, int groupSize, long timeout, boolean barfIfTooManyMembersInView) {
-        long failTime = System.currentTimeMillis() + timeout;
+   public static void blockUntilViewReceived(Cache cache, int groupSize, long timeout, boolean barfIfTooManyMembersInView) {
+      long failTime = System.currentTimeMillis() + timeout;
 
-        while (System.currentTimeMillis() < failTime) {
-            sleepThread(100);
-            if (isCacheViewComplete(cache.getCacheManager().getMembers(), cache.getCacheManager().getAddress(), groupSize, barfIfTooManyMembersInView)) {
-                return;
-            }
-        }
+      while (System.currentTimeMillis() < failTime) {
+         sleepThread(100);
+         if (isCacheViewComplete(cache.getCacheManager().getMembers(), cache.getCacheManager().getAddress(), groupSize, barfIfTooManyMembersInView)) {
+            return;
+         }
+      }
 
-        throw new RuntimeException("timed out before caches had complete views");
-    }
+      throw new RuntimeException("timed out before caches had complete views");
+   }
 
-    /**
-     * Checks each cache to see if the number of elements in the array returned by {@link CacheManager#getMembers()}
-     * matches the size of the <code>caches</code> parameter.
-     *
-     * @param caches caches that should form a View
-     * @return <code>true</code> if all caches have <code>caches.length</code> members; false otherwise
-     * @throws IllegalStateException if any of the caches have MORE view members than caches.length
-     */
-    public static boolean areCacheViewsComplete(Cache[] caches) {
-        return areCacheViewsComplete(caches, true);
-    }
+   /**
+    * Checks each cache to see if the number of elements in the array returned by {@link CacheManager#getMembers()}
+    * matches the size of the <code>caches</code> parameter.
+    *
+    * @param caches caches that should form a View
+    * @return <code>true</code> if all caches have <code>caches.length</code> members; false otherwise
+    * @throws IllegalStateException if any of the caches have MORE view members than caches.length
+    */
+   public static boolean areCacheViewsComplete(Cache[] caches) {
+      return areCacheViewsComplete(caches, true);
+   }
 
-    public static boolean areCacheViewsComplete(Cache[] caches, boolean barfIfTooManyMembers) {
-        int memberCount = caches.length;
+   public static boolean areCacheViewsComplete(Cache[] caches, boolean barfIfTooManyMembers) {
+      int memberCount = caches.length;
 
-        for (int i = 0; i < memberCount; i++) {
-            if (!isCacheViewComplete(caches[i].getCacheManager().getMembers(), caches[i].getCacheManager().getAddress(), memberCount, barfIfTooManyMembers)) {
-                return false;
-            }
-        }
+      for (int i = 0; i < memberCount; i++) {
+         if (!isCacheViewComplete(caches[i].getCacheManager().getMembers(), caches[i].getCacheManager().getAddress(), memberCount, barfIfTooManyMembers)) {
+            return false;
+         }
+      }
 
-        return true;
-    }
+      return true;
+   }
 
-    public static boolean areCacheViewsComplete(boolean barfIfTooManyMembers, CacheManager... cacheManagers) {
-        if (cacheManagers == null) throw new NullPointerException("Cache Manager array is null");
-        int memberCount = cacheManagers.length;
+   public static boolean areCacheViewsComplete(boolean barfIfTooManyMembers, CacheManager... cacheManagers) {
+      if (cacheManagers == null) throw new NullPointerException("Cache Manager array is null");
+      int memberCount = cacheManagers.length;
 
-        for (int i = 0; i < memberCount; i++) {
-            if (!isCacheViewComplete(cacheManagers[i].getMembers(), cacheManagers[i].getAddress(), memberCount, barfIfTooManyMembers)) {
-                return false;
-            }
-        }
+      for (int i = 0; i < memberCount; i++) {
+         if (!isCacheViewComplete(cacheManagers[i].getMembers(), cacheManagers[i].getAddress(), memberCount, barfIfTooManyMembers)) {
+            return false;
+         }
+      }
 
-        return true;
-    }
+      return true;
+   }
 
 //   /**
 //    * @param cache
@@ -286,334 +286,334 @@
 //      return true;
 //   }
 
-    /**
-     * @param c
-     * @param memberCount
-     */
-    public static boolean isCacheViewComplete(Cache c, int memberCount) {
-        return isCacheViewComplete(c.getCacheManager().getMembers(), c.getCacheManager().getAddress(), memberCount, true);
-    }
+   /**
+    * @param c
+    * @param memberCount
+    */
+   public static boolean isCacheViewComplete(Cache c, int memberCount) {
+      return isCacheViewComplete(c.getCacheManager().getMembers(), c.getCacheManager().getAddress(), memberCount, true);
+   }
 
-    public static boolean isCacheViewComplete(List members, Address address, int memberCount, boolean barfIfTooManyMembers) {
-        if (members == null || memberCount > members.size()) {
-            return false;
-        } else if (memberCount < members.size()) {
-            if (barfIfTooManyMembers) {
-                // This is an exceptional condition
-                StringBuilder sb = new StringBuilder("Cache at address ");
-                sb.append(address);
-                sb.append(" had ");
-                sb.append(members.size());
-                sb.append(" members; expecting ");
-                sb.append(memberCount);
-                sb.append(". Members were (");
-                for (int j = 0; j < members.size(); j++) {
-                    if (j > 0) {
-                        sb.append(", ");
-                    }
-                    sb.append(members.get(j));
-                }
-                sb.append(')');
+   public static boolean isCacheViewComplete(List members, Address address, int memberCount, boolean barfIfTooManyMembers) {
+      if (members == null || memberCount > members.size()) {
+         return false;
+      } else if (memberCount < members.size()) {
+         if (barfIfTooManyMembers) {
+            // This is an exceptional condition
+            StringBuilder sb = new StringBuilder("Cache at address ");
+            sb.append(address);
+            sb.append(" had ");
+            sb.append(members.size());
+            sb.append(" members; expecting ");
+            sb.append(memberCount);
+            sb.append(". Members were (");
+            for (int j = 0; j < members.size(); j++) {
+               if (j > 0) {
+                  sb.append(", ");
+               }
+               sb.append(members.get(j));
+            }
+            sb.append(')');
 
-                throw new IllegalStateException(sb.toString());
-            } else return false;
-        }
+            throw new IllegalStateException(sb.toString());
+         } else return false;
+      }
 
-        return true;
-    }
+      return true;
+   }
 
 
-    /**
-     * Puts the current thread to sleep for the desired number of ms, suppressing any exceptions.
-     *
-     * @param sleeptime number of ms to sleep
-     */
-    public static void sleepThread(long sleeptime) {
-        try {
-            Thread.sleep(sleeptime);
-        }
-        catch (InterruptedException ie) {
-        }
-    }
+   /**
+    * Puts the current thread to sleep for the desired number of ms, suppressing any exceptions.
+    *
+    * @param sleeptime number of ms to sleep
+    */
+   public static void sleepThread(long sleeptime) {
+      try {
+         Thread.sleep(sleeptime);
+      }
+      catch (InterruptedException ie) {
+      }
+   }
 
-    public static void sleepRandom(int maxTime) {
-        sleepThread(random.nextInt(maxTime));
-    }
+   public static void sleepRandom(int maxTime) {
+      sleepThread(random.nextInt(maxTime));
+   }
 
-    public static void recursiveFileRemove(String directoryName) {
-        File file = new File(directoryName);
-        recursiveFileRemove(file);
-    }
+   public static void recursiveFileRemove(String directoryName) {
+      File file = new File(directoryName);
+      recursiveFileRemove(file);
+   }
 
-    public static void recursiveFileRemove(File file) {
-        if (file.exists()) {
-            System.out.println("Deleting file " + file);
+   public static void recursiveFileRemove(File file) {
+      if (file.exists()) {
+         System.out.println("Deleting file " + file);
+         recursivedelete(file);
+      }
+   }
+
+   private static void recursivedelete(File f) {
+      if (f.isDirectory()) {
+         File[] files = f.listFiles();
+         for (File file : files) {
             recursivedelete(file);
-        }
-    }
+         }
+      }
+      //System.out.println("File " + f.toURI() + " deleted = " + f.delete());
+      f.delete();
+   }
 
-    private static void recursivedelete(File f) {
-        if (f.isDirectory()) {
-            File[] files = f.listFiles();
-            for (File file : files) {
-                recursivedelete(file);
-            }
-        }
-        //System.out.println("File " + f.toURI() + " deleted = " + f.delete());
-        f.delete();
-    }
+   public static void killCaches(Collection caches) {
+      if (caches != null) killCaches((Cache[]) caches.toArray(new Cache[]{}));
+   }
 
-    public static void killCaches(Collection caches) {
-        if (caches != null) killCaches((Cache[]) caches.toArray(new Cache[]{}));
-    }
+   public static void killCacheManagers(CacheManager... cacheManagers) {
+      if (cacheManagers != null) {
+         for (CacheManager cm : cacheManagers) {
+            if (cm != null) cm.stop();
+         }
+      }
+   }
 
-    public static void killCacheManagers(CacheManager... cacheManagers) {
-        if (cacheManagers != null) {
-            for (CacheManager cm : cacheManagers) {
-                if (cm != null) cm.stop();
-            }
-        }
-    }
+   public static void killCacheManagers(Collection<CacheManager> cacheManagers) {
+      killCacheManagers(cacheManagers.toArray(new CacheManager[cacheManagers.size()]));
+   }
 
-    public static void killCacheManagers(Collection<CacheManager> cacheManagers) {
-        killCacheManagers(cacheManagers.toArray(new CacheManager[cacheManagers.size()]));
-    }
-
-    /**
-     * Kills a cache - stops it, clears any data in any cache loaders, and rolls back any associated txs
-     */
-    public static void killCaches(Cache... caches) {
-        for (Cache c : caches) {
-            try {
-                if (c != null && c.getStatus() == ComponentStatus.RUNNING) {
-                    TransactionManager tm = getTransactionManager(c);
-                    if (tm != null) {
-                        try {
-                            tm.rollback();
-                        }
-                        catch (Exception e) {
-                            // don't care
-                        }
-                    }
-                    c.stop();
-                }
+   /**
+    * Kills a cache - stops it, clears any data in any cache loaders, and rolls back any associated txs
+    */
+   public static void killCaches(Cache... caches) {
+      for (Cache c : caches) {
+         try {
+            if (c != null && c.getStatus() == ComponentStatus.RUNNING) {
+               TransactionManager tm = getTransactionManager(c);
+               if (tm != null) {
+                  try {
+                     tm.rollback();
+                  }
+                  catch (Exception e) {
+                     // don't care
+                  }
+               }
+               c.stop();
             }
-            catch (Throwable t) {
+         }
+         catch (Throwable t) {
 
-            }
-        }
-    }
+         }
+      }
+   }
 
-    /**
-     * Clears transaction with the current thread in the given transaction manager.
-     *
-     * @param txManager a TransactionManager to be cleared
-     */
-    public static void killTransaction(TransactionManager txManager) {
-        if (txManager != null) {
-            try {
-                txManager.rollback();
-            }
-            catch (Exception e) {
-                // don't care
-            }
-        }
-    }
+   /**
+    * Clears transaction with the current thread in the given transaction manager.
+    *
+    * @param txManager a TransactionManager to be cleared
+    */
+   public static void killTransaction(TransactionManager txManager) {
+      if (txManager != null) {
+         try {
+            txManager.rollback();
+         }
+         catch (Exception e) {
+            // don't care
+         }
+      }
+   }
 
 
-    /**
-     * Clears any associated transactions with the current thread in the caches' transaction managers.
-     */
-    public static void killTransactions(Cache... caches) {
-        for (Cache c : caches) {
-            if (c != null && c.getStatus() == ComponentStatus.RUNNING) {
-                TransactionManager tm = getTransactionManager(c);
-                if (tm != null) {
-                    try {
-                        tm.rollback();
-                    }
-                    catch (Exception e) {
-                        // don't care
-                    }
-                }
+   /**
+    * Clears any associated transactions with the current thread in the caches' transaction managers.
+    */
+   public static void killTransactions(Cache... caches) {
+      for (Cache c : caches) {
+         if (c != null && c.getStatus() == ComponentStatus.RUNNING) {
+            TransactionManager tm = getTransactionManager(c);
+            if (tm != null) {
+               try {
+                  tm.rollback();
+               }
+               catch (Exception e) {
+                  // don't care
+               }
             }
-        }
-    }
+         }
+      }
+   }
 
-    /**
-     * For testing only - introspects a cache and extracts the ComponentRegistry
-     *
-     * @param cache cache to introspect
-     * @return component registry
-     */
-    public static ComponentRegistry extractComponentRegistry(Cache cache) {
-        return (ComponentRegistry) extractField(cache, "componentRegistry");
-    }
+   /**
+    * For testing only - introspects a cache and extracts the ComponentRegistry
+    *
+    * @param cache cache to introspect
+    * @return component registry
+    */
+   public static ComponentRegistry extractComponentRegistry(Cache cache) {
+      return (ComponentRegistry) extractField(cache, "componentRegistry");
+   }
 
-    public static GlobalComponentRegistry extractGlobalComponentRegistry(CacheManager cacheManager) {
-        return (GlobalComponentRegistry) extractField(cacheManager, "globalComponentRegistry");
-    }
+   public static GlobalComponentRegistry extractGlobalComponentRegistry(CacheManager cacheManager) {
+      return (GlobalComponentRegistry) extractField(cacheManager, "globalComponentRegistry");
+   }
 
-    public static LockManager extractLockManager(Cache cache) {
-        return extractComponentRegistry(cache).getComponent(LockManager.class);
-    }
+   public static LockManager extractLockManager(Cache cache) {
+      return extractComponentRegistry(cache).getComponent(LockManager.class);
+   }
 
-    /**
-     * For testing only - introspects a cache and extracts the ComponentRegistry
-     *
-     * @param ci interceptor chain to introspect
-     * @return component registry
-     */
-    public static ComponentRegistry extractComponentRegistry(InterceptorChain ci) {
-        return (ComponentRegistry) extractField(ci, "componentRegistry");
-    }
+   /**
+    * For testing only - introspects a cache and extracts the ComponentRegistry
+    *
+    * @param ci interceptor chain to introspect
+    * @return component registry
+    */
+   public static ComponentRegistry extractComponentRegistry(InterceptorChain ci) {
+      return (ComponentRegistry) extractField(ci, "componentRegistry");
+   }
 
 
-    /**
-     * Replaces the existing interceptor chain in the cache wih one represented by the interceptor passed in.  This
-     * utility updates dependencies on all components that rely on the interceptor chain as well.
-     *
-     * @param cache       cache that needs to be altered
-     * @param interceptor the first interceptor in the new chain.
-     */
-    public static void replaceInterceptorChain(Cache<?, ?> cache, CommandInterceptor interceptor) {
-        ComponentRegistry cr = extractComponentRegistry(cache);
-        // make sure all interceptors here are wired.
-        CommandInterceptor i = interceptor;
-        do {
-            cr.wireDependencies(i);
-        }
-        while ((i = i.getNext()) != null);
+   /**
+    * Replaces the existing interceptor chain in the cache wih one represented by the interceptor passed in.  This
+    * utility updates dependencies on all components that rely on the interceptor chain as well.
+    *
+    * @param cache       cache that needs to be altered
+    * @param interceptor the first interceptor in the new chain.
+    */
+   public static void replaceInterceptorChain(Cache<?, ?> cache, CommandInterceptor interceptor) {
+      ComponentRegistry cr = extractComponentRegistry(cache);
+      // make sure all interceptors here are wired.
+      CommandInterceptor i = interceptor;
+      do {
+         cr.wireDependencies(i);
+      }
+      while ((i = i.getNext()) != null);
 
-        InterceptorChain inch = cr.getComponent(InterceptorChain.class);
-        inch.setFirstInChain(interceptor);
-    }
+      InterceptorChain inch = cr.getComponent(InterceptorChain.class);
+      inch.setFirstInChain(interceptor);
+   }
 
-    /**
-     * Retrieves the remote delegate for a given cache.  It is on this remote delegate that the JGroups RPCDispatcher
-     * invokes remote methods.
-     *
-     * @param cache cache instance for which a remote delegate is to be retrieved
-     * @return remote delegate, or null if the cacge is not configured for replication.
-     */
-    public static CacheDelegate getInvocationDelegate(Cache cache) {
-        return (CacheDelegate) cache;
-    }
+   /**
+    * Retrieves the remote delegate for a given cache.  It is on this remote delegate that the JGroups RPCDispatcher
+    * invokes remote methods.
+    *
+    * @param cache cache instance for which a remote delegate is to be retrieved
+    * @return remote delegate, or null if the cacge is not configured for replication.
+    */
+   public static CacheDelegate getInvocationDelegate(Cache cache) {
+      return (CacheDelegate) cache;
+   }
 
-    /**
-     * Blocks until the cache has reached a specified state.
-     *
-     * @param cache       cache to watch
-     * @param cacheStatus status to wait for
-     * @param timeout     timeout to wait for
-     */
-    public static void blockUntilCacheStatusAchieved(Cache cache, ComponentStatus cacheStatus, long timeout) {
-        AdvancedCache spi = cache.getAdvancedCache();
-        long killTime = System.currentTimeMillis() + timeout;
-        while (System.currentTimeMillis() < killTime) {
-            if (spi.getStatus() == cacheStatus) return;
-            sleepThread(50);
-        }
-        throw new RuntimeException("Timed out waiting for condition");
-    }
+   /**
+    * Blocks until the cache has reached a specified state.
+    *
+    * @param cache       cache to watch
+    * @param cacheStatus status to wait for
+    * @param timeout     timeout to wait for
+    */
+   public static void blockUntilCacheStatusAchieved(Cache cache, ComponentStatus cacheStatus, long timeout) {
+      AdvancedCache spi = cache.getAdvancedCache();
+      long killTime = System.currentTimeMillis() + timeout;
+      while (System.currentTimeMillis() < killTime) {
+         if (spi.getStatus() == cacheStatus) return;
+         sleepThread(50);
+      }
+      throw new RuntimeException("Timed out waiting for condition");
+   }
 
-    public static void replicateCommand(Cache cache, VisitableCommand command) throws Throwable {
-        ComponentRegistry cr = extractComponentRegistry(cache);
-        InterceptorChain ic = cr.getComponent(InterceptorChain.class);
-        ic.invoke(command);
-    }
+   public static void replicateCommand(Cache cache, VisitableCommand command) throws Throwable {
+      ComponentRegistry cr = extractComponentRegistry(cache);
+      InterceptorChain ic = cr.getComponent(InterceptorChain.class);
+      ic.invoke(command);
+   }
 
-    public static void blockUntilViewsReceived(int timeout, List caches) {
-        blockUntilViewsReceived((Cache[]) caches.toArray(new Cache[]{}), timeout);
-    }
+   public static void blockUntilViewsReceived(int timeout, List caches) {
+      blockUntilViewsReceived((Cache[]) caches.toArray(new Cache[]{}), timeout);
+   }
 
 
-    public static CommandsFactory extractCommandsFactory(Cache<Object, Object> cache) {
-        return (CommandsFactory) extractField(cache, "commandsFactory");
-    }
+   public static CommandsFactory extractCommandsFactory(Cache<Object, Object> cache) {
+      return (CommandsFactory) extractField(cache, "commandsFactory");
+   }
 
-    public static void dumpCacheContents(List caches) {
-        System.out.println("**** START: Cache Contents ****");
-        int count = 1;
-        for (Object o : caches) {
-            Cache c = (Cache) o;
-            if (c == null) {
-                System.out.println("  ** Cache " + count + " is null!");
-            } else {
-                System.out.println("  ** Cache " + count + " is " + c.getCacheManager().getAddress());
-            }
-            count++;
-        }
-        System.out.println("**** END: Cache Contents ****");
-    }
+   public static void dumpCacheContents(List caches) {
+      System.out.println("**** START: Cache Contents ****");
+      int count = 1;
+      for (Object o : caches) {
+         Cache c = (Cache) o;
+         if (c == null) {
+            System.out.println("  ** Cache " + count + " is null!");
+         } else {
+            System.out.println("  ** Cache " + count + " is " + c.getCacheManager().getAddress());
+         }
+         count++;
+      }
+      System.out.println("**** END: Cache Contents ****");
+   }
 
-    public static void dumpCacheContents(Cache... caches) {
-        dumpCacheContents(Arrays.asList(caches));
-    }
+   public static void dumpCacheContents(Cache... caches) {
+      dumpCacheContents(Arrays.asList(caches));
+   }
 
-    /**
-     * Extracts a component of a given type from the cache's internal component registry
-     */
-    public static <T> T extractComponent(Cache cache, Class<T> componentType) {
-        ComponentRegistry cr = extractComponentRegistry(cache);
-        return cr.getComponent(componentType);
-    }
+   /**
+    * Extracts a component of a given type from the cache's internal component registry
+    */
+   public static <T> T extractComponent(Cache cache, Class<T> componentType) {
+      ComponentRegistry cr = extractComponentRegistry(cache);
+      return cr.getComponent(componentType);
+   }
 
-    /**
-     * Extracts a component of a given type from the cache's internal component registry
-     */
-    public static <T> T extractGlobalComponent(CacheManager cacheManager, Class<T> componentType) {
-        GlobalComponentRegistry gcr = extractGlobalComponentRegistry(cacheManager);
-        return gcr.getComponent(componentType);
-    }
+   /**
+    * Extracts a component of a given type from the cache's internal component registry
+    */
+   public static <T> T extractGlobalComponent(CacheManager cacheManager, Class<T> componentType) {
+      GlobalComponentRegistry gcr = extractGlobalComponentRegistry(cacheManager);
+      return gcr.getComponent(componentType);
+   }
 
-    public static TransactionManager getTransactionManager(Cache cache) {
-        return cache == null ? null : extractComponent(cache, TransactionManager.class);
-    }
+   public static TransactionManager getTransactionManager(Cache cache) {
+      return cache == null ? null : extractComponent(cache, TransactionManager.class);
+   }
 
-    /**
-     * Replaces a component in a running cache
-     *
-     * @param cache                cache in which to replace component
-     * @param componentType        component type of which to replace
-     * @param replacementComponent new instance
-     * @param rewire               if true, ComponentRegistry.rewire() is called after replacing.
-     * @return the original component that was replaced
-     */
-    public static <T> T replaceComponent(Cache<?, ?> cache, Class<T> componentType, T replacementComponent, boolean rewire) {
-        ComponentRegistry cr = extractComponentRegistry(cache);
-        T old = cr.getComponent(componentType);
-        cr.registerComponent(replacementComponent, componentType);
-        if (rewire) cr.rewire();
-        return old;
-    }
+   /**
+    * Replaces a component in a running cache
+    *
+    * @param cache                cache in which to replace component
+    * @param componentType        component type of which to replace
+    * @param replacementComponent new instance
+    * @param rewire               if true, ComponentRegistry.rewire() is called after replacing.
+    * @return the original component that was replaced
+    */
+   public static <T> T replaceComponent(Cache<?, ?> cache, Class<T> componentType, T replacementComponent, boolean rewire) {
+      ComponentRegistry cr = extractComponentRegistry(cache);
+      T old = cr.getComponent(componentType);
+      cr.registerComponent(replacementComponent, componentType);
+      if (rewire) cr.rewire();
+      return old;
+   }
 
-    /**
-     * Replaces a component in a running cache manager (global component registry)
-     *
-     * @param cacheManager         cache in which to replace component
-     * @param componentType        component type of which to replace
-     * @param replacementComponent new instance
-     * @param rewire               if true, ComponentRegistry.rewire() is called after replacing.
-     * @return the original component that was replaced
-     */
-    public static <T> T replaceComponent(CacheManager cacheManager, Class<T> componentType, T replacementComponent, boolean rewire) {
-        GlobalComponentRegistry cr = extractGlobalComponentRegistry(cacheManager);
-        T old = cr.getComponent(componentType);
-        cr.registerComponent(replacementComponent, componentType);
-        if (rewire) {
-            cr.rewire();
-            cr.rewireNamedRegistries();
-        }
-        return old;
-    }
+   /**
+    * Replaces a component in a running cache manager (global component registry)
+    *
+    * @param cacheManager         cache in which to replace component
+    * @param componentType        component type of which to replace
+    * @param replacementComponent new instance
+    * @param rewire               if true, ComponentRegistry.rewire() is called after replacing.
+    * @return the original component that was replaced
+    */
+   public static <T> T replaceComponent(CacheManager cacheManager, Class<T> componentType, T replacementComponent, boolean rewire) {
+      GlobalComponentRegistry cr = extractGlobalComponentRegistry(cacheManager);
+      T old = cr.getComponent(componentType);
+      cr.registerComponent(replacementComponent, componentType);
+      if (rewire) {
+         cr.rewire();
+         cr.rewireNamedRegistries();
+      }
+      return old;
+   }
 
-    public static CacheLoader getCacheLoader(Cache cache) {
-        CacheLoaderManager clm = extractComponent(cache, CacheLoaderManager.class);
-        if (clm != null && clm.isEnabled()) {
-            return clm.getCacheLoader();
-        } else {
-            return null;
-        }
-    }
+   public static CacheLoader getCacheLoader(Cache cache) {
+      CacheLoaderManager clm = extractComponent(cache, CacheLoaderManager.class);
+      if (clm != null && clm.isEnabled()) {
+         return clm.getCacheLoader();
+      } else {
+         return null;
+      }
+   }
 }

Modified: trunk/core/src/test/resources/configs/named-cache-test.xml
===================================================================
--- trunk/core/src/test/resources/configs/named-cache-test.xml	2009-05-02 20:45:30 UTC (rev 208)
+++ trunk/core/src/test/resources/configs/named-cache-test.xml	2009-05-05 15:26:50 UTC (rev 209)
@@ -26,7 +26,8 @@
       <serialization marshallerClass="org.infinispan.marshall.VersionAwareMarshaller" version="1.0"
                      objectInputStreamPoolSize="100" objectOutputStreamPoolSize="100"/>
       <globalJmxStatistics enabled="false" jmxDomain="funky_domain"
-                           mBeanServerLookup="org.infinispan.jmx.PerThreadMBeanServerLookup" allowDuplicateDomains="true"/>
+                           mBeanServerLookup="org.infinispan.jmx.PerThreadMBeanServerLookup"
+                           allowDuplicateDomains="true"/>
 
    </global>
 
@@ -83,7 +84,7 @@
          <!--
             We can have multiple cache loaders, which get chained
          -->
-         <loader class="org.infinispan.loader.file.FileCacheStore" fetchPersistentState="true"
+         <loader class="org.infinispan.loaders.file.FileCacheStore" fetchPersistentState="true"
                  ignoreModifications="true" purgeOnStartup="true">
 
             <!-- See the documentation for more configuration examples and flags. -->
@@ -98,9 +99,9 @@
 
    <namedCache name="dist">
       <clustering mode="distribution">
-         <sync />
-         <hash numOwners="3" rehashWait="120000" />
-         <l1 enabled="true" lifespan="600000" />
+         <sync/>
+         <hash numOwners="3" rehashWait="120000"/>
+         <l1 enabled="true" lifespan="600000"/>
       </clustering>
    </namedCache>
 




More information about the infinispan-commits mailing list