You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2013/12/16 22:15:26 UTC

[1/3] git commit: JCLOUDS-410. Deprecate Payload.getInput

Updated Branches:
  refs/heads/master 6d9784c4b -> 05ec994f9


JCLOUDS-410. Deprecate Payload.getInput

We plan to transition Payload to ByteSource in the next major release.
Unfortunately Payload.getInput masks its checked exception and
ByteSource.getInput is final so we cannot continue to mask the
exceptions.  Deprecation of getInput and addition openStream allows us
to transition callers from the former to the latter.


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

Branch: refs/heads/master
Commit: f3dcd3fe862cd4c22b430786beb018fdfd967dc2
Parents: 6d9784c
Author: Andrew Gaul <ga...@apache.org>
Authored: Mon Dec 16 11:21:32 2013 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Mon Dec 16 13:02:37 2013 -0800

----------------------------------------------------------------------
 core/src/main/java/org/jclouds/io/Payload.java         |  9 +++++++++
 .../org/jclouds/io/payloads/BaseCipherPayload.java     |  2 +-
 .../main/java/org/jclouds/io/payloads/BasePayload.java | 11 +++++++++++
 .../java/org/jclouds/io/payloads/ByteArrayPayload.java |  2 +-
 .../org/jclouds/io/payloads/DelegatingPayload.java     |  8 ++++++++
 .../main/java/org/jclouds/io/payloads/FilePayload.java | 11 +++--------
 .../org/jclouds/io/payloads/InputStreamPayload.java    |  2 +-
 .../io/payloads/InputStreamSupplierPayload.java        | 13 ++++---------
 .../java/org/jclouds/io/payloads/MultipartForm.java    | 10 ++--------
 .../java/org/jclouds/io/payloads/PhantomPayload.java   |  2 +-
 .../java/org/jclouds/io/payloads/StreamingPayload.java |  9 +++++++++
 .../java/org/jclouds/io/payloads/StringPayload.java    |  2 +-
 .../org/jclouds/io/payloads/UrlEncodedFormPayload.java |  2 +-
 .../java/org/jclouds/http/apachehc/ApacheHCUtils.java  |  7 ++-----
 14 files changed, 54 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/Payload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/Payload.java b/core/src/main/java/org/jclouds/io/Payload.java
index 30d7671..6d08ce7 100644
--- a/core/src/main/java/org/jclouds/io/Payload.java
+++ b/core/src/main/java/org/jclouds/io/Payload.java
@@ -18,6 +18,7 @@ package org.jclouds.io;
 
 import java.io.Closeable;
 import java.io.InputStream;
+import java.io.IOException;
 
 import com.google.common.io.InputSupplier;
 
@@ -29,6 +30,14 @@ public interface Payload extends InputSupplier<InputStream>, WriteTo, Closeable
    /**
     * Creates a new InputStream object of the payload.
     */
