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 2013/10/15 18:29:40 UTC

[1/2] Consistent handling of close across all Rackspace examples.

Updated Branches:
  refs/heads/master e59ff818d -> b58d334b0


http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/ListLoadBalancers.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/ListLoadBalancers.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/ListLoadBalancers.java
index 8c7e755..2972962 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/ListLoadBalancers.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/ListLoadBalancers.java
@@ -18,12 +18,14 @@
  */
 package org.jclouds.examples.rackspace.cloudloadbalancers;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.cloudloadbalancers.v1.CloudLoadBalancersApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.domain.LoadBalancer;
 import org.jclouds.rackspace.cloudloadbalancers.v1.features.LoadBalancerApi;
 
 import java.io.Closeable;
+import java.io.IOException;
 
 import static org.jclouds.examples.rackspace.cloudloadbalancers.Constants.PROVIDER;
 
@@ -41,7 +43,7 @@ public class ListLoadBalancers implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       ListLoadBalancers listLoadBalancers = new ListLoadBalancers(args[0], args[1]);
 
       try {
@@ -80,16 +82,8 @@ public class ListLoadBalancers implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (clbApi != null) {
-         try {
-            clbApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(clbApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/RemoveNodes.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/RemoveNodes.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/RemoveNodes.java
index 7200eb2..bf809d6 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/RemoveNodes.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/RemoveNodes.java
@@ -21,6 +21,7 @@ package org.jclouds.examples.rackspace.cloudloadbalancers;
 import com.google.common.base.Function;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Sets;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.cloudloadbalancers.v1.CloudLoadBalancersApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.domain.LoadBalancer;
@@ -30,6 +31,7 @@ import org.jclouds.rackspace.cloudloadbalancers.v1.features.NodeApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.predicates.LoadBalancerPredicates;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
 
@@ -50,7 +52,7 @@ public class RemoveNodes implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       RemoveNodes removeNodes = new RemoveNodes(args[0], args[1]);
 
       try {
@@ -126,16 +128,8 @@ public class RemoveNodes implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (clbApi != null) {
-         try {
-            clbApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(clbApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/UpdateLoadBalancers.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/UpdateLoadBalancers.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/UpdateLoadBalancers.java
index b095d68..34f67ff 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/UpdateLoadBalancers.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/UpdateLoadBalancers.java
@@ -18,6 +18,7 @@
  */
 package org.jclouds.examples.rackspace.cloudloadbalancers;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.cloudloadbalancers.v1.CloudLoadBalancersApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.domain.LoadBalancer;
@@ -26,6 +27,7 @@ import org.jclouds.rackspace.cloudloadbalancers.v1.features.LoadBalancerApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.predicates.LoadBalancerPredicates;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.concurrent.TimeoutException;
 
 import static org.jclouds.examples.rackspace.cloudloadbalancers.Constants.*;
@@ -46,7 +48,7 @@ public class UpdateLoadBalancers implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       UpdateLoadBalancers updateLoadBalancers = new UpdateLoadBalancers(args[0], args[1]);
 
       try {
@@ -105,16 +107,8 @@ public class UpdateLoadBalancers implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (clbApi != null) {
-         try {
-            clbApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(clbApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/UpdateNodes.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/UpdateNodes.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/UpdateNodes.java
index 1d77a4c..94d1a25 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/UpdateNodes.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/UpdateNodes.java
@@ -19,6 +19,7 @@
 package org.jclouds.examples.rackspace.cloudloadbalancers;
 
 import com.google.common.collect.Sets;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.cloudloadbalancers.v1.CloudLoadBalancersApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.domain.LoadBalancer;
@@ -29,6 +30,7 @@ import org.jclouds.rackspace.cloudloadbalancers.v1.features.NodeApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.predicates.LoadBalancerPredicates;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
 
@@ -51,7 +53,7 @@ public class UpdateNodes implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       UpdateNodes updateNodes = new UpdateNodes(args[0], args[1]);
 
       try {
@@ -124,16 +126,8 @@ public class UpdateNodes implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (clbApi != null) {
-         try {
-            clbApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(clbApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CloudServersPublish.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CloudServersPublish.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CloudServersPublish.java
index 3e9247a..8c7ae34 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CloudServersPublish.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CloudServersPublish.java
@@ -20,6 +20,7 @@ package org.jclouds.examples.rackspace.cloudservers;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableSet;
+import com.google.common.io.Closeables;
 import com.google.common.net.HostAndPort;
 import com.google.inject.Module;
 import org.jclouds.ContextBuilder;
@@ -35,6 +36,7 @@ import org.jclouds.scriptbuilder.domain.OsFamily;
 import org.jclouds.sshj.config.SshjSshClientModule;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
@@ -63,11 +65,11 @@ public class CloudServersPublish implements Closeable {
     * The second argument (args[1]) must be your API key
     * The optional third argument (args[2]) is the number of Cloud Servers to start
     */
-   public static void main(String[] args) {
+   public static void main(String[] args) throws IOException {
       getPublishedCloudServers(Arrays.asList(args));
    }
 
-   public static Set<? extends NodeMetadata> getPublishedCloudServers(List<String> args) {
+   public static Set<? extends NodeMetadata> getPublishedCloudServers(List<String> args) throws IOException {
       CloudServersPublish cloudServersPublish = new CloudServersPublish(args);
       Set<? extends NodeMetadata> nodes = null;
       
@@ -168,9 +170,7 @@ public class CloudServersPublish implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (computeService != null) {
-         computeService.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(computeService.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CreateServer.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CreateServer.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CreateServer.java
index 63bc6cb..5b92190 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CreateServer.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CreateServer.java
@@ -18,6 +18,7 @@
  */
 package org.jclouds.examples.rackspace.cloudservers;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.ComputeServiceContext;
@@ -29,6 +30,7 @@ import org.jclouds.compute.domain.Template;
 import org.jclouds.domain.Location;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
@@ -51,7 +53,7 @@ public class CreateServer implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       CreateServer createServer = new CreateServer(args[0], args[1]);
 
       try {
@@ -184,9 +186,7 @@ public class CreateServer implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (computeService != null) {
-         computeService.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(computeService.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/DeleteServer.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/DeleteServer.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/DeleteServer.java
index 671cec8..03a8718 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/DeleteServer.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/DeleteServer.java
@@ -18,12 +18,14 @@
  */
 package org.jclouds.examples.rackspace.cloudservers;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.ComputeServiceContext;
 import org.jclouds.compute.domain.NodeMetadata;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Properties;
 import java.util.Set;
 
@@ -46,7 +48,7 @@ public class DeleteServer implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       DeleteServer deleteServer = new DeleteServer(args[0], args[1]);
 
       try {
@@ -92,9 +94,7 @@ public class DeleteServer implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (computeService != null) {
-         computeService.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(computeService.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ListServersWithFiltering.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ListServersWithFiltering.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ListServersWithFiltering.java
index d6633f2..783f8a8 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ListServersWithFiltering.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ListServersWithFiltering.java
@@ -20,6 +20,7 @@ package org.jclouds.examples.rackspace.cloudservers;
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.ComputeServiceContext;
@@ -28,6 +29,7 @@ import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.predicates.NodePredicates;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 
 import static org.jclouds.examples.rackspace.cloudservers.Constants.PROVIDER;
@@ -48,7 +50,7 @@ public class ListServersWithFiltering implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       ListServersWithFiltering listServersWithFiltering = new ListServersWithFiltering(args[0], args[1]);
 
       try {
@@ -95,10 +97,8 @@ public class ListServersWithFiltering implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (computeService != null) {
-         computeService.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(computeService.getContext(), true);
    }
 
    public static Predicate<ComputeMetadata> nameStartsWith(final String prefix) {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ServerMetadata.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ServerMetadata.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ServerMetadata.java
index 208a3af..8e6da23 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ServerMetadata.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ServerMetadata.java
@@ -20,6 +20,7 @@ package org.jclouds.examples.rackspace.cloudservers;
 
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableMap;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.ComputeServiceContext;
@@ -30,6 +31,7 @@ import org.jclouds.openstack.nova.v2_0.features.ServerApi;
 import org.jclouds.rest.RestContext;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Map;
 
 import static org.jclouds.examples.rackspace.cloudservers.Constants.NAME;
@@ -52,7 +54,7 @@ public class ServerMetadata implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       ServerMetadata serverMetadata = new ServerMetadata(args[0], args[1]);
 
       try {
@@ -132,9 +134,7 @@ public class ServerMetadata implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (computeService != null) {
-         computeService.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(computeService.getContext(), true);
    }
 }


[2/2] git commit: Consistent handling of close across all Rackspace examples.

Posted by ev...@apache.org.
Consistent handling of close across all Rackspace examples.


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

Branch: refs/heads/master
Commit: b58d334b0ca081c43ea9b77276c5783c361deb17
Parents: e59ff81
Author: Everett Toews <ev...@rackspace.com>
Authored: Mon Oct 14 11:33:22 2013 -0500
Committer: Everett Toews <ev...@rackspace.com>
Committed: Tue Oct 15 11:29:23 2013 -0500

----------------------------------------------------------------------
 .../examples/rackspace/Authentication.java      | 14 ++++++-------
 .../org/jclouds/examples/rackspace/Logging.java | 14 ++++++-------
 .../jclouds/examples/rackspace/SmokeTest.java   |  1 -
 .../cloudblockstorage/CreateSnapshot.java       | 16 +++++----------
 .../CreateVolumeAndAttach.java                  | 21 ++++++--------------
 .../cloudblockstorage/DeleteSnapshot.java       | 16 +++++----------
 .../cloudblockstorage/DeleteVolume.java         | 16 +++++----------
 .../cloudblockstorage/DetachVolume.java         | 21 ++++++--------------
 .../cloudblockstorage/ListSnapshots.java        | 16 +++++----------
 .../ListVolumeAttachments.java                  | 10 +++++-----
 .../cloudblockstorage/ListVolumeTypes.java      | 16 +++++----------
 .../cloudblockstorage/ListVolumes.java          | 16 +++++----------
 .../clouddatabases/CreateDatabase.java          |  1 -
 .../clouddatabases/CreateInstance.java          |  1 -
 .../rackspace/clouddatabases/CreateUser.java    |  1 -
 .../clouddatabases/DeleteDatabase.java          |  1 -
 .../clouddatabases/DeleteInstance.java          |  1 -
 .../rackspace/clouddatabases/DeleteUser.java    |  2 --
 .../clouddatabases/GrantRootAccess.java         |  3 +--
 .../rackspace/clouddatabases/TestDatabase.java  |  3 +--
 .../clouddns/CRUDReverseDNSRecords.java         | 16 +++++----------
 .../rackspace/clouddns/CreateDomains.java       | 16 +++++----------
 .../rackspace/clouddns/CreateRecords.java       | 16 +++++----------
 .../rackspace/clouddns/DeleteDomains.java       | 16 +++++----------
 .../rackspace/clouddns/DeleteRecords.java       | 16 +++++----------
 .../rackspace/clouddns/ListDomains.java         | 16 +++++----------
 .../rackspace/clouddns/ListRecords.java         | 16 +++++----------
 .../rackspace/clouddns/UpdateDomains.java       | 16 +++++----------
 .../rackspace/clouddns/UpdateRecords.java       | 16 +++++----------
 .../rackspace/cloudfiles/CloudFilesPublish.java |  9 ++++-----
 .../rackspace/cloudfiles/CreateContainer.java   | 10 +++++-----
 .../CrossOriginResourceSharingContainer.java    | 10 +++++-----
 .../cloudfiles/DeleteObjectsAndContainer.java   | 10 +++++-----
 .../rackspace/cloudfiles/GenerateTempURL.java   |  9 ++++-----
 .../rackspace/cloudfiles/ListContainers.java    | 10 +++++-----
 .../rackspace/cloudfiles/ListObjects.java       | 10 +++++-----
 .../cloudfiles/UploadDirectoryToCDN.java        | 10 +++++-----
 .../rackspace/cloudfiles/UploadLargeObject.java | 10 +++++-----
 .../rackspace/cloudfiles/UploadObjects.java     |  9 ++++-----
 .../rackspace/cloudloadbalancers/AddNodes.java  | 16 +++++----------
 .../CreateLoadBalancerWithExistingServers.java  | 16 +++++----------
 .../CreateLoadBalancerWithNewServers.java       | 16 +++++----------
 .../cloudloadbalancers/DeleteLoadBalancers.java | 16 +++++----------
 .../cloudloadbalancers/ListLoadBalancers.java   | 16 +++++----------
 .../cloudloadbalancers/RemoveNodes.java         | 16 +++++----------
 .../cloudloadbalancers/UpdateLoadBalancers.java | 16 +++++----------
 .../cloudloadbalancers/UpdateNodes.java         | 16 +++++----------
 .../cloudservers/CloudServersPublish.java       | 12 +++++------
 .../rackspace/cloudservers/CreateServer.java    | 10 +++++-----
 .../rackspace/cloudservers/DeleteServer.java    | 10 +++++-----
 .../cloudservers/ListServersWithFiltering.java  | 10 +++++-----
 .../rackspace/cloudservers/ServerMetadata.java  | 10 +++++-----
 52 files changed, 221 insertions(+), 390 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/Authentication.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/Authentication.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/Authentication.java
index 125b20c..c8e5ab9 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/Authentication.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/Authentication.java
@@ -18,6 +18,7 @@
  */
 package org.jclouds.examples.rackspace;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.ComputeServiceContext;
@@ -28,6 +29,7 @@ import org.jclouds.openstack.nova.v2_0.NovaAsyncApi;
 import org.jclouds.rest.RestContext;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Properties;
 
 /**
@@ -45,7 +47,7 @@ import java.util.Properties;
  * @author Everett Toews
  */
 public class Authentication implements Closeable {
-   private final ComputeService compute;
+   private final ComputeService computeService;
    private final RestContext<NovaApi, NovaAsyncApi> nova;
 
     /**
@@ -56,7 +58,7 @@ public class Authentication implements Closeable {
     * [Optional] The third argument (args[2]) must be "password" if password authentication is used, 
     *            otherwise default to using API key.
     */
-   public static void main(String[] args) {
+   public static void main(String[] args) throws IOException {
       Authentication authentication = new Authentication(args);
 
       try {
@@ -88,7 +90,7 @@ public class Authentication implements Closeable {
                .credentials(username, credential)
                .overrides(overrides)
                .buildView(ComputeServiceContext.class);
-       compute = context.getComputeService();
+       computeService = context.getComputeService();
        nova = context.unwrap();
    }
 
@@ -107,9 +109,7 @@ public class Authentication implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (compute != null) {
-         compute.getContext();
-      }
+   public void close() throws IOException {
+      Closeables.close(computeService.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/Logging.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/Logging.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/Logging.java
index b64a8a9..aa7a8c6 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/Logging.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/Logging.java
@@ -19,6 +19,7 @@
 package org.jclouds.examples.rackspace;
 
 import com.google.common.collect.ImmutableSet;
+import com.google.common.io.Closeables;
 import com.google.inject.Module;
 import org.jclouds.ContextBuilder;
 import org.jclouds.compute.ComputeService;
@@ -29,6 +30,7 @@ import org.jclouds.openstack.nova.v2_0.NovaAsyncApi;
 import org.jclouds.rest.RestContext;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 
 /**
@@ -47,7 +49,7 @@ import java.util.Set;
  * @author Everett Toews
  */
 public class Logging implements Closeable {
-   private final ComputeService compute;
+   private final ComputeService computeService;
    private final RestContext<NovaApi, NovaAsyncApi> nova;
 
     /**
@@ -56,7 +58,7 @@ public class Logging implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       Logging logging = new Logging(args[0], args[1]);
 
       try {
@@ -82,7 +84,7 @@ public class Logging implements Closeable {
             .credentials(username, apiKey)
             .modules(modules) // don't forget to add the modules to your context!
             .buildView(ComputeServiceContext.class);
-      compute = context.getComputeService();
+      computeService = context.getComputeService();
       nova = context.unwrap();
    }
 
@@ -100,9 +102,7 @@ public class Logging implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (compute != null) {
-         compute.getContext();
-      }
+   public void close() throws IOException {
+      Closeables.close(computeService.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/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 d83b2e4..d78741e 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/SmokeTest.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/SmokeTest.java
@@ -40,7 +40,6 @@ public class SmokeTest {
     * 
     * The first argument (args[0]) must be your username
     * The second argument (args[1]) must be your API key
-    * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
       SmokeTest smokeTest = new SmokeTest();

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateSnapshot.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateSnapshot.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateSnapshot.java
index 4d3f7f3..00184c4 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateSnapshot.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateSnapshot.java
@@ -18,6 +18,7 @@
  */
 package org.jclouds.examples.rackspace.cloudblockstorage;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.openstack.cinder.v1.CinderApi;
 import org.jclouds.openstack.cinder.v1.domain.Snapshot;
@@ -28,6 +29,7 @@ import org.jclouds.openstack.cinder.v1.options.CreateSnapshotOptions;
 import org.jclouds.openstack.cinder.v1.predicates.SnapshotPredicates;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.concurrent.TimeoutException;
 
 import static org.jclouds.examples.rackspace.cloudblockstorage.Constants.*;
@@ -49,7 +51,7 @@ public class CreateSnapshot implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       CreateSnapshot createSnapshot = new CreateSnapshot(args[0], args[1]);
 
       try {
@@ -109,16 +111,8 @@ public class CreateSnapshot implements Closeable {
      *
      * Note that closing quietly like this is not necessary in Java 7.
      * You would use try-with-resources in the main method instead.
-     * When jclouds switches to Java 7 the try/catch block below can be removed.
      */
-   public void close() {
-      if (cinderApi != null) {
-         try {
-            cinderApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(cinderApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateVolumeAndAttach.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateVolumeAndAttach.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateVolumeAndAttach.java
index 21a51fc..93ddb35 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateVolumeAndAttach.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateVolumeAndAttach.java
@@ -20,6 +20,7 @@ package org.jclouds.examples.rackspace.cloudblockstorage;
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
+import com.google.common.io.Closeables;
 import com.google.inject.Module;
 import org.jclouds.ContextBuilder;
 import org.jclouds.compute.ComputeService;
@@ -44,6 +45,7 @@ import org.jclouds.scriptbuilder.domain.OsFamily;
 import org.jclouds.sshj.config.SshjSshClientModule;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
@@ -72,7 +74,7 @@ public class CreateVolumeAndAttach implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       CreateVolumeAndAttach createVolumeAndAttach = new CreateVolumeAndAttach(args[0], args[1]);
 
       try {
@@ -204,20 +206,9 @@ public class CreateVolumeAndAttach implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
-   public void close() {
-      if (cinderApi != null) {
-         try {
-            cinderApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
-      
-      if (computeService != null) {
-         computeService.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(cinderApi, true);
+      Closeables.close(computeService.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DeleteSnapshot.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DeleteSnapshot.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DeleteSnapshot.java
index 1168282..31cbc07 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DeleteSnapshot.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DeleteSnapshot.java
@@ -18,6 +18,7 @@
  */
 package org.jclouds.examples.rackspace.cloudblockstorage;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.openstack.cinder.v1.CinderApi;
 import org.jclouds.openstack.cinder.v1.domain.Snapshot;
@@ -25,6 +26,7 @@ import org.jclouds.openstack.cinder.v1.features.SnapshotApi;
 import org.jclouds.openstack.cinder.v1.predicates.SnapshotPredicates;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.concurrent.TimeoutException;
 
 import static org.jclouds.examples.rackspace.cloudblockstorage.Constants.*;
@@ -45,7 +47,7 @@ public class DeleteSnapshot implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       DeleteSnapshot deleteSnapshot = new DeleteSnapshot(args[0], args[1]);
 
       try {
@@ -100,16 +102,8 @@ public class DeleteSnapshot implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
-   public void close() {
-      if (cinderApi != null) {
-         try {
-            cinderApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(cinderApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DeleteVolume.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DeleteVolume.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DeleteVolume.java
index e5271c7..ca55297 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DeleteVolume.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DeleteVolume.java
@@ -18,6 +18,7 @@
  */
 package org.jclouds.examples.rackspace.cloudblockstorage;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.openstack.cinder.v1.CinderApi;
 import org.jclouds.openstack.cinder.v1.domain.Volume;
@@ -25,6 +26,7 @@ import org.jclouds.openstack.cinder.v1.features.VolumeApi;
 import org.jclouds.openstack.cinder.v1.predicates.VolumePredicates;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.concurrent.TimeoutException;
 
 import static org.jclouds.examples.rackspace.cloudblockstorage.Constants.*;
@@ -45,7 +47,7 @@ public class DeleteVolume implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       DeleteVolume deleteVolume = new DeleteVolume(args[0], args[1]);
 
       try {
@@ -100,16 +102,8 @@ public class DeleteVolume implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
-   public void close() {
-      if (cinderApi != null) {
-         try {
-            cinderApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(cinderApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DetachVolume.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DetachVolume.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DetachVolume.java
index e896a93..efea9d7 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DetachVolume.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DetachVolume.java
@@ -20,6 +20,7 @@ package org.jclouds.examples.rackspace.cloudblockstorage;
 
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableSet;
+import com.google.common.io.Closeables;
 import com.google.inject.Module;
 import org.jclouds.ContextBuilder;
 import org.jclouds.compute.ComputeService;
@@ -43,6 +44,7 @@ import org.jclouds.scriptbuilder.domain.OsFamily;
 import org.jclouds.sshj.config.SshjSshClientModule;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.concurrent.TimeoutException;
 
 import static org.jclouds.examples.rackspace.cloudblockstorage.Constants.*;
@@ -69,7 +71,7 @@ public class DetachVolume implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       DetachVolume detachVolume = new DetachVolume(args[0], args[1]);
 
       try {
@@ -170,20 +172,9 @@ public class DetachVolume implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
-   public void close() {
-      if (cinderApi != null) {
-         try {
-            cinderApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
-
-      if (computeService != null) {
-         computeService.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(cinderApi, true);
+      Closeables.close(computeService.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListSnapshots.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListSnapshots.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListSnapshots.java
index e220054..2af5a25 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListSnapshots.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListSnapshots.java
@@ -18,11 +18,13 @@
  */
 package org.jclouds.examples.rackspace.cloudblockstorage;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.openstack.cinder.v1.CinderApi;
 import org.jclouds.openstack.cinder.v1.domain.Snapshot;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 
 import static org.jclouds.examples.rackspace.cloudblockstorage.Constants.PROVIDER;
@@ -43,7 +45,7 @@ public class ListSnapshots implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       ListSnapshots listSnapshots = new ListSnapshots(args[0], args[1]);
 
       try {
@@ -81,16 +83,8 @@ public class ListSnapshots implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
-   public void close() {
-      if (cinderApi != null) {
-         try {
-            cinderApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(cinderApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumeAttachments.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumeAttachments.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumeAttachments.java
index 18d65bb..83b2cbc 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumeAttachments.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumeAttachments.java
@@ -19,6 +19,7 @@
 package org.jclouds.examples.rackspace.cloudblockstorage;
 
 import com.google.common.collect.FluentIterable;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.ComputeServiceContext;
@@ -31,6 +32,7 @@ import org.jclouds.openstack.nova.v2_0.features.ServerApi;
 import org.jclouds.rest.RestContext;
 
 import java.io.Closeable;
+import java.io.IOException;
 
 import static org.jclouds.examples.rackspace.cloudblockstorage.Constants.NAME;
 import static org.jclouds.examples.rackspace.cloudblockstorage.Constants.ZONE;
@@ -53,7 +55,7 @@ public class ListVolumeAttachments implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       ListVolumeAttachments listVolumeAttachments = new ListVolumeAttachments(args[0], args[1]);
 
       try {
@@ -108,9 +110,7 @@ public class ListVolumeAttachments implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (computeService != null) {
-         computeService.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(computeService.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumeTypes.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumeTypes.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumeTypes.java
index 15ac2e3..4016d23 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumeTypes.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumeTypes.java
@@ -18,11 +18,13 @@
  */
 package org.jclouds.examples.rackspace.cloudblockstorage;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.openstack.cinder.v1.CinderApi;
 import org.jclouds.openstack.cinder.v1.domain.VolumeType;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 
 import static org.jclouds.examples.rackspace.cloudblockstorage.Constants.PROVIDER;
@@ -43,7 +45,7 @@ public class ListVolumeTypes implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       ListVolumeTypes listVolumeTypes = new ListVolumeTypes(args[0], args[1]);
 
       try {
@@ -81,16 +83,8 @@ public class ListVolumeTypes implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
-   public void close() {
-      if (cinderApi != null) {
-         try {
-            cinderApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(cinderApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumes.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumes.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumes.java
index efeca48..89b8969 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumes.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/ListVolumes.java
@@ -18,11 +18,13 @@
  */
 package org.jclouds.examples.rackspace.cloudblockstorage;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.openstack.cinder.v1.CinderApi;
 import org.jclouds.openstack.cinder.v1.domain.Volume;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 
 import static org.jclouds.examples.rackspace.cloudblockstorage.Constants.PROVIDER;
@@ -43,7 +45,7 @@ public class ListVolumes implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       ListVolumes listVolumes = new ListVolumes(args[0], args[1]);
 
       try {
@@ -81,16 +83,8 @@ public class ListVolumes implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
-   public void close() {
-      if (cinderApi != null) {
-         try {
-            cinderApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(cinderApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateDatabase.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateDatabase.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateDatabase.java
index 93e4d85..66e77bc 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateDatabase.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateDatabase.java
@@ -100,7 +100,6 @@ public class CreateDatabase implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
    public void close() throws IOException {
       Closeables.close(troveApi, true);

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateInstance.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateInstance.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateInstance.java
index 9b76158..f5a2904 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateInstance.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateInstance.java
@@ -96,7 +96,6 @@ public class CreateInstance implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
    public void close() throws IOException {
       Closeables.close(troveApi, true);

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateUser.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateUser.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateUser.java
index 36a3a96..408d458 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateUser.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateUser.java
@@ -98,7 +98,6 @@ public class CreateUser implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
    public void close() throws IOException {
       Closeables.close(troveApi, true);

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteDatabase.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteDatabase.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteDatabase.java
index 938be4a..229b505 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteDatabase.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteDatabase.java
@@ -98,7 +98,6 @@ public class DeleteDatabase implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
    public void close() throws IOException {
       Closeables.close(troveApi, true);

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteInstance.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteInstance.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteInstance.java
index 350efe4..b154812 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteInstance.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteInstance.java
@@ -103,7 +103,6 @@ public class DeleteInstance implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
    public void close() throws IOException {
       Closeables.close(troveApi, true);

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteUser.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteUser.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteUser.java
index 12c6446..baa06fd 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteUser.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteUser.java
@@ -48,7 +48,6 @@ public class DeleteUser implements Closeable {
     * 
     * The first argument  (args[0]) must be your username.
     * The second argument (args[1]) must be your API key.
-    * @throws IOException 
     */
    public static void main(String[] args) throws IOException {      
       DeleteUser deleteUser = new DeleteUser(args[0], args[1]);
@@ -99,7 +98,6 @@ public class DeleteUser implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
    public void close() throws IOException {
       Closeables.close(troveApi, true);

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/GrantRootAccess.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/GrantRootAccess.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/GrantRootAccess.java
index 2ca3bd1..7c25727 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/GrantRootAccess.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/GrantRootAccess.java
@@ -87,7 +87,7 @@ public class GrantRootAccess implements Closeable {
       
       String password = instanceApi.enableRoot(getInstance().getId()); // enable root on the instance
       
-      System.out.format("  Password: %s%n", password);
+      System.out.format("  Password: %s%n", password); // remove this in your code, never echo credentials
    }
 
    /**
@@ -95,7 +95,6 @@ public class GrantRootAccess implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
    public void close() throws IOException {
       Closeables.close(troveApi, true);

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/TestDatabase.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/TestDatabase.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/TestDatabase.java
index b5e3fdb..13f0b51 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/TestDatabase.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/TestDatabase.java
@@ -222,7 +222,7 @@ public class TestDatabase implements Closeable {
          connString.append("&password=");
          connString.append(PASSWORD); // Database user password
          
-         System.out.format("  Connecting to %s%n", connString);
+         System.out.format("  Connecting to %s%n", connString); // remove this in your code, never echo credentials
          
          conn = DriverManager.getConnection(connString.toString());
 
@@ -292,7 +292,6 @@ public class TestDatabase implements Closeable {
     *
     * Note that closing quietly like this is not necessary in Java 7.
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.
     */
    public void close() throws IOException {
       if(lbApi != null) {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CRUDReverseDNSRecords.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CRUDReverseDNSRecords.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CRUDReverseDNSRecords.java
index a1cb9db..d00f754 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CRUDReverseDNSRecords.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CRUDReverseDNSRecords.java
@@ -21,6 +21,7 @@ package org.jclouds.examples.rackspace.clouddns;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.examples.rackspace.cloudservers.CloudServersPublish;
@@ -30,6 +31,7 @@ import org.jclouds.rackspace.clouddns.v1.domain.RecordDetail;
 import org.jclouds.rackspace.clouddns.v1.features.ReverseDNSApi;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -53,7 +55,7 @@ public class CRUDReverseDNSRecords implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       CRUDReverseDNSRecords crudReverseDNSRecords = new CRUDReverseDNSRecords(args[0], args[1]);
 
       try {
@@ -135,16 +137,8 @@ public class CRUDReverseDNSRecords implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (dnsApi != null) {
-         try {
-            dnsApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(dnsApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CreateDomains.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CreateDomains.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CreateDomains.java
index 3b203ce..4e4caec 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CreateDomains.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CreateDomains.java
@@ -19,6 +19,7 @@
 package org.jclouds.examples.rackspace.clouddns;
 
 import com.google.common.collect.ImmutableSet;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.clouddns.v1.CloudDNSApi;
 import org.jclouds.rackspace.clouddns.v1.domain.CreateDomain;
@@ -28,6 +29,7 @@ import org.jclouds.rackspace.clouddns.v1.domain.Record;
 import org.jclouds.rackspace.clouddns.v1.functions.DomainFunctions;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
@@ -49,7 +51,7 @@ public class CreateDomains implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       CreateDomains createDomains = new CreateDomains(args[0], args[1]);
 
       try {
@@ -129,16 +131,8 @@ public class CreateDomains implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (dnsApi != null) {
-         try {
-            dnsApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(dnsApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CreateRecords.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CreateRecords.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CreateRecords.java
index 4b81c59..54bbdfb 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CreateRecords.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/CreateRecords.java
@@ -19,6 +19,7 @@
 package org.jclouds.examples.rackspace.clouddns;
 
 import com.google.common.collect.ImmutableSet;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.clouddns.v1.CloudDNSApi;
 import org.jclouds.rackspace.clouddns.v1.domain.Domain;
@@ -26,6 +27,7 @@ import org.jclouds.rackspace.clouddns.v1.domain.Record;
 import org.jclouds.rackspace.clouddns.v1.domain.RecordDetail;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
 
@@ -47,7 +49,7 @@ public class CreateRecords implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       CreateRecords createRecords = new CreateRecords(args[0], args[1]);
 
       try {
@@ -106,16 +108,8 @@ public class CreateRecords implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (dnsApi != null) {
-         try {
-            dnsApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(dnsApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/DeleteDomains.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/DeleteDomains.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/DeleteDomains.java
index de2d1dd..85ef801 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/DeleteDomains.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/DeleteDomains.java
@@ -19,11 +19,13 @@
 package org.jclouds.examples.rackspace.clouddns;
 
 import com.google.common.collect.Iterables;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.clouddns.v1.CloudDNSApi;
 import org.jclouds.rackspace.clouddns.v1.domain.Domain;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
 
@@ -44,7 +46,7 @@ public class DeleteDomains implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       DeleteDomains deleteDomains = new DeleteDomains(args[0], args[1]);
 
       try {
@@ -81,16 +83,8 @@ public class DeleteDomains implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (dnsApi != null) {
-         try {
-            dnsApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(dnsApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/DeleteRecords.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/DeleteRecords.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/DeleteRecords.java
index 04af8ee..d1f8e48 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/DeleteRecords.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/DeleteRecords.java
@@ -19,12 +19,14 @@
 package org.jclouds.examples.rackspace.clouddns;
 
 import com.google.common.collect.Iterables;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.clouddns.v1.CloudDNSApi;
 import org.jclouds.rackspace.clouddns.v1.domain.Domain;
 import org.jclouds.rackspace.clouddns.v1.domain.RecordDetail;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
 
@@ -47,7 +49,7 @@ public class DeleteRecords implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       DeleteRecords deleteRecords = new DeleteRecords(args[0], args[1]);
 
       try {
@@ -94,16 +96,8 @@ public class DeleteRecords implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (dnsApi != null) {
-         try {
-            dnsApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(dnsApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/ListDomains.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/ListDomains.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/ListDomains.java
index fd53421..18b582f 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/ListDomains.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/ListDomains.java
@@ -18,12 +18,14 @@
  */
 package org.jclouds.examples.rackspace.clouddns;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.clouddns.v1.CloudDNSApi;
 import org.jclouds.rackspace.clouddns.v1.domain.Domain;
 import org.jclouds.rackspace.clouddns.v1.domain.Subdomain;
 
 import java.io.Closeable;
+import java.io.IOException;
 
 import static org.jclouds.examples.rackspace.clouddns.Constants.*;
 
@@ -41,7 +43,7 @@ public class ListDomains implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       ListDomains listDomains = new ListDomains(args[0], args[1]);
 
       try {
@@ -105,16 +107,8 @@ public class ListDomains implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (dnsApi != null) {
-         try {
-            dnsApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(dnsApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/ListRecords.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/ListRecords.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/ListRecords.java
index 1a57902..ffffd6c 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/ListRecords.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/ListRecords.java
@@ -18,12 +18,14 @@
  */
 package org.jclouds.examples.rackspace.clouddns;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.clouddns.v1.CloudDNSApi;
 import org.jclouds.rackspace.clouddns.v1.domain.Domain;
 import org.jclouds.rackspace.clouddns.v1.domain.RecordDetail;
 
 import java.io.Closeable;
+import java.io.IOException;
 
 import static org.jclouds.examples.rackspace.clouddns.Constants.NAME;
 import static org.jclouds.examples.rackspace.clouddns.Constants.PROVIDER;
@@ -42,7 +44,7 @@ public class ListRecords implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       ListRecords listRecords = new ListRecords(args[0], args[1]);
 
       try {
@@ -110,16 +112,8 @@ public class ListRecords implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (dnsApi != null) {
-         try {
-            dnsApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(dnsApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/UpdateDomains.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/UpdateDomains.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/UpdateDomains.java
index ee760bd..ef8aca7 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/UpdateDomains.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/UpdateDomains.java
@@ -19,12 +19,14 @@
 package org.jclouds.examples.rackspace.clouddns;
 
 import com.google.common.collect.Iterables;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.clouddns.v1.CloudDNSApi;
 import org.jclouds.rackspace.clouddns.v1.domain.Domain;
 import org.jclouds.rackspace.clouddns.v1.domain.UpdateDomain;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.concurrent.TimeoutException;
 
 import static org.jclouds.examples.rackspace.clouddns.Constants.*;
@@ -44,7 +46,7 @@ public class UpdateDomains implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       UpdateDomains updateDomains = new UpdateDomains(args[0], args[1]);
 
       try {
@@ -109,16 +111,8 @@ public class UpdateDomains implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (dnsApi != null) {
-         try {
-            dnsApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(dnsApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/UpdateRecords.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/UpdateRecords.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/UpdateRecords.java
index 0ba3cb2..8cd7190 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/UpdateRecords.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddns/UpdateRecords.java
@@ -20,6 +20,7 @@ package org.jclouds.examples.rackspace.clouddns;
 
 import com.google.common.base.Function;
 import com.google.common.collect.Maps;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.clouddns.v1.CloudDNSApi;
 import org.jclouds.rackspace.clouddns.v1.domain.Domain;
@@ -28,6 +29,7 @@ import org.jclouds.rackspace.clouddns.v1.domain.RecordDetail;
 import org.jclouds.rackspace.clouddns.v1.functions.RecordFunctions;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
@@ -50,7 +52,7 @@ public class UpdateRecords implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       UpdateRecords updateRecords = new UpdateRecords(args[0], args[1]);
 
       try {
@@ -122,16 +124,8 @@ public class UpdateRecords implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (dnsApi != null) {
-         try {
-            dnsApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(dnsApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/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 2141831..c173d8c 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,6 +18,7 @@
  */
 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;
@@ -47,7 +48,7 @@ public class CloudFilesPublish implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       CloudFilesPublish cloudFilesPublish = new CloudFilesPublish(args[0], args[1]);
 
       try {
@@ -121,9 +122,7 @@ public class CloudFilesPublish implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (blobStore != null) {
-         blobStore.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(blobStore.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/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 818e265..ef49069 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
@@ -19,6 +19,7 @@
 package org.jclouds.examples.rackspace.cloudfiles;
 
 import com.google.common.collect.ImmutableMap;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.blobstore.BlobStore;
 import org.jclouds.blobstore.BlobStoreContext;
@@ -28,6 +29,7 @@ import org.jclouds.openstack.swift.options.CreateContainerOptions;
 import org.jclouds.rest.RestContext;
 
 import java.io.Closeable;
+import java.io.IOException;
 
 import static org.jclouds.examples.rackspace.cloudfiles.Constants.CONTAINER;
 import static org.jclouds.examples.rackspace.cloudfiles.Constants.PROVIDER;
@@ -47,7 +49,7 @@ public class CreateContainer implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       CreateContainer createContainer = new CreateContainer(args[0], args[1]);
 
       try {
@@ -83,9 +85,7 @@ public class CreateContainer implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (blobStore != null) {
-         blobStore.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(blobStore.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/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 02ab390..772d049 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
@@ -19,6 +19,7 @@
 package org.jclouds.examples.rackspace.cloudfiles;
 
 import com.google.common.collect.ImmutableMap;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.blobstore.BlobStore;
 import org.jclouds.blobstore.BlobStoreContext;
@@ -29,6 +30,7 @@ import org.jclouds.openstack.swift.options.CreateContainerOptions;
 import org.jclouds.rest.RestContext;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Map;
 
 import static org.jclouds.examples.rackspace.cloudfiles.Constants.CONTAINER;
@@ -52,7 +54,7 @@ public class CrossOriginResourceSharingContainer implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       CrossOriginResourceSharingContainer corsContainer = new CrossOriginResourceSharingContainer(args[0], args[1]);
 
       try {
@@ -120,9 +122,7 @@ public class CrossOriginResourceSharingContainer implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (blobStore != null) {
-         blobStore.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(blobStore.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/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 d43dbd6..4a31a10 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
@@ -18,6 +18,7 @@
  */
 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;
@@ -29,6 +30,7 @@ import org.jclouds.openstack.swift.options.ListContainerOptions;
 import org.jclouds.rest.RestContext;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 
 import static org.jclouds.examples.rackspace.cloudfiles.Constants.CONTAINER;
@@ -50,7 +52,7 @@ public class DeleteObjectsAndContainer implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       DeleteObjectsAndContainer deleteObjectsAndContainer = new DeleteObjectsAndContainer(args[0], args[1]);
 
       try {
@@ -99,9 +101,7 @@ public class DeleteObjectsAndContainer implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (blobStore != null) {
-         blobStore.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(blobStore.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/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 86b9a1f..d1c6e78 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,6 +19,7 @@
 package org.jclouds.examples.rackspace.cloudfiles;
 
 import com.google.common.base.Charsets;
+import com.google.common.io.Closeables;
 import com.google.common.io.Files;
 import org.jclouds.ContextBuilder;
 import org.jclouds.blobstore.BlobStore;
@@ -66,7 +67,7 @@ public class GenerateTempURL implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       GenerateTempURL generateTempURL = new GenerateTempURL(args[0], args[1]);
 
       try {
@@ -147,9 +148,7 @@ public class GenerateTempURL implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (blobStore != null) {
-         blobStore.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(blobStore.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/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 201b3eb..bf4f281 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
@@ -18,6 +18,7 @@
  */
 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;
@@ -27,6 +28,7 @@ import org.jclouds.openstack.swift.domain.ContainerMetadata;
 import org.jclouds.rest.RestContext;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 
 import static org.jclouds.examples.rackspace.cloudfiles.Constants.PROVIDER;
@@ -46,7 +48,7 @@ public class ListContainers implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       ListContainers listContainers = new ListContainers(args[0], args[1]);
 
       try {
@@ -81,9 +83,7 @@ public class ListContainers implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (blobStore != null) {
-         blobStore.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(blobStore.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/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 6878106..e878196 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
@@ -18,6 +18,7 @@
  */
 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;
@@ -28,6 +29,7 @@ import org.jclouds.openstack.swift.options.ListContainerOptions;
 import org.jclouds.rest.RestContext;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 
 import static org.jclouds.examples.rackspace.cloudfiles.Constants.CONTAINER;
@@ -48,7 +50,7 @@ public class ListObjects implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       ListObjects listContainers = new ListObjects(args[0], args[1]);
 
       try {
@@ -95,9 +97,7 @@ public class ListObjects implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (blobStore != null) {
-         blobStore.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(blobStore.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/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 98558ce..b92ec4d 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
@@ -19,6 +19,7 @@
 package org.jclouds.examples.rackspace.cloudfiles;
 
 import com.google.common.collect.Lists;
+import com.google.common.io.Closeables;
 import com.google.common.util.concurrent.*;
 import org.jclouds.ContextBuilder;
 import org.jclouds.blobstore.BlobStore;
@@ -29,6 +30,7 @@ import org.jclouds.cloudfiles.CloudFilesClient;
 
 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;
@@ -59,7 +61,7 @@ public class UploadDirectoryToCDN implements Closeable {
     * The third argument (args[2]) must be the path to the local directory
     * The fourth argument (args[3]) must be the remote container name
     */
-   public static void main(String[] args) {
+   public static void main(String[] args) throws IOException {
       UploadDirectoryToCDN uploadDirToCDN = new UploadDirectoryToCDN(args[0], args[1]);
 
       try {
@@ -170,10 +172,8 @@ public class UploadDirectoryToCDN implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (blobStore != null) {
-         blobStore.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(blobStore.getContext(), true);
    }
 
    /**

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/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 b8c3b99..bf0f68a 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,6 +18,7 @@
  */
 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;
@@ -25,6 +26,7 @@ import org.jclouds.blobstore.domain.Blob;
 
 import java.io.Closeable;
 import java.io.File;
+import java.io.IOException;
 import java.util.Properties;
 import java.util.concurrent.ExecutionException;
 
@@ -47,7 +49,7 @@ public class UploadLargeObject implements Closeable {
     * The second argument (args[1]) must be your API key
     * The third argument (args[2]) must be the absolute path to a large file
     */
-   public static void main(String[] args) {
+   public static void main(String[] args) throws IOException {
       UploadLargeObject createContainer = new UploadLargeObject(args[0], args[1]);
 
       try {
@@ -95,9 +97,7 @@ public class UploadLargeObject implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (blobStore != null) {
-         blobStore.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(blobStore.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/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 74cdc6f..ee4c597 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
@@ -18,6 +18,7 @@
  */
 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;
@@ -49,7 +50,7 @@ public class UploadObjects implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       UploadObjects uploadContainer = new UploadObjects(args[0], args[1]);
 
       try {
@@ -139,9 +140,7 @@ public class UploadObjects implements Closeable {
    /**
     * Always close your service when you're done with it.
     */
-   public void close() {
-      if (blobStore != null) {
-         blobStore.getContext().close();
-      }
+   public void close() throws IOException {
+      Closeables.close(blobStore.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/AddNodes.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/AddNodes.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/AddNodes.java
index 05aff04..3c91806 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/AddNodes.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/AddNodes.java
@@ -19,6 +19,7 @@
 package org.jclouds.examples.rackspace.cloudloadbalancers;
 
 import com.google.common.collect.Sets;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.cloudloadbalancers.v1.CloudLoadBalancersApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.domain.AddNode;
@@ -29,6 +30,7 @@ import org.jclouds.rackspace.cloudloadbalancers.v1.features.NodeApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.predicates.LoadBalancerPredicates;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
 
@@ -53,7 +55,7 @@ public class AddNodes implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       AddNodes addNodes = new AddNodes(args[0], args[1]);
 
       try {
@@ -141,16 +143,8 @@ public class AddNodes implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (clbApi != null) {
-         try {
-            clbApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(clbApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/CreateLoadBalancerWithExistingServers.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/CreateLoadBalancerWithExistingServers.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/CreateLoadBalancerWithExistingServers.java
index 371101f..ab84622 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/CreateLoadBalancerWithExistingServers.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/CreateLoadBalancerWithExistingServers.java
@@ -19,6 +19,7 @@
 package org.jclouds.examples.rackspace.cloudloadbalancers;
 
 import com.google.common.collect.Sets;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.cloudloadbalancers.v1.CloudLoadBalancersApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.domain.*;
@@ -26,6 +27,7 @@ import org.jclouds.rackspace.cloudloadbalancers.v1.features.LoadBalancerApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.predicates.LoadBalancerPredicates;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
 
@@ -51,7 +53,7 @@ public class CreateLoadBalancerWithExistingServers implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       CreateLoadBalancerWithExistingServers createLoadBalancer = new CreateLoadBalancerWithExistingServers(args[0], args[1]);
 
       try {
@@ -146,16 +148,8 @@ public class CreateLoadBalancerWithExistingServers implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (clbApi != null) {
-         try {
-            clbApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(clbApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/CreateLoadBalancerWithNewServers.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/CreateLoadBalancerWithNewServers.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/CreateLoadBalancerWithNewServers.java
index 2f10b9b..db32d5c 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/CreateLoadBalancerWithNewServers.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/CreateLoadBalancerWithNewServers.java
@@ -20,6 +20,7 @@ package org.jclouds.examples.rackspace.cloudloadbalancers;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.examples.rackspace.cloudservers.CloudServersPublish;
@@ -29,6 +30,7 @@ import org.jclouds.rackspace.cloudloadbalancers.v1.features.LoadBalancerApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.predicates.LoadBalancerPredicates;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
@@ -53,7 +55,7 @@ public class CreateLoadBalancerWithNewServers implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       CreateLoadBalancerWithNewServers createLoadBalancer = new CreateLoadBalancerWithNewServers(args[0], args[1]);
 
       try {
@@ -150,16 +152,8 @@ public class CreateLoadBalancerWithNewServers implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (clbApi != null) {
-         try {
-            clbApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(clbApi, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/b58d334b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/DeleteLoadBalancers.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/DeleteLoadBalancers.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/DeleteLoadBalancers.java
index f34930a..0e92619 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/DeleteLoadBalancers.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudloadbalancers/DeleteLoadBalancers.java
@@ -18,6 +18,7 @@
  */
 package org.jclouds.examples.rackspace.cloudloadbalancers;
 
+import com.google.common.io.Closeables;
 import org.jclouds.ContextBuilder;
 import org.jclouds.rackspace.cloudloadbalancers.v1.CloudLoadBalancersApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.domain.LoadBalancer;
@@ -25,6 +26,7 @@ import org.jclouds.rackspace.cloudloadbalancers.v1.features.LoadBalancerApi;
 import org.jclouds.rackspace.cloudloadbalancers.v1.predicates.LoadBalancerPredicates;
 
 import java.io.Closeable;
+import java.io.IOException;
 import java.util.concurrent.TimeoutException;
 
 import static org.jclouds.examples.rackspace.cloudloadbalancers.Constants.*;
@@ -44,7 +46,7 @@ public class DeleteLoadBalancers implements Closeable {
     * 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) {
+   public static void main(String[] args) throws IOException {
       DeleteLoadBalancers listLoadBalancers = new DeleteLoadBalancers(args[0], args[1]);
 
       try {
@@ -92,16 +94,8 @@ public class DeleteLoadBalancers implements Closeable {
     * 
     * Note that closing quietly like this is not necessary in Java 7. 
     * You would use try-with-resources in the main method instead.
-    * When jclouds switches to Java 7 the try/catch block below can be removed.  
     */
-   public void close() {
-      if (clbApi != null) {
-         try {
-            clbApi.close();
-         }
-         catch (Exception e) {
-            e.printStackTrace();
-         }
-      }
+   public void close() throws IOException {
+      Closeables.close(clbApi, true);
    }
 }