[infinispan-commits] Infinispan SVN: r670 - in trunk: cachestore/s3/src/test/java/org/infinispan/loaders/s3 and 7 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Thu Aug 13 09:36:46 EDT 2009
Author: mircea.markus
Date: 2009-08-13 09:36:46 -0400 (Thu, 13 Aug 2009)
New Revision: 670
Modified:
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/test/java/org/infinispan/loaders/s3/S3CacheStoreFunctionalIntegrationTest.java
trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreIntegrationTest.java
trunk/cachestore/s3/src/test/resources/log4j.xml
trunk/core/src/main/java/org/infinispan/factories/RpcManagerFactory.java
trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStore.java
trunk/core/src/main/java/org/infinispan/loaders/CacheLoader.java
trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java
trunk/core/src/main/java/org/infinispan/loaders/decorators/AbstractDelegatingStore.java
trunk/core/src/main/java/org/infinispan/loaders/decorators/ChainingCacheStore.java
trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStore.java
trunk/core/src/test/java/org/infinispan/loaders/AbstractCacheStoreTest.java
trunk/core/src/test/java/org/infinispan/loaders/dummy/DummyInMemoryCacheStore.java
Log:
fixed tests
Modified: trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStore.java
===================================================================
--- trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStore.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStore.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -9,6 +9,7 @@
import org.infinispan.loaders.s3.jclouds.JCloudsBucket;
import org.infinispan.loaders.s3.jclouds.JCloudsConnection;
import org.infinispan.marshall.Marshaller;
+import org.infinispan.util.Util;
import org.infinispan.util.logging.Log;
import org.infinispan.util.logging.LogFactory;
@@ -45,8 +46,17 @@
/**
* {@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, new JCloudsConnection(), new JCloudsBucket());
+ public void init(CacheLoaderConfig cfg, Cache cache, Marshaller m) throws CacheLoaderException {
+ this.config = (S3CacheStoreConfig) cfg;
+ S3Bucket cloudsBucket = null;
+ S3Connection cloudsConnection = null;
+ try {
+ cloudsConnection = config.getConnectionClass() != null ? (S3Connection) Util.getInstance(config.getConnectionClass()) : new JCloudsConnection();
+ cloudsBucket = config.getBucketClass()!=null ? (S3Bucket) Util.getInstance(config.getBucketClass()) : new JCloudsBucket();
+ } catch (Exception e) {
+ throw new CacheLoaderException(e);
+ }
+ init(cfg, cache, m, cloudsConnection, cloudsBucket);
}
@Override
@@ -55,7 +65,7 @@
this.connection.disconnect();
}
- public void init(CacheLoaderConfig config, Cache cache, Marshaller m, S3Connection connection, S3Bucket bucket) {
+ public void init(CacheLoaderConfig config, Cache cache, Marshaller m, S3Connection connection, S3Bucket bucket) throws CacheLoaderException {
super.init(config, cache, m);
this.config = (S3CacheStoreConfig) config;
this.cache = cache;
@@ -75,12 +85,19 @@
if (config.getAwsSecretKey() == null)
throw new IllegalArgumentException("awsSecretKey must be set");
this.connection.connect(config, marshaller);
- String s3Bucket = config.getBucket();
- if (s3Bucket == null)
+ if (config.getBucketPrefix() == null)
throw new IllegalArgumentException("s3Bucket must be set");
+ String s3Bucket = getThisBucketName();
this.s3Bucket.init(this.connection, connection.verifyOrCreateBucket(s3Bucket));
}
+ private String getThisBucketName() {
+ if (log.isTraceEnabled()) {
+ log.trace("Bucket prefix is " + config.getBucketPrefix() + " and cache name is " + cache.getName());
+ }
+ return config.getBucketPrefix() + "-" + cache.getName().toLowerCase();
+ }
+
@SuppressWarnings("unchecked")
protected Set<InternalCacheEntry> loadAllLockSafe() throws CacheLoaderException {
Set<InternalCacheEntry> result = new HashSet<InternalCacheEntry>();
@@ -102,16 +119,16 @@
} catch (Exception e) {
throw convertToCacheLoaderException("Error while reading from stream", e);
}
- if (config.getBucket().equals(source)) {
+ if (getThisBucketName().equals(source)) {
log.info("Attempt to load the same s3 bucket ignored");
} else {
- connection.copyBucket(source, config.getBucket());
+ connection.copyBucket(source, getThisBucketName());
}
}
protected void toStreamLockSafe(ObjectOutput objectOutput) throws CacheLoaderException {
try {
- objectOutput.writeObject(config.getBucket());
+ objectOutput.writeObject(getThisBucketName());
} catch (IOException e) {
throw convertToCacheLoaderException("Error while writing to stream", e);
}
Modified: trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStoreConfig.java
===================================================================
--- trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStoreConfig.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/cachestore/s3/src/main/java/org/infinispan/loaders/s3/S3CacheStoreConfig.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -27,12 +27,15 @@
public class S3CacheStoreConfig extends LockSupportCacheStoreConfig {
private String awsAccessKey;
private String awsSecretKey;
- private String bucket;
+ private String bucketPrefix;
private String proxyHost;
private int proxyPort;
private long requestTimeout = 10000;
+ private String bucketClass;
+ private String connectionClass;
+
public long getRequestTimeout() {
return requestTimeout;
}
@@ -94,14 +97,14 @@
this.awsSecretKey = awsSecretKey;
}
- public String getBucket() {
- return bucket;
+ public String getBucketPrefix() {
+ return bucketPrefix;
}
- @ConfigurationProperty(name="bucket",
+ @ConfigurationProperty(name="bucketPrefix",
parentElement="properties")
- public void setBucket(String bucket) {
- this.bucket = bucket;
+ public void setBucketPrefix(String bucketPrefix) {
+ this.bucketPrefix = bucketPrefix;
}
public String getProxyHost() {
@@ -124,5 +127,19 @@
this.proxyPort = proxyPort;
}
+ public String getBucketClass() {
+ return bucketClass;
+ }
+ public void setBucketClass(String bucketClass) {
+ this.bucketClass = bucketClass;
+ }
+
+ public String getConnectionClass() {
+ return connectionClass;
+ }
+
+ public void setConnectionClass(String connectionClass) {
+ this.connectionClass = connectionClass;
+ }
}
\ No newline at end of file
Modified: trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreFunctionalIntegrationTest.java
===================================================================
--- trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreFunctionalIntegrationTest.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreFunctionalIntegrationTest.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -38,7 +38,10 @@
private String csBucket;
private String accessKey;
private String secretKey;
+ String connectionClass;
+ String bucketClass;
+
private static final String sysAWSAccessKeyId = System
.getProperty("jclouds.aws.accesskeyid");
private static final String sysAWSSecretAccessKey = System
@@ -56,6 +59,8 @@
secretKey == null || secretKey.trim().equals("")) {
accessKey = "dummy";
secretKey = "dummy";
+ connectionClass = MockS3Connection.class.getName();
+ bucketClass = MockS3Bucket.class.getName();
} else {
proxyHost = "localhost"; // TODO not yet used
proxyPort = 8888; // TODO not yet used
@@ -64,17 +69,20 @@
+ "." + this.getClass().getSimpleName()).toLowerCase();
System.out.printf("accessKey: %1$s, bucket: %2$s%n", accessKey, csBucket);
}
-
+
+
@Override
protected CacheStoreConfig createCacheStoreConfig() throws Exception {
S3CacheStoreConfig cfg = new S3CacheStoreConfig();
- cfg.setBucket(csBucket);
+ cfg.setBucketPrefix(csBucket);
cfg.setAwsAccessKey(accessKey);
cfg.setAwsSecretKey(secretKey);
cfg.setProxyHost(proxyHost);
cfg.setProxyPort(proxyPort);
cfg.setSecure(isSecure);
cfg.setMaxConnections(maxConnections);
+ cfg.setBucketClass(bucketClass);
+ cfg.setConnectionClass(connectionClass);
cfg.setPurgeSynchronously(true); // for more accurate unit testing
return cfg;
}
Modified: trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreIntegrationTest.java
===================================================================
--- trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreIntegrationTest.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreIntegrationTest.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -1,15 +1,6 @@
package org.infinispan.loaders.s3;
-import static org.testng.Assert.assertEquals;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.HashSet;
-import java.util.Set;
-
+import org.infinispan.CacheDelegate;
import org.infinispan.container.entries.InternalCacheEntry;
import org.infinispan.container.entries.InternalEntryFactory;
import org.infinispan.io.UnclosableObjectInputStream;
@@ -20,6 +11,7 @@
import org.infinispan.loaders.s3.jclouds.JCloudsBucket;
import org.infinispan.loaders.s3.jclouds.JCloudsConnection;
import org.infinispan.marshall.Marshaller;
+import static org.testng.Assert.assertEquals;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;
@@ -27,6 +19,14 @@
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.HashSet;
+import java.util.Set;
+
/**
* @author Adrian Cole
* @since 4.0
@@ -89,7 +89,7 @@
private CacheStore createAndStartCacheStore(String bucket) throws Exception {
S3CacheStore cs = new S3CacheStore();
S3CacheStoreConfig cfg = new S3CacheStoreConfig();
- cfg.setBucket(bucket);
+ cfg.setBucketPrefix(bucket);
cfg.setAwsAccessKey(accessKey);
cfg.setAwsSecretKey(secretKey);
cfg.setProxyHost(proxyHost);
@@ -97,7 +97,7 @@
cfg.setSecure(isSecure);
cfg.setMaxConnections(maxConnections);
cfg.setPurgeSynchronously(true); // for more accurate unit testing
- cs.init(cfg, getCache(), getMarshaller(), connectionClass.newInstance(), bucketClass.newInstance());
+ cs.init(cfg, new CacheDelegate("aName"), getMarshaller(), connectionClass.newInstance(), bucketClass.newInstance());
cs.start();
return cs;
}
Modified: trunk/cachestore/s3/src/test/resources/log4j.xml
===================================================================
--- trunk/cachestore/s3/src/test/resources/log4j.xml 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/cachestore/s3/src/test/resources/log4j.xml 2009-08-13 13:36:46 UTC (rev 670)
@@ -8,7 +8,7 @@
<!-- A time/date based rolling appender -->
<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
- <param name="File" value="target/test-data/infinispan.log"/>
+ <param name="File" value="s3_cache_store.log"/>
<param name="Append" value="false"/>
<!-- Rollover at midnight each day -->
Modified: trunk/core/src/main/java/org/infinispan/factories/RpcManagerFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/factories/RpcManagerFactory.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/core/src/main/java/org/infinispan/factories/RpcManagerFactory.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -37,6 +37,7 @@
public <T> T construct(Class<T> componentType) {
// only do this if we have a transport configured!
if (globalConfiguration.getTransportClass() == null) return null;
+ //todo - throw an excwption if transport is missing
return super.construct(componentType);
}
}
Modified: trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStore.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStore.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -37,7 +37,7 @@
protected Marshaller marshaller;
- public void init(CacheLoaderConfig config, Cache cache, Marshaller m) {
+ public void init(CacheLoaderConfig config, Cache cache, Marshaller m) throws CacheLoaderException{
this.config = (AbstractCacheStoreConfig) config;
this.marshaller = m;
if (config == null) throw new IllegalStateException("Null config!!!");
Modified: trunk/core/src/main/java/org/infinispan/loaders/CacheLoader.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/CacheLoader.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/core/src/main/java/org/infinispan/loaders/CacheLoader.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -23,7 +23,7 @@
* selecting where refer to state in storage, for example, a different database table name.
* @param m marshaller to use when loading state from a stream, if supported by the implementation.
*/
- void init(CacheLoaderConfig config, Cache cache, Marshaller m);
+ void init(CacheLoaderConfig config, Cache cache, Marshaller m) throws CacheLoaderException;
/**
* Loads an entry mapped to by a given key. Should return null if the entry does not exist. Expired entries are not
Modified: trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -34,7 +34,7 @@
private long globalLockTimeoutMillis;
private LockSupportCacheStoreConfig config;
- public void init(CacheLoaderConfig config, Cache cache, Marshaller m) {
+ public void init(CacheLoaderConfig config, Cache cache, Marshaller m) throws CacheLoaderException {
super.init(config, cache, m);
this.config = (LockSupportCacheStoreConfig) config;
}
Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/AbstractDelegatingStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/decorators/AbstractDelegatingStore.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/AbstractDelegatingStore.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -78,7 +78,7 @@
delegate.prepare(list, tx, isOnePhase);
}
- public void init(CacheLoaderConfig config, Cache cache, Marshaller m) {
+ public void init(CacheLoaderConfig config, Cache cache, Marshaller m) throws CacheLoaderException {
delegate.init(config, cache, m);
}
Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/ChainingCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/decorators/ChainingCacheStore.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/ChainingCacheStore.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -94,7 +94,7 @@
for (CacheStore s : stores.keySet()) s.prepare(list, tx, isOnePhase);
}
- public void init(CacheLoaderConfig config, Cache cache, Marshaller m) {
+ public void init(CacheLoaderConfig config, Cache cache, Marshaller m) throws CacheLoaderException {
for (Map.Entry<CacheLoader, CacheLoaderConfig> e : loaders.entrySet()) {
e.getKey().init(e.getValue(), cache, m);
}
Modified: trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStore.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStore.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -47,7 +47,7 @@
return root;
}
- public void init(CacheLoaderConfig config, Cache cache, Marshaller m) {
+ public void init(CacheLoaderConfig config, Cache cache, Marshaller m) throws CacheLoaderException {
super.init(config, cache, m);
this.config = (FileCacheStoreConfig) config;
this.cache = cache;
Modified: trunk/core/src/test/java/org/infinispan/loaders/AbstractCacheStoreTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loaders/AbstractCacheStoreTest.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/core/src/test/java/org/infinispan/loaders/AbstractCacheStoreTest.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -21,7 +21,7 @@
private AbstractCacheStoreConfig cfg;
@BeforeMethod
- public void setUp() throws NoSuchMethodException {
+ public void setUp() throws NoSuchMethodException, CacheLoaderException {
cs = createMock(AbstractCacheStore.class, AbstractCacheStore.class.getMethod("clear"));
cfg = new AbstractCacheStoreConfig();
cs.init(cfg, null, null);
Modified: trunk/core/src/test/java/org/infinispan/loaders/dummy/DummyInMemoryCacheStore.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loaders/dummy/DummyInMemoryCacheStore.java 2009-08-13 13:22:00 UTC (rev 669)
+++ trunk/core/src/test/java/org/infinispan/loaders/dummy/DummyInMemoryCacheStore.java 2009-08-13 13:36:46 UTC (rev 670)
@@ -78,7 +78,7 @@
}
}
- public void init(CacheLoaderConfig config, Cache cache, Marshaller m) {
+ public void init(CacheLoaderConfig config, Cache cache, Marshaller m) throws CacheLoaderException {
super.init(config, cache, m);
this.config = (Cfg) config;
this.cache = cache;
More information about the infinispan-commits
mailing list