+   InputStream openStream() throws IOException;
+
+   /**
+    * Creates a new InputStream object of the payload.
+    *
+    * @deprecated see openStream
+    */
+   @Deprecated
    InputStream getInput();
 
    /**

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java b/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java
index d802cec..b1bd930 100644
--- a/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java
@@ -44,7 +44,7 @@ public abstract class BaseCipherPayload extends DelegatingPayload {
    public abstract Cipher initializeCipher(Key key);
 
    @Override
-   public CipherInputStream getInput() {
+   public CipherInputStream openStream() {
       return new CipherInputStream(super.getInput(), initializeCipher(key));
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/BasePayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/BasePayload.java b/core/src/main/java/org/jclouds/io/payloads/BasePayload.java
index dff3820..6fdd8e5 100644
--- a/core/src/main/java/org/jclouds/io/payloads/BasePayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/BasePayload.java
@@ -25,6 +25,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import com.google.common.base.Throwables;
+
 import org.jclouds.io.MutableContentMetadata;
 import org.jclouds.io.Payload;
 
@@ -45,6 +47,15 @@ public abstract class BasePayload<V> implements Payload {
       this.contentMetadata = checkNotNull(contentMetadata, "contentMetadata");
    }
 
+   @Override
+   public InputStream getInput() {
+      try {
+         return openStream();
+      } catch (IOException ioe) {
+         throw Throwables.propagate(ioe);
+      }
+   }
+
    /**
     * {@inheritDoc}
     */

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/ByteArrayPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/ByteArrayPayload.java b/core/src/main/java/org/jclouds/io/payloads/ByteArrayPayload.java
index 539fcde..68aeaf7 100644
--- a/core/src/main/java/org/jclouds/io/payloads/ByteArrayPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/ByteArrayPayload.java
@@ -41,7 +41,7 @@ public class ByteArrayPayload extends BasePayload<byte[]> {
     * {@inheritDoc}
     */
    @Override
-   public InputStream getInput() {
+   public InputStream openStream() {
       return new ByteArrayInputStream(content);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/DelegatingPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/DelegatingPayload.java b/core/src/main/java/org/jclouds/io/payloads/DelegatingPayload.java
index ef5cc9d..4524411 100644
--- a/core/src/main/java/org/jclouds/io/payloads/DelegatingPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/DelegatingPayload.java
@@ -41,6 +41,14 @@ public class DelegatingPayload implements Payload {
     * {@inheritDoc}
     */
    @Override
+   public InputStream openStream() throws IOException {
+      return delegate.openStream();
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   @Override
    public InputStream getInput() {
       return delegate.getInput();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/FilePayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/FilePayload.java b/core/src/main/java/org/jclouds/io/payloads/FilePayload.java
index 338a6e7..430f5d8 100644
--- a/core/src/main/java/org/jclouds/io/payloads/FilePayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/FilePayload.java
@@ -20,10 +20,9 @@ import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.InputStream;
+import java.io.IOException;
 
-import com.google.common.base.Throwables;
 
 /**
  * @author Adrian Cole
@@ -40,12 +39,8 @@ public class FilePayload extends BasePayload<File> {
     * {@inheritDoc}
     */
    @Override
-   public InputStream getInput() {
-      try {
-         return new FileInputStream(content);
-      } catch (FileNotFoundException e) {
-         throw Throwables.propagate(e);
-      }
+   public InputStream openStream() throws IOException {
+      return new FileInputStream(content);
    }
 
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/InputStreamPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/InputStreamPayload.java b/core/src/main/java/org/jclouds/io/payloads/InputStreamPayload.java
index 450a6cb..22a1752 100644
--- a/core/src/main/java/org/jclouds/io/payloads/InputStreamPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/InputStreamPayload.java
@@ -33,7 +33,7 @@ public class InputStreamPayload extends BasePayload<InputStream> {
     * {@inheritDoc}
     */
    @Override
-   public InputStream getInput() {
+   public InputStream openStream() {
       return content;
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/InputStreamSupplierPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/InputStreamSupplierPayload.java b/core/src/main/java/org/jclouds/io/payloads/InputStreamSupplierPayload.java
index bd94cd3..54f0123 100644
--- a/core/src/main/java/org/jclouds/io/payloads/InputStreamSupplierPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/InputStreamSupplierPayload.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
 
-import com.google.common.base.Throwables;
 import com.google.common.collect.Lists;
 import com.google.common.io.InputSupplier;
 
@@ -40,14 +39,10 @@ public class InputStreamSupplierPayload extends BasePayload<InputSupplier<? exte
     * {@inheritDoc}
     */
    @Override
-   public InputStream getInput() {
-      try {
-         InputStream returnVal = content.getInput();
-         toClose.add(returnVal);
-         return returnVal;
-      } catch (IOException e) {
-         throw Throwables.propagate(e);
-      }
+   public InputStream openStream() throws IOException {
+      InputStream returnVal = content.getInput();
+      toClose.add(returnVal);
+      return returnVal;
    }
 
    /**

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/MultipartForm.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/MultipartForm.java b/core/src/main/java/org/jclouds/io/payloads/MultipartForm.java
index 655ca3c..8ae44dd 100644
--- a/core/src/main/java/org/jclouds/io/payloads/MultipartForm.java
+++ b/core/src/main/java/org/jclouds/io/payloads/MultipartForm.java
@@ -16,7 +16,6 @@
  */
 package org.jclouds.io.payloads;
 
-import static com.google.common.base.Throwables.propagate;
 import static com.google.common.collect.Lists.newArrayList;
 import static com.google.common.io.ByteStreams.join;
 import static com.google.common.io.ByteStreams.newInputStreamSupplier;
@@ -89,13 +88,8 @@ public class MultipartForm extends BasePayload<Iterable<? extends Part>> {
    }
 
    @Override
-   public InputStream getInput() {
-      try {
-         return chain.getInput();
-      } catch (IOException e) {
-         propagate(e);
-         return null;
-      }
+   public InputStream openStream() throws IOException {
+      return chain.getInput();
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/PhantomPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/PhantomPayload.java b/core/src/main/java/org/jclouds/io/payloads/PhantomPayload.java
index 2824d53..4023ee1 100644
--- a/core/src/main/java/org/jclouds/io/payloads/PhantomPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/PhantomPayload.java
@@ -46,7 +46,7 @@ public class PhantomPayload extends BasePayload<Object> {
     * {@inheritDoc}
     */
    @Override
-   public InputStream getInput() {
+   public InputStream openStream() {
       throw new UnsupportedOperationException();
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/StreamingPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/StreamingPayload.java b/core/src/main/java/org/jclouds/io/payloads/StreamingPayload.java
index ef34b69..2343091 100644
--- a/core/src/main/java/org/jclouds/io/payloads/StreamingPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/StreamingPayload.java
@@ -61,6 +61,15 @@ public class StreamingPayload implements Payload {
     *            this payload is for streaming writes only
     */
    @Override
+   public InputStream openStream() {
+      throw new UnsupportedOperationException("this payload is for streaming writes only");
+   }
+
+   /**
+    * @throws UnsupportedOperationException
+    *            this payload is for streaming writes only
+    */
+   @Override
    public InputStream getInput() {
       throw new UnsupportedOperationException("this payload is for streaming writes only");
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/StringPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/StringPayload.java b/core/src/main/java/org/jclouds/io/payloads/StringPayload.java
index da1566f..2452a94 100644
--- a/core/src/main/java/org/jclouds/io/payloads/StringPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/StringPayload.java
@@ -43,7 +43,7 @@ public class StringPayload extends BasePayload<String> {
     * {@inheritDoc}
     */
    @Override
-   public InputStream getInput() {
+   public InputStream openStream() {
       return new ByteArrayInputStream(bytes);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/core/src/main/java/org/jclouds/io/payloads/UrlEncodedFormPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/UrlEncodedFormPayload.java b/core/src/main/java/org/jclouds/io/payloads/UrlEncodedFormPayload.java
index 8cbfcca..fa906df 100644
--- a/core/src/main/java/org/jclouds/io/payloads/UrlEncodedFormPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/UrlEncodedFormPayload.java
@@ -37,7 +37,7 @@ public class UrlEncodedFormPayload extends BasePayload<String> {
     * {@inheritDoc}
     */
    @Override
-   public InputStream getInput() {
+   public InputStream openStream() {
       return toInputStream(content);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f3dcd3fe/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCUtils.java
----------------------------------------------------------------------
diff --git a/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCUtils.java b/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCUtils.java
index 5d86df6..47d7903 100644
--- a/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCUtils.java
+++ b/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCUtils.java
@@ -178,15 +178,12 @@ public class ApacheHCUtils {
       }
 
       @Override
-      public InputStream getInput() {
+      public InputStream openStream() throws IOException {
          try {
             return content.getContent();
          } catch (IllegalStateException e) {
-            Throwables.propagate(e);
-         } catch (IOException e) {
-            Throwables.propagate(e);
+            throw Throwables.propagate(e);
          }
-         return null;
       }
 
       @Override


[2/3] git commit: JCLOUDS-410. Add support for ByteSource Payloads

Posted by ga...@apache.org.
JCLOUDS-410. Add support for ByteSource Payloads

Also deprecate byte[], File, InputSupplier<InputStream>, and String
Payloads.  Callers should instead provide a ByteSource via
ByteSource.wrap(byte[]) and Files.asByteSource(File)


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

Branch: refs/heads/master
Commit: e48d4985ea01d7dc92b75a6fc8b4ce2d795e663c
Parents: f3dcd3f
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Dec 13 16:52:15 2013 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Mon Dec 16 13:06:30 2013 -0800

----------------------------------------------------------------------
 .../jclouds/blobstore/domain/BlobBuilder.java   | 12 +++++
 .../domain/internal/BlobBuilderImpl.java        | 11 ++++
 .../main/java/org/jclouds/http/HttpMessage.java | 16 ++++++
 .../main/java/org/jclouds/http/HttpUtils.java   |  3 +-
 core/src/main/java/org/jclouds/io/Payloads.java | 24 +++++++++
 .../jclouds/io/payloads/ByteArrayPayload.java   |  2 +
 .../jclouds/io/payloads/ByteSourcePayload.java  | 56 ++++++++++++++++++++
 .../org/jclouds/io/payloads/FilePayload.java    |  2 +
 .../io/payloads/InputStreamSupplierPayload.java | 16 +++---
 .../org/jclouds/io/payloads/StringPayload.java  |  2 +
 10 files changed, 133 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/e48d4985/blobstore/src/main/java/org/jclouds/blobstore/domain/BlobBuilder.java
----------------------------------------------------------------------
diff --git a/blobstore/src/main/java/org/jclouds/blobstore/domain/BlobBuilder.java b/blobstore/src/main/java/org/jclouds/blobstore/domain/BlobBuilder.java
index ed42cd8..ad27986 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/domain/BlobBuilder.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/domain/BlobBuilder.java
@@ -25,6 +25,7 @@ import java.util.Map;
 import org.jclouds.blobstore.domain.internal.BlobBuilderImpl;
 import org.jclouds.io.Payload;
 
+import com.google.common.io.ByteSource;
 import com.google.inject.ImplementedBy;
 
 /**
@@ -77,21 +78,32 @@ public interface BlobBuilder {
     * 
     * @param payload
     *           payload you wish to construct the {@link Blob} with.
+    * @deprecated see payload(ByteSource.wrap(byte[])
     */
+   @Deprecated
    PayloadBlobBuilder payload(byte[] payload);
 
    /**
+    * @param payload payload you wish to construct the {@link Blob} with.
+    */
+   PayloadBlobBuilder payload(ByteSource byteSource);
+
+   /**
     * 
     * @param payload
     *           payload you wish to construct the {@link Blob} with.
+    * @deprecated see payload(ByteSource.wrap(String.getBytes()))
     */
+   @Deprecated
    PayloadBlobBuilder payload(String payload);
 
    /**
     * 
     * @param payload
     *           payload you wish to construct the {@link Blob} with.
+    * @deprecated see payload(Files.asByteSource(File))
     */
+   @Deprecated
    PayloadBlobBuilder payload(File payload);
 
    /**

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e48d4985/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/BlobBuilderImpl.java
----------------------------------------------------------------------
diff --git a/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/BlobBuilderImpl.java b/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/BlobBuilderImpl.java
index 2069220..62a81e1 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/BlobBuilderImpl.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/BlobBuilderImpl.java
@@ -35,6 +35,7 @@ import org.jclouds.io.Payloads;
 import org.jclouds.io.payloads.PhantomPayload;
 
 import com.google.common.collect.Maps;
+import com.google.common.io.ByteSource;
 
 /**
  * @author Adrian Cole
@@ -89,6 +90,11 @@ public class BlobBuilderImpl implements BlobBuilder {
       return payload(newPayload(checkNotNull(data, "data")));
    }
 
+   @Override
+   public PayloadBlobBuilder payload(ByteSource data) {
+      return payload(newPayload(checkNotNull(data, "data")));
+   }
+
    /**
     * {@inheritDoc}
     */
@@ -162,6 +168,11 @@ public class BlobBuilderImpl implements BlobBuilder {
       }
 
       @Override
+      public PayloadBlobBuilder payload(ByteSource payload) {
+         return builder.payload(payload);
+      }
+
+      @Override
       public PayloadBlobBuilder payload(String payload) {
          return builder.payload(payload);
       }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e48d4985/core/src/main/java/org/jclouds/http/HttpMessage.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/http/HttpMessage.java b/core/src/main/java/org/jclouds/http/HttpMessage.java
index 014a252..4e3102d 100644
--- a/core/src/main/java/org/jclouds/http/HttpMessage.java
+++ b/core/src/main/java/org/jclouds/http/HttpMessage.java
@@ -33,6 +33,7 @@ import com.google.common.base.Objects;
 import com.google.common.base.Objects.ToStringHelper;
 import com.google.common.collect.ImmutableMultimap;
 import com.google.common.collect.Multimap;
+import com.google.common.io.ByteSource;
 
 /**
  * Represents a request that can be executed within {@link HttpCommandExecutorService}
@@ -65,15 +66,28 @@ public class HttpMessage extends PayloadEnclosingImpl {
       
       /**
        * @see HttpMessage#getPayload()
+       * @deprecated see payload(ByteSource.wrap(byte[]))
        */
+      @Deprecated
       public T payload(byte [] payload) {
          this.payload = Payloads.newByteArrayPayload(checkNotNull(payload, "payload"));
          return self();
       }
+
+      /**
+       * @see HttpMessage#getPayload()
+       */
+      @Deprecated
+      public T payload(ByteSource payload) {
+         this.payload = Payloads.newByteSourcePayload(checkNotNull(payload, "payload"));
+         return self();
+      }
       
       /**
        * @see HttpMessage#getPayload()
+       * @deprecated see payload(Files.asByteSource(File))
        */
+      @Deprecated
       public T payload(File payload) {
          this.payload = Payloads.newFilePayload(checkNotNull(payload, "payload"));
          return self();
@@ -89,7 +103,9 @@ public class HttpMessage extends PayloadEnclosingImpl {
       
       /**
        * @see HttpMessage#getPayload()
+       * @deprecated see payload(ByteSource.wrap(String.getBytes()))
        */
+      @Deprecated
       public T payload(String payload) {
          this.payload = Payloads.newStringPayload(checkNotNull(payload, "payload"));
          return self();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e48d4985/core/src/main/java/org/jclouds/http/HttpUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/http/HttpUtils.java b/core/src/main/java/org/jclouds/http/HttpUtils.java
index 592205a..6e41625 100644
--- a/core/src/main/java/org/jclouds/http/HttpUtils.java
+++ b/core/src/main/java/org/jclouds/http/HttpUtils.java
@@ -64,6 +64,7 @@ import com.google.common.collect.ImmutableMultimap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Multimap;
 import com.google.common.collect.ImmutableSet.Builder;
+import com.google.common.io.ByteSource;
 import com.google.common.reflect.Invokable;
 import com.google.inject.Inject;
 
@@ -161,7 +162,7 @@ public class HttpUtils {
    public static byte[] closeClientButKeepContentStream(PayloadEnclosing response) {
       byte[] returnVal = toByteArrayOrNull(response);
       if (returnVal != null && !response.getPayload().isRepeatable()) {
-         Payload newPayload = Payloads.newByteArrayPayload(returnVal);
+         Payload newPayload = Payloads.newByteSourcePayload(ByteSource.wrap(returnVal));
          MutableContentMetadata fromMd = response.getPayload().getContentMetadata();
          MutableContentMetadata toMd = newPayload.getContentMetadata();
          copy(fromMd, toMd);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e48d4985/core/src/main/java/org/jclouds/io/Payloads.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/Payloads.java b/core/src/main/java/org/jclouds/io/Payloads.java
index 620a514..f322d76 100644
--- a/core/src/main/java/org/jclouds/io/Payloads.java
+++ b/core/src/main/java/org/jclouds/io/Payloads.java
@@ -24,6 +24,7 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import org.jclouds.io.payloads.ByteArrayPayload;
+import org.jclouds.io.payloads.ByteSourcePayload;
 import org.jclouds.io.payloads.FilePayload;
 import org.jclouds.io.payloads.InputStreamPayload;
 import org.jclouds.io.payloads.StringPayload;
@@ -31,6 +32,7 @@ import org.jclouds.io.payloads.UrlEncodedFormPayload;
 
 import com.google.common.collect.Multimap;
 import com.google.common.io.ByteStreams;
+import com.google.common.io.ByteSource;
 
 /**
  * 
@@ -40,6 +42,10 @@ public class Payloads {
    private Payloads() {
    }
 
+   /**
+    * @deprecated see newPayload(ByteSource) or newPayload(InputStream)
+    */
+   @Deprecated
    public static Payload newPayload(Object data) {
       checkNotNull(data, "data");
       if (data instanceof Payload) {
@@ -48,6 +54,8 @@ public class Payloads {
          return newInputStreamPayload((InputStream) data);
       } else if (data instanceof byte[]) {
          return newByteArrayPayload((byte[]) data);
+      } else if (data instanceof ByteSource) {
+         return newByteSourcePayload((ByteSource) data);
       } else if (data instanceof String) {
          return newStringPayload((String) data);
       } else if (data instanceof File) {
@@ -61,14 +69,30 @@ public class Payloads {
       return new InputStreamPayload(checkNotNull(data, "data"));
    }
 
+   /**
+    * @deprecated see newPayload(ByteSource)
+    */
+   @Deprecated
    public static ByteArrayPayload newByteArrayPayload(byte[] data) {
       return new ByteArrayPayload(checkNotNull(data, "data"));
    }
 
+   public static ByteSourcePayload newByteSourcePayload(ByteSource data) {
+      return new ByteSourcePayload(checkNotNull(data, "data"));
+   }
+
+   /**
+    * @deprecated see newPayload(ByteSource)
+    */
+   @Deprecated
    public static StringPayload newStringPayload(String data) {
       return new StringPayload(checkNotNull(data, "data"));
    }
 
+   /**
+    * @deprecated see newPayload(ByteSource)
+    */
+   @Deprecated
    public static FilePayload newFilePayload(File data) {
       return new FilePayload(checkNotNull(data, "data"));
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e48d4985/core/src/main/java/org/jclouds/io/payloads/ByteArrayPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/ByteArrayPayload.java b/core/src/main/java/org/jclouds/io/payloads/ByteArrayPayload.java
index 68aeaf7..3b8a23e 100644
--- a/core/src/main/java/org/jclouds/io/payloads/ByteArrayPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/ByteArrayPayload.java
@@ -24,7 +24,9 @@ import java.io.InputStream;
 
 /**
  * @author Adrian Cole
+ * @deprecated see ByteSourcePayload
  */
+@Deprecated
 public class ByteArrayPayload extends BasePayload<byte[]> {
    public ByteArrayPayload(byte[] content) {
       this(content, null);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e48d4985/core/src/main/java/org/jclouds/io/payloads/ByteSourcePayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/ByteSourcePayload.java b/core/src/main/java/org/jclouds/io/payloads/ByteSourcePayload.java
new file mode 100644
index 0000000..e6a111d
--- /dev/null
+++ b/core/src/main/java/org/jclouds/io/payloads/ByteSourcePayload.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.io.payloads;
+
+import static com.google.common.io.Closeables.closeQuietly;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import com.google.common.io.ByteSource;
+import com.google.common.io.Closer;
+
+/**
+ * A repeatable, ByteSource-backed Payload.
+ *
+ * @author Andrew Gaul
+ */
+public class ByteSourcePayload extends BasePayload<ByteSource> {
+   private final Closer closer = Closer.create();
+
+   public ByteSourcePayload(ByteSource content) {
+      super(content);
+   }
+
+   @Override
+   public InputStream openStream() throws IOException {
+      return closer.register(content.openStream());
+   }
+
+   @Override
+   public boolean isRepeatable() {
+      return true;
+   }
+
+   /**
+    * if we created the stream, then it is already consumed on close.
+    */
+   @Override
+   public void release() {
+      closeQuietly(closer);
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e48d4985/core/src/main/java/org/jclouds/io/payloads/FilePayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/FilePayload.java b/core/src/main/java/org/jclouds/io/payloads/FilePayload.java
index 430f5d8..a0b0133 100644
--- a/core/src/main/java/org/jclouds/io/payloads/FilePayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/FilePayload.java
@@ -26,7 +26,9 @@ import java.io.IOException;
 
 /**
  * @author Adrian Cole
+ * @deprecated see ByteSourcePayload
  */
+@Deprecated
 public class FilePayload extends BasePayload<File> {
 
    public FilePayload(File content) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e48d4985/core/src/main/java/org/jclouds/io/payloads/InputStreamSupplierPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/InputStreamSupplierPayload.java b/core/src/main/java/org/jclouds/io/payloads/InputStreamSupplierPayload.java
index 54f0123..b962840 100644
--- a/core/src/main/java/org/jclouds/io/payloads/InputStreamSupplierPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/InputStreamSupplierPayload.java
@@ -20,16 +20,17 @@ import static com.google.common.io.Closeables.closeQuietly;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.List;
 
-import com.google.common.collect.Lists;
+import com.google.common.io.Closer;
 import com.google.common.io.InputSupplier;
 
 /**
  * @author Adrian Cole
+ * @deprecated see ByteSourcePayload
  */
+@Deprecated
 public class InputStreamSupplierPayload extends BasePayload<InputSupplier<? extends InputStream>> {
-   private List<InputStream> toClose = Lists.newArrayList();
+   private final Closer closer = Closer.create();
 
    public InputStreamSupplierPayload(InputSupplier<? extends InputStream> content) {
       super(content);
@@ -40,9 +41,7 @@ public class InputStreamSupplierPayload extends BasePayload<InputSupplier<? exte
     */
    @Override
    public InputStream openStream() throws IOException {
-      InputStream returnVal = content.getInput();
-      toClose.add(returnVal);
-      return returnVal;
+      return closer.register(content.getInput());
    }
 
    /**
@@ -58,9 +57,6 @@ public class InputStreamSupplierPayload extends BasePayload<InputSupplier<? exte
     */
    @Override
    public void release() {
-      if (toClose.size() > 0)
-         for (InputStream content = toClose.remove(0); toClose.size() > 0; content = toClose.remove(0))
-            closeQuietly(content);
+      closeQuietly(closer);
    }
-
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e48d4985/core/src/main/java/org/jclouds/io/payloads/StringPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/payloads/StringPayload.java b/core/src/main/java/org/jclouds/io/payloads/StringPayload.java
index 2452a94..70ea1be 100644
--- a/core/src/main/java/org/jclouds/io/payloads/StringPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/StringPayload.java
@@ -26,7 +26,9 @@ import com.google.common.base.Charsets;
  * a different encoding, please use {@link ByteArrayPayload}.
  * 
  * @author Adrian Cole
+ * @deprecated see ByteSourcePayload
  */
+@Deprecated
 public class StringPayload extends BasePayload<String> {
 
    private final byte[] bytes;


[3/3] git commit: Address Checkstyle violations

Posted by ga...@apache.org.
Address Checkstyle violations


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

Branch: refs/heads/master
Commit: 05ec994f9ef4e0b13ea31d4f92c5dfaf278b6466
Parents: e48d498
Author: Andrew Gaul <ga...@apache.org>
Authored: Mon Dec 16 13:09:02 2013 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Mon Dec 16 13:09:02 2013 -0800

----------------------------------------------------------------------
 .../nova/v2_0/compute/functions/ServerInZoneToNodeMetadata.java   | 3 ---
 1 file changed, 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/05ec994f/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadata.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadata.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadata.java
index 10783d6..23035c2 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadata.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadata.java
@@ -29,7 +29,6 @@ import static org.jclouds.openstack.nova.v2_0.domain.Address.createV4;
 import static org.jclouds.openstack.nova.v2_0.domain.Address.createV6;
 
 import java.net.Inet4Address;
-import java.util.Collection;
 import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Set;
@@ -38,7 +37,6 @@ import javax.annotation.Resource;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import com.google.common.collect.Sets;
 import org.jclouds.collect.Memoized;
 import org.jclouds.compute.domain.ComputeMetadata;
 import org.jclouds.compute.domain.Hardware;
@@ -62,7 +60,6 @@ import org.jclouds.util.InetAddresses2;
 
 import com.google.common.base.Function;
 import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
 import com.google.common.base.Supplier;
 import com.google.common.net.InetAddresses;