Repository: jclouds-examples
Updated Branches:
  refs/heads/master 0347a90e2 -> ce3365b82


Fixes to Cloud Files examples from PR #50


Project: http://git-wip-us.apache.org/repos/asf/jclouds-examples/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-examples/commit/ce3365b8
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-examples/tree/ce3365b8
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-examples/diff/ce3365b8

Branch: refs/heads/master
Commit: ce3365b82415a7df0297293cc4f122f4c8109ceb
Parents: 0347a90
Author: Everett Toews <[email protected]>
Authored: Tue Jun 10 14:31:09 2014 -0500
Committer: Everett Toews <[email protected]>
Committed: Tue Jun 10 15:39:58 2014 -0500

----------------------------------------------------------------------
 .../jclouds/examples/rackspace/SmokeTest.java   |  1 +
 .../rackspace/cloudfiles/CloudFilesPublish.java |  8 ++-
 .../rackspace/cloudfiles/GenerateTempURL.java   | 25 ++++----
 .../rackspace/cloudfiles/GetContainer.java      |  3 -
 .../cloudfiles/UploadDirectoryToCDN.java        | 64 +++++++++++---------
 5 files changed, 54 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/ce3365b8/rackspace/src/main/java/org/jclouds/examples/rackspace/SmokeTest.java
