JCLOUDS-298. clarify naming conventions
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/d7b6e87e Tree: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/tree/d7b6e87e Diff: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/diff/d7b6e87e Branch: refs/heads/master Commit: d7b6e87e8cf4deea47ca2d4eed42131088e843e7 Parents: 6fbc193 Author: Adrian Cole <[email protected]> Authored: Sun Sep 29 12:27:55 2013 -0700 Committer: Adrian Cole <[email protected]> Committed: Sun Sep 29 13:36:20 2013 -0700 ---------------------------------------------------------------------- .../openstack/swift/v1/domain/SwiftObject.java | 32 +++++++++++--------- .../openstack/swift/v1/features/ObjectApi.java | 7 +++-- .../v1/functions/ParseObjectFromResponse.java | 2 +- .../functions/ParseObjectListFromResponse.java | 2 +- .../swift/v1/features/BulkApiLiveTest.java | 2 +- .../features/CreatePublicContainerLiveTest.java | 2 +- .../swift/v1/features/ObjectApiLiveTest.java | 4 +-- .../swift/v1/features/ObjectApiMockTest.java | 20 ++++++------ 8 files changed, 38 insertions(+), 33 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/d7b6e87e/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 56ceba4..e94fde4 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 @@ -42,16 +42,16 @@ public class SwiftObject implements Comparable<SwiftObject> { private final String name; private final URI uri; - private final String hash; + private final String etag; private final Date lastModified; private final Map<String, String> metadata; private final Payload payload; - protected SwiftObject(String name, URI uri, String hash, Date lastModified, Map<String, String> metadata, + protected SwiftObject(String name, URI uri, String etag, Date lastModified, Map<String, String> metadata, Payload payload) { this.name = checkNotNull(name, "name"); this.uri = checkNotNull(uri, "uri of %s", uri); - this.hash = checkNotNull(hash, "hash of %s", name); + this.etag = checkNotNull(etag, "etag of %s", name); this.lastModified = checkNotNull(lastModified, "lastModified of %s", name); this.metadata = metadata == null ? ImmutableMap.<String, String> of() : metadata; this.payload = checkNotNull(payload, "payload of %s", name); @@ -69,8 +69,12 @@ public class SwiftObject implements Comparable<SwiftObject> { return uri; } - public String hash() { - return hash; + /** + * Corresponds to the {@code ETag} header of the response, and is usually the + * MD5 checksum of the object + */ + public String etag() { + return etag; } public Date lastModified() { @@ -107,7 +111,7 @@ public class SwiftObject implements Comparable<SwiftObject> { final SwiftObject that = SwiftObject.class.cast(object); return equal(name(), that.name()) // && equal(uri(), that.uri()) // - && equal(hash(), that.hash()); + && equal(etag(), that.etag()); } else { return false; } @@ -115,7 +119,7 @@ public class SwiftObject implements Comparable<SwiftObject> { @Override public int hashCode() { - return Objects.hashCode(name(), uri(), hash()); + return Objects.hashCode(name(), uri(), etag()); } @Override @@ -127,7 +131,7 @@ public class SwiftObject implements Comparable<SwiftObject> { return toStringHelper("") // .add("name", name()) // .add("uri", uri()) // - .add("hash", hash()) // + .add("etag", etag()) // .add("lastModified", lastModified()) // .add("metadata", metadata()); } @@ -152,7 +156,7 @@ public class SwiftObject implements Comparable<SwiftObject> { public static class Builder { protected String name; protected URI uri; - protected String hash; + protected String etag; protected Date lastModified; protected Payload payload; protected Map<String, String> metadata = ImmutableMap.of(); @@ -174,10 +178,10 @@ public class SwiftObject implements Comparable<SwiftObject> { } /** - * @see SwiftObject#hash() + * @see SwiftObject#etag() */ - public Builder hash(String hash) { - this.hash = hash; + public Builder etag(String etag) { + this.etag = etag; return this; } @@ -213,13 +217,13 @@ public class SwiftObject implements Comparable<SwiftObject> { } public SwiftObject build() { - return new SwiftObject(name, uri, hash, lastModified, metadata, payload); + return new SwiftObject(name, uri, etag, lastModified, metadata, payload); } public Builder fromObject(SwiftObject from) { return name(from.name()) // .uri(from.uri()) // - .hash(from.hash()) // + .etag(from.etag()) // .lastModified(from.lastModified()) // .metadata(from.metadata()) // .payload(from.payload()); http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/d7b6e87e/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java index aadba9f..ebcc41b 100644 --- a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java +++ b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java @@ -90,13 +90,13 @@ public interface ObjectApi { * href="http://docs.openstack.org/api/openstack-object-storage/1.0/content/create-update-object.html"> * Create or Update Object API</a> * - * @return {@link SwiftObject#hash()} of the object. + * @return {@link SwiftObject#etag()} of the object. */ @Named("CreateOrUpdateObject") @PUT @ResponseParser(ETagHeader.class) @Path("/{objectName}") - String createOrUpdate(@PathParam("objectName") String objectName, @BinderParam(SetPayload.class) Payload payload, + String replace(@PathParam("objectName") String objectName, @BinderParam(SetPayload.class) Payload payload, @BinderParam(BindObjectMetadataToHeaders.class) Map<String, String> metadata); static class SetPayload implements Binder { @@ -132,7 +132,8 @@ public interface ObjectApi { * * @param objectName * corresponds to {@link SwiftObject#name()}. - * @param options options to control the download. + * @param options + * options to control the download. * * @return the Object or null, if not found. * http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/d7b6e87e/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 36247e1..34bf197 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 @@ -49,7 +49,7 @@ public class ParseObjectFromResponse implements Function<HttpResponse, SwiftObje return SwiftObject.builder() // .uri(URI.create(uri)) // .name(name) // - .hash(from.getFirstHeaderOrNull(ETAG)) // + .etag(from.getFirstHeaderOrNull(ETAG)) // .payload(from.getPayload()) // .lastModified(dates.rfc822DateParse(from.getFirstHeaderOrNull(LAST_MODIFIED))) // .metadata(EntriesWithoutMetaPrefix.INSTANCE.apply(from.getHeaders())).build(); http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/d7b6e87e/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectListFromResponse.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectListFromResponse.java b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectListFromResponse.java index feb00c8..589e192 100644 --- a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectListFromResponse.java +++ b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectListFromResponse.java @@ -71,7 +71,7 @@ public class ParseObjectListFromResponse implements Function<HttpResponse, Fluen return SwiftObject.builder() // .uri(URI.create(String.format("%s%s", containerUri, input.name))) // .name(input.name) // - .hash(input.hash) // + .etag(input.hash) // .payload(payload(input.bytes, input.content_type)) // .lastModified(input.last_modified).build(); } http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/d7b6e87e/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiLiveTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiLiveTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiLiveTest.java index e2b17ec..26d2045 100644 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiLiveTest.java +++ b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiLiveTest.java @@ -71,7 +71,7 @@ public class BulkApiLiveTest extends BaseSwiftApiLiveTest { assertEquals(api.containerApiInRegion(regionId).get(containerName).objectCount(), OBJECT_COUNT); // repeat the command - api.bulkApiInRegion(regionId).extractArchive(containerName, Payloads.newPayload(tarGz), "tar.gz"); + extractResponse = api.bulkApiInRegion(regionId).extractArchive(containerName, Payloads.newPayload(tarGz), "tar.gz"); assertEquals(extractResponse.created(), OBJECT_COUNT); assertTrue(extractResponse.errors().isEmpty()); } http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/d7b6e87e/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/CreatePublicContainerLiveTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/CreatePublicContainerLiveTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/CreatePublicContainerLiveTest.java index 3eca7ed..83f586e 100644 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/CreatePublicContainerLiveTest.java +++ b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/CreatePublicContainerLiveTest.java @@ -45,7 +45,7 @@ public class CreatePublicContainerLiveTest extends BaseSwiftApiLiveTest { api.containerApiInRegion(regionId).get(containerName); ObjectApi objectApi = api.objectApiInRegionForContainer(regionId, containerName); - objectApi.createOrUpdate(name, newStringPayload("swifty"), ImmutableMap.<String, String> of()); + objectApi.replace(name, newStringPayload("swifty"), ImmutableMap.<String, String> of()); InputStream publicStream = objectApi.get(name, new GetOptions()).uri().toURL().openStream(); http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/d7b6e87e/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java index a90f3c8..8dad19a 100644 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java +++ b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java @@ -67,7 +67,7 @@ public class ObjectApiLiveTest extends BaseSwiftApiLiveTest { static void checkObject(SwiftObject object) { assertNotNull(object.name()); assertNotNull(object.uri()); - assertNotNull(object.hash()); + assertNotNull(object.etag()); assertTrue(object.lastModified().getTime() <= System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5)); assertNotNull(object.payload().getContentMetadata().getContentLength()); assertNotNull(object.payload().getContentMetadata().getContentType()); @@ -166,7 +166,7 @@ public class ObjectApiLiveTest extends BaseSwiftApiLiveTest { super.setup(); for (String regionId : api.configuredRegions()) { api.containerApiInRegion(regionId).createIfAbsent(containerName, new CreateContainerOptions()); - api.objectApiInRegionForContainer(regionId, containerName).createOrUpdate(name, newStringPayload("swifty"), + api.objectApiInRegionForContainer(regionId, containerName).replace(name, newStringPayload("swifty"), ImmutableMap.<String, String> of()); } } http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/d7b6e87e/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java ---------------------------------------------------------------------- diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java index 30d3f4d..789ec00 100644 --- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java +++ b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java @@ -68,13 +68,13 @@ public class ObjectApiMockTest extends BaseSwiftMockTest { SwiftObject.builder() // .name("test_obj_1") // .uri(URI.create(baseUri + "/test_obj_1")) // - .hash("4281c348eaf83e70ddce0e07221c3d28") // + .etag("4281c348eaf83e70ddce0e07221c3d28") // .payload(payload(14, "application/octet-stream")) // .lastModified(dates.iso8601DateParse("2009-02-03T05:26:32.612278")).build(), // SwiftObject.builder() // .name("test_obj_2") // .uri(URI.create(baseUri + "/test_obj_2")) // - .hash("b039efe731ad111bc1b0ef221c3849d0") // + .etag("b039efe731ad111bc1b0ef221c3849d0") // .payload(payload(64l, "application/octet-stream")) // .lastModified(dates.iso8601DateParse("2009-02-03T05:26:32.612278")).build()); } @@ -119,7 +119,7 @@ public class ObjectApiMockTest extends BaseSwiftMockTest { } } - public void createOrUpdate() throws Exception { + public void replace() throws Exception { MockWebServer server = mockSwiftServer(); server.enqueue(new MockResponse().setBody(access)); server.enqueue(new MockResponse() // @@ -129,17 +129,17 @@ public class ObjectApiMockTest extends BaseSwiftMockTest { try { SwiftApi api = swiftApi(server.getUrl("/").toString()); assertEquals( - api.objectApiInRegionForContainer("DFW", "myContainer").createOrUpdate("myObject", + api.objectApiInRegionForContainer("DFW", "myContainer").replace("myObject", newStringPayload("swifty"), metadata), "d9f5eb4bba4e2f2f046e54611bc8196b"); assertEquals(server.getRequestCount(), 2); assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1"); - RecordedRequest createOrUpdate = server.takeRequest(); - assertEquals(createOrUpdate.getRequestLine(), + RecordedRequest replace = server.takeRequest(); + assertEquals(replace.getRequestLine(), "PUT /v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject HTTP/1.1"); - assertEquals(new String(createOrUpdate.getBody()), "swifty"); + assertEquals(new String(replace.getBody()), "swifty"); for (Entry<String, String> entry : metadata.entrySet()) { - assertEquals(createOrUpdate.getHeader("x-object-meta-" + entry.getKey().toLowerCase()), entry.getValue()); + assertEquals(replace.getHeader("x-object-meta-" + entry.getKey().toLowerCase()), entry.getValue()); } } finally { server.shutdown(); @@ -159,7 +159,7 @@ public class ObjectApiMockTest extends BaseSwiftMockTest { SwiftApi api = swiftApi(server.getUrl("/").toString()); SwiftObject object = api.objectApiInRegionForContainer("DFW", "myContainer").head("myObject"); assertEquals(object.name(), "myObject"); - assertEquals(object.hash(), "8a964ee2a5e88be344f36c22562a6486"); + assertEquals(object.etag(), "8a964ee2a5e88be344f36c22562a6486"); assertEquals(object.lastModified(), dates.rfc822DateParse("Fri, 12 Jun 2010 13:40:18 GMT")); for (Entry<String, String> entry : object.metadata().entrySet()) { assertEquals(object.metadata().get(entry.getKey().toLowerCase()), entry.getValue()); @@ -189,7 +189,7 @@ public class ObjectApiMockTest extends BaseSwiftMockTest { SwiftApi api = swiftApi(server.getUrl("/").toString()); SwiftObject object = api.objectApiInRegionForContainer("DFW", "myContainer").get("myObject", tail(1)); assertEquals(object.name(), "myObject"); - assertEquals(object.hash(), "8a964ee2a5e88be344f36c22562a6486"); + assertEquals(object.etag(), "8a964ee2a5e88be344f36c22562a6486"); assertEquals(object.lastModified(), dates.rfc822DateParse("Fri, 12 Jun 2010 13:40:18 GMT")); for (Entry<String, String> entry : object.metadata().entrySet()) { assertEquals(object.metadata().get(entry.getKey().toLowerCase()), entry.getValue());
