diff --git a/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/config/SpringServletConfig.java b/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/config/SpringServletConfig.java index ba49ded13a..ca84b6dad5 100644 --- a/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/config/SpringServletConfig.java +++ b/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/config/SpringServletConfig.java @@ -43,7 +43,7 @@ import javax.servlet.ServletConfig; import javax.servlet.ServletException; import org.jclouds.blobstore.BlobStoreContext; -import org.jclouds.blobstore.BlobStoreContextFactory; +import org.jclouds.blobstore.BlobStoreContextBuilder; import org.jclouds.demo.tweetstore.config.util.CredentialsCollector; import org.jclouds.demo.tweetstore.controller.AddTweetsController; import org.jclouds.demo.tweetstore.controller.EnqueueStoresController; @@ -86,15 +86,13 @@ public class SpringServletConfig extends LoggingConfig implements ServletConfigA private ServletConfig servletConfig; - private Map providerTypeToBlobStoreMap; + private Map> providerTypeToBlobStoreMap; private Twitter twitterClient; private String container; private Queue queue; @PostConstruct public void initialize() throws IOException { - BlobStoreContextFactory blobStoreContextFactory = new BlobStoreContextFactory(); - Properties props = loadJCloudsProperties(); LOGGER.trace("About to initialize members."); @@ -118,7 +116,8 @@ public class SpringServletConfig extends LoggingConfig implements ServletConfigA // instantiate and store references to all blobstores by provider name providerTypeToBlobStoreMap = Maps.newHashMap(); for (String hint : getBlobstoreContexts(props)) { - providerTypeToBlobStoreMap.put(hint, blobStoreContextFactory.createContext(hint, modules, props)); + providerTypeToBlobStoreMap.put(hint, BlobStoreContextBuilder + .newBuilder(hint).modules(modules).overrides(props).build()); } // get a queue for submitting store tweet requests @@ -212,7 +211,7 @@ public class SpringServletConfig extends LoggingConfig implements ServletConfigA @PreDestroy public void destroy() throws Exception { LOGGER.trace("About to close contexts."); - for (BlobStoreContext context : providerTypeToBlobStoreMap.values()) { + for (BlobStoreContext context : providerTypeToBlobStoreMap.values()) { context.close(); } LOGGER.trace("Contexts closed."); diff --git a/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/AddTweetsController.java b/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/AddTweetsController.java index 918132161e..2246479460 100644 --- a/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/AddTweetsController.java +++ b/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/AddTweetsController.java @@ -54,14 +54,14 @@ public class AddTweetsController extends HttpServlet implements /** The serialVersionUID */ private static final long serialVersionUID = 3888348023150822683L; - private final Map contexts; + private final Map> contexts; private final ServiceToStoredTweetStatuses blobStoreContextToContainerResult; @Resource protected Logger logger = Logger.NULL; @Inject - public AddTweetsController(Map contexts, + public AddTweetsController(Map> contexts, ServiceToStoredTweetStatuses blobStoreContextToContainerResult) { this.contexts = contexts; this.blobStoreContextToContainerResult = blobStoreContextToContainerResult; diff --git a/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/EnqueueStoresController.java b/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/EnqueueStoresController.java index 94568e4dec..150dff0f6c 100644 --- a/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/EnqueueStoresController.java +++ b/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/EnqueueStoresController.java @@ -60,7 +60,7 @@ public class EnqueueStoresController extends HttpServlet { protected Logger logger = Logger.NULL; @Inject - public EnqueueStoresController(Map contexts, + public EnqueueStoresController(Map> contexts, Queue taskQueue) { contextNames = contexts.keySet(); this.taskQueue = taskQueue; diff --git a/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/StoreTweetsController.java b/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/StoreTweetsController.java index ae00c69d20..95453e0894 100644 --- a/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/StoreTweetsController.java +++ b/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/controller/StoreTweetsController.java @@ -73,7 +73,7 @@ public class StoreTweetsController extends HttpServlet { /** The serialVersionUID */ private static final long serialVersionUID = 7215420527854203714L; - private final Map contexts; + private final Map> contexts; private final Twitter client; private final String container; @@ -82,7 +82,7 @@ public class StoreTweetsController extends HttpServlet { @Inject @VisibleForTesting - public StoreTweetsController(Map contexts, + public StoreTweetsController(Map> contexts, @Named(TweetStoreConstants.PROPERTY_TWEETSTORE_CONTAINER) String container, Twitter client) { this.container = container; this.contexts = contexts; @@ -91,7 +91,7 @@ public class StoreTweetsController extends HttpServlet { @VisibleForTesting public void addMyTweets(String contextName, Iterable responseList) { - BlobStoreContext context = checkNotNull(contexts.get(contextName), "no context for " + contextName + " in " + BlobStoreContext context = checkNotNull(contexts.get(contextName), "no context for " + contextName + " in " + contexts.keySet()); BlobMap map = context.createBlobMap(container); for (Status status : responseList) { diff --git a/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/functions/ServiceToStoredTweetStatuses.java b/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/functions/ServiceToStoredTweetStatuses.java index 0807c7bb46..36437544d4 100644 --- a/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/functions/ServiceToStoredTweetStatuses.java +++ b/demos/tweetstore/gae-tweetstore-spring/src/main/java/org/jclouds/demo/tweetstore/functions/ServiceToStoredTweetStatuses.java @@ -39,11 +39,11 @@ import com.google.common.collect.Iterables; @Singleton public class ServiceToStoredTweetStatuses implements Function> { - private final Map contexts; + private final Map> contexts; private final String container; @Inject - public ServiceToStoredTweetStatuses(Map contexts, + public ServiceToStoredTweetStatuses(Map> contexts, @Named(TweetStoreConstants.PROPERTY_TWEETSTORE_CONTAINER) String container) { this.contexts = contexts; this.container = container; @@ -53,7 +53,7 @@ public class ServiceToStoredTweetStatuses implements Function apply(String service) { - BlobStoreContext context = contexts.get(service); + BlobStoreContext context = contexts.get(service); String host = context.getProviderSpecificContext().getEndpoint().getHost(); try { BlobMap blobMap = context.createBlobMap(container); diff --git a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/AddTweetsControllerTest.java b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/AddTweetsControllerTest.java index c8e1241e4a..d6989d8bbe 100644 --- a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/AddTweetsControllerTest.java +++ b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/AddTweetsControllerTest.java @@ -26,7 +26,8 @@ import java.util.Map; import java.util.concurrent.ExecutionException; import org.jclouds.blobstore.BlobStoreContext; -import org.jclouds.blobstore.BlobStoreContextFactory; +import org.jclouds.blobstore.BlobStoreContextBuilder; +import org.jclouds.blobstore.TransientApiMetadata; import org.jclouds.blobstore.domain.Blob; import org.jclouds.demo.tweetstore.domain.StoredTweetStatus; import org.jclouds.demo.tweetstore.functions.ServiceToStoredTweetStatuses; @@ -45,12 +46,12 @@ import com.google.common.collect.ImmutableSet; @Test(groups = "unit") public class AddTweetsControllerTest { - Map createServices(String container) throws InterruptedException, + Map> createServices(String container) throws InterruptedException, ExecutionException { - Map services = Maps.newHashMap(); + Map> services = Maps.newHashMap(); + TransientApiMetadata transientApiMetadata = TransientApiMetadata.builder().build(); for (String name : new String[] { "1", "2" }) { - BlobStoreContext context = new BlobStoreContextFactory().createContext("transient", - "dummy", "dummy"); + BlobStoreContext context = BlobStoreContextBuilder.newBuilder(transientApiMetadata).build(); context.getAsyncBlobStore().createContainerInLocation(null, container).get(); Blob blob = context.getAsyncBlobStore().blobBuilder("1").build(); blob.getMetadata().getUserMetadata().put(TweetStoreConstants.SENDER_NAME, "frank"); @@ -63,7 +64,7 @@ public class AddTweetsControllerTest { public void testStoreTweets() throws IOException, InterruptedException, ExecutionException { String container = "container"; - Map contexts = createServices(container); + Map> contexts = createServices(container); ServiceToStoredTweetStatuses function = new ServiceToStoredTweetStatuses(contexts, container); AddTweetsController controller = new AddTweetsController(contexts, function); diff --git a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/EnqueueStoresControllerTest.java b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/EnqueueStoresControllerTest.java index dc0ac7bdf8..435285b62c 100644 --- a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/EnqueueStoresControllerTest.java +++ b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/EnqueueStoresControllerTest.java @@ -19,15 +19,16 @@ package org.jclouds.demo.tweetstore.controller; import static com.google.appengine.api.taskqueue.TaskOptions.Builder.withUrl; +import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; -import static org.easymock.classextension.EasyMock.createMock; -import static org.easymock.classextension.EasyMock.replay; -import static org.easymock.classextension.EasyMock.verify; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; import java.util.Map; import org.jclouds.blobstore.BlobStoreContext; -import org.jclouds.blobstore.BlobStoreContextFactory; +import org.jclouds.blobstore.BlobStoreContextBuilder; +import org.jclouds.blobstore.TransientApiMetadata; import org.testng.annotations.Test; import com.google.appengine.api.taskqueue.Queue; @@ -42,15 +43,16 @@ import com.google.common.collect.ImmutableMap; @Test(groups = "unit") public class EnqueueStoresControllerTest { - Map createBlobStores() { - Map contexts = ImmutableMap.of( - "test1", new BlobStoreContextFactory().createContext("transient", "dummy", "dummy"), - "test2", new BlobStoreContextFactory().createContext("transient", "dummy", "dummy")); + Map> createBlobStores() { + TransientApiMetadata transientApiMetadata = TransientApiMetadata.builder().build(); + Map> contexts = ImmutableMap.>of( + "test1", BlobStoreContextBuilder.newBuilder(transientApiMetadata).build(), + "test2", BlobStoreContextBuilder.newBuilder(transientApiMetadata).build()); return contexts; } public void testEnqueueStores() { - Map stores = createBlobStores(); + Map> stores = createBlobStores(); Queue taskQueue = createMock(Queue.class); EnqueueStoresController function = new EnqueueStoresController(stores, taskQueue); diff --git a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/StoreTweetsControllerTest.java b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/StoreTweetsControllerTest.java index 0e82a13f25..67e05543ae 100644 --- a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/StoreTweetsControllerTest.java +++ b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/controller/StoreTweetsControllerTest.java @@ -18,10 +18,10 @@ */ package org.jclouds.demo.tweetstore.controller; +import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; -import static org.easymock.classextension.EasyMock.createMock; -import static org.easymock.classextension.EasyMock.replay; -import static org.easymock.classextension.EasyMock.verify; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; import static org.jclouds.util.Strings2.toStringAndClose; import static org.testng.Assert.assertEquals; @@ -32,7 +32,8 @@ import java.util.concurrent.ExecutionException; import org.jclouds.blobstore.BlobMap; import org.jclouds.blobstore.BlobStoreContext; -import org.jclouds.blobstore.BlobStoreContextFactory; +import org.jclouds.blobstore.BlobStoreContextBuilder; +import org.jclouds.blobstore.TransientApiMetadata; import org.jclouds.blobstore.domain.Blob; import org.jclouds.demo.tweetstore.reference.TweetStoreConstants; import org.testng.annotations.Test; @@ -56,18 +57,19 @@ public class StoreTweetsControllerTest { return createMock(Twitter.class); } - Map createBlobStores() throws InterruptedException, ExecutionException { - Map contexts = ImmutableMap. of("test1", - new BlobStoreContextFactory().createContext("transient", "dummy", "dummy"), "test2", - new BlobStoreContextFactory().createContext("transient", "dummy", "dummy")); - for (BlobStoreContext blobstore : contexts.values()) { + Map> createBlobStores() throws InterruptedException, ExecutionException { + TransientApiMetadata transientApiMetadata = TransientApiMetadata.builder().build(); + Map> contexts = ImmutableMap.>of( + "test1", BlobStoreContextBuilder.newBuilder(transientApiMetadata).build(), + "test2", BlobStoreContextBuilder.newBuilder(transientApiMetadata).build()); + for (BlobStoreContext blobstore : contexts.values()) { blobstore.getAsyncBlobStore().createContainerInLocation(null, "favo").get(); } return contexts; } public void testStoreTweets() throws IOException, InterruptedException, ExecutionException { - Map stores = createBlobStores(); + Map> stores = createBlobStores(); StoreTweetsController function = new StoreTweetsController(stores, "favo", createTwitter()); User frank = createMock(User.class); @@ -99,7 +101,7 @@ public class StoreTweetsControllerTest { verify(jimmy); verify(jimmyStatus); - for (Entry entry : stores.entrySet()) { + for (Entry> entry : stores.entrySet()) { BlobMap map = entry.getValue().createBlobMap("favo"); Blob frankBlob = map.get("1"); assertEquals(frankBlob.getMetadata().getName(), "1"); diff --git a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/functions/KeyToStoredTweetStatusTest.java b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/functions/KeyToStoredTweetStatusTest.java index 58153eb3ed..61a6dcfffc 100644 --- a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/functions/KeyToStoredTweetStatusTest.java +++ b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/functions/KeyToStoredTweetStatusTest.java @@ -25,7 +25,8 @@ import java.util.concurrent.ExecutionException; import org.jclouds.blobstore.BlobMap; import org.jclouds.blobstore.BlobStoreContext; -import org.jclouds.blobstore.BlobStoreContextFactory; +import org.jclouds.blobstore.BlobStoreContextBuilder; +import org.jclouds.blobstore.TransientApiMetadata; import org.jclouds.blobstore.domain.Blob; import org.jclouds.demo.tweetstore.domain.StoredTweetStatus; import org.jclouds.demo.tweetstore.reference.TweetStoreConstants; @@ -40,8 +41,8 @@ import org.testng.annotations.Test; public class KeyToStoredTweetStatusTest { BlobMap createMap() throws InterruptedException, ExecutionException { - BlobStoreContext context = new BlobStoreContextFactory().createContext("transient", "dummy", - "dummy"); + BlobStoreContext context = + BlobStoreContextBuilder.newBuilder(TransientApiMetadata.builder().build()).build(); context.getBlobStore().createContainerInLocation(null, "test1"); return context.createBlobMap("test1"); } diff --git a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/functions/ServiceToStoredTweetStatusesTest.java b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/functions/ServiceToStoredTweetStatusesTest.java index 51df008762..54deb948db 100644 --- a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/functions/ServiceToStoredTweetStatusesTest.java +++ b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/functions/ServiceToStoredTweetStatusesTest.java @@ -25,7 +25,8 @@ import java.util.Map; import java.util.concurrent.ExecutionException; import org.jclouds.blobstore.BlobStoreContext; -import org.jclouds.blobstore.BlobStoreContextFactory; +import org.jclouds.blobstore.BlobStoreContextBuilder; +import org.jclouds.blobstore.TransientApiMetadata; import org.jclouds.blobstore.domain.Blob; import org.jclouds.demo.tweetstore.domain.StoredTweetStatus; import org.jclouds.demo.tweetstore.reference.TweetStoreConstants; @@ -42,12 +43,12 @@ import com.google.common.collect.Iterables; @Test(groups = "unit") public class ServiceToStoredTweetStatusesTest { - Map createServices(String container) throws InterruptedException, + Map> createServices(String container) throws InterruptedException, ExecutionException { - Map services = Maps.newHashMap(); + Map> services = Maps.newHashMap(); + TransientApiMetadata transientApiMetadata = TransientApiMetadata.builder().build(); for (String name : new String[] { "1", "2" }) { - BlobStoreContext context = new BlobStoreContextFactory().createContext("transient", - "dummy", "dummy"); + BlobStoreContext context = BlobStoreContextBuilder.newBuilder(transientApiMetadata).build(); context.getAsyncBlobStore().createContainerInLocation(null, container).get(); Blob blob = context.getAsyncBlobStore().blobBuilder("1").build(); blob.getMetadata().getUserMetadata().put(TweetStoreConstants.SENDER_NAME, "frank"); @@ -60,7 +61,7 @@ public class ServiceToStoredTweetStatusesTest { public void testStoreTweets() throws IOException, InterruptedException, ExecutionException { String container = "container"; - Map contexts = createServices(container); + Map> contexts = createServices(container); ServiceToStoredTweetStatuses function = new ServiceToStoredTweetStatuses(contexts, container); diff --git a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/integration/TweetStoreLiveTest.java b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/integration/TweetStoreLiveTest.java index 974bafb9f0..0b2a80dceb 100644 --- a/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/integration/TweetStoreLiveTest.java +++ b/demos/tweetstore/gae-tweetstore-spring/src/test/java/org/jclouds/demo/tweetstore/integration/TweetStoreLiveTest.java @@ -38,7 +38,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; import org.jclouds.blobstore.BlobStoreContext; -import org.jclouds.blobstore.BlobStoreContextFactory; +import org.jclouds.blobstore.BlobStoreContextBuilder; import org.jclouds.demo.tweetstore.config.SpringServletConfig; import org.jclouds.demo.tweetstore.controller.StoreTweetsController; import org.jclouds.logging.log4j.config.Log4JLoggingModule; @@ -73,7 +73,7 @@ public class TweetStoreLiveTest { GoogleDevServer server; private URL url; - private Map contexts; + private Map> contexts; private String container; private static final Iterable blobstores = @@ -95,13 +95,13 @@ public class TweetStoreLiveTest { // example of an ad-hoc client configuration addConfigurationForTwitter(props); - final BlobStoreContextFactory factory = new BlobStoreContextFactory(); // for testing, capture logs. final Set wiring = ImmutableSet. of(new Log4JLoggingModule()); this.contexts = Maps.newConcurrentMap(); for (String provider : blobstores) { - contexts.put(provider, factory.createContext(provider, wiring, props)); + contexts.put(provider, BlobStoreContextBuilder.newBuilder(provider) + .modules(wiring).overrides(props).build()); } Configuration conf = new ConfigurationBuilder() @@ -116,7 +116,7 @@ public class TweetStoreLiveTest { ResponseList statuses = client.getMentions(); boolean deleted = false; - for (BlobStoreContext context : contexts.values()) { + for (BlobStoreContext context : contexts.values()) { if (context.getBlobStore().containerExists(container)) { System.err.printf("deleting container %s at %s%n", container, context.getProviderSpecificContext() .getEndpoint()); @@ -128,7 +128,7 @@ public class TweetStoreLiveTest { System.err.println("sleeping 60 seconds to allow containers to clear"); Thread.sleep(60000); } - for (BlobStoreContext context : contexts.values()) { + for (BlobStoreContext context : contexts.values()) { System.err.printf("creating container %s at %s%n", container, context.getProviderSpecificContext() .getEndpoint()); context.getBlobStore().createContainerInLocation(null, container); @@ -138,7 +138,7 @@ public class TweetStoreLiveTest { Thread.sleep(5000); } - for (Entry entry : contexts.entrySet()) { + for (Entry> entry : contexts.entrySet()) { System.err.printf("filling container %s at %s%n", container, entry.getKey()); controller.addMyTweets(entry.getKey(), statuses); } @@ -205,7 +205,7 @@ public class TweetStoreLiveTest { System.err.println("sleeping 20 seconds to allow for eventual consistency delay"); Thread.sleep(20000); - for (BlobStoreContext context : contexts.values()) { + for (BlobStoreContext context : contexts.values()) { assert context.createInputStreamMap(container).size() > 0 : context.getProviderSpecificContext().getEndpoint(); } }