[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