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/04/22 00:32:46 UTC

git commit: JCLOUDS-346: Update Rackspace Cloud Files Examples

Repository: jclouds-examples
Updated Branches:
  refs/heads/master 300d46022 -> f9bdf4ca0


JCLOUDS-346: Update Rackspace Cloud Files Examples


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

Branch: refs/heads/master
Commit: f9bdf4ca048d1db63fead0855347be6b98828c5b
Parents: 300d460
Author: Jeremy Daggett <je...@rackspace.com>
Authored: Sun Mar 30 23:06:19 2014 -0700
Committer: Everett Toews <ev...@rackspace.com>
Committed: Mon Apr 21 17:32:41 2014 -0500

----------------------------------------------------------------------
 rackspace/README.md                             | 10 +--
 rackspace/pom.xml                               |  8 +-
 .../rackspace/cloudfiles/CloudFilesPublish.java | 56 +++++++-----
 .../rackspace/cloudfiles/Constants.java         |  6 +-
 .../rackspace/cloudfiles/CreateContainer.java   | 19 +++--
 .../CrossOriginResourceSharingContainer.java    | 41 ++++-----
 .../cloudfiles/DeleteObjectsAndContainer.java   | 40 ++++-----
 .../rackspace/cloudfiles/GenerateTempURL.java   | 15 +++-
 .../rackspace/cloudfiles/GetObject.java         | 89 ++++++++++++++++++++
 .../rackspace/cloudfiles/ListContainers.java    | 23 +++--
 .../rackspace/cloudfiles/ListObjects.java       | 38 +++++----
 .../cloudfiles/UploadDirectoryToCDN.java        | 32 ++++---
 .../rackspace/cloudfiles/UploadLargeObject.java | 46 ++++++----
 .../rackspace/cloudfiles/UploadObjects.java     | 44 +++++-----
 14 files changed, 311 insertions(+), 156 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/rackspace/README.md
----------------------------------------------------------------------
diff --git a/rackspace/README.md b/rackspace/README.md
index ad2e876..efbeee4 100644
--- a/rackspace/README.md
+++ b/rackspace/README.md
@@ -133,15 +133,15 @@ Click Run and watch the Console for the output!
 
 ## Next Steps
 
