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 2014/08/17 21:04:44 UTC

git commit: JCLOUDS-676: Fix reflection warnings / Clojure

Repository: jclouds
Updated Branches:
  refs/heads/master 82fbdf969 -> e5283df99


JCLOUDS-676: Fix reflection warnings / Clojure

JCLOUDS-676: Fix reflection warnings / Clojure

Also fixed a typo in a doc string


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

Branch: refs/heads/master
Commit: e5283df9953a45b675e2714ec7ef59b4255d78ce
Parents: 82fbdf9
Author: John Walker <jo...@gmail.com>
Authored: Sat Aug 16 15:22:31 2014 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sun Aug 17 12:03:30 2014 -0700

----------------------------------------------------------------------
 .../src/main/clojure/org/jclouds/blobstore2.clj | 56 ++++++++++----------
 1 file changed, 29 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/e5283df9/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 8b18636..ed3d977 100644
--- a/blobstore/src/main/clojure/org/jclouds/blobstore2.clj
+++ b/blobstore/src/main/clojure/org/jclouds/blobstore2.clj
@@ -45,7 +45,7 @@ See http://code.google.com/p/jclouds for details."
            [org.jclouds ContextBuilder]
            [org.jclouds.blobstore
             AsyncBlobStore domain.BlobBuilder BlobStore BlobStoreContext
-            domain.BlobMetadata domain.StorageMetadata
+            domain.BlobMetadata domain.StorageMetadata domain.PageSet
             domain.Blob domain.internal.BlobBuilderImpl options.PutOptions
             options.PutOptions$Builder
             options.CreateContainerOptions options.ListContainerOptions]
@@ -53,6 +53,7 @@ See http://code.google.com/p/jclouds for details."
            java.util.Arrays
            [java.security DigestOutputStream MessageDigest]
            com.google.common.collect.ImmutableSet
+           com.google.common.net.MediaType
            com.google.common.io.ByteSource))
 
 ;;
@@ -76,8 +77,8 @@ See http://code.google.com/p/jclouds for details."
   ByteSource
   (payload [bs] (Payloads/newByteSourcePayload bs)))
 
