[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