Repository: jclouds Updated Branches: refs/heads/master e868675da -> c6d4e6645
JCLOUDS-402: Allow Guava MediaType Content-Type This promotes type-safety. Keep the String interface for unknown content types. Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/c6d4e664 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/c6d4e664 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/c6d4e664 Branch: refs/heads/master Commit: c6d4e6645c41a62f92a0aacc8d8a697bf8a34585 Parents: e868675 Author: Andrew Gaul <[email protected]> Authored: Fri Jun 21 16:50:26 2013 -0700 Committer: Andrew Gaul <[email protected]> Committed: Wed May 28 11:45:00 2014 -0700 ---------------------------------------------------------------------- blobstore/src/main/clojure/org/jclouds/blobstore2.clj | 4 +++- .../main/java/org/jclouds/blobstore/domain/BlobBuilder.java | 3 +++ .../org/jclouds/blobstore/domain/internal/BlobBuilderImpl.java | 6 ++++++ blobstore/src/test/clojure/org/jclouds/blobstore2_test.clj | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/c6d4e664/blobstore/src/main/clojure/org/jclouds/blobstore2.clj ---------------------------------------------------------------------- diff --git a/blobstore/src/main/clojure/org/jclouds/blobstore2.clj b/blobstore/src/main/clojure/org/jclouds/blobstore2.clj index 9199e65..99efd55 100644 --- a/blobstore/src/main/clojure/org/jclouds/blobstore2.clj +++ b/blobstore/src/main/clojure/org/jclouds/blobstore2.clj @@ -303,13 +303,15 @@ Options can also be specified for extension modules blob-builder (if content-length ;; Special case, arg is prim. (.contentLength blob-builder content-length) blob-builder) + blob-builder (if content-type + (.contentType blob-builder content-type) + blob-builder) blob-builder (if calculate-md5 ;; Only do calculateMD5 OR contentMD5. (.calculateMD5 blob-builder) (if content-md5 (.contentMD5 blob-builder content-md5) blob-builder))] (doto blob-builder - (.contentType content-type) (.contentDisposition content-disposition) (.contentEncoding content-encoding) (.contentLanguage content-language) http://git-wip-us.apache.org/repos/asf/jclouds/blob/c6d4e664/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 f0b052c..d3425c6 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/domain/BlobBuilder.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/domain/BlobBuilder.java @@ -26,6 +26,7 @@ import org.jclouds.blobstore.domain.internal.BlobBuilderImpl; import org.jclouds.io.Payload; import com.google.common.io.ByteSource; +import com.google.common.net.MediaType; import com.google.inject.ImplementedBy; /** @@ -119,6 +120,8 @@ public interface BlobBuilder { PayloadBlobBuilder contentMD5(byte[] md5); + PayloadBlobBuilder contentType(MediaType contentType); + PayloadBlobBuilder contentType(String contentType); PayloadBlobBuilder contentDisposition(String contentDisposition); http://git-wip-us.apache.org/repos/asf/jclouds/blob/c6d4e664/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 2d51cdb..b73a658 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 @@ -36,6 +36,7 @@ import org.jclouds.io.payloads.PhantomPayload; import com.google.common.collect.Maps; import com.google.common.io.ByteSource; +import com.google.common.net.MediaType; /** * @author Adrian Cole @@ -206,6 +207,11 @@ public class BlobBuilderImpl implements BlobBuilder { } @Override + public PayloadBlobBuilder contentType(MediaType contentType) { + return contentType(checkNotNull(contentType, "contentType").toString()); + } + + @Override public PayloadBlobBuilder contentType(String contentType) { payload.getContentMetadata().setContentType(contentType); return this; http://git-wip-us.apache.org/repos/asf/jclouds/blob/c6d4e664/blobstore/src/test/clojure/org/jclouds/blobstore2_test.clj ---------------------------------------------------------------------- diff --git a/blobstore/src/test/clojure/org/jclouds/blobstore2_test.clj b/blobstore/src/test/clojure/org/jclouds/blobstore2_test.clj index a981ed8..dd4e515 100644 --- a/blobstore/src/test/clojure/org/jclouds/blobstore2_test.clj +++ b/blobstore/src/test/clojure/org/jclouds/blobstore2_test.clj @@ -123,7 +123,7 @@ (is (= "http://localhost/container/path" (str (.getEndpoint request)))) (is (= "PUT" (.getMethod request))) (is (= "10" (first (.get (.getHeaders request) "Content-Length")))) - (is (nil? + (is (= "application/unknown" (first (.get (.getHeaders request) "Content-Type")))))) (deftest sign-put-with-headers-test