-;; something in clojure 1.3 (namespaces?) does not like a private type called byte-array-type, 
-;; so we refer to (class (make-array ...)) directly; and it only parses if it is its own block, 
+;; something in clojure 1.3 (namespaces?) does not like a private type called byte-array-type,
+;; so we refer to (class (make-array ...)) directly; and it only parses if it is its own block,
 ;; hence separating it from the above
 (extend-protocol PayloadSource
   (class (make-array Byte/TYPE 0))
@@ -89,16 +90,17 @@ Options for communication style
      :sync and :async.
 Options can also be specified for extension modules
      :log4j :enterprise :ning :apachehc :bouncycastle :joda :gae"
-  [#^String provider #^String provider-identity #^String provider-credential
+  [^String provider ^String provider-identity ^String provider-credential
    & options]
   (let [module-keys (set (keys module-lookup))
         ext-modules (filter #(module-keys %) options)
         opts (apply hash-map (filter #(not (module-keys %)) options))]
-    (let [context (.. (ContextBuilder/newBuilder provider)
+    (let [^BlobStoreContext
+          context (.. (ContextBuilder/newBuilder provider)
                       (credentials provider-identity provider-credential)
                       (modules (apply modules (concat ext-modules (opts :extensions))))
-                      (overrides (reduce #(do (.put %1 (name (first %2)) (second %2)) %1)
-                        (Properties.) (dissoc opts :extensions)))
+                      (overrides (reduce #(do (.put ^Properties %1 (name (first %2)) (second %2)) %1)
+                                         (Properties.) (dissoc opts :extensions)))
                       (buildView BlobStoreContext))]
       (if (some #(= :async %) options)
         (.getAsyncBlobStore context)
@@ -106,8 +108,8 @@ Options can also be specified for extension modules
 
 (defn blobstore-context
   "Returns a blobstore context from a blobstore."
-  [blobstore]
-  (.getContext blobstore))
+  [^BlobStore blobstore]
+  (.getContext ^BlobStore blobstore))
 
 (defn blob?
   [object]
@@ -124,14 +126,14 @@ Options can also be specified for extension modules
 
 (defn containers
   "List all containers in a blobstore."
-  [blobstore] (.list blobstore))
+  [^BlobStore blobstore] (.list ^BlobStore blobstore))
 
-(def #^{:private true} list-option-map
-     {:after-marker #(.afterMarker %1 %2)
-      :in-directory #(.inDirectory %1 %2)
-      :max-results #(.maxResults %1 %2)
-      :with-details #(when %2 (.withDetails %1))
-      :recursive #(when %2 (.recursive %1))})
+(def ^{:private true} list-option-map
+  {:after-marker #(.afterMarker ^ListContainerOptions %1 ^String %2)
+   :in-directory #(.inDirectory ^ListContainerOptions %1 %2)
+   :max-results #(.maxResults ^ListContainerOptions %1 ^Integer %2)
+   :with-details #(when %2 (.withDetails ^ListContainerOptions %1))
+   :recursive #(when %2 (.recursive ^ListContainerOptions %1))})
 
 (defn blobs
   "Returns a set of blobs in the given container, as directed by the
@@ -142,7 +144,7 @@ Options can also be specified for extension modules
      :max-results n
      :with-details true
      :recursive true"
-  [blobstore container-name & args]
+  [^BlobStore blobstore container-name & args]
   (let [options (apply hash-map args)
         list-options (reduce
                       (fn [lco [k v]]
@@ -153,19 +155,19 @@ Options can also be specified for extension modules
     (.list blobstore container-name list-options)))
 
 (defn- container-seq-chunk
-  [blobstore container prefix marker]
+  [^BlobStore blobstore container prefix marker]
   (apply blobs blobstore container
          (concat (when prefix
                    [:in-directory prefix])
                  (when (string? marker)
                    [:after-marker marker]))))
 
-(defn- container-seq-chunks [blobstore container prefix marker]
+(defn- container-seq-chunks [^BlobStore blobstore container prefix marker]
   (when marker ;; When getNextMarker returns null, there's no more.
     (let [chunk (container-seq-chunk blobstore container prefix marker)]
       (lazy-seq (cons chunk
                       (container-seq-chunks blobstore container prefix
-                                            (.getNextMarker chunk)))))))
+                                            (.getNextMarker ^PageSet chunk)))))))
 
 (defn- concat-elements
   "Make a lazy concatenation of the lazy sequences contained in coll.
@@ -177,9 +179,9 @@ Options can also be specified for extension modules
 
 (defn container-seq
   "Returns a lazy seq of all blobs in the given container."
-  ([blobstore container]
+  ([^BlobStore blobstore container]
      (container-seq blobstore container nil))
-  ([blobstore container prefix]
+  ([^BlobStore blobstore container prefix]
      ;; :start has no special meaning, it is just a non-null (null indicates
      ;; end), non-string (markers are strings).
      (concat-elements (container-seq-chunks blobstore container prefix
@@ -250,7 +252,7 @@ Options can also be specified for extension modules
   [^BlobStore blobstore container-name path]
   (.blobMetadata blobstore container-name path))
 
-(defn get-blob
+(defn ^Blob get-blob
   "Get blob from given path"
   [^BlobStore blobstore container-name path]
   (.getBlob blobstore container-name path))
@@ -272,14 +274,14 @@ Options can also be specified for extension modules
 
 (defn sign-delete
   "Get a signed http DELETE request for manipulating a blob in another
-   applicaiton, Ex. curl."
+  application, Ex. curl."
   [^BlobStore blobstore container-name name]
   (.signRemoveBlob (.. blobstore getContext getSigner) container-name name))
 
 (defn get-blob-stream
   "Get an inputstream from the blob at a given path"
   [^BlobStore blobstore container-name path]
-  (.getInput (.getPayload (get-blob blobstore container-name path))))
+  (.getInput ^Payload (.getPayload (get-blob blobstore container-name path))))
 
 (defn remove-blob
   "Remove blob from given path"
@@ -323,8 +325,8 @@ Options can also be specified for extension modules
   location-id uri last-modified)
 (define-accessors BlobMetadata "blob" content-type)
 
-(defn blob-etag [blob]
+(defn blob-etag [^Blob blob]
   (.getETag blob))
 
-(defn blob-md5 [blob]
+(defn blob-md5 [^Blob blob]
   (.getContentMD5 blob))