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 2016/01/17 02:15:20 UTC
[5/7] jclouds git commit: JCLOUDS-948: S3 Cache-Control support
JCLOUDS-948: S3 Cache-Control support
Deprecate older S3-specific Cache-Control mechanism.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/f292408a
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/f292408a
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/f292408a
Branch: refs/heads/master
Commit: f292408af4f9700fdde3f35c45a97cfb64793319
Parents: 82ad05e
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Jan 15 04:18:52 2016 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Jan 15 13:22:14 2016 -0800
----------------------------------------------------------------------
.../s3/binders/BindObjectMetadataToRequest.java | 4 ++--
.../s3/binders/BindS3ObjectMetadataToRequest.java | 6 ------
.../java/org/jclouds/s3/blobstore/S3BlobStore.java | 5 +++++
.../org/jclouds/s3/domain/MutableObjectMetadata.java | 3 +++
.../java/org/jclouds/s3/domain/ObjectMetadata.java | 3 +++
.../org/jclouds/s3/domain/ObjectMetadataBuilder.java | 4 +---
.../domain/internal/MutableObjectMetadataImpl.java | 10 ++++++----
.../org/jclouds/s3/options/CopyObjectOptions.java | 15 +++++++++++++++
.../binders/BindS3ObjectMetadataToRequestTest.java | 3 +--
9 files changed, 36 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f292408a/apis/s3/src/main/java/org/jclouds/s3/binders/BindObjectMetadataToRequest.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/binders/BindObjectMetadataToRequest.java b/apis/s3/src/main/java/org/jclouds/s3/binders/BindObjectMetadataToRequest.java
index 1f96b7a..84948e1 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/binders/BindObjectMetadataToRequest.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/binders/BindObjectMetadataToRequest.java
@@ -54,8 +54,8 @@ public class BindObjectMetadataToRequest implements Binder {
request = metadataPrefixer.bindToRequest(request, md.getUserMetadata());
Builder<String, String> headers = ImmutableMultimap.builder();
- if (md.getCacheControl() != null) {
- headers.put(HttpHeaders.CACHE_CONTROL, md.getCacheControl());
+ if (md.getContentMetadata().getCacheControl() != null) {
+ headers.put(HttpHeaders.CACHE_CONTROL, md.getContentMetadata().getCacheControl());
}
if (md.getContentMetadata().getContentDisposition() != null) {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f292408a/apis/s3/src/main/java/org/jclouds/s3/binders/BindS3ObjectMetadataToRequest.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/binders/BindS3ObjectMetadataToRequest.java b/apis/s3/src/main/java/org/jclouds/s3/binders/BindS3ObjectMetadataToRequest.java
index f35ff5c..d35a3e6 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/binders/BindS3ObjectMetadataToRequest.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/binders/BindS3ObjectMetadataToRequest.java
@@ -27,8 +27,6 @@ import org.jclouds.http.HttpRequest;
import org.jclouds.rest.Binder;
import org.jclouds.s3.domain.S3Object;
-import com.google.common.net.HttpHeaders;
-
@Singleton
public class BindS3ObjectMetadataToRequest implements Binder {
protected final BindMapToHeadersWithPrefix metadataPrefixer;
@@ -53,10 +51,6 @@ public class BindS3ObjectMetadataToRequest implements Binder {
request = metadataPrefixer.bindToRequest(request, s3Object.getMetadata().getUserMetadata());
- if (s3Object.getMetadata().getCacheControl() != null) {
- request = (R) request.toBuilder()
- .replaceHeader(HttpHeaders.CACHE_CONTROL, s3Object.getMetadata().getCacheControl()).build();
- }
return request;
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f292408a/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobStore.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobStore.java b/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobStore.java
index 4cb5ea2..fbb481c 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobStore.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobStore.java
@@ -278,6 +278,11 @@ public class S3BlobStore extends BaseBlobStore {
Optional<ContentMetadata> contentMetadata = options.getContentMetadata();
if (contentMetadata.isPresent()) {
+ String cacheControl = contentMetadata.get().getCacheControl();
+ if (cacheControl != null) {
+ s3Options.cacheControl(cacheControl);
+ }
+
String contentDisposition = contentMetadata.get().getContentDisposition();
if (contentDisposition != null) {
s3Options.contentDisposition(contentDisposition);
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f292408a/apis/s3/src/main/java/org/jclouds/s3/domain/MutableObjectMetadata.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/domain/MutableObjectMetadata.java b/apis/s3/src/main/java/org/jclouds/s3/domain/MutableObjectMetadata.java
index 5af1025..8ec9a71 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/domain/MutableObjectMetadata.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/domain/MutableObjectMetadata.java
@@ -59,7 +59,10 @@ public interface MutableObjectMetadata extends ObjectMetadata {
* Can be used to specify caching behavior along the request/reply chain.
*
* @link http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html?sec14.9.
+ *
+ * @deprecated call getContentMetadata().setCacheControl(String) instead
*/
+ @Deprecated
void setCacheControl(String cacheControl);
@Override
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f292408a/apis/s3/src/main/java/org/jclouds/s3/domain/ObjectMetadata.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/domain/ObjectMetadata.java b/apis/s3/src/main/java/org/jclouds/s3/domain/ObjectMetadata.java
index 10e56f5..d7dd394 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/domain/ObjectMetadata.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/domain/ObjectMetadata.java
@@ -63,7 +63,10 @@ public interface ObjectMetadata extends Comparable<ObjectMetadata> {
* Can be used to specify caching behavior along the request/reply chain.
*
* @link http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html?sec14.9.
+ *
+ * @deprecated call getContentMetadata().getCacheControl() instead
*/
+ @Deprecated
String getCacheControl();
Date getLastModified();
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f292408a/apis/s3/src/main/java/org/jclouds/s3/domain/ObjectMetadataBuilder.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/domain/ObjectMetadataBuilder.java b/apis/s3/src/main/java/org/jclouds/s3/domain/ObjectMetadataBuilder.java
index ba6c938..e142ca7 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/domain/ObjectMetadataBuilder.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/domain/ObjectMetadataBuilder.java
@@ -42,7 +42,6 @@ public class ObjectMetadataBuilder {
private String bucket;
private URI uri;
private StorageClass storageClass = StorageClass.STANDARD;
- private String cacheControl;
private Date lastModified;
private String eTag;
private CanonicalUser owner;
@@ -84,7 +83,7 @@ public class ObjectMetadataBuilder {
}
public ObjectMetadataBuilder cacheControl(String cacheControl) {
- this.cacheControl = cacheControl;
+ contentMetadataBuilder.cacheControl(cacheControl);
return this;
}
@@ -130,7 +129,6 @@ public class ObjectMetadataBuilder {
public ObjectMetadata build() {
MutableObjectMetadataImpl toReturn = new MutableObjectMetadataImpl();
toReturn.setContentMetadata(BaseMutableContentMetadata.fromContentMetadata(contentMetadataBuilder.build()));
- toReturn.setCacheControl(cacheControl);
toReturn.setKey(key);
toReturn.setBucket(bucket);
toReturn.setUri(uri);
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f292408a/apis/s3/src/main/java/org/jclouds/s3/domain/internal/MutableObjectMetadataImpl.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/domain/internal/MutableObjectMetadataImpl.java b/apis/s3/src/main/java/org/jclouds/s3/domain/internal/MutableObjectMetadataImpl.java
index e2692cb..6fc329f 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/domain/internal/MutableObjectMetadataImpl.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/domain/internal/MutableObjectMetadataImpl.java
@@ -108,11 +108,12 @@ public class MutableObjectMetadataImpl implements MutableObjectMetadata {
}
/**
- *{@inheritDoc}
+ * @deprecated call getContentMetadata().getCacheControl() instead
*/
+ @Deprecated
@Override
public String getCacheControl() {
- return cacheControl;
+ return contentMetadata.getCacheControl();
}
/**
@@ -148,11 +149,12 @@ public class MutableObjectMetadataImpl implements MutableObjectMetadata {
}
/**
- *{@inheritDoc}
+ * @deprecated call getContentMetadata().setCacheControl(String) instead
*/
+ @Deprecated
@Override
public void setCacheControl(String cacheControl) {
- this.cacheControl = cacheControl;
+ contentMetadata.setCacheControl(cacheControl);
}
/**
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f292408a/apis/s3/src/main/java/org/jclouds/s3/options/CopyObjectOptions.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/options/CopyObjectOptions.java b/apis/s3/src/main/java/org/jclouds/s3/options/CopyObjectOptions.java
index 2370bf5..374278d 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/options/CopyObjectOptions.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/options/CopyObjectOptions.java
@@ -72,6 +72,7 @@ import com.google.common.net.HttpHeaders;
public class CopyObjectOptions extends BaseHttpRequestOptions {
private static final DateService dateService = new SimpleDateFormatDateService();
public static final CopyObjectOptions NONE = new CopyObjectOptions();
+ private String cacheControl;
private String contentDisposition;
private String contentEncoding;
private String contentLanguage;
@@ -255,6 +256,10 @@ public class CopyObjectOptions extends BaseHttpRequestOptions {
returnVal.put(entry.getKey().replace(DEFAULT_AMAZON_HEADERTAG, headerTag), entry.getValue());
}
boolean replace = false;
+ if (cacheControl != null) {
+ returnVal.put(HttpHeaders.CACHE_CONTROL, cacheControl);
+ replace = true;
+ }
if (contentDisposition != null) {
returnVal.put(HttpHeaders.CONTENT_DISPOSITION, contentDisposition);
replace = true;
@@ -284,6 +289,11 @@ public class CopyObjectOptions extends BaseHttpRequestOptions {
return returnVal.build();
}
+ public CopyObjectOptions cacheControl(String cacheControl) {
+ this.cacheControl = checkNotNull(cacheControl, "cacheControl");
+ return this;
+ }
+
public CopyObjectOptions contentDisposition(String contentDisposition) {
this.contentDisposition = checkNotNull(contentDisposition, "contentDisposition");
return this;
@@ -354,6 +364,11 @@ public class CopyObjectOptions extends BaseHttpRequestOptions {
return options.ifSourceETagDoesntMatch(eTag);
}
+ public static CopyObjectOptions cacheControl(String cacheControl) {
+ CopyObjectOptions options = new CopyObjectOptions();
+ return options.cacheControl(cacheControl);
+ }
+
public static CopyObjectOptions contentDisposition(String contentDisposition) {
CopyObjectOptions options = new CopyObjectOptions();
return options.contentDisposition(contentDisposition);
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f292408a/apis/s3/src/test/java/org/jclouds/s3/binders/BindS3ObjectMetadataToRequestTest.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/test/java/org/jclouds/s3/binders/BindS3ObjectMetadataToRequestTest.java b/apis/s3/src/test/java/org/jclouds/s3/binders/BindS3ObjectMetadataToRequestTest.java
index b65c2b9..229f4a1 100644
--- a/apis/s3/src/test/java/org/jclouds/s3/binders/BindS3ObjectMetadataToRequestTest.java
+++ b/apis/s3/src/test/java/org/jclouds/s3/binders/BindS3ObjectMetadataToRequestTest.java
@@ -62,7 +62,6 @@ public class BindS3ObjectMetadataToRequestTest extends BaseS3ClientTest<S3Client
payload.getContentMetadata().setContentLength(5368709120l);
object.setPayload(payload);
object.getMetadata().setKey("foo");
- object.getMetadata().setCacheControl("no-cache");
object.getMetadata().setUserMetadata(ImmutableMap.of("foo", "bar"));
HttpRequest request = HttpRequest.builder().method("PUT").endpoint("http://localhost").build();
@@ -70,7 +69,7 @@ public class BindS3ObjectMetadataToRequestTest extends BaseS3ClientTest<S3Client
assertEquals(binder.bindToRequest(request, object), HttpRequest.builder().method("PUT").endpoint(
URI.create("http://localhost")).headers(
- ImmutableMultimap.of("Cache-Control", "no-cache", "x-amz-meta-foo", "bar")).build());
+ ImmutableMultimap.of("x-amz-meta-foo", "bar")).build());
}
@Test(expectedExceptions = IllegalArgumentException.class)