You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ev...@apache.org on 2014/06/10 18:25:35 UTC

git commit: Updated Cloud Files examples for 1.7.3

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


Updated Cloud Files examples for 1.7.3


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

Branch: refs/heads/master
Commit: 0347a90e26f2829ef2574eff63638f044b3134c9
Parents: fb328b5
Author: Jeremy Daggett <je...@rackspace.com>
Authored: Tue May 27 09:36:48 2014 -0700
Committer: Everett Toews <ev...@rackspace.com>
Committed: Tue Jun 10 11:25:29 2014 -0500

----------------------------------------------------------------------
 rackspace/pom.xml                               |  4 +-
 .../rackspace/cloudfiles/CloudFilesPublish.java | 23 +++---
 .../rackspace/cloudfiles/CreateContainer.java   |  2 +-
 .../CrossOriginResourceSharingContainer.java    | 10 ++-
 .../cloudfiles/DeleteObjectsAndContainer.java   |  6 +-
 .../rackspace/cloudfiles/GenerateTempURL.java   | 12 ++-
 .../rackspace/cloudfiles/GetContainer.java      | 82 ++++++++++++++++++++
 .../rackspace/cloudfiles/GetObject.java         |  2 +-
 .../rackspace/cloudfiles/ListContainers.java    |  2 +-
 .../rackspace/cloudfiles/ListObjects.java       |  4 +-
 .../cloudfiles/UploadDirectoryToCDN.java        | 21 ++---
 .../rackspace/cloudfiles/UploadObjects.java     |  8 +-
 12 files changed, 135 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/pom.xml
----------------------------------------------------------------------
diff --git a/rackspace/pom.xml b/rackspace/pom.xml
index 9ed2fe2..939bf52 100644
--- a/rackspace/pom.xml
+++ b/rackspace/pom.xml
@@ -22,11 +22,11 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.jclouds.examples</groupId>
   <artifactId>rackspace-examples</artifactId>
-  <version>1.7.3-SNAPSHOT</version>
+  <version>1.7.4-SNAPSHOT</version>
   <name>rackspace-examples</name>
 
   <properties>
-    <jclouds.version>1.7.2</jclouds.version>
+    <jclouds.version>1.7.3</jclouds.version>
   </properties>
 
   <dependencies>

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/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 41e88f5..bc69671 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
@@ -34,11 +34,13 @@ import org.jclouds.io.Payload;
 import org.jclouds.io.Payloads;
 import org.jclouds.openstack.swift.v1.features.ObjectApi;
 import org.jclouds.openstack.swift.v1.options.CreateContainerOptions;
+import org.jclouds.openstack.swift.v1.reference.SwiftHeaders;
 import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
 import org.jclouds.rackspace.cloudfiles.v1.features.CDNApi;
 
 import com.google.common.base.Charsets;
-import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableMultimap;
+import com.google.common.collect.Multimap;
 import com.google.common.io.ByteSource;
 import com.google.common.io.Closeables;
 import com.google.common.io.Files;
@@ -83,8 +85,13 @@ public class CloudFilesPublish implements Closeable {
     */
    private void createContainer() {
       System.out.format("Create Container%n");
-
-      cloudFiles.containerApiInRegion(REGION).createIfAbsent(CONTAINER_PUBLISH, CreateContainerOptions.NONE);
+      // 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");
+      
+      CreateContainerOptions opts = new CreateContainerOptions().headers(enableStaticWebHeaders);
+      cloudFiles.getContainerApiForRegion(REGION).create(CONTAINER_PUBLISH, opts);
 
       System.out.format("  %s%n", CONTAINER_PUBLISH);
    }
@@ -100,14 +107,12 @@ public class CloudFilesPublish implements Closeable {
       try {
          Files.write("Hello Cloud Files", tempFile, Charsets.UTF_8);
 
-         ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER_PUBLISH);
+         ObjectApi objectApi = cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER_PUBLISH);
 
          ByteSource byteSource = Files.asByteSource(tempFile);
          Payload payload = Payloads.newByteSourcePayload(byteSource);
 
-         objectApi.replace(FILENAME + SUFFIX, payload, ImmutableMap.<String, String>of());
-
-         System.out.format("  %s%s%n", FILENAME, SUFFIX);
+         objectApi.put(FILENAME + SUFFIX, payload);
       } finally {
          tempFile.delete();
       }