-Some suggestions.
+Here are some suggestions on how to continue working with jclouds:
 
 1. Change the examples to do different things that you want to do.
 1. After running some examples, compare the output with what you see in the [Cloud Control Panel](https://mycloud.rackspace.com/).
-1. Browse the [documentation](http://www.jclouds.org/documentation/) and have a look at the [Javadoc](http://demobox.github.com/jclouds-maven-site/latest/apidocs).
-1. Return to the [Installation Guide](http://www.jclouds.org/documentation/userguide/installation-guide/) and have a look at the different ways to integrate jclouds with your project.
-1. Join the [jclouds mailing list](https://groups.google.com/forum/?fromgroups#!forum/jclouds) or maybe even the [jclouds developer mailing list](https://groups.google.com/forum/?fromgroups#!forum/jclouds-dev).
+1. Browse the [JavaDocs](http://javadocs.jclouds.cloudbees.net/).
+1. Return to the [Installation Guide](http://jclouds.apache.org/start/install/) and have a look at the different ways to integrate jclouds with your project.
+1. Join the [user mailing list](http://www.mail-archive.com/user@jclouds.apache.org/) or [developer mailing list](http://www.mail-archive.com/dev@jclouds.apache.org/).
 
-Welcome to the jclouds [community](http://www.jclouds.org/documentation/community/)!
+Welcome to the jclouds [community](http://jclouds.apache.org/community/)!
 
 ## Support and Feedback
 

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/rackspace/pom.xml
----------------------------------------------------------------------
diff --git a/rackspace/pom.xml b/rackspace/pom.xml
index 7efe241..c8eb7a8 100644
--- a/rackspace/pom.xml
+++ b/rackspace/pom.xml
@@ -52,8 +52,8 @@
       <version>${jclouds.version}</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.jclouds.provider</groupId>
-      <artifactId>cloudfiles-us</artifactId>
+      <groupId>org.apache.jclouds.labs</groupId>
+      <artifactId>rackspace-cloudfiles-us</artifactId>
       <version>${jclouds.version}</version>
     </dependency>
     <dependency>
@@ -88,8 +88,8 @@
       <version>${jclouds.version}</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.jclouds.provider</groupId>
-      <artifactId>cloudfiles-uk</artifactId>
+      <groupId>org.apache.jclouds.labs</groupId>
+      <artifactId>rackspace-cloudfiles-uk</artifactId>
       <version>${jclouds.version}</version>
     </dependency>
     <dependency>

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/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 dcc5bd6..f788968 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
@@ -18,24 +18,40 @@
  */
 package org.jclouds.examples.rackspace.cloudfiles;
 
-import com.google.common.io.Closeables;
-import org.jclouds.ContextBuilder;
-import org.jclouds.cloudfiles.CloudFilesClient;
-import org.jclouds.openstack.swift.domain.SwiftObject;
-
-import java.io.*;
+import static org.jclouds.examples.rackspace.cloudfiles.Constants.CONTAINER_PUBLISH;
+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 java.io.BufferedWriter;
+import java.io.Closeable;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
 import java.net.URI;
 
-import static org.jclouds.examples.rackspace.cloudfiles.Constants.*;
+import org.jclouds.ContextBuilder;
+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.rackspace.cloudfiles.v1.CloudFilesApi;
+import org.jclouds.rackspace.cloudfiles.v1.features.CDNApi;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.io.ByteSource;
+import com.google.common.io.Closeables;
+import com.google.common.io.Files;
 
 /**
  * This example will create a container, put a file in it, and publish it on the internet!
  */
 public class CloudFilesPublish implements Closeable {
-   private final CloudFilesClient cloudFilesClient;
+   private final CloudFilesApi cloudFiles;
 
    /**
-    * To get a username and API key see http://www.jclouds.org/documentation/quickstart/rackspace/
+    * 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
@@ -57,9 +73,9 @@ public class CloudFilesPublish implements Closeable {
    }
 
    public CloudFilesPublish(String username, String apiKey) {
-      cloudFilesClient = ContextBuilder.newBuilder(PROVIDER)
+      cloudFiles = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
-            .buildApi(CloudFilesClient.class);
+            .buildApi(CloudFilesApi.class);
    }
 
    /**
@@ -69,7 +85,7 @@ public class CloudFilesPublish implements Closeable {
    private void createContainer() {
       System.out.format("Create Container%n");
 
-      cloudFilesClient.createContainer(CONTAINER_PUBLISH);
+      cloudFiles.containerApiInRegion(REGION).createIfAbsent(CONTAINER_PUBLISH, CreateContainerOptions.NONE);
 
       System.out.format("  %s%n", CONTAINER_PUBLISH);
    }
@@ -86,12 +102,13 @@ public class CloudFilesPublish implements Closeable {
       BufferedWriter out = new BufferedWriter(new FileWriter(tempFile));
       out.write("Hello Cloud Files");
       out.close();
+      
+      ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER_PUBLISH);
 
-      SwiftObject object = cloudFilesClient.newSwiftObject();
-      object.getInfo().setName(FILENAME + SUFFIX);
-      object.setPayload(tempFile);
+      ByteSource byteSource = Files.asByteSource(tempFile);
+      Payload payload = Payloads.newByteSourcePayload(byteSource);
 
-      cloudFilesClient.putObject(CONTAINER_PUBLISH, object);
+      objectApi.replace(FILENAME + SUFFIX, payload, ImmutableMap.<String, String>of());
 
       System.out.format("  %s%s%n", FILENAME, SUFFIX);
    }
@@ -102,8 +119,9 @@ public class CloudFilesPublish implements Closeable {
     */
    private void enableCdnContainer() {
       System.out.format("Enable CDN Container%n");
-
-      URI cdnURI = cloudFilesClient.enableCDN(CONTAINER_PUBLISH);
+      
+      CDNApi cdnApi = cloudFiles.cdnApiInRegion(REGION);
+      URI cdnURI = cdnApi.enable(CONTAINER_PUBLISH);
 
       System.out.format("  Go to %s/%s%s%n", cdnURI, FILENAME, SUFFIX);
    }
@@ -112,6 +130,6 @@ public class CloudFilesPublish implements Closeable {
     * Always close your service when you're done with it.
     */
    public void close() throws IOException {
-      Closeables.close(cloudFilesClient, true);
+      Closeables.close(cloudFiles, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/Constants.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/Constants.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/Constants.java
index 0d58332..77b1434 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/Constants.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/Constants.java
@@ -22,12 +22,12 @@ package org.jclouds.examples.rackspace.cloudfiles;
  * Constants used by the Rackspace Examples.
  * 
  * @author Everett Toews
- * @authot Jeremy Daggett
+ * @author Jeremy Daggett
  */
 public interface Constants {
    // The provider configures jclouds To use the Rackspace Cloud (US)
-   // To use the Rackspace Cloud (UK) set the system property or default value to "cloudfiles-uk"
-   public static final String PROVIDER = System.getProperty("provider.cf", "cloudfiles-us");
+   // To use the Rackspace Cloud (UK) set the system property or default value to "rackspace-cloudfiles-uk"
+   public static final String PROVIDER = System.getProperty("provider.cf", "rackspace-cloudfiles-us");
    public static final String REGION = System.getProperty("region", "IAD");
 
    public static final String CONTAINER_PUBLISH = "jclouds-example-publish";

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/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 b280df1..0b5766d 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
@@ -20,13 +20,14 @@ 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.CommonSwiftClient;
-import org.jclouds.openstack.swift.options.CreateContainerOptions;
+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.io.Closeables;
@@ -38,10 +39,10 @@ import com.google.common.io.Closeables;
  * @author Jeremy Daggett
  */
 public class CreateContainer implements Closeable {
-   private final CommonSwiftClient swift;
+   private final CloudFilesApi cloudFiles;
 
    /**
-    * To get a username and API key see http://www.jclouds.org/documentation/quickstart/rackspace/
+    * 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
@@ -61,18 +62,18 @@ public class CreateContainer implements Closeable {
    }
 
    public CreateContainer(String username, String apiKey) {
-      swift = ContextBuilder.newBuilder(PROVIDER)
+      cloudFiles = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
-            .buildApi(CommonSwiftClient.class);
+            .buildApi(CloudFilesApi.class);
    }
 
    private void createContainer() {
       System.out.format("Create Container%n");
 
       CreateContainerOptions options = CreateContainerOptions.Builder
-            .withMetadata(ImmutableMap.of("key1", "value1", "key2", "value2"));
+            .metadata(ImmutableMap.of("key1", "value1", "key2", "value2"));
 
-      swift.createContainer(CONTAINER, options);
+      cloudFiles.containerApiInRegion(REGION).createIfAbsent(CONTAINER, options);
 
       System.out.format("  %s%n", CONTAINER);
    }
@@ -81,6 +82,6 @@ public class CreateContainer implements Closeable {
     * Always close your service when you're done with it.
     */
    public void close() throws IOException {
-      Closeables.close(swift, true);
+      Closeables.close(cloudFiles, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/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 57ad605..08280a5 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
@@ -20,22 +20,23 @@ 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 java.util.Map;
 
 import org.jclouds.ContextBuilder;
-import org.jclouds.cloudfiles.CloudFilesClient;
-import org.jclouds.openstack.swift.CommonSwiftClient;
-import org.jclouds.openstack.swift.domain.ContainerMetadata;
-import org.jclouds.openstack.swift.options.CreateContainerOptions;
+import org.jclouds.openstack.swift.v1.domain.Container;
+import org.jclouds.openstack.swift.v1.features.ContainerApi;
+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.io.Closeables;
 
 /**
- * Create an Cloud Files container with Cross Origin Resource Sharing (CORS) allowed. CORS container headers allow
+ * Create a Cloud Files container with Cross Origin Resource Sharing (CORS) allowed. CORS container headers allow
  * users to upload files from one website--or origin--to your Cloud Files account. When you set the CORS headers on 
  * your container, you tell Cloud Files which sites may post to your account, how often your container checks its 
  * allowed sites list, and whether or not metadata headers can be passed with the objects.
@@ -44,10 +45,11 @@ import com.google.common.io.Closeables;
  * @author Jeremy Daggett
  */
 public class CrossOriginResourceSharingContainer implements Closeable {
-   private final CommonSwiftClient swift;
+   private final CloudFilesApi cloudFiles;
+   private final ContainerApi containerApi;
 
    /**
-    * To get a username and API key see http://www.jclouds.org/documentation/quickstart/rackspace/
+    * 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
@@ -68,9 +70,10 @@ public class CrossOriginResourceSharingContainer implements Closeable {
    }
 
    public CrossOriginResourceSharingContainer(String username, String apiKey) {
-      swift = ContextBuilder.newBuilder(PROVIDER)
+      cloudFiles = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
-            .buildApi(CloudFilesClient.class);
+            .buildApi(CloudFilesApi.class);
+      containerApi = cloudFiles.containerApiInRegion(REGION);
    }
 
    /**
@@ -88,13 +91,13 @@ public class CrossOriginResourceSharingContainer implements Closeable {
             "Access-Control-Allow-Origin", "*",
             "Access-Control-Max-Age", "600",
             "Access-Control-Allow-Headers", "X-My-Header");
-      CreateContainerOptions options = CreateContainerOptions.Builder.withMetadata(corsMetadata);
+      CreateContainerOptions options = CreateContainerOptions.Builder.metadata(corsMetadata);
 
-      swift.createContainer(CONTAINER, options);
+      containerApi.createIfAbsent(CONTAINER, options);
       System.out.format("  %s%n", CONTAINER);
-      
-      ContainerMetadata containerMetadata = swift.getContainerMetadata(CONTAINER);
-      System.out.format("    %s%n", containerMetadata.getMetadata());
+
+      Container container = containerApi.get(CONTAINER);
+      System.out.format("    %s%n", container.getMetadata());
    }
 
    /**
@@ -108,17 +111,17 @@ public class CrossOriginResourceSharingContainer implements Closeable {
             "Access-Control-Max-Age", "60",
             "Access-Control-Allow-Headers", "X-My-Other-Header");
 
-      swift.setContainerMetadata(CONTAINER, corsMetadata);
+      containerApi.updateMetadata(CONTAINER, corsMetadata);
       System.out.format("  %s%n", CONTAINER);
-      
-      ContainerMetadata containerMetadata = swift.getContainerMetadata(CONTAINER);
-      System.out.format("    %s%n", containerMetadata.getMetadata());
+
+      Container container = containerApi.get(CONTAINER);
+      System.out.format("    %s%n", container.getMetadata());
    }   
 
    /**
     * Always close your service when you're done with it.
     */
    public void close() throws IOException {
-      Closeables.close(swift, true);
+      Closeables.close(cloudFiles, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/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 82682d2..ed12560 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
@@ -20,17 +20,19 @@ 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 java.util.Set;
+import java.util.List;
 
 import org.jclouds.ContextBuilder;
-import org.jclouds.cloudfiles.CloudFilesClient;
-import org.jclouds.openstack.swift.CommonSwiftClient;
-import org.jclouds.openstack.swift.domain.ContainerMetadata;
-import org.jclouds.openstack.swift.domain.ObjectInfo;
-import org.jclouds.openstack.swift.options.ListContainerOptions;
+import org.jclouds.openstack.swift.v1.domain.Container;
+import org.jclouds.openstack.swift.v1.domain.ObjectList;
+import org.jclouds.openstack.swift.v1.domain.SwiftObject;
+import org.jclouds.openstack.swift.v1.features.ObjectApi;
+import org.jclouds.openstack.swift.v1.options.ListContainerOptions;
+import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
 
 import com.google.common.io.Closeables;
 
@@ -42,10 +44,10 @@ import com.google.common.io.Closeables;
  * @author Jeremy Daggett
  */
 public class DeleteObjectsAndContainer implements Closeable {
-   private final CommonSwiftClient swift;
+   private final CloudFilesApi cloudFiles;
 
    /**
-    * To get a username and API key see http://www.jclouds.org/documentation/quickstart/rackspace/
+    * 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
@@ -65,9 +67,9 @@ public class DeleteObjectsAndContainer implements Closeable {
    }
 
    public DeleteObjectsAndContainer(String username, String apiKey) {
-      swift = ContextBuilder.newBuilder(PROVIDER)
+      cloudFiles = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
-            .buildApi(CloudFilesClient.class);
+            .buildApi(CloudFilesApi.class);
    }
 
    /**
@@ -76,21 +78,21 @@ public class DeleteObjectsAndContainer implements Closeable {
    private void deleteObjectsAndContainer() {
       System.out.format("Delete Container%n");
 
-      Set<ContainerMetadata> containers = swift
-            .listContainers(ListContainerOptions.Builder.withPrefix(CONTAINER));
+      List<Container> containers = cloudFiles.containerApiInRegion(REGION)
+            .list(ListContainerOptions.Builder.prefix(CONTAINER)).toList();
 
-      for (ContainerMetadata container: containers) {
+      for (Container container: containers) {
          System.out.format("  %s%n", container.getName());
 
-         Set<ObjectInfo> objects = swift.listObjects(container.getName());
+         ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, container.getName());
+         ObjectList objects = objectApi.list(ListContainerOptions.NONE);
 
-         for (ObjectInfo object: objects) {
+         for (SwiftObject object: objects) {
             System.out.format("    %s%n", object.getName());
-
-            swift.removeObject(container.getName(), object.getName());
+            objectApi.delete(object.getName());
          }
 
-         swift.deleteContainerIfEmpty(container.getName());
+         cloudFiles.containerApiInRegion(REGION).deleteIfEmpty(container.getName());
       }
    }
 
@@ -98,6 +100,6 @@ public class DeleteObjectsAndContainer implements Closeable {
     * Always close your service when you're done with it.
     */
    public void close() throws IOException {
-      Closeables.close(swift, true);
+      Closeables.close(cloudFiles, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/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 d1c6e78..07c8bae 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
@@ -19,8 +19,10 @@
 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;
@@ -28,6 +30,8 @@ import org.jclouds.blobstore.domain.Blob;
 import org.jclouds.http.HttpRequest;
 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 java.io.Closeable;
@@ -62,7 +66,7 @@ public class GenerateTempURL implements Closeable {
    private final BlobStoreContext blobStoreContext;
 
    /**
-    * To get a username and API key see http://www.jclouds.org/documentation/quickstart/rackspace/
+    * 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
@@ -92,8 +96,13 @@ public class GenerateTempURL implements Closeable {
    
    private void generatePutTempURL() throws IOException {
       System.out.format("Generate PUT Temp URL%n");
-
-      String payload = "This object will be public for 10 minutes.";
+      
+      // Create the Payload
+      String data = "This object will be public for 10 minutes.";
+      ByteSource source = ByteSource.wrap(data.getBytes());
+      Payload payload = Payloads.newByteSourcePayload(source);
+      
+      // Create the Blob
       Blob blob = blobStore.blobBuilder(FILENAME).payload(payload).contentType("text/plain").build();
       HttpRequest request = blobStoreContext.getSigner().signPutBlob(CONTAINER, blob, TEN_MINUTES);
       

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/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
new file mode 100644
index 0000000..a5a2a79
--- /dev/null
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetObject.java
@@ -0,0 +1,89 @@
+/*
+ * 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.http.options.GetOptions;
+import org.jclouds.openstack.swift.v1.domain.SwiftObject;
+import org.jclouds.openstack.swift.v1.features.ObjectApi;
+import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
+
+import com.google.common.io.Closeables;
+
+/**
+ * Gets an object from a container and displays the results.
+ * 
+ * NOTE: Run the {@link UploadObjects} example prior to running this example.
+ *  
+ * @author Everett Toews
+ * @author Jeremy Daggett
+ */
+public class GetObject 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 {
+      GetObject getObject = new GetObject(args[0], args[1]);
+
+      try {
+         getObject.getObject();
+      }
+      catch (Exception e) {
+         e.printStackTrace();
+      }
+      finally {
+         getObject.close();
+      }
+   }
+
+   public GetObject(String username, String apiKey) {
+      cloudFiles = ContextBuilder.newBuilder(PROVIDER)
+            .credentials(username, apiKey)
+            .buildApi(CloudFilesApi.class);
+      
+   }
+
+   private void getObject() {
+      System.out.format("Get Object%n");
+
+      ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER);
+      SwiftObject object = objectApi.get("uploadObjectFromFile.txt", GetOptions.NONE);
+
+      System.out.format("  %s%n", object);
+   }
+
+   /**
+    * 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/f9bdf4ca/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 c30a37b..d844d38 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
@@ -19,15 +19,15 @@
 package org.jclouds.examples.rackspace.cloudfiles;
 
 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 java.util.Set;
+import java.util.List;
 
 import org.jclouds.ContextBuilder;
-import org.jclouds.cloudfiles.CloudFilesClient;
-import org.jclouds.openstack.swift.CommonSwiftClient;
-import org.jclouds.openstack.swift.domain.ContainerMetadata;
+import org.jclouds.openstack.swift.v1.domain.Container;
+import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
 
 import com.google.common.io.Closeables;
 
@@ -38,10 +38,10 @@ import com.google.common.io.Closeables;
  * @author Jeremy Daggett
  */
 public class ListContainers implements Closeable {
-   private final CommonSwiftClient swift;
+   private final CloudFilesApi cloudFiles;
 
    /**
-    * To get a username and API key see http://www.jclouds.org/documentation/quickstart/rackspace/
+    * 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
@@ -61,17 +61,16 @@ public class ListContainers implements Closeable {
    }
 
    public ListContainers(String username, String apiKey) {
-      swift = ContextBuilder.newBuilder(PROVIDER)
+      cloudFiles = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
-            .buildApi(CloudFilesClient.class);
+            .buildApi(CloudFilesApi.class);
    }
 
    private void listContainers() {
       System.out.format("List Containers%n");
 
-      Set<ContainerMetadata> containers = swift.listContainers();
-
-      for (ContainerMetadata container: containers) {
+      List<Container> containers = cloudFiles.containerApiInRegion(REGION).list().toList();
+      for (Container container: containers) {
          System.out.format("  %s%n", container);
       }
    }
@@ -80,6 +79,6 @@ public class ListContainers implements Closeable {
     * Always close your service when you're done with it.
     */
    public void close() throws IOException {
-      Closeables.close(swift, true);
+      Closeables.close(cloudFiles, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/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 5a4ca8c..4d7e115 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
@@ -20,16 +20,17 @@ 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 java.util.Set;
 
 import org.jclouds.ContextBuilder;
-import org.jclouds.cloudfiles.CloudFilesClient;
-import org.jclouds.openstack.swift.CommonSwiftClient;
-import org.jclouds.openstack.swift.domain.ObjectInfo;
-import org.jclouds.openstack.swift.options.ListContainerOptions;
+import org.jclouds.openstack.swift.v1.domain.ObjectList;
+import org.jclouds.openstack.swift.v1.domain.SwiftObject;
+import org.jclouds.openstack.swift.v1.features.ObjectApi;
+import org.jclouds.openstack.swift.v1.options.ListContainerOptions;
+import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
 
 import com.google.common.io.Closeables;
 
@@ -40,10 +41,10 @@ import com.google.common.io.Closeables;
  * @author Jeremy Daggett
  */
 public class ListObjects implements Closeable {
-   private final CommonSwiftClient swift;
+   private final CloudFilesApi cloudFiles;
 
    /**
-    * To get a username and API key see http://www.jclouds.org/documentation/quickstart/rackspace/
+    * 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
@@ -64,29 +65,32 @@ public class ListObjects implements Closeable {
    }
 
    public ListObjects(String username, String apiKey) {
-      swift = ContextBuilder.newBuilder(PROVIDER)
+      cloudFiles = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
-            .buildApi(CloudFilesClient.class);
+            .buildApi(CloudFilesApi.class);
    }
 
    private void listObjects() {
       System.out.format("List Objects%n");
 
-      Set<ObjectInfo> objects = swift.listObjects(CONTAINER);
+      ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER);
+      ObjectList objects = objectApi.list(ListContainerOptions.NONE);
 
-      for (ObjectInfo objectInfo: objects) {
-         System.out.format("  %s%n", objectInfo);
+      for (SwiftObject object: objects) {
+         System.out.format("  %s%n", object);
       }
    }
 
    private void listObjectsWithFiltering() {
       System.out.format("List Objects With Filtering%n");
 
-      ListContainerOptions filter = ListContainerOptions.Builder.withPrefix("createObjectFromString");
-      Set<ObjectInfo> objects = swift.listObjects(CONTAINER, filter);
+      ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER);
 
-      for (ObjectInfo objectInfo: objects) {
-         System.out.format("  %s%n", objectInfo);
+      ListContainerOptions filter = ListContainerOptions.Builder.prefix("createObjectFromString");
+      ObjectList objects =  objectApi.list(filter);
+
+      for (SwiftObject object: objects) {
+         System.out.format("  %s%n", object);
       }
    }
 
@@ -94,6 +98,6 @@ public class ListObjects implements Closeable {
     * Always close your service when you're done with it.
     */
    public void close() throws IOException {
-      Closeables.close(swift, true);
+      Closeables.close(cloudFiles, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/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 96cccad..1a803bb 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
@@ -21,6 +21,7 @@ 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;
@@ -34,10 +35,15 @@ import org.jclouds.ContextBuilder;
 import org.jclouds.blobstore.BlobStore;
 import org.jclouds.blobstore.BlobStoreContext;
 import org.jclouds.blobstore.domain.Blob;
-import org.jclouds.cloudfiles.CloudFilesClient;
+import org.jclouds.io.Payloads;
+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.Lists;
+import com.google.common.io.ByteSource;
 import com.google.common.io.Closeables;
+import com.google.common.io.Files;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
@@ -50,15 +56,16 @@ import com.google.common.util.concurrent.MoreExecutors;
  * way to upload content for a static website (http://j.mp/rax-static).     
  * 
  * @author Everett Toews
+ * @author Jeremy Daggett
  */
 public class UploadDirectoryToCDN implements Closeable {
    private static final int THREADS = Integer.getInteger("upload.threadpool.size", 10);
 
    private final BlobStore blobStore;
-   private final CloudFilesClient cloudFilesClient;
+   private final CloudFilesApi cloudFiles;
 
    /**
-    * To get a username and API key see http://www.jclouds.org/documentation/quickstart/rackspace/
+    * 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
@@ -84,7 +91,7 @@ public class UploadDirectoryToCDN implements Closeable {
       ContextBuilder builder = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey);
       blobStore = builder.buildView(BlobStoreContext.class).getBlobStore();
-      cloudFilesClient = builder.buildApi(CloudFilesClient.class);
+      cloudFiles = blobStore.getContext().unwrapApi(CloudFilesApi.class);
    }
 
    /**
@@ -140,7 +147,7 @@ public class UploadDirectoryToCDN implements Closeable {
 
          ListenableFuture<List<BlobDetail>> future = Futures.successfulAsList(blobUploaderFutures);
          List<BlobDetail> uploadedBlobDetails = future.get(); // begin the upload
-         
+
          System.out.format("%n");
 
          for (int i = 0; i < uploadedBlobDetails.size(); i++) {
@@ -165,8 +172,10 @@ public class UploadDirectoryToCDN implements Closeable {
    private void enableCdnContainer(String container) {
       System.out.format("Enable CDN%n");
 
-      URI cdnURI = cloudFilesClient.enableCDN(container);
-      cloudFilesClient.setCDNStaticWebsiteIndex(container, "index.html");
+      CDNApi cdnApi = cloudFiles.cdnApiInRegion(REGION);
+      URI cdnURI = cdnApi.enable(container);
+
+      cdnApi.update(container, UpdateCDNContainerOptions.Builder.staticWebsiteIndexPage("index.html"));
 
       System.out.format("  Go to %s/%n", cdnURI);
    }
@@ -176,7 +185,6 @@ public class UploadDirectoryToCDN implements Closeable {
     */
    public void close() throws IOException {
       Closeables.close(blobStore.getContext(), true);
-      Closeables.close(cloudFilesClient, true);
    }
 
    /**
@@ -186,7 +194,7 @@ public class UploadDirectoryToCDN implements Closeable {
    private class BlobUploader implements Callable<BlobDetail> {
       private final String container;
       private final BlobDetail toBeUploadedBlobDetail;
-      
+
       protected BlobUploader(String container, BlobDetail toBeUploadedBlobDetail) {
          this.container = container;
          this.toBeUploadedBlobDetail = toBeUploadedBlobDetail;
@@ -194,14 +202,16 @@ public class UploadDirectoryToCDN implements Closeable {
 
       @Override
       public BlobDetail call() throws Exception {
+         ByteSource byteSource = Files.asByteSource(toBeUploadedBlobDetail.getLocalFile());
+
          Blob blob = blobStore.blobBuilder(toBeUploadedBlobDetail.getRemoteBlobName())
-               .payload(toBeUploadedBlobDetail.getLocalFile())
+               .payload(Payloads.newByteSourcePayload(byteSource))
                .contentType("") // allows Cloud Files to determine the content type
                .build();
          String eTag = blobStore.putBlob(container, blob);
          BlobDetail uploadedBlobDetail = new BlobDetail(
                toBeUploadedBlobDetail.getRemoteBlobName(), toBeUploadedBlobDetail.getLocalFile(), eTag);
-         
+
          return uploadedBlobDetail;
       }
    }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadLargeObject.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadLargeObject.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadLargeObject.java
index bf0f68a..2ecb4ea 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadLargeObject.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadLargeObject.java
@@ -18,11 +18,10 @@
  */
 package org.jclouds.examples.rackspace.cloudfiles;
 
-import com.google.common.io.Closeables;
-import org.jclouds.ContextBuilder;
-import org.jclouds.blobstore.BlobStore;
-import org.jclouds.blobstore.BlobStoreContext;
-import org.jclouds.blobstore.domain.Blob;
+import static org.jclouds.blobstore.options.PutOptions.Builder.multipart;
+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.File;
@@ -30,20 +29,28 @@ import java.io.IOException;
 import java.util.Properties;
 import java.util.concurrent.ExecutionException;
 
-import static org.jclouds.blobstore.options.PutOptions.Builder.multipart;
-import static org.jclouds.examples.rackspace.cloudfiles.Constants.CONTAINER;
-import static org.jclouds.examples.rackspace.cloudfiles.Constants.PROVIDER;
+import org.jclouds.ContextBuilder;
+import org.jclouds.blobstore.BlobStore;
+import org.jclouds.blobstore.domain.Blob;
+import org.jclouds.io.Payload;
+import org.jclouds.io.Payloads;
+import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContext;
+
+import com.google.common.io.ByteSource;
+import com.google.common.io.Closeables;
+import com.google.common.io.Files;
 
 /**
  * Upload a large object in the Cloud Files container from the CreateContainer example.
- *  
+ * 
  * @author Everett Toews
+ * @author Jeremy Daggett
  */
 public class UploadLargeObject implements Closeable {
    private BlobStore blobStore;
 
    /**
-    * To get a username and API key see http://www.jclouds.org/documentation/quickstart/rackspace/
+    * 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
@@ -70,25 +77,32 @@ public class UploadLargeObject implements Closeable {
       // This property controls the size (in bytes) of parts being uploaded in parallel, the default is 33554432 bytes = 32 MB
       overrides.setProperty("jclouds.mpu.parts.size", "67108864"); // 64 MB
 
-      BlobStoreContext context = ContextBuilder.newBuilder(PROVIDER)
+      RegionScopedBlobStoreContext context = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
             .overrides(overrides)
-            .buildView(BlobStoreContext.class);
-      blobStore = context.getBlobStore();
+            .buildView(RegionScopedBlobStoreContext.class);
+      blobStore = context.blobStoreInRegion(REGION);
    }
 
    /**
-    * Upload a large object from a File using the Swift API. 
+    * Upload a large object from a File using the BlobStore API.
+    * 
     * @throws ExecutionException 
     * @throws InterruptedException 
     */
    private void uploadLargeObjectFromFile(File largeFile) throws InterruptedException, ExecutionException {
       System.out.format("Upload Large Object From File%n");
 
+      ByteSource source = Files.asByteSource(largeFile);
+      // create the payload and set the content length
+      Payload payload = Payloads.newByteSourcePayload(source);
+      payload.getContentMetadata().setContentLength(largeFile.length());
+
       Blob blob = blobStore.blobBuilder(largeFile.getName())
-            .payload(largeFile)
+            .payload(payload)
             .build();
-      
+
+      // configure the blobstore to use multipart uploading of the file
       String eTag = blobStore.putBlob(CONTAINER, blob, multipart());
 
       System.out.format("  Uploaded %s eTag=%s", largeFile.getName(), eTag);

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/f9bdf4ca/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 f67d7fd..d7ed51c 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
@@ -20,6 +20,7 @@ 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.BufferedWriter;
 import java.io.Closeable;
@@ -31,25 +32,29 @@ import java.util.Map;
 
 import org.jclouds.ContextBuilder;
 import org.jclouds.blobstore.BlobStore;
-import org.jclouds.blobstore.BlobStoreContext;
 import org.jclouds.blobstore.domain.Blob;
-import org.jclouds.cloudfiles.CloudFilesClient;
-import org.jclouds.openstack.swift.CommonSwiftClient;
-import org.jclouds.openstack.swift.domain.SwiftObject;
+import org.jclouds.io.Payload;
+import org.jclouds.io.Payloads;
+import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContext;
+import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
 
+import com.google.common.collect.ImmutableMap;
+import com.google.common.io.ByteSource;
 import com.google.common.io.Closeables;
+import com.google.common.io.Files;
 
 /**
  * Upload objects in the Cloud Files container from the CreateContainer example.
  *  
  * @author Everett Toews
+ * @author Jeremy Daggett
  */
 public class UploadObjects implements Closeable {
    private final BlobStore blobStore;
-   private final CommonSwiftClient swift;
+   private final CloudFilesApi cloudFiles;
 
    /**
-    * To get a username and API key see http://www.jclouds.org/documentation/quickstart/rackspace/
+    * 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
@@ -73,8 +78,8 @@ public class UploadObjects implements Closeable {
    public UploadObjects(String username, String apiKey) {
       ContextBuilder builder = ContextBuilder.newBuilder(PROVIDER)
                                   .credentials(username, apiKey);
-      blobStore = builder.buildView(BlobStoreContext.class).getBlobStore();
-      swift = builder.buildApi(CloudFilesClient.class);
+      blobStore = builder.buildView(RegionScopedBlobStoreContext.class).blobStoreInRegion(REGION);
+      cloudFiles = blobStore.getContext().unwrapApi(CloudFilesApi.class);
    }
 
    /**
@@ -93,11 +98,11 @@ public class UploadObjects implements Closeable {
       out.write("uploadObjectFromFile");
       out.close();
 
-      SwiftObject object = swift.newSwiftObject();
-      object.getInfo().setName(filename + suffix);
-      object.setPayload(tempFile);
-
-      swift.putObject(CONTAINER, object);
+      ByteSource byteSource = Files.asByteSource(tempFile);
+      Payload payload = Payloads.newByteSourcePayload(byteSource); 
+      
+      cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER)
+         .replace(filename + suffix, payload, ImmutableMap.<String, String> of());
 
       System.out.format("  %s%s%n", filename, suffix);
    }
@@ -110,11 +115,11 @@ public class UploadObjects implements Closeable {
 
       String filename = "uploadObjectFromString.txt";
 
-      SwiftObject object = swift.newSwiftObject();
-      object.getInfo().setName(filename);
-      object.setPayload("uploadObjectFromString");
+      ByteSource source = ByteSource.wrap("uploadObjectFromString".getBytes());
+      Payload payload = Payloads.newByteSourcePayload(source);
 
-      swift.putObject(CONTAINER, object);
+      cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER)
+         .replace(filename, payload, ImmutableMap.<String, String>of());
 
       System.out.format("  %s%n", filename);
    }
@@ -130,8 +135,10 @@ public class UploadObjects implements Closeable {
       Map<String, String> userMetadata = new HashMap<String, String>();
       userMetadata.put("key1", "value1");
 
+      ByteSource source = ByteSource.wrap("uploadObjectFromString".getBytes());
+
       Blob blob = blobStore.blobBuilder(filename)
-            .payload("uploadObjectFromStringWithMetadata")
+            .payload(Payloads.newByteSourcePayload(source))
             .userMetadata(userMetadata)
             .build();
 
@@ -145,6 +152,5 @@ public class UploadObjects implements Closeable {
     */
    public void close() throws IOException {
       Closeables.close(blobStore.getContext(), true);
-      Closeables.close(swift, true);
    }
 }