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/10/03 02:35:09 UTC

git commit: Provide all headers to SwiftObject and Blob

Updated Branches:
  refs/heads/master 44021fc9e -> 06d65ce77


Provide all headers to SwiftObject and Blob

This commit provides parity with the existing Swift and all other
providers.


Project: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/commit/06d65ce7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/tree/06d65ce7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/diff/06d65ce7

Branch: refs/heads/master
Commit: 06d65ce7744446a73a4702cbecfdfbcea036e536
Parents: 44021fc
Author: Andrew Gaul <ga...@apache.org>
Authored: Tue Oct 1 21:44:16 2013 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Wed Oct 2 17:34:53 2013 -0700

----------------------------------------------------------------------
 .../blobstore/RegionScopedSwiftBlobStore.java   |  1 +
 .../openstack/swift/v1/domain/SwiftObject.java  | 21 +++++++++++++++++---
 .../v1/functions/ParseObjectFromResponse.java   |  1 +
 3 files changed, 20 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/06d65ce7/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
----------------------------------------------------------------------
diff --git a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
index eedfa27..5aa926f 100644
--- a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
+++ b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
@@ -215,6 +215,7 @@ public class RegionScopedSwiftBlobStore implements BlobStore {
       }
       Blob blob = new BlobImpl(toBlobMetadata(container).apply(object));
       blob.setPayload(object.payload());
+      blob.setAllHeaders(object.headers());
       return blob;
    }
 

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/06d65ce7/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/domain/SwiftObject.java
----------------------------------------------------------------------
diff --git a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/domain/SwiftObject.java b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/domain/SwiftObject.java
index 81f690c..47d8c34 100644
--- a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/domain/SwiftObject.java
+++ b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/domain/SwiftObject.java
@@ -32,6 +32,8 @@ import org.jclouds.openstack.swift.v1.features.ObjectApi;
 import com.google.common.base.Objects;
 import com.google.common.base.Objects.ToStringHelper;
 import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableMultimap;
+import com.google.common.collect.Multimap;
 
 /**
  * @see <a
@@ -44,15 +46,17 @@ public class SwiftObject implements Comparable<SwiftObject> {
    private final URI uri;
    private final String etag;
    private final Date lastModified;
+   private final Multimap<String, String> headers;
    private final Map<String, String> metadata;
    private final Payload payload;
 
-   protected SwiftObject(String name, URI uri, String etag, Date lastModified, Map<String, String> metadata,
-         Payload payload) {
+   protected SwiftObject(String name, URI uri, String etag, Date lastModified,
+         Multimap<String, String> headers, Map<String, String> metadata, Payload payload) {
       this.name = checkNotNull(name, "name");
       this.uri = checkNotNull(uri, "uri of %s", uri);
       this.etag = checkNotNull(etag, "etag of %s", name).replace("\"", "");
       this.lastModified = checkNotNull(lastModified, "lastModified of %s", name);
+      this.headers = headers == null ? ImmutableMultimap.<String, String> of() : checkNotNull(headers, "headers of %s", name);
       this.metadata = metadata == null ? ImmutableMap.<String, String> of() : metadata;
       this.payload = checkNotNull(payload, "payload of %s", name);
    }
@@ -81,6 +85,10 @@ public class SwiftObject implements Comparable<SwiftObject> {
       return lastModified;
    }
 
+   public Multimap<String, String> headers() {
+      return headers;
+   }
+
    /**
     * Empty except in {@link ObjectApi#head(String) GetObjectMetadata} or
     * {@link ObjectApi#get(String) GetObject} commands.
@@ -159,6 +167,7 @@ public class SwiftObject implements Comparable<SwiftObject> {
       protected String etag;
       protected Date lastModified;
       protected Payload payload;
+      protected Multimap<String, String> headers;
       protected Map<String, String> metadata = ImmutableMap.of();
 
       /**
@@ -201,6 +210,11 @@ public class SwiftObject implements Comparable<SwiftObject> {
          return this;
       }
 
+      public Builder headers(Multimap<String, String> headers) {
+         this.headers = headers;
+         return this;
+      }
+
       /**
        * Will lower-case all metadata keys due to a swift implementation
        * decision.
@@ -217,7 +231,7 @@ public class SwiftObject implements Comparable<SwiftObject> {
       }
 
       public SwiftObject build() {
-         return new SwiftObject(name, uri, etag, lastModified, metadata, payload);
+         return new SwiftObject(name, uri, etag, lastModified, headers, metadata, payload);
       }
 
       public Builder fromObject(SwiftObject from) {
@@ -225,6 +239,7 @@ public class SwiftObject implements Comparable<SwiftObject> {
                .uri(from.uri()) //
                .etag(from.etag()) //
                .lastModified(from.lastModified()) //
+               .headers(from.headers()) //
                .metadata(from.metadata()) //
                .payload(from.payload());
       }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/06d65ce7/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectFromResponse.java
----------------------------------------------------------------------
diff --git a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectFromResponse.java b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectFromResponse.java
index 34bf197..158aa6d 100644
--- a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectFromResponse.java
+++ b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectFromResponse.java
@@ -52,6 +52,7 @@ public class ParseObjectFromResponse implements Function<HttpResponse, SwiftObje
             .etag(from.getFirstHeaderOrNull(ETAG)) //
             .payload(from.getPayload()) //
             .lastModified(dates.rfc822DateParse(from.getFirstHeaderOrNull(LAST_MODIFIED))) //
+            .headers(from.getHeaders())
             .metadata(EntriesWithoutMetaPrefix.INSTANCE.apply(from.getHeaders())).build();
    }