@@ -119,8 +124,8 @@ public class CloudFilesPublish implements Closeable {
     */
    private void enableCdnContainer() {
       System.out.format("Enable CDN Container%n");
-      
-      CDNApi cdnApi = cloudFiles.cdnApiInRegion(REGION);
+
+      CDNApi cdnApi = cloudFiles.getCDNApiForRegion(REGION);
       URI cdnURI = cdnApi.enable(CONTAINER_PUBLISH);
 
       System.out.format("  Go to %s/%s%s%n", cdnURI, FILENAME, SUFFIX);

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CreateContainer.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CreateContainer.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CreateContainer.java
index e982389..a678739 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CreateContainer.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CreateContainer.java
@@ -71,7 +71,7 @@ public class CreateContainer implements Closeable {
       CreateContainerOptions options = CreateContainerOptions.Builder
             .metadata(ImmutableMap.of("key1", "value1", "key2", "value2"));
 
-      cloudFiles.containerApiInRegion(REGION).createIfAbsent(CONTAINER, options);
+      cloudFiles.getContainerApiForRegion(REGION).create(CONTAINER, options);
 
       System.out.format("  %s%n", CONTAINER);
    }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CrossOriginResourceSharingContainer.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CrossOriginResourceSharingContainer.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CrossOriginResourceSharingContainer.java
index 0de0ff4..7d74d99 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CrossOriginResourceSharingContainer.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CrossOriginResourceSharingContainer.java
@@ -33,6 +33,8 @@ import org.jclouds.openstack.swift.v1.options.CreateContainerOptions;
 import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
 
 import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableMultimap;
+import com.google.common.collect.Multimap;
 import com.google.common.io.Closeables;
 
 /**
@@ -71,7 +73,7 @@ public class CrossOriginResourceSharingContainer implements Closeable {
       cloudFiles = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
             .buildApi(CloudFilesApi.class);
-      containerApi = cloudFiles.containerApiInRegion(REGION);
+      containerApi = cloudFiles.getContainerApiForRegion(REGION);
    }
 
    /**
@@ -85,13 +87,13 @@ public class CrossOriginResourceSharingContainer implements Closeable {
    private void createCorsContainer() {
       System.out.format("Create Cross Origin Resource Sharing Container%n");
 
-      Map<String, String> corsMetadata = ImmutableMap.of(
+      Multimap<String, String> headers = ImmutableMultimap.of(
             "Access-Control-Allow-Origin", "*",
             "Access-Control-Max-Age", "600",
             "Access-Control-Allow-Headers", "X-My-Header");
-      CreateContainerOptions options = CreateContainerOptions.Builder.metadata(corsMetadata);
+      CreateContainerOptions options = CreateContainerOptions.Builder.headers(headers);
 
-      containerApi.createIfAbsent(CONTAINER, options);
+      containerApi.create(CONTAINER, options);
       System.out.format("  %s%n", CONTAINER);
 
       Container container = containerApi.get(CONTAINER);

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/DeleteObjectsAndContainer.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/DeleteObjectsAndContainer.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/DeleteObjectsAndContainer.java
index 9337e46..1d69b13 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/DeleteObjectsAndContainer.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/DeleteObjectsAndContainer.java
@@ -76,13 +76,13 @@ public class DeleteObjectsAndContainer implements Closeable {
    private void deleteObjectsAndContainer() {
       System.out.format("Delete Container%n");
 
-      List<Container> containers = cloudFiles.containerApiInRegion(REGION)
+      List<Container> containers = cloudFiles.getContainerApiForRegion(REGION)
             .list(ListContainerOptions.Builder.prefix(CONTAINER)).toList();
 
       for (Container container: containers) {
          System.out.format("  %s%n", container.getName());
 
-         ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, container.getName());
+         ObjectApi objectApi = cloudFiles.getObjectApiForRegionAndContainer(REGION, container.getName());
          ObjectList objects = objectApi.list(ListContainerOptions.NONE);
 
          for (SwiftObject object: objects) {
@@ -90,7 +90,7 @@ public class DeleteObjectsAndContainer implements Closeable {
             objectApi.delete(object.getName());
          }
 
-         cloudFiles.containerApiInRegion(REGION).deleteIfEmpty(container.getName());
+         cloudFiles.getContainerApiForRegion(REGION).deleteIfEmpty(container.getName());
       }
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/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 b24f981..72e0fb2 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
@@ -128,10 +128,14 @@ public class GenerateTempURL implements Closeable {
       
       // GET the file using jclouds
       File file = File.createTempFile(FILENAME, ".tmp");
-      String content = Strings2.toString(blobStoreContext.utils().http().invoke(request).getPayload());
-      Files.write(content, file, Charsets.UTF_8);
-      
-      System.out.format("  GET Success (%s)%n", file.getAbsolutePath());
+      try {
+         String content = Strings2.toString(blobStoreContext.utils().http().invoke(request).getPayload());
+         Files.write(content, file, Charsets.UTF_8);
+         
+         System.out.format("  GET Success (%s)%n", file.getAbsolutePath());
+      } finally {
+         file.delete();
+      }
    }
 
    private void generateDeleteTempURL() throws IOException {

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/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
new file mode 100644
index 0000000..1f128e4
--- /dev/null
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetContainer.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.jclouds.examples.rackspace.cloudfiles;
+
+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;
+
+import java.io.Closeable;
+import java.io.IOException;
+
+import org.jclouds.ContextBuilder;
+import org.jclouds.openstack.swift.v1.domain.Container;
+import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
+
+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;
+
+   /**
+    * To get a username and API key see http://jclouds.apache.org/guides/rackspace/
+    * 
+    * The first argument (args[0]) must be your username
+    * The second argument (args[1]) must be your API key
+    */
+   public static void main(String[] args) throws IOException {
+      GetContainer getContainer = new GetContainer(args[0], args[1]);
+
+      try {
+         getContainer.getContainer();
+      }
+      catch (Exception e) {
+         e.printStackTrace();
+      }
+      finally {
+         getContainer.close();
+      }
+   }
+
+   public GetContainer(String username, String apiKey) {
+      cloudFiles = ContextBuilder.newBuilder(PROVIDER)
+            .credentials(username, apiKey)
+            .buildApi(CloudFilesApi.class);
+   }
+
+   private void getContainer() {
+      System.out.format("Get Container%n");
+
+      Container container = cloudFiles.getContainerApiForRegion(REGION).get(CONTAINER);
+      System.out.format("  %s%n", container);
+   }
+
+   /**
+    * Always close your service when you're done with it.
+    */
+   public void close() throws IOException {
+      Closeables.close(cloudFiles, true);
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetObject.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetObject.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetObject.java
index fd6e88a..e5dd3f4 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetObject.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetObject.java
@@ -72,7 +72,7 @@ public class GetObject implements Closeable {
    private void getObject() {
       System.out.format("Get Object%n");
 
-      ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER);
+      ObjectApi objectApi = cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER);
       SwiftObject object = objectApi.get("uploadObjectFromFile.txt", GetOptions.NONE);
 
       System.out.format("  %s%n", object);

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListContainers.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListContainers.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListContainers.java
index 4483290..14187e7 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListContainers.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListContainers.java
@@ -67,7 +67,7 @@ public class ListContainers implements Closeable {
    private void listContainers() {
       System.out.format("List Containers%n");
 
-      List<Container> containers = cloudFiles.containerApiInRegion(REGION).list().toList();
+      List<Container> containers = cloudFiles.getContainerApiForRegion(REGION).list().toList();
       for (Container container: containers) {
          System.out.format("  %s%n", container);
       }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListObjects.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListObjects.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListObjects.java
index b53a89c..81512d9 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListObjects.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListObjects.java
@@ -71,7 +71,7 @@ public class ListObjects implements Closeable {
    private void listObjects() {
       System.out.format("List Objects%n");
 
-      ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER);
+      ObjectApi objectApi = cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER);
       ObjectList objects = objectApi.list(ListContainerOptions.NONE);
 
       for (SwiftObject object: objects) {
@@ -82,7 +82,7 @@ public class ListObjects implements Closeable {
    private void listObjectsWithFiltering() {
       System.out.format("List Objects With Filtering%n");
 
-      ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER);
+      ObjectApi objectApi = cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER);
 
       ListContainerOptions filter = ListContainerOptions.Builder.prefix("createObjectFromString");
       ObjectList objects =  objectApi.list(filter);

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/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 30a11a6..1527a05 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
@@ -36,11 +36,13 @@ 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 org.jclouds.rackspace.cloudfiles.v1.features.CDNApi;
-import org.jclouds.rackspace.cloudfiles.v1.options.UpdateCDNContainerOptions;
 
+import com.google.common.collect.ImmutableMultimap;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Multimap;
 import com.google.common.io.ByteSource;
 import com.google.common.io.Closeables;
 import com.google.common.io.Files;
@@ -168,12 +170,15 @@ 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");
 
-      CDNApi cdnApi = cloudFiles.cdnApiInRegion(REGION);
-      URI cdnURI = cdnApi.enable(container);
-
-      cdnApi.update(container, UpdateCDNContainerOptions.Builder.staticWebsiteIndexPage("index.html"));
+      UpdateContainerOptions opts = new UpdateContainerOptions().headers(enableStaticWebHeaders);
+      cloudFiles.getContainerApiForRegion(REGION).update(container, opts);
 
+      // enable the CDN container
+      URI cdnURI = cloudFiles.getCDNApiForRegion(REGION).enable(container);
       System.out.format("  Go to %s/%n", cdnURI);
    }
 
@@ -197,7 +202,6 @@ public class UploadDirectoryToCDN implements Closeable {
          this.toBeUploadedBlobDetail = toBeUploadedBlobDetail;
       }
 
-      @Override
       public BlobDetail call() throws Exception {
          ByteSource byteSource = Files.asByteSource(toBeUploadedBlobDetail.getLocalFile());
 
@@ -218,12 +222,11 @@ public class UploadDirectoryToCDN implements Closeable {
     * the user of upload progress.
     */
    private class BlobUploaderCallback implements FutureCallback<BlobDetail> {
-      @Override
+      
       public void onSuccess(BlobDetail result) {
          System.out.format(".");
       }
 
-      @Override
       public void onFailure(Throwable t) {
          System.out.format("X %s", t);
       }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadObjects.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadObjects.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadObjects.java
index 1363b58..aadcd61 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadObjects.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadObjects.java
@@ -37,7 +37,6 @@ import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContext;
 import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
 
 import com.google.common.base.Charsets;
-import com.google.common.collect.ImmutableMap;
 import com.google.common.io.ByteSource;
 import com.google.common.io.Closeables;
 import com.google.common.io.Files;
@@ -96,8 +95,8 @@ public class UploadObjects implements Closeable {
          ByteSource byteSource = Files.asByteSource(tempFile);
          Payload payload = Payloads.newByteSourcePayload(byteSource);
 
-         cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER)
-            .replace(filename + suffix, payload, ImmutableMap.<String, String> of());
+         cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER)
+            .put(filename + suffix, payload);
 
          System.out.format("  %s%s%n", filename, suffix);
       } finally {
@@ -116,8 +115,7 @@ public class UploadObjects implements Closeable {
       ByteSource source = ByteSource.wrap("uploadObjectFromString".getBytes());
       Payload payload = Payloads.newByteSourcePayload(source);
 
-      cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER)
-         .replace(filename, payload, ImmutableMap.<String, String>of());
+      cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER).put(filename, payload);
 
       System.out.format("  %s%n", filename);
    }