----------------------------------------------------------------------
diff --git 
a/rackspace/src/main/java/org/jclouds/examples/rackspace/SmokeTest.java 
b/rackspace/src/main/java/org/jclouds/examples/rackspace/SmokeTest.java
index 3eb1434..a6539dd 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/SmokeTest.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/SmokeTest.java
@@ -62,6 +62,7 @@ public class SmokeTest {
       CloudFilesPublish.main(args);
       CreateContainer.main(args);
       ListContainers.main(args);
+      GenerateTempURL.main(args);
       UploadObjects.main(args);
       ListObjects.main(args);
       CrossOriginResourceSharingContainer.main(args);

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/ce3365b8/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CloudFilesPublish.java
----------------------------------------------------------------------
diff --git 
a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CloudFilesPublish.java
 
b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CloudFilesPublish.java
index bc69671..0e00cab 100644
--- 
a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CloudFilesPublish.java
+++ 
b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CloudFilesPublish.java
@@ -23,6 +23,8 @@ import static 
org.jclouds.examples.rackspace.cloudfiles.Constants.FILENAME;
 import static org.jclouds.examples.rackspace.cloudfiles.Constants.PROVIDER;
 import static org.jclouds.examples.rackspace.cloudfiles.Constants.REGION;
 import static org.jclouds.examples.rackspace.cloudfiles.Constants.SUFFIX;
+import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.STATIC_WEB_ERROR;
+import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.STATIC_WEB_INDEX;
 
 import java.io.Closeable;
 import java.io.File;
@@ -85,10 +87,10 @@ public class CloudFilesPublish implements Closeable {
     */
    private void createContainer() {
       System.out.format("Create Container%n");
-      // create a Multimap for the static web headers
+
       Multimap<String, String> enableStaticWebHeaders =
-            ImmutableMultimap.of(SwiftHeaders.STATIC_WEB_INDEX, FILENAME + 
SUFFIX,
-                                 SwiftHeaders.STATIC_WEB_ERROR, "error.html");
+            ImmutableMultimap.of(STATIC_WEB_INDEX, FILENAME + SUFFIX,
+                                 STATIC_WEB_ERROR, "error.html");
       
       CreateContainerOptions opts = new 
CreateContainerOptions().headers(enableStaticWebHeaders);
       cloudFiles.getContainerApiForRegion(REGION).create(CONTAINER_PUBLISH, 
opts);

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/ce3365b8/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GenerateTempURL.java
----------------------------------------------------------------------
diff --git 
a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GenerateTempURL.java
 
b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GenerateTempURL.java
index 72e0fb2..4abfe93 100644
--- 
a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GenerateTempURL.java
+++ 
b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GenerateTempURL.java
@@ -18,11 +18,9 @@
  */
 package org.jclouds.examples.rackspace.cloudfiles;
 
-import com.google.common.base.Charsets;
 import com.google.common.io.ByteSource;
 import com.google.common.io.Closeables;
 import com.google.common.io.Files;
-
 import org.jclouds.ContextBuilder;
 import org.jclouds.blobstore.BlobStore;
 import org.jclouds.blobstore.BlobStoreContext;
@@ -32,7 +30,7 @@ import org.jclouds.http.HttpResponse;
 import org.jclouds.http.HttpResponseException;
 import org.jclouds.io.Payload;
 import org.jclouds.io.Payloads;
-import org.jclouds.util.Strings2;
+import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContext;
 
 import java.io.Closeable;
 import java.io.File;
@@ -40,6 +38,7 @@ import java.io.IOException;
 
 import static org.jclouds.examples.rackspace.cloudfiles.Constants.CONTAINER;
 import static org.jclouds.examples.rackspace.cloudfiles.Constants.PROVIDER;
+import static org.jclouds.examples.rackspace.cloudfiles.Constants.REGION;
 
 /**
  * The Temporary URL feature (TempURL) allows you to create limited-time 
Internet addresses which allow you to grant 
@@ -62,7 +61,7 @@ public class GenerateTempURL implements Closeable {
    private static final int TEN_MINUTES = 10 * 60;
    
    private final BlobStore blobStore;
-   private final BlobStoreContext blobStoreContext;
+   private final RegionScopedBlobStoreContext blobStoreContext;
 
    /**
     * To get a username and API key see 
http://jclouds.apache.org/guides/rackspace/
@@ -89,8 +88,8 @@ public class GenerateTempURL implements Closeable {
    public GenerateTempURL(String username, String apiKey) {
       blobStoreContext = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
-            .buildView(BlobStoreContext.class);
-      blobStore = blobStoreContext.getBlobStore();
+            .buildView(RegionScopedBlobStoreContext.class);
+      blobStore = blobStoreContext.blobStoreInRegion(REGION);
    }
    
    private void generatePutTempURL() throws IOException {
@@ -105,7 +104,7 @@ public class GenerateTempURL implements Closeable {
       Blob blob = 
blobStore.blobBuilder(FILENAME).payload(payload).contentType("text/plain").build();
       HttpRequest request = 
blobStoreContext.getSigner().signPutBlob(CONTAINER, blob, TEN_MINUTES);
       
-      System.out.format("  %s %s", request.getMethod(), request.getEndpoint());
+      System.out.format("  %s %s%n", request.getMethod(), 
request.getEndpoint());
       
       // PUT the file using jclouds
       HttpResponse response = blobStoreContext.utils().http().invoke(request);
@@ -124,16 +123,18 @@ public class GenerateTempURL implements Closeable {
       
       HttpRequest request = 
blobStoreContext.getSigner().signGetBlob(CONTAINER, FILENAME, TEN_MINUTES);
       
-      System.out.format("  %s %s", request.getMethod(), request.getEndpoint());
+      System.out.format("  %s %s%n", request.getMethod(), 
request.getEndpoint());
       
       // GET the file using jclouds
       File file = File.createTempFile(FILENAME, ".tmp");
+      Payload payload = 
blobStoreContext.utils().http().invoke(request).getPayload();
+
       try {
-         String content = 
Strings2.toString(blobStoreContext.utils().http().invoke(request).getPayload());
-         Files.write(content, file, Charsets.UTF_8);
-         
+         Files.asByteSink(file).writeFrom(payload.openStream());
+
          System.out.format("  GET Success (%s)%n", file.getAbsolutePath());
       } finally {
+         payload.release();
          file.delete();
       }
    }
@@ -143,7 +144,7 @@ public class GenerateTempURL implements Closeable {
       
       HttpRequest request = 
blobStoreContext.getSigner().signRemoveBlob(CONTAINER, FILENAME);
       
-      System.out.format("  %s %s", request.getMethod(), request.getEndpoint());
+      System.out.format("  %s %s%n", request.getMethod(), 
request.getEndpoint());
       
       // DELETE the file using jclouds
       HttpResponse response = blobStoreContext.utils().http().invoke(request);

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/ce3365b8/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetContainer.java
----------------------------------------------------------------------
diff --git 
a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetContainer.java
 
b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetContainer.java
index 1f128e4..0d62448 100644
--- 
a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetContainer.java
+++ 
b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetContainer.java
@@ -33,9 +33,6 @@ import com.google.common.io.Closeables;
 
 /**
  * Create a Cloud Files container with some metadata associated with it.
- *  
- * @author Everett Toews
- * @author Jeremy Daggett
  */
 public class GetContainer implements Closeable {
    private final CloudFilesApi cloudFiles;

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/ce3365b8/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadDirectoryToCDN.java
----------------------------------------------------------------------
diff --git 
a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadDirectoryToCDN.java
 
b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadDirectoryToCDN.java
index 1527a05..ad04f95 100644
--- 
a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadDirectoryToCDN.java
+++ 
b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadDirectoryToCDN.java
@@ -18,29 +18,8 @@
  */
 package org.jclouds.examples.rackspace.cloudfiles;
 
-import static com.google.common.base.Preconditions.checkArgument;
-import static java.util.concurrent.Executors.newFixedThreadPool;
-import static org.jclouds.examples.rackspace.cloudfiles.Constants.PROVIDER;
-import static org.jclouds.examples.rackspace.cloudfiles.Constants.REGION;
-
-import java.io.Closeable;
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.util.List;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-
-import org.jclouds.ContextBuilder;
-import org.jclouds.blobstore.BlobStore;
-import org.jclouds.blobstore.BlobStoreContext;
-import org.jclouds.blobstore.domain.Blob;
-import org.jclouds.io.Payloads;
-import org.jclouds.openstack.swift.v1.options.UpdateContainerOptions;
-import org.jclouds.openstack.swift.v1.reference.SwiftHeaders;
-import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
-
 import com.google.common.collect.ImmutableMultimap;
+import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Multimap;
 import com.google.common.io.ByteSource;
@@ -51,6 +30,30 @@ import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.ListeningExecutorService;
 import com.google.common.util.concurrent.MoreExecutors;
+import org.jclouds.ContextBuilder;
+import org.jclouds.blobstore.BlobStore;
+import org.jclouds.blobstore.domain.Blob;
+import org.jclouds.domain.Location;
+import org.jclouds.io.Payloads;
+import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContext;
+import org.jclouds.openstack.swift.v1.options.UpdateContainerOptions;
+import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.collect.Iterables.getOnlyElement;
+import static java.util.concurrent.Executors.newFixedThreadPool;
+import static org.jclouds.examples.rackspace.cloudfiles.Constants.PROVIDER;
+import static org.jclouds.examples.rackspace.cloudfiles.Constants.REGION;
+import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.STATIC_WEB_ERROR;
+import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.STATIC_WEB_INDEX;
 
 /**
  * Upload an entire directory and all of its sub-directories to a Cloud Files 
container. The local directory hierarchy
@@ -87,9 +90,10 @@ public class UploadDirectoryToCDN implements Closeable {
    }
 
    public UploadDirectoryToCDN(String username, String apiKey) {
-      ContextBuilder builder = ContextBuilder.newBuilder(PROVIDER)
-            .credentials(username, apiKey);
-      blobStore = builder.buildView(BlobStoreContext.class).getBlobStore();
+      RegionScopedBlobStoreContext context = 
ContextBuilder.newBuilder(PROVIDER)
+            .credentials(username, apiKey)
+            .buildView(RegionScopedBlobStoreContext.class);
+      blobStore = context.blobStoreInRegion(REGION);
       cloudFiles = blobStore.getContext().unwrapApi(CloudFilesApi.class);
    }
 
@@ -99,10 +103,12 @@ public class UploadDirectoryToCDN implements Closeable {
    private void uploadDirectory(String dirPath, String container) throws 
InterruptedException, ExecutionException {
       File dir = new File(dirPath);
       checkArgument(dir.isDirectory(), "%s is not a directory", dirPath);
-      
+
       System.out.format("Uploading %s to %s", dirPath, container);
 
-      blobStore.createContainerInLocation(null, container);
+      // There is only one assignable location because we are using the 
RegionScopedBlobStoreContext
+      Location location = getOnlyElement(blobStore.listAssignableLocations());
+      blobStore.createContainerInLocation(location, container);
 
       List<BlobDetail> blobDetails = Lists.newArrayList();
       generateFileList(dir, "", blobDetails);
@@ -171,8 +177,8 @@ public class UploadDirectoryToCDN implements Closeable {
    private void enableCdnContainer(String container) {
       System.out.format("Enable CDN%n");
       Multimap<String, String> enableStaticWebHeaders =
-            ImmutableMultimap.of(SwiftHeaders.STATIC_WEB_INDEX, "index.html",
-                                 SwiftHeaders.STATIC_WEB_ERROR, "error.html");
+            ImmutableMultimap.of(STATIC_WEB_INDEX, "index.html",
+                                 STATIC_WEB_ERROR, "error.html");
 
       UpdateContainerOptions opts = new 
UpdateContainerOptions().headers(enableStaticWebHeaders);
       cloudFiles.getContainerApiForRegion(REGION).update(container, opts);

Reply via email to