JCLOUDS-410 note that ByteArrayPayload needs to handle offsets.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/5511bad7 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/5511bad7 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/5511bad7 Branch: refs/heads/1.8.x Commit: 5511bad765b719f286bc011135afcbf19771baa3 Parents: 9105ae5 Author: Adrian Cole <[email protected]> Authored: Wed Oct 29 09:03:43 2014 -0700 Committer: Adrian Cole <[email protected]> Committed: Wed Oct 29 10:22:01 2014 -0700 ---------------------------------------------------------------------- .../org/jclouds/io/internal/BasePayloadSlicer.java | 15 ++++++--------- .../jclouds/azureblob/AzureBlobClientLiveTest.java | 8 ++++---- 2 files changed, 10 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/5511bad7/core/src/main/java/org/jclouds/io/internal/BasePayloadSlicer.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/jclouds/io/internal/BasePayloadSlicer.java b/core/src/main/java/org/jclouds/io/internal/BasePayloadSlicer.java index 198a252..ec26b8b 100644 --- a/core/src/main/java/org/jclouds/io/internal/BasePayloadSlicer.java +++ b/core/src/main/java/org/jclouds/io/internal/BasePayloadSlicer.java @@ -34,11 +34,9 @@ import javax.inject.Singleton; import org.jclouds.io.ByteStreams2; import org.jclouds.io.ContentMetadata; import org.jclouds.io.Payload; +import org.jclouds.io.Payloads; import org.jclouds.io.PayloadSlicer; import org.jclouds.io.payloads.BaseMutableContentMetadata; -import org.jclouds.io.payloads.ByteArrayPayload; -import org.jclouds.io.payloads.ByteSourcePayload; -import org.jclouds.io.payloads.InputStreamPayload; import com.google.common.base.Charsets; import com.google.common.base.Throwables; @@ -120,7 +118,7 @@ public class BasePayloadSlicer implements PayloadSlicer { Payload payload = null; if (content.length > 0) { - payload = new ByteArrayPayload(content); + payload = Payloads.newByteArrayPayload(content); ContentMetadata cm = metaData.toBuilder().contentLength((long)content.length).contentMD5((HashCode) null).build(); payload.setContentMetadata(BaseMutableContentMetadata.fromContentMetadata(cm)); } @@ -173,19 +171,18 @@ public class BasePayloadSlicer implements PayloadSlicer { } catch (IOException ioe) { throw Throwables.propagate(ioe); } - return new InputStreamPayload(ByteStreams.limit(content, length)); + return Payloads.newInputStreamPayload(ByteStreams.limit(content, length)); } protected Payload doSlice(ByteSource content, long offset, long length) { - return new ByteSourcePayload(content.slice(offset, length)); + return Payloads.newByteSourcePayload(content.slice(offset, length)); } protected Payload doSlice(byte[] content, long offset, long length) { - Payload returnVal; checkArgument(offset <= Integer.MAX_VALUE, "offset is too big for an array"); checkArgument(length <= Integer.MAX_VALUE, "length is too big for an array"); - returnVal = new ByteSourcePayload(ByteSource.wrap(content).slice(offset, length)); - return returnVal; + // TODO(adriancole): Make ByteArrayPayload carry offset, length as opposed to wrapping here. + return Payloads.newByteSourcePayload(ByteSource.wrap(content).slice(offset, length)); } protected Payload copyMetadataAndSetLength(Payload input, Payload returnVal, long length) { http://git-wip-us.apache.org/repos/asf/jclouds/blob/5511bad7/providers/azureblob/src/test/java/org/jclouds/azureblob/AzureBlobClientLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/azureblob/src/test/java/org/jclouds/azureblob/AzureBlobClientLiveTest.java b/providers/azureblob/src/test/java/org/jclouds/azureblob/AzureBlobClientLiveTest.java index 831eceb..1930116 100644 --- a/providers/azureblob/src/test/java/org/jclouds/azureblob/AzureBlobClientLiveTest.java +++ b/providers/azureblob/src/test/java/org/jclouds/azureblob/AzureBlobClientLiveTest.java @@ -44,7 +44,7 @@ import org.jclouds.blobstore.ContainerNotFoundException; import org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest; import org.jclouds.http.HttpResponseException; import org.jclouds.http.options.GetOptions; -import org.jclouds.io.payloads.ByteArrayPayload; +import org.jclouds.io.Payloads; import org.jclouds.util.Strings2; import org.jclouds.util.Throwables2; import org.testng.annotations.Test; @@ -358,9 +358,9 @@ public class AzureBlobClientLiveTest extends BaseBlobStoreIntegrationTest { String blockIdB = BaseEncoding.base64().encode((blockBlob + "-" + B).getBytes()); String blockIdC = BaseEncoding.base64().encode((blockBlob + "-" + C).getBytes()); getApi().createContainer(blockContainer); - getApi().putBlock(blockContainer, blockBlob, blockIdA, new ByteArrayPayload(A.getBytes())); - getApi().putBlock(blockContainer, blockBlob, blockIdB, new ByteArrayPayload(B.getBytes())); - getApi().putBlock(blockContainer, blockBlob, blockIdC, new ByteArrayPayload(C.getBytes())); + getApi().putBlock(blockContainer, blockBlob, blockIdA, Payloads.newByteArrayPayload(A.getBytes())); + getApi().putBlock(blockContainer, blockBlob, blockIdB, Payloads.newByteArrayPayload(B.getBytes())); + getApi().putBlock(blockContainer, blockBlob, blockIdC, Payloads.newByteArrayPayload(C.getBytes())); getApi().putBlockList(blockContainer, blockBlob, Arrays.asList(blockIdA, blockIdB, blockIdC)); ListBlobBlocksResponse blocks = getApi().getBlockList(blockContainer, blockBlob); assertEquals(3, blocks.getBlocks().size());
