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();
}