You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/10/30 17:41:10 UTC
[1/4] Use AutoValue to reduce bulk of Google Storage value types.
Repository: jclouds-labs-google
Updated Branches:
refs/heads/master cca44c2e6 -> b8670b16e
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclInsertTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclInsertTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclInsertTest.java
index 0e7c509..b38ce42 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclInsertTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclInsertTest.java
@@ -16,13 +16,11 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
-
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
public class BucketAclInsertTest extends BaseGoogleCloudStorageParseTest<BucketAccessControls> {
@@ -38,9 +36,7 @@ public class BucketAclInsertTest extends BaseGoogleCloudStorageParseTest<BucketA
return BucketAccessControls
.builder()
.id("jcloudtestbucket/allAuthenticatedUsers")
- .selfLink(
- URI.create("https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allAuthenticatedUsers"))
- .bucket("jcloudtestbucket").entity("allAuthenticatedUsers").role(Role.WRITER).etag("CAQ=").build();
+ .bucket("jcloudtestbucket").entity("allAuthenticatedUsers").role(Role.WRITER).build();
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclListTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclListTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclListTest.java
index 6428825..077eb46 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclListTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclListTest.java
@@ -16,34 +16,30 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
+import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
-import org.jclouds.googlecloudstorage.domain.ListBucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam.Team;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
+import org.jclouds.googlecloudstorage.domain.ProjectTeam;
+import org.jclouds.googlecloudstorage.domain.ProjectTeam.Team;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
+import org.jclouds.rest.annotations.SelectJson;
-import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.ImmutableList;
-public class BucketAclListTest extends BaseGoogleCloudStorageParseTest<ListBucketAccessControls> {
+public class BucketAclListTest extends BaseGoogleCloudStorageParseTest<List<BucketAccessControls>> {
private BucketAccessControls item_1 = BucketAccessControls.builder().id("jcloudtestbucket/allUsers")
- .selfLink(URI.create("https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers"))
- .bucket("jcloudtestbucket").entity("allUsers").role(Role.READER).etag("CAc=").build();
+ .bucket("jcloudtestbucket").entity("allUsers").role(Role.READER).build();
private BucketAccessControls item_2 = BucketAccessControls
.builder()
.id("jcloudtestbucket/project-owners-1082289308625")
- .selfLink(
- URI.create("https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/project-owners-1082289308625"))
- .projectTeam(ProjectTeam.builder().projectNumber("1082289308625").team(Team.OWNERS).build())
- .bucket("jcloudtestbucket").entity("project-owners-1082289308625").role(Role.OWNER).etag("CAc=").build();
+ .projectTeam(ProjectTeam.create("1082289308625", Team.OWNERS))
+ .bucket("jcloudtestbucket").entity("project-owners-1082289308625").role(Role.OWNER).build();
@Override
public String resource() {
@@ -52,8 +48,8 @@ public class BucketAclListTest extends BaseGoogleCloudStorageParseTest<ListBucke
@Override
@Consumes(MediaType.APPLICATION_JSON)
- public ListBucketAccessControls expected() {
- return ListBucketAccessControls.builder().kind(Kind.BUCKET_ACCESS_CONTROLS)
- .items(ImmutableSet.of(item_1, item_2)).build();
+ @SelectJson("items")
+ public List<BucketAccessControls> expected() {
+ return ImmutableList.of(item_1, item_2);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclUpdateTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclUpdateTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclUpdateTest.java
index d111801..bfba5e1 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclUpdateTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclUpdateTest.java
@@ -16,13 +16,11 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
-
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
public class BucketAclUpdateTest extends BaseGoogleCloudStorageParseTest<BucketAccessControls> {
@@ -36,7 +34,6 @@ public class BucketAclUpdateTest extends BaseGoogleCloudStorageParseTest<BucketA
@Consumes(MediaType.APPLICATION_JSON)
public BucketAccessControls expected() {
return BucketAccessControls.builder().id("jcloudtestbucket/allUsers")
- .selfLink(URI.create("https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers"))
- .bucket("jcloudtestbucket").entity("allUsers").role(Role.OWNER).etag("CAg=").build();
+ .bucket("jcloudtestbucket").entity("allUsers").role(Role.OWNER).build();
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketUpdateTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketUpdateTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketUpdateTest.java
index 49c09fd..da57c19 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketUpdateTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketUpdateTest.java
@@ -16,8 +16,6 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
-
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
@@ -25,7 +23,7 @@ import org.jclouds.date.internal.SimpleDateFormatDateService;
import org.jclouds.googlecloudstorage.domain.Bucket;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass;
-import org.jclouds.googlecloudstorage.domain.internal.Owner;
+import org.jclouds.googlecloudstorage.domain.Owner;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
public class BucketUpdateTest extends BaseGoogleCloudStorageParseTest<Bucket> {
@@ -38,12 +36,22 @@ public class BucketUpdateTest extends BaseGoogleCloudStorageParseTest<Bucket> {
@Override
@Consumes(MediaType.APPLICATION_JSON)
public Bucket expected() {
- return Bucket.builder().id("bhashbucket")
- .selfLink(URI.create("https://www.googleapis.com/storage/v1/b/bhashbucket")).name("bhashbucket")
- .projectNumber(Long.valueOf("1082289308625"))
- .timeCreated(new SimpleDateFormatDateService().iso8601DateParse("2014-06-02T19:19:41.112z"))
- .metageneration(Long.valueOf(204)).location(Location.US).storageClass(StorageClass.STANDARD)
- .etag("CMwB").owner(Owner.builder().entity("project-owners-1082289308625").build()).build();
-
+ return Bucket.create(
+ "bhashbucket", // id
+ "bhashbucket", // name
+ 1082289308625l, // projectNumber
+ new SimpleDateFormatDateService().iso8601DateParse("2014-06-02T19:19:41.112z"), // timeCreated
+ 204l, // metageneration
+ null, // acl
+ null, // defaultObjectAcl
+ Owner.create("project-owners-1082289308625", null), // owner
+ Location.US, // location
+ null, // website
+ null, // logging
+ null, // versioning
+ null, // cors
+ null, // lifeCycle
+ StorageClass.STANDARD // storageClass
+ );
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclGetTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclGetTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclGetTest.java
index 150374d..0183d71 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclGetTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclGetTest.java
@@ -20,12 +20,12 @@ import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam.Team;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
+import org.jclouds.googlecloudstorage.domain.ProjectTeam;
+import org.jclouds.googlecloudstorage.domain.ProjectTeam.Team;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
-public class DefaultObjectAclGetTest extends BaseGoogleCloudStorageParseTest<DefaultObjectAccessControls> {
+public class DefaultObjectAclGetTest extends BaseGoogleCloudStorageParseTest<ObjectAccessControls> {
@Override
public String resource() {
@@ -34,9 +34,9 @@ public class DefaultObjectAclGetTest extends BaseGoogleCloudStorageParseTest<Def
@Override
@Consumes(MediaType.APPLICATION_JSON)
- public DefaultObjectAccessControls expected() {
- return DefaultObjectAccessControls.builder().entity("project-owners-1082289308625").role(ObjectRole.OWNER)
- .etag("CAk=").projectTeam(ProjectTeam.builder().projectNumber("1082289308625").team(Team.OWNERS).build())
+ public ObjectAccessControls expected() {
+ return ObjectAccessControls.builder().entity("project-owners-1082289308625").role(ObjectRole.OWNER)
+ .projectTeam(ProjectTeam.create("1082289308625", Team.OWNERS))
.build();
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclInsertTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclInsertTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclInsertTest.java
index e14ab16..c449c42 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclInsertTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclInsertTest.java
@@ -19,11 +19,11 @@ package org.jclouds.googlecloudstorage.parse;
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
-public class DefaultObjectAclInsertTest extends BaseGoogleCloudStorageParseTest<DefaultObjectAccessControls> {
+public class DefaultObjectAclInsertTest extends BaseGoogleCloudStorageParseTest<ObjectAccessControls> {
@Override
public String resource() {
@@ -32,8 +32,7 @@ public class DefaultObjectAclInsertTest extends BaseGoogleCloudStorageParseTest<
@Override
@Consumes(MediaType.APPLICATION_JSON)
- public DefaultObjectAccessControls expected() {
- return DefaultObjectAccessControls.builder().entity("allUsers").role(ObjectRole.OWNER).etag("CAo=").build();
-
+ public ObjectAccessControls expected() {
+ return ObjectAccessControls.builder().entity("allUsers").role(ObjectRole.OWNER).build();
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclListTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclListTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclListTest.java
index ee7115c..afc66ae 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclListTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/DefaultObjectAclListTest.java
@@ -16,22 +16,24 @@
*/
package org.jclouds.googlecloudstorage.parse;
+import java.util.Arrays;
+import java.util.List;
+
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.ListDefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam.Team;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
+import org.jclouds.googlecloudstorage.domain.ProjectTeam;
+import org.jclouds.googlecloudstorage.domain.ProjectTeam.Team;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
+import org.jclouds.rest.annotations.SelectJson;
-public class DefaultObjectAclListTest extends BaseGoogleCloudStorageParseTest<ListDefaultObjectAccessControls> {
+public class DefaultObjectAclListTest extends BaseGoogleCloudStorageParseTest<List<ObjectAccessControls>> {
- private DefaultObjectAccessControls item_1 = DefaultObjectAccessControls.builder()
+ private ObjectAccessControls item_1 = ObjectAccessControls.builder()
.entity("project-owners-1082289308625").role(ObjectRole.OWNER)
- .projectTeam(ProjectTeam.builder().projectNumber("1082289308625").team(Team.OWNERS).build()).etag("CAk=")
+ .projectTeam(ProjectTeam.create("1082289308625", Team.OWNERS))
.build();
@Override
@@ -41,7 +43,8 @@ public class DefaultObjectAclListTest extends BaseGoogleCloudStorageParseTest<Li
@Override
@Consumes(MediaType.APPLICATION_JSON)
- public ListDefaultObjectAccessControls expected() {
- return ListDefaultObjectAccessControls.builder().kind(Kind.OBJECT_ACCESS_CONTROLS).addItems(item_1).build();
+ @SelectJson("items")
+ public List<ObjectAccessControls> expected() {
+ return Arrays.asList(item_1);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
index e6ffa05..14d473b 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
@@ -16,23 +16,23 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
+import java.util.Arrays;
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
import org.jclouds.date.internal.SimpleDateFormatDateService;
+import org.jclouds.googlecloudstorage.domain.Bucket;
+import org.jclouds.googlecloudstorage.domain.Bucket.Cors;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.Bucket;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass;
-import org.jclouds.googlecloudstorage.domain.internal.BucketCors;
-import org.jclouds.googlecloudstorage.domain.internal.Owner;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam.Team;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
+import org.jclouds.googlecloudstorage.domain.Owner;
+import org.jclouds.googlecloudstorage.domain.ProjectTeam;
+import org.jclouds.googlecloudstorage.domain.ProjectTeam.Team;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
public class FullBucketGetTest extends BaseGoogleCloudStorageParseTest<Bucket> {
@@ -40,17 +40,16 @@ public class FullBucketGetTest extends BaseGoogleCloudStorageParseTest<Bucket> {
private final BucketAccessControls acl1 = BucketAccessControls
.builder()
.id("jcloudtestbucket3500/project-owners-1082289308625")
- .selfLink(
- URI.create("https://www.googleapis.com/storage/v1/b/jcloudtestbucket3500/acl/project-owners-1082289308625"))
.bucket("jcloudtestbucket3500").entity("project-owners-1082289308625").role(Role.OWNER)
- .projectTeam(ProjectTeam.builder().projectNumber("1082289308625").team(Team.OWNERS).build()).etag("CAo=")
+ .projectTeam(ProjectTeam.create("1082289308625", Team.OWNERS))
.build();
- private final DefaultObjectAccessControls defObjectAcl = DefaultObjectAccessControls.builder()
- .entity("project-owners-1082289308625").role(ObjectRole.OWNER).etag("CAo=").build();
+ private final ObjectAccessControls defObjectAcl = ObjectAccessControls.builder()
+ .entity("project-owners-1082289308625").role(ObjectRole.OWNER).build();
- private final BucketCors bucketCors = BucketCors.builder().addOrigin("http://example.appspot.com").addMethod("GET")
- .addMethod("HEAD").addResponseHeader("x-meta-goog-custom").maxAgeSeconds(10).build();
+ private final Cors bucketCors = Cors
+ .create(Arrays.asList("http://example.appspot.com"), Arrays.asList("GET", "HEAD"),
+ Arrays.asList("x-meta-goog-custom"), 10);
@Override
public String resource() {
@@ -60,13 +59,22 @@ public class FullBucketGetTest extends BaseGoogleCloudStorageParseTest<Bucket> {
@Override
@Consumes(MediaType.APPLICATION_JSON)
public Bucket expected() {
- return Bucket.builder().id("jcloudtestbucket3500")
- .selfLink(URI.create("https://www.googleapis.com/storage/v1/b/jcloudtestbucket3500"))
- .name("jcloudtestbucket3500").projectNumber(Long.valueOf("1082289308625"))
- .timeCreated(new SimpleDateFormatDateService().iso8601DateParse("2014-06-19T14:03:22.345Z"))
- .metageneration(Long.valueOf(10)).owner(Owner.builder().entity("project-owners-1082289308625").build())
- .location(Location.US).storageClass(StorageClass.STANDARD).etag("CAo=").addAcl(acl1)
- .addDefaultObjectAcl(defObjectAcl).addCORS(bucketCors).build();
+ return Bucket.create(
+ "jcloudtestbucket3500", // id
+ "jcloudtestbucket3500", // name
+ 1082289308625l, // projectNumber
+ new SimpleDateFormatDateService().iso8601DateParse("2014-06-19T14:03:22.345Z"), // timeCreated
+ 10l, // metageneration
+ Arrays.asList(acl1), // acl
+ Arrays.asList(defObjectAcl), // defaultObjectAcl
+ Owner.create("project-owners-1082289308625", null), // owner
+ Location.US, // location
+ null, // website
+ null, // logging
+ null, // versioning
+ Arrays.asList(bucketCors), // cors
+ null, // lifeCycle
+ StorageClass.STANDARD // storageClass
+ );
}
-
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketListTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketListTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketListTest.java
index 220fd5b..af160fd 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketListTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketListTest.java
@@ -16,7 +16,7 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
+import java.util.Arrays;
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
@@ -26,28 +26,35 @@ import org.jclouds.googlecloudstorage.domain.Bucket;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass;
import org.jclouds.googlecloudstorage.domain.ListPage;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
-import org.jclouds.googlecloudstorage.domain.internal.Owner;
+import org.jclouds.googlecloudstorage.domain.Owner;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
public class NoAclBucketListTest extends BaseGoogleCloudStorageParseTest<ListPage<Bucket>> {
- private Bucket item1 = Bucket.builder().id("bhashbucket")
- .selfLink(URI.create("https://content.googleapis.com/storage/v1/b/bhashbucket")).name("bhashbucket")
- .projectNumber(Long.valueOf("1082289308625"))
- .timeCreated(new SimpleDateFormatDateService().iso8601DateParse("2014-06-02T19:19:41.112z"))
- .metageneration(Long.valueOf(99)).owner(Owner.builder().entity("project-owners-1082289308625").build())
- .location(Location.US).storageClass(StorageClass.STANDARD).etag("CGM=").build();
+ private Bucket item1 = Bucket.create("bhashbucket", // id
+ "bhashbucket", // name
+ 1082289308625l, // projectNumber
+ new SimpleDateFormatDateService().iso8601DateParse("2014-06-02T19:19:41.112z"), // timeCreated
+ 99l, // metageneration
+ null, // acl
+ null, // defaultObjectAcl
+ Owner.create("project-owners-1082289308625", null), // owner
+ Location.US, // location
+ null, // website
+ null, // logging
+ null, // versioning
+ null, // cors
+ null, // lifeCycle
+ StorageClass.STANDARD // storageClass
+ );
@Override
public String resource() {
return "/no_acl_bucket_list.json";
}
- @Override
- @Consumes(MediaType.APPLICATION_JSON)
+ @Override @Consumes(MediaType.APPLICATION_JSON)
public ListPage<Bucket> expected() {
- return ListPage.<Bucket> builder().kind(Kind.BUCKETS).nextPageToken("bhashbucket").addItem(item1).build();
+ return ListPage.create(Arrays.asList(item1), "bhashbucket", null);
}
-
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketTest.java
index 184af67..a2f4091 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketTest.java
@@ -16,8 +16,6 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
-
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
@@ -25,7 +23,7 @@ import org.jclouds.date.internal.SimpleDateFormatDateService;
import org.jclouds.googlecloudstorage.domain.Bucket;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass;
-import org.jclouds.googlecloudstorage.domain.internal.Owner;
+import org.jclouds.googlecloudstorage.domain.Owner;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
public class NoAclBucketTest extends BaseGoogleCloudStorageParseTest<Bucket> {
@@ -38,12 +36,22 @@ public class NoAclBucketTest extends BaseGoogleCloudStorageParseTest<Bucket> {
@Override
@Consumes(MediaType.APPLICATION_JSON)
public Bucket expected() {
- return Bucket.builder().id("bhashbucket")
- .selfLink(URI.create("https://content.googleapis.com/storage/v1/b/bhashbucket")).name("bhashbucket")
- .projectNumber(Long.valueOf("1082289308625"))
- .timeCreated(new SimpleDateFormatDateService().iso8601DateParse("2014-06-02T19:19:41.112z"))
- .metageneration(Long.valueOf(87)).owner(Owner.builder().entity("project-owners-1082289308625").build())
- .location(Location.US).storageClass(StorageClass.STANDARD).etag("CFc=").build();
+ return Bucket.create(
+ "bhashbucket", // id
+ "bhashbucket", // name
+ 1082289308625l, // projectNumber
+ new SimpleDateFormatDateService().iso8601DateParse("2014-06-02T19:19:41.112z"), // timeCreated
+ 87l, // metageneration
+ null, // acl
+ null, // defaultObjectAcl
+ Owner.create("project-owners-1082289308625", null), // owner
+ Location.US, // location
+ null, // website
+ null, // logging
+ null, // versioning
+ null, // cors
+ null, // lifeCycle
+ StorageClass.STANDARD // storageClass
+ );
}
-
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclGetTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclGetTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclGetTest.java
index ff34b35..d50c284 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclGetTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclGetTest.java
@@ -16,15 +16,13 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
-
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam.Team;
+import org.jclouds.googlecloudstorage.domain.ProjectTeam;
+import org.jclouds.googlecloudstorage.domain.ProjectTeam.Team;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
public class ObjectAclGetTest extends BaseGoogleCloudStorageParseTest<ObjectAccessControls> {
@@ -44,10 +42,7 @@ public class ObjectAclGetTest extends BaseGoogleCloudStorageParseTest<ObjectAcce
.generation(1394121608485000L)
.entity("project-owners-1082289308625")
.role(ObjectRole.OWNER)
- .etag("CIix/dmj/rwCEAE=")
- .projectTeam(ProjectTeam.builder().projectNumber("1082289308625").team(Team.OWNERS).build())
- .selfLink(
- URI.create("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/project-owners-1082289308625"))
+ .projectTeam(ProjectTeam.create("1082289308625", Team.OWNERS))
.id("jcloudtestbucket/foo.txt/1394121608485000/project-owners-1082289308625").build();
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclInsertTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclInsertTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclInsertTest.java
index 9fc938c..595687b 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclInsertTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclInsertTest.java
@@ -16,8 +16,6 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
-
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
@@ -37,13 +35,10 @@ public class ObjectAclInsertTest extends BaseGoogleCloudStorageParseTest<ObjectA
public ObjectAccessControls expected() {
return ObjectAccessControls
.builder()
- .selfLink(
- URI.create("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d"))
.bucket("jcloudtestbucket").object("foo.txt")
.entity("user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d")
.entityId("00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d").role(ObjectRole.OWNER)
- .etag("CIix/dmj/rwCEAE=").build();
-
+ .build();
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclListTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclListTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclListTest.java
index 5e95b5b..7e7c4ed 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclListTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclListTest.java
@@ -16,28 +16,26 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
+import java.util.Arrays;
+import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.ListObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
+import org.jclouds.rest.annotations.SelectJson;
-public class ObjectAclListTest extends BaseGoogleCloudStorageParseTest<ListObjectAccessControls> {
+public class ObjectAclListTest extends BaseGoogleCloudStorageParseTest<List<ObjectAccessControls>> {
private ObjectAccessControls item1 = ObjectAccessControls
.builder()
.id("jcloudtestbucket/foo.txt/1394121608485000/user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d")
- .selfLink(
- URI.create("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d"))
.bucket("jcloudtestbucket").object("foo.txt").generation(Long.valueOf("1394121608485000"))
.entity("user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d")
.entityId("00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d").role(ObjectRole.OWNER)
- .etag("CIix/dmj/rwCEAE=").build();
+ .build();
@Override
public String resource() {
@@ -46,8 +44,8 @@ public class ObjectAclListTest extends BaseGoogleCloudStorageParseTest<ListObjec
@Override
@Consumes(MediaType.APPLICATION_JSON)
- public ListObjectAccessControls expected() {
- return ListObjectAccessControls.builder().kind(Kind.OBJECT_ACCESS_CONTROLS).addItems(item1).build();
+ @SelectJson("items")
+ public List<ObjectAccessControls> expected() {
+ return Arrays.asList(item1);
}
-
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclUpdateTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclUpdateTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclUpdateTest.java
index e48b2ee..5b5cd60 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclUpdateTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclUpdateTest.java
@@ -16,8 +16,6 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
-
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
@@ -36,9 +34,7 @@ public class ObjectAclUpdateTest extends BaseGoogleCloudStorageParseTest<ObjectA
@Consumes(MediaType.APPLICATION_JSON)
public ObjectAccessControls expected() {
return ObjectAccessControls.builder()
- .selfLink(URI.create("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/allUsers"))
- .bucket("jcloudtestbucket").object("foo.txt").entity("allUsers").role(ObjectRole.OWNER)
- .etag("CIix/dmj/rwCEAQ=").build();
+ .bucket("jcloudtestbucket").object("foo.txt").entity("allUsers").role(ObjectRole.OWNER).build();
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/oauth/pom.xml
----------------------------------------------------------------------
diff --git a/oauth/pom.xml b/oauth/pom.xml
index 7c22dcb..a13d15b 100644
--- a/oauth/pom.xml
+++ b/oauth/pom.xml
@@ -51,7 +51,6 @@
<dependency>
<groupId>com.google.auto.value</groupId>
<artifactId>auto-value</artifactId>
- <version>1.0-rc2</version>
<scope>provided</scope>
</dependency>
<dependency>
[4/4] git commit: Use AutoValue to reduce bulk of Google Storage
value types.
Posted by ad...@apache.org.
Use AutoValue to reduce bulk of Google Storage value types.
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/commit/b8670b16
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/tree/b8670b16
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/diff/b8670b16
Branch: refs/heads/master
Commit: b8670b16e3793fb17255381faee6608d694c387a
Parents: cca44c2
Author: Adrian Cole <ac...@twitter.com>
Authored: Tue Oct 28 22:10:34 2014 -0700
Committer: Adrian Cole <ac...@twitter.com>
Committed: Thu Oct 30 09:40:44 2014 -0700
----------------------------------------------------------------------
google-cloud-storage/pom.xml | 7 +-
.../GoogleCloudStorageApiMetadata.java | 3 +
.../binders/MultipartUploadBinder.java | 6 +-
.../blobstore/GCSBlobStore.java | 48 +--
.../functions/BlobMetadataToObjectTemplate.java | 7 +-
...ListContainerOptionsToListObjectOptions.java | 5 +-
.../functions/BucketToStorageMetadata.java | 10 +-
.../functions/ObjectListToStorageMetadata.java | 14 +-
.../functions/ObjectToBlobMetadata.java | 57 ++-
.../SequentialMultipartUploadStrategy.java | 13 +-
.../config/GoogleCloudStorageParserModule.java | 16 +-
.../googlecloudstorage/domain/Bucket.java | 321 +++++----------
.../domain/BucketAccessControls.java | 118 ++----
.../domain/DefaultObjectAccessControls.java | 180 ---------
.../domain/DomainResourceReferences.java | 4 -
.../googlecloudstorage/domain/DomainUtils.java | 38 --
.../googlecloudstorage/domain/GCSObject.java | 392 +++----------------
.../domain/ListBucketAccessControls.java | 112 ------
.../domain/ListDefaultObjectAccessControls.java | 112 ------
.../domain/ListObjectAccessControls.java | 112 ------
.../googlecloudstorage/domain/ListPage.java | 129 +-----
.../domain/ObjectAccessControls.java | 152 ++-----
.../googlecloudstorage/domain/Owner.java | 34 ++
.../googlecloudstorage/domain/ProjectTeam.java | 55 +++
.../googlecloudstorage/domain/Resource.java | 169 --------
.../domain/ResumableUpload.java | 112 +-----
.../domain/internal/Action.java | 90 -----
.../domain/internal/BucketCors.java | 147 -------
.../domain/internal/BucketLifeCycle.java | 102 -----
.../domain/internal/Condition.java | 150 -------
.../domain/internal/Logging.java | 102 -----
.../domain/internal/Owner.java | 99 -----
.../domain/internal/ProjectTeam.java | 116 ------
.../domain/internal/Rule.java | 110 ------
.../domain/internal/Versioning.java | 94 -----
.../domain/internal/Website.java | 102 -----
.../templates/BucketAccessControlsTemplate.java | 48 +--
.../domain/templates/BucketTemplate.java | 99 ++---
.../domain/templates/ComposeObjectTemplate.java | 59 +--
.../DefaultObjectAccessControlsTemplate.java | 65 ---
.../templates/ObjectAccessControlsTemplate.java | 46 +--
.../domain/templates/ObjectTemplate.java | 91 ++---
.../features/BucketAccessControlsApi.java | 7 +-
.../DefaultObjectAccessControlsApi.java | 51 +--
.../features/ObjectAccessControlsApi.java | 23 +-
.../internal/NullSafeCopies.java | 39 ++
.../parser/ParseToResumableUpload.java | 11 +-
.../services/org.jclouds.apis.ApiMetadata | 18 -
.../BucketAccessControlsApiExpectTest.java | 10 +-
.../BucketAccessControlsApiLiveTest.java | 29 +-
.../features/BucketApiExpectTest.java | 2 +-
.../features/BucketApiLiveTest.java | 81 ++--
...efaultObjectAccessControlsApiExpectTest.java | 16 +-
.../DefaultObjectAccessControlsApiLiveTest.java | 45 +--
.../ObjectAccessControlsApiExpectTest.java | 21 +-
.../features/ObjectApiLiveTest.java | 168 ++++----
.../features/ResumableUploadApiLiveTest.java | 47 +--
.../parse/BucketAclGetTest.java | 6 +-
.../parse/BucketAclInsertTest.java | 8 +-
.../parse/BucketAclListTest.java | 30 +-
.../parse/BucketAclUpdateTest.java | 7 +-
.../parse/BucketUpdateTest.java | 28 +-
.../parse/DefaultObjectAclGetTest.java | 14 +-
.../parse/DefaultObjectAclInsertTest.java | 9 +-
.../parse/DefaultObjectAclListTest.java | 23 +-
.../parse/FullBucketGetTest.java | 54 +--
.../parse/NoAclBucketListTest.java | 33 +-
.../parse/NoAclBucketTest.java | 28 +-
.../parse/ObjectAclGetTest.java | 11 +-
.../parse/ObjectAclInsertTest.java | 7 +-
.../parse/ObjectAclListTest.java | 18 +-
.../parse/ObjectAclUpdateTest.java | 6 +-
oauth/pom.xml | 1 -
73 files changed, 922 insertions(+), 3675 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/pom.xml
----------------------------------------------------------------------
diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml
index 84351be..7d9fb39 100644
--- a/google-cloud-storage/pom.xml
+++ b/google-cloud-storage/pom.xml
@@ -60,6 +60,11 @@
<version>${jclouds.version}</version>
</dependency>
<dependency>
+ <groupId>com.google.auto.value</groupId>
+ <artifactId>auto-value</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-blobstore</artifactId>
<version>${jclouds.version}</version>
@@ -136,4 +141,4 @@
</build>
</profile>
</profiles>
-</project>
\ No newline at end of file
+</project>
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java
index 67c380f..4cf6a49 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java
@@ -27,6 +27,7 @@ import static org.jclouds.reflect.Reflection2.typeToken;
import java.net.URI;
import java.util.Properties;
+import org.jclouds.apis.ApiMetadata;
import org.jclouds.blobstore.BlobStoreContext;
import org.jclouds.googlecloudstorage.blobstore.config.GCSBlobStoreContextModule;
import org.jclouds.googlecloudstorage.config.GoogleCloudStorageHttpApiModule;
@@ -35,9 +36,11 @@ import org.jclouds.oauth.v2.config.OAuthAuthenticationModule;
import org.jclouds.oauth.v2.config.OAuthModule;
import org.jclouds.rest.internal.BaseHttpApiMetadata;
+import com.google.auto.service.AutoService;
import com.google.common.collect.ImmutableSet;
import com.google.inject.Module;
+@AutoService(ApiMetadata.class)
public class GoogleCloudStorageApiMetadata extends BaseHttpApiMetadata<GoogleCloudStorageApi> {
@Override
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/MultipartUploadBinder.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/MultipartUploadBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/MultipartUploadBinder.java
index f8f1451..dfd4f7e 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/MultipartUploadBinder.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/MultipartUploadBinder.java
@@ -41,15 +41,15 @@ public class MultipartUploadBinder implements MapBinder {
ObjectTemplate template = (ObjectTemplate) postParams.get("template");
Payload payload = (Payload) postParams.get("payload");
- String contentType = checkNotNull(template.getContentType(), "contentType");
- Long length = checkNotNull(template.getSize(), "contentLength");
+ String contentType = checkNotNull(template.cacheControl(), "contentType");
+ Long length = checkNotNull(template.size(), "contentLength");
StringPayload jsonPayload = Payloads.newStringPayload(new Gson().toJson(template));
payload.getContentMetadata().setContentLength(length);
Part jsonPart = Part.create("Metadata", jsonPayload, new Part.PartOptions().contentType(APPLICATION_JSON));
- Part mediaPart = Part.create(template.getName(), payload, new Part.PartOptions().contentType(contentType));
+ Part mediaPart = Part.create(template.name(), payload, new Part.PartOptions().contentType(contentType));
MultipartForm compPayload = new MultipartForm(BOUNDARY_HEADER, jsonPart, mediaPart);
request.setPayload(compPayload);
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GCSBlobStore.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GCSBlobStore.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GCSBlobStore.java
index e0d433c..c388857 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GCSBlobStore.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GCSBlobStore.java
@@ -17,6 +17,7 @@
package org.jclouds.googlecloudstorage.blobstore;
import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.io.BaseEncoding.base64;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
@@ -27,9 +28,10 @@ import javax.inject.Singleton;
import org.jclouds.blobstore.BlobStoreContext;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.blobstore.domain.BlobMetadata;
+import org.jclouds.blobstore.domain.MutableBlobMetadata;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
-import org.jclouds.blobstore.domain.internal.BlobBuilderImpl;
+import org.jclouds.blobstore.domain.internal.BlobImpl;
import org.jclouds.blobstore.domain.internal.PageSetImpl;
import org.jclouds.blobstore.internal.BaseBlobStore;
import org.jclouds.blobstore.options.CreateContainerOptions;
@@ -52,11 +54,11 @@ import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole
import org.jclouds.googlecloudstorage.domain.GCSObject;
import org.jclouds.googlecloudstorage.domain.ListPage;
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
-import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate;
+import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
import org.jclouds.googlecloudstorage.options.ListObjectOptions;
import org.jclouds.http.HttpResponseException;
-import org.jclouds.http.internal.PayloadEnclosingImpl;
+import org.jclouds.io.Payload;
import com.google.common.base.Charsets;
import com.google.common.base.Function;
@@ -137,8 +139,8 @@ public class GCSBlobStore extends BaseBlobStore {
Bucket bucket = api.getBucketApi().createBucket(projectId.get(), template);
if (options.isPublicRead()) {
try {
- DefaultObjectAccessControlsTemplate doAclTemplate = new DefaultObjectAccessControlsTemplate().entity(
- "allUsers").role(ObjectRole.READER);
+ ObjectAccessControlsTemplate doAclTemplate = ObjectAccessControlsTemplate
+ .create("allUsers", ObjectRole.READER);
api.getDefaultObjectAccessControlsApi().createDefaultObjectAccessControls(container, doAclTemplate);
} catch (HttpResponseException e) {
// If DefaultObjectAccessControls operation fail, Reverse create operation the operation.
@@ -196,9 +198,9 @@ public class GCSBlobStore extends BaseBlobStore {
ObjectTemplate template = blobMetadataToObjectTemplate.apply(blob.getMetadata());
if (md5 != null) {
- template.md5Hash(md5);
+ template.md5Hash(base64().encode(md5.asBytes()));
}
- return api.getObjectApi().multipartUpload(container, template, blob.getPayload()).getEtag();
+ return api.getObjectApi().multipartUpload(container, template, blob.getPayload()).etag();
}
@Override
@@ -217,24 +219,16 @@ public class GCSBlobStore extends BaseBlobStore {
@Override
public Blob getBlob(String container, String name, org.jclouds.blobstore.options.GetOptions options) {
- PayloadEnclosingImpl impl = api.getObjectApi().download(container, name);
-
GCSObject gcsObject = api.getObjectApi().getObject(container, name);
if (gcsObject == null) {
return null;
}
- Blob blob = new BlobBuilderImpl().payload(impl.getPayload()).payload(impl.getPayload())
- .contentType(gcsObject.getContentType()).contentDisposition(gcsObject.getContentDisposition())
- .contentEncoding(gcsObject.getContentEncoding()).contentLanguage(gcsObject.getContentLanguage())
- .contentLength(gcsObject.getSize()).contentMD5(gcsObject.getMd5HashCode()).name(gcsObject.getName())
- .userMetadata(gcsObject.getAllMetadata()).build();
- blob.getMetadata().setContainer(container);
- blob.getMetadata().setLastModified(gcsObject.getUpdated());
- blob.getMetadata().setETag(gcsObject.getEtag());
- blob.getMetadata().setPublicUri(gcsObject.getMediaLink());
- blob.getMetadata().setUserMetadata(gcsObject.getAllMetadata());
- blob.getMetadata().setUri(gcsObject.getSelfLink());
- blob.getMetadata().setId(gcsObject.getId());
+ MutableBlobMetadata metadata = objectToBlobMetadata.apply(gcsObject);
+ Blob blob = new BlobImpl(metadata);
+ // TODO: Does getObject not get the payload?!
+ Payload payload = api.getObjectApi().download(container, name).getPayload();
+ payload.setContentMetadata(metadata.getContentMetadata()); // Doing this first retains it on setPayload.
+ blob.setPayload(payload);
return blob;
}
@@ -255,19 +249,9 @@ public class GCSBlobStore extends BaseBlobStore {
if (list == null) {
return api.getBucketApi().deleteBucket(container);
}
- if (!list.iterator().hasNext() && list.getPrefixes().isEmpty())
+ if (!list.iterator().hasNext() && list.prefixes().isEmpty())
return api.getBucketApi().deleteBucket(container);
return false;
}
-
- public Set<String> listPrefixes(String container, ListContainerOptions options) {
- ListObjectOptions gcsOptions = listContainerOptionsToListObjectOptions.apply(options);
- Set<String> prefixes = api.getObjectApi().listObjects(container, gcsOptions).getPrefixes();
- return prefixes;
- }
-
- public Set<String> listPrefixes(String container) {
- return listPrefixes(container, ListContainerOptions.NONE);
- }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobMetadataToObjectTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobMetadataToObjectTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobMetadataToObjectTemplate.java
index d604f7c..e40ce49 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobMetadataToObjectTemplate.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobMetadataToObjectTemplate.java
@@ -16,9 +16,9 @@
*/
package org.jclouds.googlecloudstorage.blobstore.functions;
-import java.util.Map;
+import static com.google.common.io.BaseEncoding.base64;
-import javax.inject.Singleton;
+import java.util.Map;
import org.jclouds.blobstore.domain.BlobMetadata;
import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
@@ -27,7 +27,6 @@ import org.jclouds.io.ContentMetadata;
import com.google.common.base.Function;
import com.google.common.hash.HashCode;
-@Singleton
public class BlobMetadataToObjectTemplate implements Function<BlobMetadata, ObjectTemplate> {
public ObjectTemplate apply(BlobMetadata from) {
@@ -50,7 +49,7 @@ public class BlobMetadataToObjectTemplate implements Function<BlobMetadata, Obje
.contentEncoding(contentEncoding).contentLanguage(contentLanguage)
.contentDisposition(contentDisposition).name(name).customMetadata(userMeta);
if (md5 != null) {
- template.md5Hash(md5);
+ template.md5Hash(base64().encode(md5.asBytes()));
}
return template;
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobStoreListContainerOptionsToListObjectOptions.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobStoreListContainerOptionsToListObjectOptions.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobStoreListContainerOptionsToListObjectOptions.java
index d4f8ef1..581e9ce 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobStoreListContainerOptionsToListObjectOptions.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobStoreListContainerOptionsToListObjectOptions.java
@@ -16,14 +16,13 @@
*/
package org.jclouds.googlecloudstorage.blobstore.functions;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import org.jclouds.blobstore.options.ListContainerOptions;
import org.jclouds.googlecloudstorage.options.ListObjectOptions;
import com.google.common.base.Function;
-import com.google.inject.Singleton;
-import static com.google.common.base.Preconditions.checkNotNull;
-@Singleton
public class BlobStoreListContainerOptionsToListObjectOptions implements
Function<ListContainerOptions, ListObjectOptions> {
public ListObjectOptions apply(ListContainerOptions from) {
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BucketToStorageMetadata.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BucketToStorageMetadata.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BucketToStorageMetadata.java
index e402c6b..f96462a 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BucketToStorageMetadata.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BucketToStorageMetadata.java
@@ -16,6 +16,8 @@
*/
package org.jclouds.googlecloudstorage.blobstore.functions;
+import javax.inject.Inject;
+
import org.jclouds.blobstore.domain.MutableStorageMetadata;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.domain.StorageType;
@@ -25,21 +27,17 @@ import org.jclouds.googlecloudstorage.domain.Bucket;
import com.google.common.base.Function;
import com.google.common.base.Supplier;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-@Singleton
public class BucketToStorageMetadata implements Function<Bucket, StorageMetadata> {
private Supplier<Location> defaultLocation;
- @Inject
- BucketToStorageMetadata(Supplier<Location> defaultLocation) {
+ @Inject BucketToStorageMetadata(Supplier<Location> defaultLocation) {
this.defaultLocation = defaultLocation;
}
public StorageMetadata apply(Bucket from) {
MutableStorageMetadata to = new MutableStorageMetadataImpl();
- to.setName(from.getName());
+ to.setName(from.name());
to.setLocation(defaultLocation.get());
to.setType(StorageType.CONTAINER);
return to;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectListToStorageMetadata.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectListToStorageMetadata.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectListToStorageMetadata.java
index 341e44e..a5c6f73 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectListToStorageMetadata.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectListToStorageMetadata.java
@@ -17,6 +17,9 @@
package org.jclouds.googlecloudstorage.blobstore.functions;
import java.util.Map;
+
+import javax.inject.Inject;
+
import org.jclouds.blobstore.domain.BlobMetadata;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
@@ -25,26 +28,21 @@ import org.jclouds.blobstore.domain.internal.PageSetImpl;
import org.jclouds.blobstore.domain.internal.StorageMetadataImpl;
import org.jclouds.googlecloudstorage.domain.GCSObject;
import org.jclouds.googlecloudstorage.domain.ListPage;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
import com.google.common.base.Function;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-@Singleton
public class ObjectListToStorageMetadata implements Function<ListPage<GCSObject>, PageSet<? extends StorageMetadata>> {
private final ObjectToBlobMetadata object2blobMd;
- @Inject
- public ObjectListToStorageMetadata(ObjectToBlobMetadata object2blobMd) {
+ @Inject public ObjectListToStorageMetadata(ObjectToBlobMetadata object2blobMd) {
this.object2blobMd = object2blobMd;
}
public PageSet<? extends StorageMetadata> apply(ListPage<GCSObject> from) {
if (from == null) {
- from = ListPage.<GCSObject> builder().kind(Kind.OBJECTS).build();
+ from = ListPage.create(null, null, null);
}
return new PageSetImpl<StorageMetadata>(Iterables.transform(Iterables.transform(from, object2blobMd),
@@ -59,7 +57,7 @@ public class ObjectListToStorageMetadata implements Function<ListPage<GCSObject>
}
return input;
}
- }), from.getNextPageToken());
+ }), from.nextPageToken());
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectToBlobMetadata.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectToBlobMetadata.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectToBlobMetadata.java
index ced893a..8515b3f 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectToBlobMetadata.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectToBlobMetadata.java
@@ -16,56 +16,45 @@
*/
package org.jclouds.googlecloudstorage.blobstore.functions;
-import java.util.Map;
-
import javax.inject.Inject;
-import javax.inject.Singleton;
import org.jclouds.blobstore.domain.MutableBlobMetadata;
import org.jclouds.blobstore.domain.StorageType;
import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl;
import org.jclouds.blobstore.strategy.IfDirectoryReturnNameStrategy;
import org.jclouds.googlecloudstorage.domain.GCSObject;
+import org.jclouds.javax.annotation.Nullable;
+
import com.google.common.base.Function;
-import com.google.common.collect.ImmutableMap;
+import com.google.common.hash.HashCode;
+import com.google.common.io.BaseEncoding;
-@Singleton
public class ObjectToBlobMetadata implements Function<GCSObject, MutableBlobMetadata> {
private final IfDirectoryReturnNameStrategy ifDirectoryReturnName;
- @Inject
- public ObjectToBlobMetadata(IfDirectoryReturnNameStrategy ifDirectoryReturnName) {
+ @Inject public ObjectToBlobMetadata(IfDirectoryReturnNameStrategy ifDirectoryReturnName) {
this.ifDirectoryReturnName = ifDirectoryReturnName;
}
public MutableBlobMetadata apply(GCSObject from) {
- if (from == null)
+ if (from == null) {
return null;
+ }
MutableBlobMetadata to = new MutableBlobMetadataImpl();
-
- if (from.getMd5HashCode() != null)
- to.getContentMetadata().setContentMD5(from.getMd5HashCode());
- if (from.getContentType() != null)
- to.getContentMetadata().setContentType(from.getContentType());
- if (from.getContentDisposition() != null)
- to.getContentMetadata().setContentDisposition(from.getContentDisposition());
- if (from.getContentEncoding() != null)
- to.getContentMetadata().setContentEncoding(from.getContentEncoding());
- if (from.getContentLanguage() != null)
- to.getContentMetadata().setContentLanguage(from.getContentLanguage());
- if (from.getSize() != null)
- to.getContentMetadata().setContentLength(from.getSize());
- if (from.getUpdated() != null)
- to.setLastModified(from.getUpdated());
- to.setContainer(from.getBucket());
- Map<String, String> userMeta = from.getAllMetadata() == null ? ImmutableMap.<String, String> of() : from
- .getAllMetadata();
- to.setUserMetadata(userMeta);
- to.setETag(from.getEtag());
- to.setName(from.getName());
- to.setUri(from.getSelfLink());
- to.setId(from.getId());
- to.setPublicUri(from.getMediaLink());
+ to.getContentMetadata().setContentMD5(toHashCode(from.md5Hash()));
+ to.getContentMetadata().setContentType(from.contentType());
+ to.getContentMetadata().setContentDisposition(from.contentDisposition());
+ to.getContentMetadata().setContentEncoding(from.contentEncoding());
+ to.getContentMetadata().setContentLanguage(from.contentLanguage());
+ to.getContentMetadata().setContentLength(from.size());
+ to.setLastModified(from.updated());
+ to.setContainer(from.bucket());
+ to.setUserMetadata(from.metadata());
+ to.setETag(from.etag());
+ to.setName(from.name());
+ to.setUri(from.selfLink());
+ to.setId(from.id());
+ to.setPublicUri(from.mediaLink());
String directoryName = ifDirectoryReturnName.execute(to);
if (directoryName != null) {
@@ -76,4 +65,8 @@ public class ObjectToBlobMetadata implements Function<GCSObject, MutableBlobMeta
}
return to;
}
+
+ private static HashCode toHashCode(@Nullable String hashCode) {
+ return hashCode == null ? null : HashCode.fromBytes(BaseEncoding.base64().decode(hashCode));
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java
index fb9d049..c244f5c 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java
@@ -18,7 +18,7 @@ package org.jclouds.googlecloudstorage.blobstore.strategy.internal;
import static com.google.common.base.Preconditions.checkNotNull;
-import java.util.Set;
+import java.util.List;
import javax.annotation.Resource;
import javax.inject.Named;
@@ -36,7 +36,7 @@ import org.jclouds.io.Payload;
import org.jclouds.io.PayloadSlicer;
import org.jclouds.logging.Logger;
-import com.google.common.collect.Sets;
+import com.google.common.collect.Lists;
import com.google.inject.Inject;
public class SequentialMultipartUploadStrategy extends MultipartUploadStrategy {
@@ -68,9 +68,8 @@ public class SequentialMultipartUploadStrategy extends MultipartUploadStrategy {
public String execute(String container, Blob blob) {
ObjectTemplate destination = blob2ObjectTemplate.apply(blob.getMetadata());
- ComposeObjectTemplate template = new ComposeObjectTemplate().destination(destination);
- Set<GCSObject> sourceList = Sets.newLinkedHashSet();
+ List<GCSObject> sourceList = Lists.newArrayList();
String key = blob.getMetadata().getName();
Payload payload = blob.getPayload();
@@ -95,12 +94,12 @@ public class SequentialMultipartUploadStrategy extends MultipartUploadStrategy {
blob2ObjectTemplate.apply(blobPart.getMetadata()), blobPart.getPayload());
sourceList.add(object);
}
- template = template.sourceObjects(sourceList);
- return api.getObjectApi().composeObjects(container, key, template).getEtag();
+ ComposeObjectTemplate template = ComposeObjectTemplate.create(sourceList, destination);
+ return api.getObjectApi().composeObjects(container, key, template).etag();
} else {
return api.getObjectApi()
.multipartUpload(container, blob2ObjectTemplate.apply(blob.getMetadata()), blob.getPayload())
- .getEtag();
+ .etag();
}
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java
index 6ae9278..e2639ff 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java
@@ -59,16 +59,16 @@ public class GoogleCloudStorageParserModule extends AbstractModule {
JsonObject bucketTemplate = (JsonObject) context.serialize(template, BucketTemplateInternal.class);
// deal with bucketAccessControls
- if (!(src.getAcl() == null) && (src.getAcl().isEmpty())) {
+ if (!(src.acl() == null) && (src.acl().isEmpty())) {
bucketTemplate.add("acl", null);
}
// deal with DefaultObjectAccessControls
- if (!(src.getDefaultObjectAccessControls() == null) && (src.getDefaultObjectAccessControls().isEmpty())) {
+ if (!(src.defaultObjectAccessControls() == null) && (src.defaultObjectAccessControls().isEmpty())) {
bucketTemplate.add("defaultObjectAccessControls", null);
}
// deal with Cors
- if (!(src.getCors() == null) && (src.getCors().isEmpty())) {
+ if (!(src.cors() == null) && (src.cors().isEmpty())) {
bucketTemplate.add("cors", null);
}
@@ -77,11 +77,11 @@ public class GoogleCloudStorageParserModule extends AbstractModule {
private static class BucketTemplateInternal extends BucketTemplate {
private BucketTemplateInternal(BucketTemplate template) {
- name(template.getName()).projectNumber(template.getProjectNumber()).acl(template.getAcl())
- .defaultObjectAccessControls(template.getDefaultObjectAccessControls()).owner(template.getOwner())
- .location(template.getLocation()).website(template.getWebsite()).logging(template.getLogging())
- .versioning(template.getVersioning()).cors(template.getCors()).lifeCycle(template.getLifeCycle())
- .storageClass(template.getStorageClass());
+ name(template.name()).projectNumber(template.projectNumber()).acl(template.acl())
+ .defaultObjectAccessControls(template.defaultObjectAccessControls()).owner(template.owner())
+ .location(template.location()).website(template.website()).logging(template.logging())
+ .versioning(template.versioning()).cors(template.cors()).lifeCycle(template.lifeCycle())
+ .storageClass(template.storageClass());
}
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Bucket.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Bucket.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Bucket.java
index d80a99e..1c8e41a 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Bucket.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Bucket.java
@@ -17,282 +17,165 @@
package org.jclouds.googlecloudstorage.domain;
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Preconditions.checkNotNull;
+import static org.jclouds.googlecloudstorage.internal.NullSafeCopies.copyOf;
-import java.net.URI;
import java.util.Date;
-import java.util.Set;
+import java.util.List;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass;
-import org.jclouds.googlecloudstorage.domain.internal.BucketCors;
-import org.jclouds.googlecloudstorage.domain.internal.BucketLifeCycle;
-import org.jclouds.googlecloudstorage.domain.internal.Logging;
-import org.jclouds.googlecloudstorage.domain.internal.Owner;
-import org.jclouds.googlecloudstorage.domain.internal.Versioning;
-import org.jclouds.googlecloudstorage.domain.internal.Website;
-
import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
-import com.google.common.base.Objects;
-import com.google.common.collect.ImmutableSet;
+import com.google.auto.value.AutoValue;
/**
* The Bucket represents a bucket in Google Cloud Storage. There is a single global namespace shared by all buckets.
- *
+ *
* @see <a href = " https://developers.google.com/storage/docs/json_api/v1/buckets"/>
*/
-public class Bucket extends Resource {
-
- private final String name;
- private final Long projectNumber;
- private final Date timeCreated;
- private final Long metageneration;
- private final Set<BucketAccessControls> acl;
- private final Set<DefaultObjectAccessControls> defaultObjectAcl;
- private final Owner owner;
- private final Location location;
- private final Website website;
- private final Logging logging;
- private final Versioning versioning;
- private final Set<BucketCors> cors;
- private final BucketLifeCycle lifeCycle;
- private final StorageClass storageClass;
-
- private Bucket(String id, URI selfLink, String name, String etag, @Nullable Long projectNumber, Date timeCreated,
- Long metageneration, Set<BucketAccessControls> acl, Set<DefaultObjectAccessControls> defaultObjectAcl,
- Owner owner, @Nullable Location location, @Nullable Website website, @Nullable Logging logging,
- @Nullable Versioning versioning, Set<BucketCors> cors, @Nullable BucketLifeCycle lifeCycle,
- @Nullable StorageClass storageClass) {
-
- super(Kind.BUCKET, id, selfLink, etag);
- this.projectNumber = projectNumber;
- this.timeCreated = checkNotNull(timeCreated, "timeCreated");
- this.metageneration = checkNotNull(metageneration, "metageneration");
- this.acl = acl.isEmpty() ? null : acl;
- this.defaultObjectAcl = defaultObjectAcl.isEmpty() ? null : defaultObjectAcl;
- this.owner = checkNotNull(owner, "Owner");
- this.location = location;
- this.website = website;
- this.logging = logging;
- this.versioning = versioning;
- this.cors = cors.isEmpty() ? null : cors;
- this.lifeCycle = lifeCycle;
- this.storageClass = storageClass;
- this.name = checkNotNull(name, "name");
- }
+@AutoValue
+public abstract class Bucket {
+ @AutoValue
+ public abstract static class Cors {
+ public abstract List<String> origin();
- public Long getProjectNumber() {
- return projectNumber;
- }
+ public abstract List<String> method();
- public String getName() {
- return name;
- }
+ public abstract List<String> responseHeader();
- public Date getTimeCreated() {
- return timeCreated;
- }
+ public abstract Integer maxAgeSeconds();
- public Long getMetageneration() {
- return metageneration;
+ @SerializedNames({ "origin", "method", "responseHeader", "maxAgeSeconds" })
+ public static Cors create(List<String> origin, List<String> method, List<String> responseHeader,
+ Integer maxAgeSeconds) {
+ return new AutoValue_Bucket_Cors(copyOf(origin), copyOf(method), copyOf(responseHeader), maxAgeSeconds);
+ }
}
- public Set<BucketAccessControls> getAcl() {
- return acl;
- }
+ @AutoValue
+ public abstract static class Logging {
+ public abstract String logBucket();
- public Set<DefaultObjectAccessControls> getDefaultObjectAcl() {
- return defaultObjectAcl;
- }
+ @Nullable public abstract String logObjectPrefix();
- public Owner getOwner() {
- return owner;
+ @SerializedNames({ "logBucket", "logObjectPrefix" })
+ public static Logging create(String logBucket, String logObjectPrefix) {
+ return new AutoValue_Bucket_Logging(logBucket, logObjectPrefix);
+ }
}
- public Location getLocation() {
- return location;
- }
+ @AutoValue
+ public abstract static class LifeCycle {
- public Website getWebsite() {
- return website;
- }
+ @AutoValue
+ public abstract static class Rule {
- public Logging getLogging() {
- return logging;
- }
+ @AutoValue
+ public abstract static class Action {
+ public abstract String type();
- public Versioning getVersioning() {
- return versioning;
- }
+ @SerializedNames("type")
+ public static Action create(String type) {
+ return new AutoValue_Bucket_LifeCycle_Rule_Action(type);
+ }
+ }
- public Set<BucketCors> getCors() {
- return cors;
- }
+ @AutoValue
+ public abstract static class Condition {
+ @Nullable public abstract Integer age();
- public BucketLifeCycle getLifeCycle() {
- return lifeCycle;
- }
+ @Nullable public abstract Date createdBefore();
- public StorageClass getStorageClass() {
- return storageClass;
- }
+ @Nullable public abstract Boolean isLive();
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- Bucket that = Bucket.class.cast(obj);
- return equal(this.kind, that.kind) && equal(this.name, that.name)
- && equal(this.projectNumber, that.projectNumber);
+ @Nullable public abstract Integer numNewerVersions();
- }
+ @SerializedNames({ "age", "createdBefore", "isLive", "numNewerVersions" })
+ public static Condition create(Integer age, Date createdBefore, Boolean isLive, Integer numNewerVersions) {
+ return new AutoValue_Bucket_LifeCycle_Rule_Condition(age, createdBefore, isLive, numNewerVersions);
+ }
+ }
- protected Objects.ToStringHelper string() {
- return super.string().omitNullValues().add("name", name).add("timeCreated", timeCreated)
- .add("projectNumber", projectNumber).add("metageneration", metageneration).add("acl", acl)
- .add("defaultObjectAcl", defaultObjectAcl).add("owner", owner).add("location", location)
- .add("website", website).add("logging", logging).add("versioning", versioning).add("cors", cors)
- .add("lifeCycle", lifeCycle).add("storageClass", storageClass);
+ public abstract Action action();
- }
+ public abstract Condition condition();
- @Override
- public String toString() {
- return string().toString();
- }
+ @SerializedNames({ "action", "condition" })
+ public static Rule create(Action action, Condition condition) {
+ return new AutoValue_Bucket_LifeCycle_Rule(action, condition);
+ }
+ }
- public static Builder builder() {
- return new Builder();
- }
+ public abstract List<Rule> rules();
- public Builder toBuilder() {
- return new Builder().fromBucket(this);
+ @SerializedNames("rules")
+ public static LifeCycle create(List<Rule> rules) {
+ return new AutoValue_Bucket_LifeCycle(copyOf(rules));
+ }
}
- public static final class Builder extends Resource.Builder<Builder> {
-
- private String name;
- private Long projectNumber;
- private Date timeCreated;
- private Long metageneration;
- private ImmutableSet.Builder<BucketAccessControls> acl = ImmutableSet.builder();
- private ImmutableSet.Builder<DefaultObjectAccessControls> defaultObjectAcl = ImmutableSet.builder();
- private Owner owner;
- private Location location;
- private Website website;
- private Logging logging;
- private Versioning versioning;
- private ImmutableSet.Builder<BucketCors> cors = ImmutableSet.builder();
- private BucketLifeCycle lifeCycle;
- private StorageClass storageClass;
-
- public Builder name(String name) {
- this.name = name;
- return this;
- }
+ @AutoValue
+ public abstract static class Website {
+ @Nullable public abstract String mainPageSuffix();
- public Builder projectNumber(Long projectNumber) {
- this.projectNumber = projectNumber;
- return this;
- }
+ @Nullable public abstract String notFoundPage();
- public Builder timeCreated(Date timeCreated) {
- this.timeCreated = timeCreated;
- return this;
+ @SerializedNames({ "mainPageSuffix", "notFoundPage" })
+ public static Website create(String mainPageSuffix, String notFoundPage) {
+ return new AutoValue_Bucket_Website(mainPageSuffix, notFoundPage);
}
+ }
- public Builder metageneration(Long metageneration) {
- this.metageneration = metageneration;
- return this;
- }
+ @AutoValue
+ public abstract static class Versioning {
+ public abstract Boolean enabled();
- public Builder owner(Owner owner) {
- this.owner = owner;
- return this;
+ @SerializedNames("enabled")
+ public static Versioning create(Boolean enabled) {
+ return new AutoValue_Bucket_Versioning(enabled);
}
+ }
- public Builder location(Location location) {
- this.location = location;
- return this;
- }
+ public abstract String id();
- public Builder website(Website website) {
- this.website = website;
- return this;
- }
+ public abstract String name();
- public Builder logging(Logging logging) {
- this.logging = logging;
- return this;
- }
+ @Nullable public abstract Long projectNumber();
- public Builder versioning(Versioning versioning) {
- this.versioning = versioning;
- return this;
- }
+ public abstract Date timeCreated();
- public Builder lifeCycle(BucketLifeCycle lifeCycle) {
- this.lifeCycle = lifeCycle;
- return this;
- }
+ public abstract Long metageneration();
- public Builder storageClass(StorageClass storageClass) {
- this.storageClass = storageClass;
- return this;
- }
+ public abstract List<BucketAccessControls> acl();
- public Builder addAcl(BucketAccessControls bucketAccessControls) {
- this.acl.add(bucketAccessControls);
- return this;
- }
+ public abstract List<ObjectAccessControls> defaultObjectAcl();
- public Builder acl(Set<BucketAccessControls> acl) {
- this.acl.addAll(acl);
- return this;
- }
+ public abstract Owner owner();
- public Builder addDefaultObjectAcl(DefaultObjectAccessControls defaultObjectAccessControls) {
- this.defaultObjectAcl.add(defaultObjectAccessControls);
- return this;
- }
+ @Nullable public abstract Location location();
- public Builder defaultObjectAcl(Set<DefaultObjectAccessControls> defaultObjectAcl) {
- this.defaultObjectAcl.addAll(defaultObjectAcl);
- return this;
- }
+ @Nullable public abstract Website website();
- public Builder addCORS(BucketCors cors) {
- this.cors.add(cors);
- return this;
- }
+ @Nullable public abstract Logging logging();
- public Builder cors(Set<BucketCors> cors) {
- this.cors.addAll(cors);
- return this;
- }
+ @Nullable public abstract Versioning versioning();
- @Override
- protected Builder self() {
- return this;
- }
+ public abstract List<Cors> cors();
- public Bucket build() {
- return new Bucket(super.id, super.selfLink, name, super.etag, projectNumber, timeCreated, metageneration,
- acl.build(), defaultObjectAcl.build(), owner, location, website, logging, versioning, cors.build(),
- lifeCycle, storageClass);
- }
+ @Nullable public abstract LifeCycle lifeCycle();
- public Builder fromBucket(Bucket in) {
- return super.fromResource(in).name(in.getName()).projectNumber(in.getProjectNumber())
- .timeCreated(in.getTimeCreated()).metageneration(in.getMetageneration()).acl(in.getAcl())
- .defaultObjectAcl(in.getDefaultObjectAcl()).owner(in.getOwner()).location(in.getLocation())
- .website(in.getWebsite()).logging(in.getLogging()).versioning(in.getVersioning()).cors(in.getCors())
- .lifeCycle(in.getLifeCycle()).storageClass(in.getStorageClass());
- }
- }
+ @Nullable public abstract StorageClass storageClass();
+ @SerializedNames(
+ { "id", "name", "projectNumber", "timeCreated", "metageneration", "acl", "defaultObjectAcl", "owner",
+ "location", "website", "logging", "versioning", "cors", "lifeCycle", "storageClass" })
+ public static Bucket create(String id, String name, Long projectNumber, Date timeCreated, Long metageneration,
+ List<BucketAccessControls> acl, List<ObjectAccessControls> defaultObjectAcl, Owner owner,
+ Location location, Website website, Logging logging, Versioning versioning, List<Cors> cors,
+ LifeCycle lifeCycle, StorageClass storageClass) {
+ return new AutoValue_Bucket(id, name, projectNumber, timeCreated, metageneration, copyOf(acl),
+ copyOf(defaultObjectAcl), owner, location, website, logging, versioning, copyOf(cors), lifeCycle,
+ storageClass);
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketAccessControls.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketAccessControls.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketAccessControls.java
index 6d0d0ed..f6fc12f 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketAccessControls.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketAccessControls.java
@@ -16,110 +16,55 @@
*/
package org.jclouds.googlecloudstorage.domain;
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.net.URI;
-
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam;
import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
-import com.google.common.base.Objects;
+import com.google.auto.value.AutoValue;
/**
* Represents a BucketAccessControls Resource
*
* @see <a href= "https://developers.google.com/storage/docs/json_api/v1/bucketAccessControls" />
*/
-public class BucketAccessControls extends Resource {
-
- private final String bucket;
- private final String entity;
- private final Role role;
- private final String email;
- private final String domain;
- private final String entityId;
- private final ProjectTeam projectTeam;
-
- private BucketAccessControls(@Nullable String id, @Nullable URI selfLink, @Nullable String etag, String bucket,
- String entity, @Nullable String entityId, Role role, @Nullable String email, @Nullable String domain,
- @Nullable ProjectTeam projectTeam) {
- super(Kind.BUCKET_ACCESS_CONTROL, id == null ? (bucket + "/" + entity) : id, selfLink, etag);
-
- this.bucket = checkNotNull(bucket, "bucket");
- this.entity = checkNotNull(entity, "entity");
- this.entityId = entityId;
- this.role = checkNotNull(role, "role");
- this.email = email;
- this.domain = domain;
- this.projectTeam = projectTeam;
- }
+@AutoValue
+public abstract class BucketAccessControls {
- public String getBucket() {
- return bucket;
+ public enum Role {
+ READER, WRITER, OWNER
}
- public String getEntity() {
- return entity;
- }
+ public abstract String kind();
- public Role getRole() {
- return role;
- }
+ public abstract String id();
- public String getEmail() {
- return email;
- }
+ public abstract String bucket();
- public String getDomain() {
- return domain;
- }
+ public abstract String entity();
- public String getEntityId() {
- return entityId;
- }
+ @Nullable public abstract String entityId();
- public ProjectTeam getProjectTeam() {
- return projectTeam;
- }
+ public abstract Role role();
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- BucketAccessControls that = BucketAccessControls.class.cast(obj);
- return equal(this.kind, that.kind) && equal(this.bucket, that.bucket) && equal(this.entity, that.entity)
- && equal(this.id, that.id);
- }
+ @Nullable public abstract String email();
- protected Objects.ToStringHelper string() {
- return super.string().omitNullValues().add("bucket", bucket).add("entity", entity).add("entityId", entityId)
- .add("role", role).add("email", email).add("domain", domain);
- }
+ @Nullable public abstract String domain();
- @Override
- public int hashCode() {
- return Objects.hashCode(kind, bucket, entity);
- }
+ @Nullable public abstract ProjectTeam projectTeam();
- @Override
- public String toString() {
- return string().toString();
+ @SerializedNames({ "id", "bucket", "entity", "entityId", "role", "email", "domain", "projectTeam" })
+ public static BucketAccessControls create(String id, String bucket, String entity, String entityId, Role role,
+ String email, String domain, ProjectTeam projectTeam) {
+ return new AutoValue_BucketAccessControls("storage#bucketAccessControl",
+ id == null ? (bucket + "/" + entity) : id, bucket, entity, entityId, role, email, domain, projectTeam);
}
public static Builder builder() {
return new Builder();
}
- public Builder toBuilder() {
- return new Builder().fromBucketACL(this);
- }
-
- public static final class Builder extends Resource.Builder<Builder> {
+ public static final class Builder {
+ private String id;
private String bucket;
private String entity;
private String entityId;
@@ -128,6 +73,11 @@ public class BucketAccessControls extends Resource {
private String domain;
private ProjectTeam projectTeam;
+ public Builder id(String id) {
+ this.id = id;
+ return this;
+ }
+
public Builder bucket(String bucket) {
this.bucket = bucket;
return this;
@@ -164,19 +114,7 @@ public class BucketAccessControls extends Resource {
}
public BucketAccessControls build() {
- return new BucketAccessControls(super.id, super.selfLink, super.etag, bucket, entity, entityId, role, email,
- domain, projectTeam);
- }
-
- public Builder fromBucketACL(BucketAccessControls bACL) {
- return super.fromResource(bACL).bucket(bACL.getBucket()).entity(bACL.getEntity()).entityId(bACL.getEntityId())
- .role(bACL.getRole()).email(bACL.getEmail()).domain(bACL.getDomain())
- .projectTeam(bACL.getProjectTeam());
- }
-
- @Override
- protected Builder self() {
- return this;
+ return BucketAccessControls.create(id, bucket, entity, entityId, role, email, domain, projectTeam);
}
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControls.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControls.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControls.java
deleted file mode 100644
index aeddc41..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControls.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.net.URI;
-
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam;
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-
-/**
- * Represents a DefaultObjectAccessControls Resource
- *
- * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/defaultObjectAccessControls"/>
- */
-public class DefaultObjectAccessControls extends Resource {
-
- private final String bucket;
- private final String entity;
- private final ObjectRole role;
- private final String email;
- private final String entityId;
- private final String domain;
- private final ProjectTeam projectTeam;
-
- private DefaultObjectAccessControls(@Nullable String id, @Nullable URI selfLink, @Nullable String etag,
- @Nullable String bucket, String entity, @Nullable String entityId, ObjectRole role, @Nullable String email,
- @Nullable String domain, @Nullable ProjectTeam projectTeam) {
- super(Kind.OBJECT_ACCESS_CONTROL, id, selfLink, etag);
-
- this.bucket = bucket;
- this.entity = checkNotNull(entity, "entity");
- this.entityId = entityId;
- this.role = checkNotNull(role, "role");
- this.email = email;
- this.domain = domain;
- this.projectTeam = projectTeam;
- }
-
- public String getBucket() {
- return bucket;
- }
-
- public String getEntity() {
- return entity;
- }
-
- public ObjectRole getRole() {
- return role;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getDomain() {
- return domain;
- }
-
- public String getEntityId() {
- return entityId;
- }
-
- public ProjectTeam getProjectTeam() {
- return projectTeam;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- DefaultObjectAccessControls that = DefaultObjectAccessControls.class.cast(obj);
- return equal(this.kind, that.kind) && equal(this.entity, that.entity) && equal(this.role, that.role);
- }
-
- protected Objects.ToStringHelper string() {
- return super.string().omitNullValues().add("bucket", bucket).add("entity", entity).add("entityId", entityId)
- .add("role", role).add("email", email).add("domain", domain);
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(kind, entity);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return new Builder().fromObjectAccessControls(this);
- }
-
- public static final class Builder extends Resource.Builder<Builder> {
-
- private String bucket;
- private String entity;
- private String entityId;
- private ObjectRole role;
- private String email;
- private String domain;
- private ProjectTeam projectTeam;
-
- public Builder bucket(String bucket) {
- this.bucket = bucket;
- return this;
- }
-
- public Builder entity(String entity) {
- this.entity = entity;
- return this;
- }
-
- public Builder entityId(String entityId) {
- this.entityId = entityId;
- return this;
- }
-
- public Builder role(ObjectRole role) {
- this.role = role;
- return this;
- }
-
- public Builder email(String email) {
- this.email = email;
- return this;
- }
-
- public Builder domain(String domain) {
- this.domain = domain;
- return this;
- }
-
- public Builder projectTeam(ProjectTeam projectTeam) {
- this.projectTeam = projectTeam;
- return this;
- }
-
- public DefaultObjectAccessControls build() {
- return new DefaultObjectAccessControls(super.id, super.selfLink, super.etag, bucket, entity, entityId, role,
- email, domain, projectTeam);
- }
-
- public Builder fromObjectAccessControls(DefaultObjectAccessControls in) {
- return super.fromResource(in).bucket(in.getBucket()).entity(in.getEntity()).entityId(in.getEntityId())
- .role(in.getRole()).email(in.getEmail()).domain(in.getDomain()).projectTeam(in.getProjectTeam());
- }
-
- @Override
- protected Builder self() {
- return this;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainResourceReferences.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainResourceReferences.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainResourceReferences.java
index 272074b..dd8a07b 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainResourceReferences.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainResourceReferences.java
@@ -23,10 +23,6 @@ public final class DomainResourceReferences {
private DomainResourceReferences() {
}
- public enum Role {
- READER, WRITER, OWNER
- }
-
public enum ObjectRole {
READER, OWNER
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainUtils.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainUtils.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainUtils.java
deleted file mode 100644
index c175691..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainUtils.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain;
-
-import java.util.List;
-
-import com.google.common.collect.Lists;
-import com.google.common.primitives.Bytes;
-
-public final class DomainUtils {
-
- private DomainUtils() {
- }
-
- public static byte[] reverse(byte[] b) {
- List<Byte> hashByte = Bytes.asList(b);
- List<Byte> reversedList = Lists.reverse(hashByte);
- return Bytes.toArray(reversedList);
- }
-
- public static String generateContentRange(Long lowerLimit, Long upperLimit, Long totalSize) {
- return "bytes " + lowerLimit + "-" + upperLimit + "/" + totalSize;
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GCSObject.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GCSObject.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GCSObject.java
index 865cd90..7b3fc7f 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GCSObject.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GCSObject.java
@@ -17,365 +17,63 @@
package org.jclouds.googlecloudstorage.domain;
-import static com.google.common.base.Objects.equal;
+import static org.jclouds.googlecloudstorage.internal.NullSafeCopies.copyOf;
import java.net.URI;
import java.util.Date;
+import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass;
-import org.jclouds.googlecloudstorage.domain.internal.Owner;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
-import com.google.common.base.Objects;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.hash.HashCode;
-import com.google.common.io.BaseEncoding;
+import com.google.auto.value.AutoValue;
/**
* This class represent an object in a Google Cloud Storage Bucket.
*
* @see <a href = "https://developers.google.com/storage/docs/json_api/v1/Objects"/>
*/
-public class GCSObject extends Resource {
-
- private final String name;
- private final String bucket;
- private final Long generation;
- private final Long metageneration;
- private final String contentType;
- private final Date updated;
- private final Date timeDeleted;
- private final StorageClass storageClass;
- private final Long size;
- private final String md5Hash;
- private final URI mediaLink;
- private final Map<String, String> metadata;
- private final String contentEncoding;
- private final String contentDisposition;
- private final String contentLanguage;
- private final String cacheControl;
- private final Set<ObjectAccessControls> acl;
- private final Owner owner;
- private final String crc32c;
- private final Integer componentCount;
-
- private GCSObject(String id, URI selfLink, String etag, String name, String bucket, Long generation,
- Long metageneration, String contentType, Date updated, Date timeDeleted, StorageClass storageClass,
- Long size, String md5Hash, URI mediaLink, Map<String, String> metadata, String contentEncoding,
- String contentDisposition, String contentLanguage, String cacheControl, Set<ObjectAccessControls> acl,
- Owner owner, String crc32c, Integer componentCount) {
- super(Kind.OBJECT, id, selfLink, etag);
- this.name = name;
- this.bucket = bucket;
- this.generation = generation;
- this.metageneration = metageneration;
- this.contentType = contentType;
- this.updated = updated;
- this.timeDeleted = timeDeleted;
- this.storageClass = storageClass;
- this.size = size;
- this.md5Hash = md5Hash;
- this.mediaLink = mediaLink;
- this.metadata = (metadata == null) ? ImmutableMap.<String, String> of() : metadata;
- this.contentEncoding = contentEncoding;
- this.contentDisposition = contentDisposition;
- this.contentLanguage = contentLanguage;
- this.cacheControl = cacheControl;
- this.acl = acl;
- this.owner = owner;
- this.crc32c = crc32c;
- this.componentCount = componentCount;
- }
-
- public String getName() {
- return name;
- }
-
- public String getBucket() {
- return bucket;
- }
-
- public Long getGeneration() {
- return generation;
- }
-
- public Long getMetageneration() {
- return metageneration;
- }
-
- public String getContentType() {
- return contentType;
- }
-
- public Date getUpdated() {
- return updated;
- }
-
- public Date getTimeDeleted() {
- return timeDeleted;
- }
-
- public StorageClass getStorageClass() {
- return storageClass;
- }
-
- public Long getSize() {
- return size;
- }
-
- private String getMd5Hash() {
- return md5Hash;
- }
-
- public HashCode getMd5HashCode() {
- if (md5Hash != null) {
- HashCode hc = HashCode.fromBytes(BaseEncoding.base64().decode(md5Hash));
- return hc;
- }
- return null;
- }
-
- public URI getMediaLink() {
- return mediaLink;
- }
-
- public Map<String, String> getAllMetadata() {
- return this.metadata;
- }
-
- public String getContentEncoding() {
- return contentEncoding;
- }
-
- public String getContentDisposition() {
- return contentDisposition;
- }
-
- public String getContentLanguage() {
- return contentLanguage;
- }
-
- public String getCacheControl() {
- return cacheControl;
- }
-
- public Set<ObjectAccessControls> getAcl() {
- return acl;
- }
-
- public Owner getOwner() {
- return owner;
- }
-
- private String getCrc32c() {
- return crc32c;
- }
-
- public HashCode getCrc32cHashcode() {
- if (crc32c != null) {
- HashCode hc = HashCode.fromBytes(DomainUtils.reverse(BaseEncoding.base64().decode(crc32c)));
- return hc;
- }
- return null;
-
- }
-
- public Integer getComponentCount() {
- return componentCount;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- GCSObject that = GCSObject.class.cast(obj);
- return equal(this.kind, that.kind) && equal(this.name, that.name) && equal(this.bucket, that.bucket);
-
- }
-
- protected Objects.ToStringHelper string() {
- return super.string().omitNullValues().add("name", name).add("bucket", bucket).add("generation", generation)
- .add("metageneration", metageneration).add("timeDeleted", timeDeleted).add("updated", updated)
- .add("storageClass", storageClass).add("size", size).add("md5Hash", md5Hash).add("mediaLink", mediaLink)
- .add("metadata", metadata).add("contentEncoding", contentEncoding)
- .add("contentDisposition", contentDisposition).add("contentLanguage", contentLanguage)
- .add("cacheControl", cacheControl).add("crc32c", crc32c).add("componentCount", componentCount)
- .add("acl", acl).add("owner", owner);
-
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return new Builder().fromGCSObject(this);
- }
-
- protected static final class Builder extends Resource.Builder<Builder> {
-
- private String name;
- private String bucket;
- private Long generation;
- private Long metageneration;
- private String contentType;
- private Date updated;
- private Date timeDeleted;
- private StorageClass storageClass;
- private Long size;
- private String md5Hash;
- private URI mediaLink;
- private ImmutableMap.Builder<String, String> metadata = ImmutableMap.builder();
- private String contentEncoding;
- private String contentDisposition;
- private String contentLanguage;
- private String cacheControl;
- private ImmutableSet.Builder<ObjectAccessControls> acl = ImmutableSet.builder();
- private Owner owner;
- private String crc32c;
- private Integer componentCount;
-
- protected Builder name(String name) {
- this.name = name;
- return this;
- }
-
- protected Builder bucket(String bucket) {
- this.bucket = bucket;
- return this;
- }
-
- protected Builder generation(Long generation) {
- this.generation = generation;
- return this;
- }
-
- protected Builder metageneration(Long metageneration) {
- this.metageneration = metageneration;
- return this;
- }
-
- protected Builder customMetadata(Map<String, String> metadata) {
- this.metadata.putAll(metadata);
- return this;
- }
-
- protected Builder addCustomMetadata(String key, String value) {
- this.metadata.put(key, value);
- return this;
- }
-
- protected Builder size(Long size) {
- this.size = size;
- return this;
- }
-
- protected Builder componentCount(Integer componentCount) {
- this.componentCount = componentCount;
- return this;
- }
-
- protected Builder contentType(String contentType) {
- this.contentType = contentType;
- return this;
- }
-
- /** Requires base64 encoded crc32c string */
- protected Builder md5Hash(String md5Hash) {
- this.md5Hash = md5Hash;
- return this;
- }
-
- protected Builder mediaLink(URI mediaLink) {
- this.mediaLink = mediaLink;
- return this;
- }
-
- protected Builder contentEncoding(String contentEncoding) {
- this.contentEncoding = contentEncoding;
- return this;
- }
-
- protected Builder contentDisposition(String contentDisposition) {
- this.contentDisposition = contentDisposition;
- return this;
- }
-
- protected Builder contentLanguage(String contentLanguage) {
- this.contentLanguage = contentLanguage;
- return this;
- }
-
- protected Builder cacheControl(String cacheControl) {
- this.cacheControl = cacheControl;
- return this;
- }
-
- protected Builder updated(Date updated) {
- this.updated = updated;
- return this;
- }
-
- protected Builder timeDeleted(Date timeDeleted) {
- this.timeDeleted = timeDeleted;
- return this;
- }
-
- protected Builder owner(Owner owner) {
- this.owner = owner;
- return this;
- }
-
- protected Builder storageClass(StorageClass storageClass) {
- this.storageClass = storageClass;
- return this;
- }
-
- protected Builder addAcl(ObjectAccessControls bucketAccessControls) {
- this.acl.add(bucketAccessControls);
- return this;
- }
-
- protected Builder acl(Set<ObjectAccessControls> acl) {
- this.acl.addAll(acl);
- return this;
- }
-
- /** Requires base64 encoded crc32c string */
- protected Builder crc32c(String crc32c) {
- this.crc32c = crc32c;
- return this;
- }
-
- @Override
- protected Builder self() {
- return this;
- }
-
- public GCSObject build() {
- return new GCSObject(super.id, super.selfLink, super.etag, name, bucket, generation, metageneration,
- contentType, updated, timeDeleted, storageClass, size, md5Hash, mediaLink, metadata.build(),
- contentEncoding, contentDisposition, contentLanguage, cacheControl, acl.build(), owner, crc32c,
- componentCount);
- }
-
- protected Builder fromGCSObject(GCSObject in) {
- return super.fromResource(in).name(in.getName()).bucket(in.getBucket()).generation(in.getGeneration())
- .metageneration(in.getMetageneration()).contentEncoding(in.getContentEncoding())
- .contentDisposition(in.getContentDisposition()).contentLanguage(in.getContentLanguage())
- .md5Hash(in.getMd5Hash()).mediaLink(in.getMediaLink()).timeDeleted(in.getTimeDeleted())
- .cacheControl(in.getCacheControl()).crc32c(in.getCrc32c()).size(in.getSize())
- .contentType(in.getContentType()).acl(in.getAcl()).owner(in.getOwner())
- .storageClass(in.getStorageClass()).customMetadata(in.getAllMetadata());
- }
+@AutoValue
+// TODO: nullable sweep
+public abstract class GCSObject {
+
+ public abstract String id();
+ public abstract URI selfLink();
+ public abstract String etag();
+ public abstract String name();
+ public abstract String bucket();
+ public abstract Long generation();
+ public abstract Long metageneration();
+ public abstract String contentType();
+ public abstract Date updated();
+ public abstract Date timeDeleted();
+ public abstract StorageClass storageClass();
+ public abstract Long size();
+ @Nullable public abstract String md5Hash();
+ public abstract URI mediaLink();
+ public abstract Map<String, String> metadata();
+ public abstract String contentEncoding();
+ public abstract String contentDisposition();
+ public abstract String contentLanguage();
+ public abstract String cacheControl();
+ public abstract List<ObjectAccessControls> acl();
+ public abstract Owner owner();
+ @Nullable public abstract String crc32c();
+ public abstract Integer componentCount();
+
+ @SerializedNames(
+ { "id", "selfLink", "etag", "name", "bucket", "generation", "metageneration", "contentType", "updated",
+ "timeDeleted", "storageClass", "size", "md5Hash", "mediaLink", "metadata", "contentEncoding",
+ "contentDisposition", "contentLanguage", "cacheControl", "acl", "owner", "crc32c", "componentCount" })
+ public static GCSObject create(String id, URI selfLink, String etag, String name, String bucket, Long generation,
+ Long metageneration, String contentType, Date updated, Date timeDeleted, StorageClass storageClass, Long size,
+ String md5Hash, URI mediaLink, Map<String, String> metadata, String contentEncoding, String contentDisposition,
+ String contentLanguage, String cacheControl, List<ObjectAccessControls> acl, Owner owner, String crc32c,
+ Integer componentCount) {
+ return new AutoValue_GCSObject(id, selfLink, etag, name, bucket, generation, metageneration, contentType, updated,
+ timeDeleted, storageClass, size, md5Hash, mediaLink, copyOf(metadata), contentEncoding, contentDisposition,
+ contentLanguage, cacheControl, copyOf(acl), owner, crc32c, componentCount);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListBucketAccessControls.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListBucketAccessControls.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListBucketAccessControls.java
deleted file mode 100644
index 0a28d60..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListBucketAccessControls.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.jclouds.googlecloudstorage.domain;
-
-/**
- * Represents the structure of a response from DefaultObjectAccessControls list operation
- * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/bucketAccessControls/list"/>
- */
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Set;
-
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
-
-import com.google.common.base.Objects;
-import com.google.common.collect.ImmutableSet;
-
-public class ListBucketAccessControls {
-
- private final Kind kind;
- private final Set<BucketAccessControls> items;
-
- private ListBucketAccessControls(Kind kind, Set<BucketAccessControls> items) {
-
- this.kind = checkNotNull(kind, "kind");
- this.items = checkNotNull(items, "items");
- }
-
- public Kind getKind() {
- return kind;
- }
-
- public Set<BucketAccessControls> getItems() {
- return items;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- ListBucketAccessControls that = ListBucketAccessControls.class.cast(obj);
- return equal(this.kind, that.kind) && equal(this.items, that.items);
-
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).omitNullValues().add("kind", kind).add("items", items);
-
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return new Builder().fromListBucketAccessControls(this);
- }
-
- public static final class Builder {
-
- private Kind kind;
- private ImmutableSet.Builder<BucketAccessControls> items = ImmutableSet.builder();
-
- public Builder kind(Kind kind) {
- this.kind = kind;
- return this;
- }
-
- public Builder addItems(BucketAccessControls bucketAccessControls) {
- this.items.add(bucketAccessControls);
- return this;
- }
-
- public Builder items(Set<BucketAccessControls> items) {
- this.items.addAll(items);
- return this;
- }
-
- public ListBucketAccessControls build() {
- return new ListBucketAccessControls(this.kind, items.build());
- }
-
- public Builder fromListBucketAccessControls(ListBucketAccessControls in) {
- return this.kind(in.getKind()).items(in.getItems());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListDefaultObjectAccessControls.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListDefaultObjectAccessControls.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListDefaultObjectAccessControls.java
deleted file mode 100644
index 2813e9c..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListDefaultObjectAccessControls.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.jclouds.googlecloudstorage.domain;
-
-/**
- * Represents the structure of a response from DefaultObjectAccessControls list operation
- * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/defaultObjectAccessControls/list"/>
- */
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Set;
-
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
-
-import com.google.common.base.Objects;
-import com.google.common.collect.ImmutableSet;
-
-public class ListDefaultObjectAccessControls {
-
- private final Kind kind;
- private final Set<DefaultObjectAccessControls> items;
-
- private ListDefaultObjectAccessControls(Kind kind, Set<DefaultObjectAccessControls> items) {
-
- this.kind = checkNotNull(kind, "kind");
- this.items = checkNotNull(items, "items");
- }
-
- public Kind getKind() {
- return kind;
- }
-
- public Set<DefaultObjectAccessControls> getItems() {
- return items;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- ListDefaultObjectAccessControls that = ListDefaultObjectAccessControls.class.cast(obj);
- return equal(this.kind, that.kind) && equal(this.items, that.items);
-
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).omitNullValues().add("kind", kind).add("items", items);
-
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return new Builder().fromListDefaultObjectAccessControls(this);
- }
-
- public static final class Builder {
-
- private Kind kind;
- private ImmutableSet.Builder<DefaultObjectAccessControls> items = ImmutableSet.builder();
-
- public Builder kind(Kind kind) {
- this.kind = kind;
- return this;
- }
-
- public Builder addItems(DefaultObjectAccessControls defaultObjectAccessControls) {
- this.items.add(defaultObjectAccessControls);
- return this;
- }
-
- public Builder items(Set<DefaultObjectAccessControls> items) {
- this.items.addAll(items);
- return this;
- }
-
- public ListDefaultObjectAccessControls build() {
- return new ListDefaultObjectAccessControls(this.kind, items.build());
- }
-
- public Builder fromListDefaultObjectAccessControls(ListDefaultObjectAccessControls in) {
- return this.kind(in.getKind()).items(in.getItems());
- }
- }
-}
[2/4] Use AutoValue to reduce bulk of Google Storage value types.
Posted by ad...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
index 9865609..836846e 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
@@ -17,31 +17,28 @@
package org.jclouds.googlecloudstorage.domain.templates;
+import java.util.List;
import java.util.Map;
-import java.util.Set;
-import org.jclouds.googlecloudstorage.domain.DomainUtils;
import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import com.google.common.hash.HashCode;
-import com.google.common.io.BaseEncoding;
import com.google.common.net.MediaType;
public class ObjectTemplate {
- protected String name;
- protected Long size;
- protected String cacheControl;
- protected String contentDisposition;
- protected String contentEncoding;
- protected String contentLanguage;
- protected String contentType;
- protected String crc32c;
- protected String md5Hash;
+ private String name;
+ private Long size;
+ private String cacheControl;
+ private String contentDisposition;
+ private String contentEncoding;
+ private String contentLanguage;
+ private String contentType;
+ private String crc32c;
+ private String md5Hash;
private Map<String, String> metadata = Maps.newLinkedHashMap();
- protected Set<ObjectAccessControls> acl = Sets.newLinkedHashSet();
+ private List<ObjectAccessControls> acl = Lists.newArrayList();
public ObjectTemplate name(String name) {
this.name = name;
@@ -93,13 +90,13 @@ public class ObjectTemplate {
return this;
}
- public ObjectTemplate crc32c(HashCode crc32c) {
- this.crc32c = BaseEncoding.base64().encode(DomainUtils.reverse(crc32c.asBytes()));
+ public ObjectTemplate crc32c(String crc32c) {
+ this.crc32c = crc32c;
return this;
}
- public ObjectTemplate md5Hash(HashCode md5Hash) {
- this.md5Hash = BaseEncoding.base64().encode(md5Hash.asBytes());
+ public ObjectTemplate md5Hash(String md5Hash) {
+ this.md5Hash = crc32c;
return this;
}
@@ -108,80 +105,44 @@ public class ObjectTemplate {
return this;
}
- public ObjectTemplate acl(Set<ObjectAccessControls> acl) {
+ public ObjectTemplate acl(List<ObjectAccessControls> acl) {
this.acl.addAll(acl);
return this;
}
- public String getCacheControl() {
+ public String cacheControl() {
return cacheControl;
}
- public String getContentDisposition() {
+ public String contentDisposition() {
return contentDisposition;
}
- public String getContentEncoding() {
+ public String contentEncoding() {
return contentEncoding;
}
- public String getContentLanguage() {
+ public String contentLanguage() {
return contentLanguage;
}
- public String getContentType() {
+ public String contentType() {
return contentType;
}
- public HashCode getCrc32cHashcode() {
- if (crc32c != null) {
- HashCode hc = HashCode.fromBytes(DomainUtils.reverse(BaseEncoding.base64().decode(crc32c)));
- return hc;
- }
- return null;
- }
-
- public HashCode getMd5HashCode() {
- if (md5Hash != null) {
- HashCode hc = HashCode.fromBytes(BaseEncoding.base64().decode(md5Hash));
- return hc;
- }
- return null;
- }
-
- public Map<String, String> getAllCustomMetadata() {
+ public Map<String, String> metadata() {
return metadata;
}
- public String getName() {
+ public String name() {
return name;
}
- public Long getSize() {
+ public Long size() {
return size;
}
- public Set<ObjectAccessControls> getAcl() {
+ public List<ObjectAccessControls> acl() {
return acl;
}
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static ObjectTemplate fromObjectTemplate(ObjectTemplate objectTemplate) {
- return Builder.fromObjectTemplate(objectTemplate);
- }
-
- public static class Builder {
-
- public static ObjectTemplate fromObjectTemplate(ObjectTemplate in) {
- return new ObjectTemplate().name(in.getName()).size(in.getSize()).acl(in.getAcl())
- .cacheControl(in.getCacheControl()).contentDisposition(in.getContentDisposition())
- .contentEncoding(in.getContentEncoding()).contentLanguage(in.getContentLanguage())
- .contentType(in.getContentType()).md5Hash(in.getMd5HashCode())
- .customMetadata(in.getAllCustomMetadata()).crc32c(in.getCrc32cHashcode());
-
- }
- }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
index 338b3ba..3d428da 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
@@ -18,6 +18,8 @@ package org.jclouds.googlecloudstorage.features;
import static org.jclouds.googlecloudstorage.reference.GoogleCloudStorageConstants.STORAGE_FULLCONTROL_SCOPE;
+import java.util.List;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -31,7 +33,6 @@ import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.ListBucketAccessControls;
import org.jclouds.googlecloudstorage.domain.templates.BucketAccessControlsTemplate;
import org.jclouds.http.HttpResponse;
import org.jclouds.javax.annotation.Nullable;
@@ -41,6 +42,7 @@ import org.jclouds.rest.annotations.BinderParam;
import org.jclouds.rest.annotations.Fallback;
import org.jclouds.rest.annotations.PATCH;
import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.SelectJson;
import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.binders.BindToJsonPayload;
@@ -130,7 +132,8 @@ public interface BucketAccessControlsApi {
@OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
- ListBucketAccessControls listBucketAccessControls(@PathParam("bucket") String bucketName);
+ @SelectJson("items")
+ List<BucketAccessControls> listBucketAccessControls(@PathParam("bucket") String bucketName);
/**
* Updates an ACL entry on the specified bucket
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
index 54dca83..9fda891 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
@@ -18,6 +18,8 @@ package org.jclouds.googlecloudstorage.features;
import static org.jclouds.googlecloudstorage.reference.GoogleCloudStorageConstants.STORAGE_FULLCONTROL_SCOPE;
+import java.util.List;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -31,10 +33,9 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.ListDefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
+import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
import org.jclouds.http.HttpResponse;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.oauth.v2.config.OAuthScopes;
@@ -43,6 +44,7 @@ import org.jclouds.rest.annotations.BinderParam;
import org.jclouds.rest.annotations.Fallback;
import org.jclouds.rest.annotations.PATCH;
import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.SelectJson;
import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.binders.BindToJsonPayload;
@@ -75,8 +77,8 @@ public interface DefaultObjectAccessControlsApi {
@OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
- DefaultObjectAccessControls getDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
- @PathParam("entity") String entity);
+ ObjectAccessControls getDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
+ @PathParam("entity") String entity);
/**
* Creates a new ACL entry for specified object
@@ -94,8 +96,8 @@ public interface DefaultObjectAccessControlsApi {
@Produces(MediaType.APPLICATION_JSON)
@Path("/b/{bucket}/defaultObjectAcl")
@OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
- DefaultObjectAccessControls createDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
- @BinderParam(BindToJsonPayload.class) DefaultObjectAccessControlsTemplate template);
+ ObjectAccessControls createDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
+ @BinderParam(BindToJsonPayload.class) ObjectAccessControlsTemplate template);
/**
* Permanently deletes the DefaultObjectAcessControl entry for the specified entity on the specified bucket.
@@ -108,7 +110,6 @@ public interface DefaultObjectAccessControlsApi {
*
* @return If successful, this method returns an empty response body
*/
-
@Named("DefaultObjectAccessControls:delete")
@DELETE
@Consumes(MediaType.APPLICATION_JSON)
@@ -124,10 +125,6 @@ public interface DefaultObjectAccessControlsApi {
*
* @param bucketName
* Name of the bucket which contains the object
- * @param objectName
- * Name of the bucket of that ACL is related
- * @param generation
- * If present, selects a specific revision of this object
*
* @return ListObjectAccessControls resource
*
@@ -141,20 +138,18 @@ public interface DefaultObjectAccessControlsApi {
@OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
- ListDefaultObjectAccessControls listDefaultObjectAccessControls(@PathParam("bucket") String bucketName);
+ @SelectJson("items")
+ List<ObjectAccessControls> listDefaultObjectAccessControls(@PathParam("bucket") String bucketName);
/**
* Retrieves ACL entries on a specified object
*
* @param bucketName
* Name of the bucket which contains the object
- * @param generation
- * If present, selects a specific revision of this object
*
* @return DefaultObjectAccessControls resource
*
*/
-
@Named("DefaultObjectAccessControls:update")
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@@ -162,22 +157,16 @@ public interface DefaultObjectAccessControlsApi {
@Path("/b/{bucket}/defaultObjectAcl/{entity}")
@OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
- DefaultObjectAccessControls updateDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
+ ObjectAccessControls updateDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
@PathParam("entity") String entity,
- @BinderParam(BindToJsonPayload.class) DefaultObjectAccessControls payload);
+ @BinderParam(BindToJsonPayload.class) ObjectAccessControls payload);
/**
* Retrieves ACL entries on a specified object
*
* @param bucketName
* Name of the bucket which contains the object
- * @param generation
- * If present, selects a specific revision of this object
- *
- * @return DefaultObjectAccessControls resource
- *
*/
-
@Named("DefaultObjectAccessControls:update")
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@@ -185,9 +174,9 @@ public interface DefaultObjectAccessControlsApi {
@Path("/b/{bucket}/defaultObjectAcl/{entity}")
@OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
- DefaultObjectAccessControls updateDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
+ ObjectAccessControls updateDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
@PathParam("entity") String entity,
- @BinderParam(BindToJsonPayload.class) DefaultObjectAccessControls payload,
+ @BinderParam(BindToJsonPayload.class) ObjectAccessControls payload,
@QueryParam("role") ObjectRole role);
/**
@@ -195,13 +184,7 @@ public interface DefaultObjectAccessControlsApi {
*
* @param bucketName
* Name of the bucket which contains the object
- * @param generation
- * If present, selects a specific revision of this object
- *
- * @return DefaultObjectAccessControls resource
- *
*/
-
@Named("DefaultObjectAccessControls:patch")
@PATCH
@Consumes(MediaType.APPLICATION_JSON)
@@ -209,7 +192,7 @@ public interface DefaultObjectAccessControlsApi {
@Path("/b/{bucket}/defaultObjectAcl/{entity}")
@OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
- DefaultObjectAccessControls patchDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
+ ObjectAccessControls patchDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
@PathParam("entity") String entity,
- @BinderParam(BindToJsonPayload.class) DefaultObjectAccessControls payload);
+ @BinderParam(BindToJsonPayload.class) ObjectAccessControls payload);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
index 5645757..5b0e0a9 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
@@ -18,6 +18,8 @@ package org.jclouds.googlecloudstorage.features;
import static org.jclouds.googlecloudstorage.reference.GoogleCloudStorageConstants.STORAGE_FULLCONTROL_SCOPE;
+import java.util.List;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -31,7 +33,6 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.googlecloudstorage.domain.ListObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
import org.jclouds.javax.annotation.Nullable;
@@ -41,6 +42,7 @@ import org.jclouds.rest.annotations.BinderParam;
import org.jclouds.rest.annotations.Fallback;
import org.jclouds.rest.annotations.PATCH;
import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.SelectJson;
import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.binders.BindToJsonPayload;
@@ -93,7 +95,6 @@ public interface ObjectAccessControlsApi {
*
* @return an {@link ObjectAccessControls }
*/
-
@Named("ObjectAccessControls:get")
@GET
@Consumes(MediaType.APPLICATION_JSON)
@@ -116,7 +117,6 @@ public interface ObjectAccessControlsApi {
*
* @return an {@link ObjectAccessControls }
*/
-
@Named("ObjectAccessControls:insert")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@@ -140,7 +140,6 @@ public interface ObjectAccessControlsApi {
*
* @return an {@link ObjectAccessControls }
*/
-
@Named("ObjectAccessControls:insert")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@@ -185,7 +184,6 @@ public interface ObjectAccessControlsApi {
* The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId,
* group-emailAddress, allUsers, or allAuthenticatedUsers
*/
-
@Named("ObjectAccessControls:delete")
@DELETE
@Consumes(MediaType.APPLICATION_JSON)
@@ -201,13 +199,7 @@ public interface ObjectAccessControlsApi {
* Name of the bucket which contains the object
* @param objectName
* Name of the bucket of that acl is related
- * @param generation
- * If present, selects a specific revision of this object
- *
- * @return {@link ListObjectAccessControls } resource
- *
*/
-
@Named("ObjectAccessControls:list")
@GET
@Consumes(MediaType.APPLICATION_JSON)
@@ -215,8 +207,9 @@ public interface ObjectAccessControlsApi {
@Path("/b/{bucket}/o/{object}/acl")
@OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
+ @SelectJson("items")
@Nullable
- ListObjectAccessControls listObjectAccessControls(@PathParam("bucket") String bucketName,
+ List<ObjectAccessControls> listObjectAccessControls(@PathParam("bucket") String bucketName,
@PathParam("object") String objectName);
/**
@@ -229,10 +222,7 @@ public interface ObjectAccessControlsApi {
* @param generation
* If present, selects a specific revision of this object
*
- * @return a {@link ListObjectAccessControls }
- *
*/
-
@Named("ObjectAccessControls:list")
@GET
@Consumes(MediaType.APPLICATION_JSON)
@@ -240,8 +230,9 @@ public interface ObjectAccessControlsApi {
@Path("/b/{bucket}/o/{object}/acl")
@OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
+ @SelectJson("items")
@Nullable
- ListObjectAccessControls listObjectAccessControls(@PathParam("bucket") String bucketName,
+ List<ObjectAccessControls> listObjectAccessControls(@PathParam("bucket") String bucketName,
@PathParam("object") String objectName, @QueryParam("generation") Long generation);
/**
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/internal/NullSafeCopies.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/internal/NullSafeCopies.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/internal/NullSafeCopies.java
new file mode 100644
index 0000000..3cec1b4
--- /dev/null
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/internal/NullSafeCopies.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.googlecloudstorage.internal;
+
+import java.util.List;
+import java.util.Map;
+
+import org.jclouds.javax.annotation.Nullable;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+public class NullSafeCopies {
+
+ public static <K, V> Map<K, V> copyOf(@Nullable Map<K, V> map) {
+ return map != null ? ImmutableMap.copyOf(map) : ImmutableMap.<K, V>of();
+ }
+
+ public static <E> List<E> copyOf(@Nullable List<E> list) {
+ return list != null ? ImmutableList.copyOf(list) : ImmutableList.<E>of();
+ }
+
+ private NullSafeCopies() {
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/parser/ParseToResumableUpload.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/parser/ParseToResumableUpload.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/parser/ParseToResumableUpload.java
index fa3c318..ec0effa 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/parser/ParseToResumableUpload.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/parser/ParseToResumableUpload.java
@@ -16,6 +16,8 @@
*/
package org.jclouds.googlecloudstorage.parser;
+import static com.google.common.base.Preconditions.checkArgument;
+
import java.util.regex.Pattern;
import org.jclouds.googlecloudstorage.domain.ResumableUpload;
@@ -41,16 +43,19 @@ public class ParseToResumableUpload implements Function<HttpResponse, ResumableU
if (range != null) {
upperLimit = getUpperLimitFromRange(range);
lowerLimit = getLowerLimitFromRange(range);
+ if (lowerLimit != null && upperLimit != null) {
+ checkArgument(lowerLimit < upperLimit, "lower range must less than upper range, was: %s - %s", lowerLimit,
+ upperLimit);
+ }
}
- return ResumableUpload.builder().statusCode(response.getStatusCode()).contentLength(contentLength)
- .uploadId(uploadId).rangeUpperValue(upperLimit).rangeLowerValue(lowerLimit).build();
+ return ResumableUpload.create(response.getStatusCode(), contentLength, uploadId, upperLimit, lowerLimit);
}
// Return the Id of the Upload
private String getUploadId(String sessionUri) {
return Splitter.on(Pattern.compile("\\&")).trimResults().omitEmptyStrings().withKeyValueSeparator("=")
- .split(sessionUri).get("upload_id");
+ .split(sessionUri).get("upload_id");
}
private long getUpperLimitFromRange(String range) {
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata b/google-cloud-storage/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
deleted file mode 100644
index 7528137..0000000
--- a/google-cloud-storage/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.jclouds.googlecloudstorage.GoogleCloudStorageApiMetadata
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
index da61901..89ec40b 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
@@ -23,7 +23,7 @@ import static org.testng.AssertJUnit.assertNull;
import javax.ws.rs.core.MediaType;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
import org.jclouds.googlecloudstorage.domain.templates.BucketAccessControlsTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
import org.jclouds.googlecloudstorage.parse.BucketAclGetTest;
@@ -109,11 +109,9 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
BucketAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
insertRequest, CREATE_BUCKETACL_RESPONSE).getBucketAccessControlsApi();
- BucketAccessControlsTemplate template = new BucketAccessControlsTemplate().entity("allAuthenticatedUsers").role(
- Role.WRITER);
+ BucketAccessControlsTemplate template = BucketAccessControlsTemplate.create("allAuthenticatedUsers", Role.WRITER);
assertEquals(api.createBucketAccessControls(EXPECTED_TEST_BUCKET, template), new BucketAclInsertTest().expected());
-
}
// Test deleteBucketAccessControls
@@ -160,7 +158,7 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
BucketAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
update, updateResponse).getBucketAccessControlsApi();
- BucketAccessControlsTemplate template = new BucketAccessControlsTemplate().entity("allUsers").role(Role.OWNER);
+ BucketAccessControlsTemplate template = BucketAccessControlsTemplate.create("allUsers", Role.OWNER);
assertEquals(api.updateBucketAccessControls(EXPECTED_TEST_BUCKET, "allUsers", template),
new BucketAclUpdateTest().expected());
@@ -183,7 +181,7 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
BucketAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
patchRequest, patchResponse).getBucketAccessControlsApi();
- BucketAccessControlsTemplate template = new BucketAccessControlsTemplate().entity("allUsers").role(Role.OWNER);
+ BucketAccessControlsTemplate template = BucketAccessControlsTemplate.create("allUsers", Role.OWNER);
assertEquals(api.patchBucketAccessControls(EXPECTED_TEST_BUCKET, "allUsers", template),
new BucketAclUpdateTest().expected());
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
index 93b2268..c44c38b 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
@@ -19,13 +19,12 @@ package org.jclouds.googlecloudstorage.features;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
+import java.util.List;
import java.util.UUID;
import org.jclouds.googlecloudstorage.domain.Bucket;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
-import org.jclouds.googlecloudstorage.domain.ListBucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
import org.jclouds.googlecloudstorage.domain.templates.BucketAccessControlsTemplate;
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
@@ -48,21 +47,21 @@ public class BucketAccessControlsApiLiveTest extends BaseGoogleCloudStorageApiLi
@Test(groups = "live")
public void testCreateBucketAcl() {
createBucket(BUCKET_NAME);
- BucketAccessControlsTemplate bucketAcl = new BucketAccessControlsTemplate().entity("allUsers").role(Role.READER);
+ BucketAccessControlsTemplate bucketAcl = BucketAccessControlsTemplate.create("allUsers", Role.READER);
BucketAccessControls response = api().createBucketAccessControls(BUCKET_NAME, bucketAcl);
assertNotNull(response);
- assertEquals(response.getId(), BUCKET_NAME + "/allUsers");
+ assertEquals(response.id(), BUCKET_NAME + "/allUsers");
}
@Test(groups = "live", dependsOnMethods = "testCreateBucketAcl")
public void testUpdateBucketAcl() {
- BucketAccessControlsTemplate template = new BucketAccessControlsTemplate().entity("allUsers").role(Role.WRITER);
+ BucketAccessControlsTemplate template = BucketAccessControlsTemplate.create("allUsers", Role.WRITER);
BucketAccessControls response = api().updateBucketAccessControls(BUCKET_NAME, "allUsers", template);
assertNotNull(response);
- assertEquals(response.getId(), BUCKET_NAME + "/allUsers");
- assertEquals(response.getRole(), Role.WRITER);
+ assertEquals(response.id(), BUCKET_NAME + "/allUsers");
+ assertEquals(response.role(), Role.WRITER);
}
@Test(groups = "live", dependsOnMethods = "testUpdateBucketAcl")
@@ -70,27 +69,25 @@ public class BucketAccessControlsApiLiveTest extends BaseGoogleCloudStorageApiLi
BucketAccessControls response = api().getBucketAccessControls(BUCKET_NAME, "allUsers");
assertNotNull(response);
- assertEquals(response.getId(), BUCKET_NAME + "/allUsers");
- assertEquals(response.getRole(), Role.WRITER);
+ assertEquals(response.id(), BUCKET_NAME + "/allUsers");
+ assertEquals(response.role(), Role.WRITER);
}
@Test(groups = "live", dependsOnMethods = "testUpdateBucketAcl")
public void testListBucketAcl() {
- ListBucketAccessControls response = api().listBucketAccessControls(BUCKET_NAME);
+ List<BucketAccessControls> response = api().listBucketAccessControls(BUCKET_NAME);
assertNotNull(response);
- assertEquals(response.getKind(), Kind.BUCKET_ACCESS_CONTROLS);
- assertNotNull(response.getItems());
}
@Test(groups = "live", dependsOnMethods = "testUpdateBucketAcl")
public void testPatchBucketAcl() {
- BucketAccessControlsTemplate template = new BucketAccessControlsTemplate().entity("allUsers").role(Role.READER);
+ BucketAccessControlsTemplate template = BucketAccessControlsTemplate.create("allUsers", Role.READER);
BucketAccessControls response = api().patchBucketAccessControls(BUCKET_NAME, "allUsers", template);
assertNotNull(response);
- assertEquals(response.getId(), BUCKET_NAME + "/allUsers");
- assertEquals(response.getRole(), Role.READER);
+ assertEquals(response.id(), BUCKET_NAME + "/allUsers");
+ assertEquals(response.role(), Role.READER);
}
@Test(groups = "live", dependsOnMethods = "testPatchBucketAcl")
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
index 6721ddc..ef41d71 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
@@ -26,7 +26,7 @@ import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Projection;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
import org.jclouds.googlecloudstorage.options.GetBucketOptions;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
index 3458706..c0ca7c6 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
@@ -18,26 +18,26 @@ package org.jclouds.googlecloudstorage.features;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertSame;
import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertNull;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import org.jclouds.googlecloudstorage.domain.Bucket;
+import org.jclouds.googlecloudstorage.domain.Bucket.Cors;
+import org.jclouds.googlecloudstorage.domain.Bucket.Logging;
+import org.jclouds.googlecloudstorage.domain.Bucket.Versioning;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Projection;
-import org.jclouds.googlecloudstorage.domain.Bucket;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass;
import org.jclouds.googlecloudstorage.domain.ListPage;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
-import org.jclouds.googlecloudstorage.domain.internal.BucketCors;
-import org.jclouds.googlecloudstorage.domain.internal.Logging;
-import org.jclouds.googlecloudstorage.domain.internal.Versioning;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
import org.jclouds.googlecloudstorage.options.DeleteBucketOptions;
@@ -71,27 +71,26 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
BucketAccessControls acl = BucketAccessControls.builder().bucket(BUCKET_NAME).entity("allUsers").role(Role.OWNER)
.build();
- DefaultObjectAccessControls oac = DefaultObjectAccessControls.builder().bucket(BUCKET_NAME).entity("allUsers")
+ ObjectAccessControls oac = ObjectAccessControls.builder().bucket(BUCKET_NAME).entity("allUsers")
.role(ObjectRole.OWNER).build();
- BucketCors bucketCors = BucketCors.builder().addOrigin("http://example.appspot.com").addMethod("GET")
- .addMethod("HEAD").addResponseHeader("x-meta-goog-custom").maxAgeSeconds(10).build();
- Versioning version = Versioning.builder().enalbled(true).build();
+ Cors cors = Cors.create(Arrays.asList("http://example.appspot.com"), Arrays.asList("GET", "HEAD"),
+ Arrays.asList("x-meta-goog-custom"), 10);
+ Versioning version = Versioning.create(true);
- Logging log = Logging.builder().logBucket(LOG_BUCKET_NAME).logObjectPrefix(BUCKET_NAME).build();
+ Logging log = Logging.create(LOG_BUCKET_NAME, BUCKET_NAME);
BucketTemplate template = new BucketTemplate().name(BUCKET_NAME).addAcl(acl).addDefaultObjectAccessControls(oac)
.versioning(version).location(Location.US_CENTRAL2).logging(log)
- .storageClass(StorageClass.DURABLE_REDUCED_AVAILABILITY).addCORS(bucketCors);
+ .storageClass(StorageClass.DURABLE_REDUCED_AVAILABILITY).addCORS(cors);
Bucket response = api().createBucket(PROJECT_NUMBER, template);
assertNotNull(response);
- assertNotNull(response.getCors());
- assertTrue(response.getCors().size() == 1);
- assertEquals(response.getKind(), Kind.BUCKET);
- assertEquals(response.getName(), BUCKET_NAME);
- assertEquals(response.getLocation(), Location.US_CENTRAL2);
- assertTrue(response.getVersioning().isEnabled());
+ assertNotNull(response.cors());
+ assertTrue(response.cors().size() == 1);
+ assertEquals(response.name(), BUCKET_NAME);
+ assertEquals(response.location(), Location.US_CENTRAL2);
+ assertTrue(response.versioning().enabled());
}
@Test(groups = "live", dependsOnMethods = { "testCreateBucket" })
@@ -105,27 +104,25 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
@Test(groups = "live")
public void testCreateBucketWithOptions() {
-
- DefaultObjectAccessControls oac = DefaultObjectAccessControls.builder().bucket(BUCKET_NAME_WITHOPTIONS)
+ ObjectAccessControls oac = ObjectAccessControls.builder().bucket(BUCKET_NAME_WITHOPTIONS)
.entity("allUsers").role(ObjectRole.OWNER).build();
- BucketCors bucketCors = BucketCors.builder().addOrigin("http://example.appspot.com").addMethod("GET")
- .addMethod("HEAD").addResponseHeader("x-meta-goog-custom").maxAgeSeconds(10).build();
- Versioning version = Versioning.builder().enalbled(true).build();
+ Cors cors = Cors.create(Arrays.asList("http://example.appspot.com"), Arrays.asList("GET", "HEAD"),
+ Arrays.asList("x-meta-goog-custom"), 10);
+ Versioning version = Versioning.create(true);
BucketTemplate template = new BucketTemplate().name(BUCKET_NAME_WITHOPTIONS).addDefaultObjectAccessControls(oac)
.versioning(version).location(Location.US_CENTRAL2)
- .storageClass(StorageClass.DURABLE_REDUCED_AVAILABILITY).addCORS(bucketCors);
+ .storageClass(StorageClass.DURABLE_REDUCED_AVAILABILITY).addCORS(cors);
InsertBucketOptions options = new InsertBucketOptions().projection(Projection.FULL);
Bucket response = api().createBucket(PROJECT_NUMBER, template, options);
assertNotNull(response);
- assertNotNull(response.getCors());
- assertEquals(response.getKind(), Kind.BUCKET);
- assertEquals(response.getName(), BUCKET_NAME_WITHOPTIONS);
- assertEquals(response.getLocation(), Location.US_CENTRAL2);
- assertTrue(response.getVersioning().isEnabled());
+ assertNotNull(response.cors());
+ assertEquals(response.name(), BUCKET_NAME_WITHOPTIONS);
+ assertEquals(response.location(), Location.US_CENTRAL2);
+ assertTrue(response.versioning().enabled());
}
@Test(groups = "live", dependsOnMethods = "testCreateBucket")
@@ -136,8 +133,8 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
Bucket response = api().updateBucket(BUCKET_NAME, template);
assertNotNull(response);
- assertEquals(response.getName(), BUCKET_NAME);
- assertNotNull(response.getAcl());
+ assertEquals(response.name(), BUCKET_NAME);
+ assertNotNull(response.acl());
}
@Test(groups = "live", dependsOnMethods = "testCreateBucketWithOptions")
@@ -150,10 +147,10 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
assertNotNull(response);
- metageneration = response.getMetageneration();
+ metageneration = response.metageneration();
- assertEquals(response.getName(), BUCKET_NAME_WITHOPTIONS);
- assertNotNull(response.getAcl());
+ assertEquals(response.name(), BUCKET_NAME_WITHOPTIONS);
+ assertNotNull(response.acl());
}
@Test(groups = "live", dependsOnMethods = "testCreateBucket")
@@ -161,8 +158,7 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
Bucket response = api().getBucket(BUCKET_NAME);
assertNotNull(response);
- assertEquals(response.getName(), BUCKET_NAME);
- assertEquals(response.getKind(), Kind.BUCKET);
+ assertEquals(response.name(), BUCKET_NAME);
}
@Test(groups = "live", dependsOnMethods = "testUpdateBucketWithOptions")
@@ -171,8 +167,7 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
Bucket response = api().getBucket(BUCKET_NAME_WITHOPTIONS, options);
assertNotNull(response);
- assertEquals(response.getName(), BUCKET_NAME_WITHOPTIONS);
- assertEquals(response.getKind(), Kind.BUCKET);
+ assertEquals(response.name(), BUCKET_NAME_WITHOPTIONS);
}
@Test(groups = "live", dependsOnMethods = "testCreateBucket")
@@ -192,14 +187,14 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
@Test(groups = "live", dependsOnMethods = "testCreateBucket")
public void testPatchBucket() {
- Logging logging = Logging.builder().logBucket(LOG_BUCKET_NAME).logObjectPrefix(BUCKET_NAME).build();
+ Logging logging = Logging.create(LOG_BUCKET_NAME, BUCKET_NAME);
BucketTemplate template = new BucketTemplate().name(BUCKET_NAME).logging(logging);
Bucket response = api().patchBucket(BUCKET_NAME, template);
assertNotNull(response);
- assertEquals(response.getName(), BUCKET_NAME);
- assertEquals(response.getLogging().getLogBucket(), LOG_BUCKET_NAME);
+ assertEquals(response.name(), BUCKET_NAME);
+ assertEquals(response.logging().logBucket(), LOG_BUCKET_NAME);
}
@Test(groups = "live", dependsOnMethods = { "testListBucket", "testGetBucket", "testUpdateBucket" })
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
index 2e09031..15bd44f 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
@@ -23,9 +23,9 @@ import static org.testng.AssertJUnit.assertNull;
import javax.ws.rs.core.MediaType;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
+import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
import org.jclouds.googlecloudstorage.parse.DefaultObjectAclGetTest;
import org.jclouds.googlecloudstorage.parse.DefaultObjectAclInsertTest;
@@ -115,8 +115,7 @@ public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudSto
DefaultObjectAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE),
TOKEN_RESPONSE, insertRequest, CREATE_DEFAULT_OBJECT_ACL_RESPONSE).getDefaultObjectAccessControlsApi();
- DefaultObjectAccessControlsTemplate template = new DefaultObjectAccessControlsTemplate().entity("allUsers").role(
- ObjectRole.OWNER);
+ ObjectAccessControlsTemplate template = ObjectAccessControlsTemplate.create("allUsers", ObjectRole.OWNER);
assertEquals(api.createDefaultObjectAccessControls(EXPECTED_TEST_BUCKET, template),
new DefaultObjectAclInsertTest().expected());
@@ -166,8 +165,7 @@ public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudSto
DefaultObjectAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE),
TOKEN_RESPONSE, update, updateResponse).getDefaultObjectAccessControlsApi();
- DefaultObjectAccessControls options = DefaultObjectAccessControls.builder().entity("allUsers")
- .role(ObjectRole.OWNER).build();
+ ObjectAccessControls options = ObjectAccessControls.builder().entity("allUsers").role(ObjectRole.OWNER).build();
assertEquals(api.updateDefaultObjectAccessControls(EXPECTED_TEST_BUCKET, "allUsers", options),
new DefaultObjectAclInsertTest().expected());
@@ -191,8 +189,7 @@ public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudSto
DefaultObjectAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE),
TOKEN_RESPONSE, update, updateResponse).getDefaultObjectAccessControlsApi();
- DefaultObjectAccessControls options = DefaultObjectAccessControls.builder().entity("allUsers")
- .role(ObjectRole.OWNER).build();
+ ObjectAccessControls options = ObjectAccessControls.builder().entity("allUsers").role(ObjectRole.OWNER).build();
assertEquals(api.updateDefaultObjectAccessControls(EXPECTED_TEST_BUCKET, "allUsers", options, ObjectRole.OWNER),
new DefaultObjectAclInsertTest().expected());
@@ -215,8 +212,7 @@ public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudSto
DefaultObjectAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE),
TOKEN_RESPONSE, update, updateResponse).getDefaultObjectAccessControlsApi();
- DefaultObjectAccessControls options = DefaultObjectAccessControls.builder().entity("allUsers")
- .role(ObjectRole.OWNER).build();
+ ObjectAccessControls options = ObjectAccessControls.builder().entity("allUsers").role(ObjectRole.OWNER).build();
assertEquals(api.patchDefaultObjectAccessControls(EXPECTED_TEST_BUCKET, "allUsers", options),
new DefaultObjectAclInsertTest().expected());
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
index 4e131c5..d15391e 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
@@ -19,15 +19,14 @@ package org.jclouds.googlecloudstorage.features;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
+import java.util.List;
import java.util.UUID;
import org.jclouds.googlecloudstorage.domain.Bucket;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.ListDefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
-import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate;
+import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
import org.testng.annotations.Test;
@@ -48,56 +47,50 @@ public class DefaultObjectAccessControlsApiLiveTest extends BaseGoogleCloudStora
@Test(groups = "live")
public void testCreateDefaultObjectAcl() {
createBucket(BUCKET_NAME);
- DefaultObjectAccessControlsTemplate template = new DefaultObjectAccessControlsTemplate().entity("allUsers").role(
- ObjectRole.READER);
+ ObjectAccessControlsTemplate template = ObjectAccessControlsTemplate.create("allUsers", ObjectRole.READER);
- DefaultObjectAccessControls response = api().createDefaultObjectAccessControls(BUCKET_NAME, template);
+ ObjectAccessControls response = api().createDefaultObjectAccessControls(BUCKET_NAME, template);
assertNotNull(response);
- assertEquals(response.getEntity(), "allUsers");
- assertEquals(response.getRole(), ObjectRole.READER);
+ assertEquals(response.entity(), "allUsers");
+ assertEquals(response.role(), ObjectRole.READER);
}
@Test(groups = "live", dependsOnMethods = "testCreateDefaultObjectAcl")
public void testUpdateDefaultObjectAcl() {
- DefaultObjectAccessControls defaultObjectAcl = DefaultObjectAccessControls.builder().bucket(BUCKET_NAME)
+ ObjectAccessControls defaultObjectAcl = ObjectAccessControls.builder().bucket(BUCKET_NAME)
.entity("allUsers").role(ObjectRole.OWNER).build();
- DefaultObjectAccessControls response = api().updateDefaultObjectAccessControls(BUCKET_NAME, "allUsers",
- defaultObjectAcl);
+ ObjectAccessControls response = api().updateDefaultObjectAccessControls(BUCKET_NAME, "allUsers", defaultObjectAcl);
assertNotNull(response);
- assertEquals(response.getEntity(), "allUsers");
- assertEquals(response.getRole(), ObjectRole.OWNER);
+ assertEquals(response.entity(), "allUsers");
+ assertEquals(response.role(), ObjectRole.OWNER);
}
@Test(groups = "live", dependsOnMethods = "testUpdateDefaultObjectAcl")
public void testGetDefaultObjectAcl() {
- DefaultObjectAccessControls response = api().getDefaultObjectAccessControls(BUCKET_NAME, "allUsers");
+ ObjectAccessControls response = api().getDefaultObjectAccessControls(BUCKET_NAME, "allUsers");
assertNotNull(response);
- assertEquals(response.getEntity(), "allUsers");
- assertEquals(response.getRole(), ObjectRole.OWNER);
+ assertEquals(response.entity(), "allUsers");
+ assertEquals(response.role(), ObjectRole.OWNER);
}
@Test(groups = "live", dependsOnMethods = "testUpdateDefaultObjectAcl")
public void testListDefaultObjectAcl() {
- ListDefaultObjectAccessControls response = api().listDefaultObjectAccessControls(BUCKET_NAME);
-
+ List<ObjectAccessControls> response = api().listDefaultObjectAccessControls(BUCKET_NAME);
assertNotNull(response);
- assertEquals(response.getKind(), Kind.OBJECT_ACCESS_CONTROLS);
- assertNotNull(response.getItems());
}
@Test(groups = "live", dependsOnMethods = "testUpdateDefaultObjectAcl")
public void testPatchDefaultObjectAcl() {
- DefaultObjectAccessControls defaultObjectAcl = DefaultObjectAccessControls.builder().bucket(BUCKET_NAME)
+ ObjectAccessControls defaultObjectAcl = ObjectAccessControls.builder().bucket(BUCKET_NAME)
.entity("allUsers").role(ObjectRole.READER).build();
- DefaultObjectAccessControls response = api().patchDefaultObjectAccessControls(BUCKET_NAME, "allUsers",
- defaultObjectAcl);
+ ObjectAccessControls response = api().patchDefaultObjectAccessControls(BUCKET_NAME, "allUsers", defaultObjectAcl);
assertNotNull(response);
- assertEquals(response.getEntity(), "allUsers");
- assertEquals(response.getRole(), ObjectRole.READER);
+ assertEquals(response.entity(), "allUsers");
+ assertEquals(response.role(), ObjectRole.READER);
}
@Test(groups = "live", dependsOnMethods = "testPatchDefaultObjectAcl")
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
index e40a020..2c7562b 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
@@ -17,13 +17,13 @@
package org.jclouds.googlecloudstorage.features;
+import static org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole.OWNER;
import static org.jclouds.googlecloudstorage.reference.GoogleCloudStorageConstants.STORAGE_FULLCONTROL_SCOPE;
import static org.testng.Assert.assertEquals;
import static org.testng.AssertJUnit.assertNull;
import javax.ws.rs.core.MediaType;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
import org.jclouds.googlecloudstorage.parse.ObjectAclGetTest;
@@ -151,8 +151,7 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
ObjectAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
insertRequest, CREATE_OBJECT_ACL_RESPONSE).getObjectAccessControlsApi();
- ObjectAccessControlsTemplate template = new ObjectAccessControlsTemplate().entity(EXPECTED_TEST_USER_ENTITY)
- .role(ObjectRole.OWNER);
+ ObjectAccessControlsTemplate template = ObjectAccessControlsTemplate.create(EXPECTED_TEST_USER_ENTITY, OWNER);
assertEquals(api.createObjectAccessControls(EXPECTED_TEST_BUCKET, EXPECTED_TEST_OBJECT, template),
new ObjectAclInsertTest().expected());
@@ -173,8 +172,8 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
ObjectAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
insertRequest, CREATE_OBJECT_ACL_RESPONSE).getObjectAccessControlsApi();
- ObjectAccessControlsTemplate template = new ObjectAccessControlsTemplate().entity(
- "user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d").role(ObjectRole.OWNER);
+ ObjectAccessControlsTemplate template = ObjectAccessControlsTemplate
+ .create("user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d", OWNER);
assertEquals(
api.createObjectAccessControls(EXPECTED_TEST_BUCKET, EXPECTED_TEST_OBJECT, template, Long.valueOf(100)),
@@ -199,8 +198,7 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
ObjectAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
update, updateResponse).getObjectAccessControlsApi();
- ObjectAccessControlsTemplate template = new ObjectAccessControlsTemplate().entity("allUsers").role(
- ObjectRole.OWNER);
+ ObjectAccessControlsTemplate template = ObjectAccessControlsTemplate.create("allUsers", OWNER);
assertEquals(api.updateObjectAccessControls(EXPECTED_TEST_BUCKET, EXPECTED_TEST_OBJECT, "allUsers", template),
new ObjectAclUpdateTest().expected());
@@ -223,8 +221,7 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
ObjectAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
update, updateResponse).getObjectAccessControlsApi();
- ObjectAccessControlsTemplate template = new ObjectAccessControlsTemplate().entity("allUsers").role(
- ObjectRole.OWNER);
+ ObjectAccessControlsTemplate template = ObjectAccessControlsTemplate.create("allUsers", OWNER);
assertEquals(
api.updateObjectAccessControls(EXPECTED_TEST_BUCKET, EXPECTED_TEST_OBJECT, "allUsers", template,
@@ -248,8 +245,7 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
ObjectAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
patchRequest, patchResponse).getObjectAccessControlsApi();
- ObjectAccessControlsTemplate template = new ObjectAccessControlsTemplate().entity("allUsers").role(
- ObjectRole.OWNER);
+ ObjectAccessControlsTemplate template = ObjectAccessControlsTemplate.create("allUsers", OWNER);
assertEquals(api.patchObjectAccessControls(EXPECTED_TEST_BUCKET, EXPECTED_TEST_OBJECT, "allUsers", template),
new ObjectAclUpdateTest().expected());
@@ -272,8 +268,7 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
ObjectAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
patchRequest, patchResponse).getObjectAccessControlsApi();
- ObjectAccessControlsTemplate template = new ObjectAccessControlsTemplate().entity("allUsers").role(
- ObjectRole.OWNER);
+ ObjectAccessControlsTemplate template = ObjectAccessControlsTemplate.create("allUsers", OWNER);
assertEquals(
api.patchObjectAccessControls(EXPECTED_TEST_BUCKET, EXPECTED_TEST_OBJECT, "allUsers", template,
Long.valueOf(100)), new ObjectAclUpdateTest().expected());
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
index 6319683..b133b63 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
@@ -16,13 +16,14 @@
*/
package org.jclouds.googlecloudstorage.features;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
+import static com.google.common.io.BaseEncoding.base64;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.entry;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
import java.io.IOException;
-import java.util.Set;
+import java.util.List;
import java.util.UUID;
import javax.ws.rs.core.MediaType;
@@ -34,7 +35,6 @@ import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Projection
import org.jclouds.googlecloudstorage.domain.GCSObject;
import org.jclouds.googlecloudstorage.domain.ListPage;
import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.domain.templates.ComposeObjectTemplate;
import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
@@ -56,12 +56,12 @@ import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import com.beust.jcommander.internal.Sets;
+import com.beust.jcommander.internal.Lists;
import com.google.common.collect.ImmutableMap;
import com.google.common.hash.HashCode;
-import com.google.common.hash.HashFunction;
import com.google.common.hash.Hashing;
import com.google.common.io.ByteSource;
+import com.google.common.primitives.Bytes;
public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
@@ -79,8 +79,8 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
private Long metageneration;
private Long generation;
- private HashCode hcMd5;
- private HashCode hcCrc32c;
+ private String md5Hash;
+ private String crc32c;
private ObjectApi api() {
return api.getObjectApi();
@@ -117,8 +117,8 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
payload.getPayload().getContentMetadata().getContentLength(), payload.getPayload(), options);
assertNotNull(gcsObject);
- assertEquals(gcsObject.getBucket(), BUCKET_NAME);
- assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME);
+ assertEquals(gcsObject.bucket(), BUCKET_NAME);
+ assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME);
}
@Test(groups = "live", dependsOnMethods = "testSimpleUpload")
@@ -130,7 +130,7 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
assertNotNull(meta);
assertEquals(meta.getContentType(), "text/plain");
- testPayload.getPayload().getContentMetadata().setContentDisposition("attachement");
+ testPayload.getPayload().getContentMetadata().setContentDisposition("attachment");
assertEquals(ByteStreams2.toByteArrayAndClose(impl.getPayload().openStream()),
ByteStreams2.toByteArrayAndClose(testPayload.getPayload().openStream()));
@@ -147,16 +147,14 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
GCSObject gcsObject = api().simpleUpload(BUCKET_NAME, "image/jpeg", contentLength, payload, options);
assertNotNull(gcsObject);
- assertEquals(gcsObject.getBucket(), BUCKET_NAME);
- assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME2);
+ assertEquals(gcsObject.bucket(), BUCKET_NAME);
+ assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME2);
// This is a client side validation of md5
- HashFunction hf = Hashing.md5();
- hcMd5 = hf.newHasher().putBytes(testSource.read()).hash();
-
- assertEquals(gcsObject.getMd5HashCode(), hcMd5);
+ md5Hash = base64().encode(testSource.hash(Hashing.md5()).asBytes());
+ // TODO: crc32c = without making a compile dep on guava 18.
- // TODO: crc32c validation without making a compile dep on guava 18+
+ checkHashCodes(gcsObject);
}
@Test(groups = "live", dependsOnMethods = "testSimpleUpload")
@@ -165,12 +163,12 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
assertNotNull(gcsObject);
- metageneration = gcsObject.getMetageneration();
- generation = gcsObject.getGeneration();
+ metageneration = gcsObject.metageneration();
+ generation = gcsObject.generation();
- assertEquals(gcsObject.getBucket(), BUCKET_NAME);
- assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME);
- assertEquals(gcsObject.getContentType(), "text/plain");
+ assertEquals(gcsObject.bucket(), BUCKET_NAME);
+ assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME);
+ assertEquals(gcsObject.contentType(), "text/plain");
}
@Test(groups = "live", dependsOnMethods = "testGetObject")
@@ -181,10 +179,10 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
GCSObject gcsObject = api().getObject(BUCKET_NAME, UPLOAD_OBJECT_NAME, options);
assertNotNull(gcsObject);
- assertNotNull(gcsObject.getAcl());
- assertEquals(gcsObject.getBucket(), BUCKET_NAME);
- assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME);
- assertEquals(gcsObject.getContentType(), "text/plain");
+ assertNotNull(gcsObject.acl());
+ assertEquals(gcsObject.bucket(), BUCKET_NAME);
+ assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME);
+ assertEquals(gcsObject.contentType(), "text/plain");
}
@Test(groups = "live", dependsOnMethods = "testGetObject")
@@ -192,9 +190,9 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
GCSObject gcsObject = api().copyObject(BUCKET_NAME2, COPIED_OBJECT_NAME, BUCKET_NAME, UPLOAD_OBJECT_NAME);
assertNotNull(gcsObject);
- assertEquals(gcsObject.getBucket(), BUCKET_NAME2);
- assertEquals(gcsObject.getName(), COPIED_OBJECT_NAME);
- assertEquals(gcsObject.getContentType(), "text/plain");
+ assertEquals(gcsObject.bucket(), BUCKET_NAME2);
+ assertEquals(gcsObject.name(), COPIED_OBJECT_NAME);
+ assertEquals(gcsObject.contentType(), "text/plain");
// Test for data
@@ -214,10 +212,10 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
.copyObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME, BUCKET_NAME, UPLOAD_OBJECT_NAME, options);
assertNotNull(gcsObject);
- assertNotNull(gcsObject.getAcl());
- assertEquals(gcsObject.getBucket(), BUCKET_NAME2);
- assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME);
- assertEquals(gcsObject.getContentType(), "text/plain");
+ assertNotNull(gcsObject.acl());
+ assertEquals(gcsObject.bucket(), BUCKET_NAME2);
+ assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME);
+ assertEquals(gcsObject.contentType(), "text/plain");
}
@Test(groups = "live", dependsOnMethods = "testCopyObjectWithOptions")
@@ -226,31 +224,29 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
.role(ObjectRole.OWNER).build();
ObjectTemplate destination = new ObjectTemplate().contentType("text/plain").addAcl(oacl);
- Set<GCSObject> sourceList = Sets.newLinkedHashSet();
+ List<GCSObject> sourceList = Lists.newArrayList();
sourceList.add(api().getObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME));
sourceList.add(api().getObject(BUCKET_NAME2, COPIED_OBJECT_NAME));
- ComposeObjectTemplate requestTemplate = new ComposeObjectTemplate().sourceObjects(sourceList).destination(
- destination);
+ ComposeObjectTemplate requestTemplate = ComposeObjectTemplate.create(sourceList, destination);
GCSObject gcsObject = api().composeObjects(BUCKET_NAME2, COMPOSED_OBJECT, requestTemplate);
assertNotNull(gcsObject);
- assertNotNull(gcsObject.getAcl());
- assertEquals(gcsObject.getBucket(), BUCKET_NAME2);
- assertEquals(gcsObject.getName(), COMPOSED_OBJECT);
- assertEquals(gcsObject.getContentType(), "text/plain");
+ assertNotNull(gcsObject.acl());
+ assertEquals(gcsObject.bucket(), BUCKET_NAME2);
+ assertEquals(gcsObject.name(), COMPOSED_OBJECT);
+ assertEquals(gcsObject.contentType(), "text/plain");
}
@Test(groups = "live", dependsOnMethods = "testComposeObject")
public void testComposeObjectWithOptions() {
ObjectTemplate destination = new ObjectTemplate().contentType(MediaType.APPLICATION_JSON);
- Set<GCSObject> sourceList = Sets.newLinkedHashSet();
+ List<GCSObject> sourceList = Lists.newArrayList();
sourceList.add(api().getObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME));
sourceList.add(api().getObject(BUCKET_NAME2, COPIED_OBJECT_NAME));
- ComposeObjectTemplate requestTemplate = new ComposeObjectTemplate().sourceObjects(sourceList).destination(
- destination);
+ ComposeObjectTemplate requestTemplate = ComposeObjectTemplate.create(sourceList, destination);
ComposeObjectOptions options = new ComposeObjectOptions().destinationPredefinedAcl(
DestinationPredefinedAcl.BUCKET_OWNER_READ).ifMetagenerationNotMatch(RANDOM_LONG);
@@ -258,10 +254,10 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
GCSObject gcsObject = api().composeObjects(BUCKET_NAME2, COMPOSED_OBJECT2, requestTemplate, options);
assertNotNull(gcsObject);
- assertNotNull(gcsObject.getAcl());
- assertEquals(gcsObject.getBucket(), BUCKET_NAME2);
- assertEquals(gcsObject.getName(), COMPOSED_OBJECT2);
- assertEquals(gcsObject.getContentType(), MediaType.APPLICATION_JSON);
+ assertNotNull(gcsObject.acl());
+ assertEquals(gcsObject.bucket(), BUCKET_NAME2);
+ assertEquals(gcsObject.name(), COMPOSED_OBJECT2);
+ assertEquals(gcsObject.contentType(), MediaType.APPLICATION_JSON);
}
@Test(groups = "live", dependsOnMethods = "testComposeObjectWithOptions")
@@ -270,7 +266,6 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
assertNotNull(list);
assertEquals(list.get(0) instanceof GCSObject, true);
- assertEquals(list.getKind(), Kind.OBJECTS);
}
@Test(groups = "live", dependsOnMethods = "testComposeObjectWithOptions")
@@ -278,13 +273,12 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
ListObjectOptions options = new ListObjectOptions().maxResults(1);
ListPage<GCSObject> list = api().listObjects(BUCKET_NAME, options);
- while (list.nextMarker().isPresent()) {
+ while (list.nextPageToken() != null) {
assertNotNull(list);
assertEquals(list.get(0) instanceof GCSObject, true);
assertEquals(list.size(), 1);
- assertEquals(list.getKind(), Kind.OBJECTS);
- options = new ListObjectOptions().maxResults(1).pageToken(list.getNextPageToken());
+ options = new ListObjectOptions().maxResults(1).pageToken(list.nextPageToken());
list = api().listObjects(BUCKET_NAME, options);
}
}
@@ -299,10 +293,10 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
GCSObject gcsObject = api().updateObject(BUCKET_NAME, UPLOAD_OBJECT_NAME2, template);
assertNotNull(gcsObject);
- assertNotNull(gcsObject.getAcl());
- assertEquals(gcsObject.getBucket(), BUCKET_NAME);
- assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME2);
- assertEquals(gcsObject.getContentType(), "image/jpeg");
+ assertNotNull(gcsObject.acl());
+ assertEquals(gcsObject.bucket(), BUCKET_NAME);
+ assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME2);
+ assertEquals(gcsObject.contentType(), "image/jpeg");
}
@Test(groups = "live", dependsOnMethods = "testUpdateObject")
@@ -321,12 +315,12 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
GCSObject gcsObject = api().updateObject(BUCKET_NAME, UPLOAD_OBJECT_NAME2, template, options);
assertNotNull(gcsObject);
- assertNotNull(gcsObject.getAcl());
- assertEquals(gcsObject.getBucket(), BUCKET_NAME);
- assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME2);
- assertEquals(gcsObject.getContentType(), "image/jpeg");
- assertNotNull(gcsObject.getAllMetadata());
- assertNotNull(gcsObject.getAllMetadata().get(METADATA_KEY), METADATA_VALUE);
+ assertNotNull(gcsObject.acl());
+ assertEquals(gcsObject.bucket(), BUCKET_NAME);
+ assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME2);
+ assertEquals(gcsObject.contentType(), "image/jpeg");
+ assertNotNull(gcsObject.metadata());
+ assertNotNull(gcsObject.metadata().get(METADATA_KEY), METADATA_VALUE);
}
@Test(groups = "live", dependsOnMethods = "testUpdateObjectWithOptions")
@@ -338,10 +332,10 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
GCSObject gcsObject = api().patchObject(BUCKET_NAME, UPLOAD_OBJECT_NAME2, template);
assertNotNull(gcsObject);
- assertNotNull(gcsObject.getAcl());
- assertEquals(gcsObject.getBucket(), BUCKET_NAME);
- assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME2);
- assertEquals(gcsObject.getContentType(), "image/jpeg");
+ assertNotNull(gcsObject.acl());
+ assertEquals(gcsObject.bucket(), BUCKET_NAME);
+ assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME2);
+ assertEquals(gcsObject.contentType(), "image/jpeg");
}
@Test(groups = "live", dependsOnMethods = "testPatchObject")
@@ -352,16 +346,17 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
UpdateObjectOptions options = new UpdateObjectOptions().ifMetagenerationNotMatch(RANDOM_LONG)
.ifGenerationNotMatch(RANDOM_LONG);
+
ObjectTemplate template = new ObjectTemplate().addAcl(oacl).contentType("image/jpeg")
.contentDisposition("attachment");
GCSObject gcsObject = api().patchObject(BUCKET_NAME, UPLOAD_OBJECT_NAME2, template, options);
assertNotNull(gcsObject);
- assertNotNull(gcsObject.getAcl());
- assertEquals(gcsObject.getBucket(), BUCKET_NAME);
- assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME2);
- assertEquals(gcsObject.getContentType(), "image/jpeg");
- assertEquals(gcsObject.getContentDisposition(), "attachment");
+ assertNotNull(gcsObject.acl());
+ assertEquals(gcsObject.bucket(), BUCKET_NAME);
+ assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME2);
+ assertEquals(gcsObject.contentType(), "image/jpeg");
+ assertEquals(gcsObject.contentDisposition(), "attachment");
}
@Test(groups = "live", dependsOnMethods = "testPatchObjectsWithOptions")
@@ -377,23 +372,21 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
.role(ObjectRole.OWNER).build();
// This would trigger server side validation of md5
- hcMd5 = byteSource.hash(Hashing.md5());
-
- // TODO: template.crc32c without making a compile dep on guava 18.
+ md5Hash = base64().encode(byteSource.hash(Hashing.md5()).asBytes());
+ // TODO: crc32c = without making a compile dep on guava 18
template.contentType("image/jpeg").addAcl(oacl).size(contentLength).name(MULTIPART_UPLOAD_OBJECT)
- .contentLanguage("en").contentDisposition("attachment").md5Hash(hcMd5)
- .customMetadata("custommetakey1", "custommetavalue1").crc32c(hcCrc32c)
+ .contentLanguage("en").contentDisposition("attachment").md5Hash(md5Hash)
+ .customMetadata("custommetakey1", "custommetavalue1").crc32c(crc32c)
.customMetadata(ImmutableMap.of("Adrian", "powderpuff"));
GCSObject gcsObject = api().multipartUpload(BUCKET_NAME, template, payloadImpl.getPayload());
- assertThat(gcsObject.getBucket()).isEqualTo(BUCKET_NAME);
- assertThat(gcsObject.getName()).isEqualTo(MULTIPART_UPLOAD_OBJECT);
- assertThat(gcsObject.getMd5HashCode()).isEqualTo(hcMd5);
- assertThat(gcsObject.getCrc32cHashcode()).isEqualTo(hcCrc32c);
+ assertThat(gcsObject.bucket()).isEqualTo(BUCKET_NAME);
+ assertThat(gcsObject.name()).isEqualTo(MULTIPART_UPLOAD_OBJECT);
+ checkHashCodes(gcsObject);
- assertThat(gcsObject.getAllMetadata()).contains(entry("custommetakey1", "custommetavalue1"),
+ assertThat(gcsObject.metadata()).contains(entry("custommetakey1", "custommetavalue1"),
entry("Adrian", "powderpuff")).doesNotContainKey("adrian");
PayloadEnclosingImpl impl = api().download(BUCKET_NAME, MULTIPART_UPLOAD_OBJECT);
@@ -402,6 +395,13 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
ByteStreams2.toByteArrayAndClose(payloadImpl.getPayload().openStream()));
}
+ private void checkHashCodes(GCSObject gcsObject) {
+ assertEquals(HashCode.fromBytes(base64().decode(gcsObject.md5Hash())), md5Hash);
+ if (crc32c != null) {
+ assertEquals(HashCode.fromBytes(reverse(base64().decode(gcsObject.crc32c()))), crc32c);
+ }
+ }
+
@Test(groups = "live", dependsOnMethods = "testMultipartJpegUpload")
public void testDeleteObject() {
api().deleteObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME);
@@ -425,4 +425,10 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
api.getBucketApi().deleteBucket(BUCKET_NAME);
api.getBucketApi().deleteBucket(BUCKET_NAME2);
}
+
+ private static byte[] reverse(byte[] b) {
+ List<Byte> hashByte = Bytes.asList(b);
+ List<Byte> reversedList = com.google.common.collect.Lists.reverse(hashByte);
+ return Bytes.toArray(reversedList);
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
index d484ae9..7718281 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
@@ -16,23 +16,22 @@
*/
package org.jclouds.googlecloudstorage.features;
-import static javax.ws.rs.core.Response.Status.OK;
import static javax.ws.rs.core.Response.Status.CREATED;
-
+import static javax.ws.rs.core.Response.Status.OK;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNotEquals;
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.testng.Assert.assertNotNull;
+
import java.io.IOException;
import java.util.UUID;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
import org.jclouds.googlecloudstorage.domain.Bucket;
-import org.jclouds.googlecloudstorage.domain.DomainUtils;
+import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.ResumableUpload;
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
-import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
import org.jclouds.io.Payloads;
import org.jclouds.io.payloads.ByteSourcePayload;
@@ -80,22 +79,22 @@ public class ResumableUploadApiLiveTest extends BaseGoogleCloudStorageApiLiveTes
ResumableUpload initResponse = api().initResumableUpload(BUCKET_NAME, "image/jpeg", contentLength, template);
assertNotNull(initResponse);
- assertEquals(initResponse.getStatusCode().intValue(), OK.getStatusCode());
- assertNotNull(initResponse.getUploadId());
+ assertEquals(initResponse.statusCode(), OK.getStatusCode());
+ assertNotNull(initResponse.uploadId());
- String uploadId = initResponse.getUploadId();
+ String uploadId = initResponse.uploadId();
// Upload the payload
ByteSourcePayload payload = Payloads.newByteSourcePayload(byteSource);
ResumableUpload uploadResponse = api().upload(BUCKET_NAME, uploadId, "image/jpeg", byteSource.read().length + "",
payload);
- assertEquals(uploadResponse.getStatusCode().intValue(), OK.getStatusCode());
+ assertEquals(uploadResponse.statusCode(), OK.getStatusCode());
// CheckStatus
ResumableUpload status = api().checkStatus(BUCKET_NAME, uploadId, "bytes */*");
- int code = status.getStatusCode();
+ int code = status.statusCode();
assertNotEquals(code, INCOMPLETE);
}
@@ -117,15 +116,15 @@ public class ResumableUploadApiLiveTest extends BaseGoogleCloudStorageApiLiveTes
ResumableUpload initResponse = api().initResumableUpload(BUCKET_NAME, "application/pdf", contentLength, template);
assertNotNull(initResponse);
- assertEquals(initResponse.getStatusCode().intValue(), OK.getStatusCode());
- assertNotNull(initResponse.getUploadId());
+ assertEquals(initResponse.statusCode(), OK.getStatusCode());
+ assertNotNull(initResponse.uploadId());
// Get the upload_id for the session
- String uploadId = initResponse.getUploadId();
+ String uploadId = initResponse.uploadId();
// Check the status first
ResumableUpload status = api().checkStatus(BUCKET_NAME, uploadId, "bytes */*");
- int code = status.getStatusCode();
+ int code = status.statusCode();
assertEquals(code, INCOMPLETE);
// Uploads in 2 chunks.
@@ -137,16 +136,16 @@ public class ResumableUploadApiLiveTest extends BaseGoogleCloudStorageApiLiveTes
// Uploading First chunk
ByteSourcePayload payload = Payloads.newByteSourcePayload(byteSource.slice(offset, chunkSize));
long length = byteSource.slice(offset, chunkSize).size();
- String Content_Range = DomainUtils.generateContentRange(0L, length, totalSize);
+ String Content_Range = generateContentRange(0L, length, totalSize);
ResumableUpload uploadResponse = api().chunkUpload(BUCKET_NAME, uploadId, "application/pdf", length,
Content_Range, payload);
- int code2 = uploadResponse.getStatusCode();
+ int code2 = uploadResponse.statusCode();
assertEquals(code2, INCOMPLETE);
// Read uploaded length
- long lowerValue = uploadResponse.getRangeLowerValue();
- long uploaded = uploadResponse.getRangeUpperValue();
+ long lowerValue = uploadResponse.rangeLowerValue();
+ long uploaded = uploadResponse.rangeUpperValue();
assertThat(lowerValue).isEqualTo(0);
assertThat(uploaded).isEqualTo(chunkSize - 1); // confirms chunk is totally uploaded
@@ -157,11 +156,11 @@ public class ResumableUploadApiLiveTest extends BaseGoogleCloudStorageApiLiveTes
ByteSourcePayload payload2 = Payloads.newByteSourcePayload(byteSource.slice(uploaded + 1,
byteSource.read().length - uploaded - 1));
// Upload the 2nd chunk
- String Content_Range2 = DomainUtils.generateContentRange(uploaded + 1, totalSize - 1, totalSize);
+ String Content_Range2 = generateContentRange(uploaded + 1, totalSize - 1, totalSize);
ResumableUpload resumeResponse = api().chunkUpload(BUCKET_NAME, uploadId, "application/pdf", resumeLength,
Content_Range2, payload2);
- int code3 = resumeResponse.getStatusCode();
+ int code3 = resumeResponse.statusCode();
assertThat(code3).isIn(OK.getStatusCode(), CREATED.getStatusCode()); // 200 or 201 if upload succeeded
}
@@ -171,4 +170,8 @@ public class ResumableUploadApiLiveTest extends BaseGoogleCloudStorageApiLiveTes
api.getObjectApi().deleteObject(BUCKET_NAME, CHUNKED_OBJECT_NAME);
api.getBucketApi().deleteBucket(BUCKET_NAME);
}
+
+ private static String generateContentRange(Long lowerLimit, Long upperLimit, Long totalSize) {
+ return "bytes " + lowerLimit + "-" + upperLimit + "/" + totalSize;
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
index c1c41c7..21494f0 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
@@ -16,13 +16,11 @@
*/
package org.jclouds.googlecloudstorage.parse;
-import java.net.URI;
-
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
public class BucketAclGetTest extends BaseGoogleCloudStorageParseTest<BucketAccessControls> {
@@ -36,8 +34,6 @@ public class BucketAclGetTest extends BaseGoogleCloudStorageParseTest<BucketAcce
@Consumes(MediaType.APPLICATION_JSON)
public BucketAccessControls expected() {
return BucketAccessControls.builder().bucket("jcloudtestbucket").entity("allUsers").role(Role.READER)
- .etag("CAM=")
- .selfLink(URI.create("https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers"))
.id("jcloudtestbucket/allUsers").build();
}
}
[3/4] Use AutoValue to reduce bulk of Google Storage value types.
Posted by ad...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListObjectAccessControls.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListObjectAccessControls.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListObjectAccessControls.java
deleted file mode 100644
index 2e2944d..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListObjectAccessControls.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.jclouds.googlecloudstorage.domain;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Set;
-
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-import com.google.common.collect.ImmutableSet;
-
-public class ListObjectAccessControls {
-
- protected final Kind kind;
- protected final Set<ObjectAccessControls> items;
-
- protected ListObjectAccessControls(Kind kind, Set<ObjectAccessControls> items) {
-
- this.kind = checkNotNull(kind, "kind");
- this.items = checkNotNull(items, "items");
- }
-
- public Kind getKind() {
- return kind;
- }
-
- public Set<ObjectAccessControls> getItems() {
- return items;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(kind, items);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- ListObjectAccessControls that = ListObjectAccessControls.class.cast(obj);
- return equal(this.kind, that.kind) && equal(this.items, that.items);
-
- }
-
- protected ToStringHelper string() {
- return toStringHelper(this).omitNullValues().add("kind", kind).add("items", items);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return new Builder().fromListObjectAccessControls(this);
- }
-
- public static final class Builder {
-
- private Kind kind;
- private ImmutableSet.Builder<ObjectAccessControls> items = ImmutableSet.builder();
-
- public Builder kind(Kind kind) {
- this.kind = checkNotNull(kind , "kind");
- return this;
- }
-
- public Builder addItems(ObjectAccessControls bucketAccessControls) {
- this.items.add(bucketAccessControls);
- return this;
- }
-
- public Builder items(Set<ObjectAccessControls> items) {
- this.items.addAll(items);
- return this;
- }
-
- public ListObjectAccessControls build() {
- return new ListObjectAccessControls(this.kind, items.build());
- }
-
- public Builder fromListObjectAccessControls(ListObjectAccessControls in) {
- return this.kind(in.getKind()).items(in.getItems());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListPage.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListPage.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListPage.java
index d01add6..147e3c7 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListPage.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListPage.java
@@ -16,136 +16,43 @@
*/
package org.jclouds.googlecloudstorage.domain;
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
+import java.util.List;
-import java.beans.ConstructorProperties;
-import java.util.Iterator;
-import java.util.Set;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
-import org.jclouds.collect.IterableWithMarker;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Optional;
+import com.google.common.collect.ForwardingList;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
/**
* The collection returned from any <code>listFirstPage()</code> method.
*/
-public class ListPage<T> extends IterableWithMarker<T> {
+public class ListPage<T> extends ForwardingList<T> {
- private final Kind kind;
+ private final List<T> items;
private final String nextPageToken;
- private final Iterable<T> items;
- private final Set<String> prefixes;
+ private final List<String> prefixes;
- @ConstructorProperties({ "kind", "nextPageToken", "items", "prefixes" })
- protected ListPage(Kind kind, String nextPageToken, Iterable<T> items, Set<String> prefixes) {
+ public static <T> ListPage<T> create(Iterable<T> items, String nextPageToken, List<String> prefixes) {
+ return new ListPage<T>(items, nextPageToken, prefixes);
+ }
- this.kind = checkNotNull(kind, "kind");
+ @SerializedNames({ "items", "nextPageToken", "prefixes" })
+ protected ListPage(Iterable<T> items, String nextPageToken, List<String> prefixes) {
+ this.items = items != null ? ImmutableList.copyOf(items) : ImmutableList.<T>of();
this.nextPageToken = nextPageToken;
- this.items = items != null ? ImmutableList.copyOf(items) : ImmutableList.<T> of();
- this.prefixes = prefixes != null ? prefixes : ImmutableSet.<String> of();
- }
-
- public Kind getKind() {
- return kind;
+ this.prefixes = prefixes != null ? prefixes : ImmutableList.<String>of();
}
- public String getNextPageToken() {
+ @Nullable public String nextPageToken() {
return nextPageToken;
}
- public Set<String> getPrefixes() {
+ public List<String> prefixes() {
return prefixes;
}
- @Override
- public Optional<Object> nextMarker() {
- return Optional.<Object> fromNullable(nextPageToken);
- }
-
- @Override
- public Iterator<T> iterator() {
- return checkNotNull(items, "items").iterator();
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(kind, items);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- ListPage<?> that = ListPage.class.cast(obj);
- return equal(this.kind, that.kind) && equal(this.items, that.items);
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).omitNullValues().add("kind", kind).add("nextPageToken", nextPageToken)
- .add("items", items);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static <T> Builder<T> builder() {
- return new Builder<T>();
- }
-
- public Builder<T> toBuilder() {
- return new Builder<T>().fromPagedList(this);
- }
-
- public static final class Builder<T> {
-
- private Kind kind;
- private String nextPageToken;
- private ImmutableList.Builder<T> items = ImmutableList.builder();
- private ImmutableSet.Builder<String> prefixes = ImmutableSet.builder();
-
- public Builder<T> kind(Kind kind) {
- this.kind = kind;
- return this;
- }
-
- public Builder<T> addItem(T item) {
- this.items.add(item);
- return this;
- }
-
- public Builder<T> items(Iterable<T> items) {
- this.items.addAll(items);
- return this;
- }
-
- public Builder<T> prefixes(Set<String> prefixes) {
- this.prefixes.addAll(prefixes);
- return this;
- }
-
- public Builder<T> nextPageToken(String nextPageToken) {
- this.nextPageToken = nextPageToken;
- return this;
- }
-
- public ListPage<T> build() {
- return new ListPage<T>(kind, nextPageToken, items.build(), prefixes.build());
- }
-
- public Builder<T> fromPagedList(ListPage<T> in) {
- return this.kind(in.getKind()).nextPageToken((String) in.nextMarker().orNull()).items(in)
- .prefixes(in.getPrefixes());
-
- }
+ @Override protected List<T> delegate() {
+ return items;
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControls.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControls.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControls.java
index 3cf559f..6d34f4c 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControls.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControls.java
@@ -16,132 +16,69 @@
*/
package org.jclouds.googlecloudstorage.domain;
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.net.URI;
-
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.internal.ProjectTeam;
import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
-import com.google.common.base.Objects;
+import com.google.auto.value.AutoValue;
/**
* Represents a Object Access Control Resource.
*
* @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/>
*/
-public class ObjectAccessControls extends Resource {
-
- protected final String bucket;
- protected final String entity;
- protected final String object;
- protected final Long generation;
- protected final ObjectRole role;
- protected final String email;
- protected final String entityId;
- protected final String domain;
- protected final ProjectTeam projectTeam;
-
- protected ObjectAccessControls(@Nullable String id, @Nullable URI selfLink, @Nullable String etag, String bucket,
- @Nullable String object, @Nullable Long generation, String entity, @Nullable String entityId,
- ObjectRole role, @Nullable String email, @Nullable String domain, @Nullable ProjectTeam projectTeam) {
- super(Kind.OBJECT_ACCESS_CONTROL, id, selfLink, etag);
-
- this.bucket = bucket;
- this.entity = checkNotNull(entity, "entity");
- this.object = object;
- this.generation = generation;
- this.entityId = entityId;
- this.role = checkNotNull(role, "role");
- this.email = email;
- this.domain = domain;
- this.projectTeam = projectTeam;
- }
+@AutoValue
+public abstract class ObjectAccessControls {
+ private final String kind = "storage#objectAccessControl";
- public String getBucket() {
- return bucket;
- }
+ @Nullable public abstract String id();
- public String getEntity() {
- return entity;
- }
+ @Nullable public abstract String bucket();
- public ObjectRole getRole() {
- return role;
- }
+ @Nullable public abstract String object();
- public String getEmail() {
- return email;
- }
+ @Nullable public abstract Long generation();
- public String getObject() {
- return object;
- }
+ public abstract String entity();
- public Long getGeneration() {
- return generation;
- }
+ @Nullable public abstract String entityId();
- public String getDomain() {
- return domain;
- }
+ public abstract ObjectRole role();
- public String getEntityId() {
- return entityId;
- }
+ @Nullable public abstract String email();
- public ProjectTeam getProjectTeam() {
- return projectTeam;
- }
+ @Nullable public abstract String domain();
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- ObjectAccessControls that = ObjectAccessControls.class.cast(obj);
- return equal(this.kind, that.kind) && equal(this.bucket, that.bucket) && equal(this.object, that.object)
- && equal(this.entity, that.entity) && equal(this.id , that.id);
- }
+ @Nullable public abstract ProjectTeam projectTeam();
- protected Objects.ToStringHelper string() {
- return super.string().omitNullValues().add("bucket", bucket).add("entity", entity).add("entityId", entityId)
- .add("object", object).add("generation", generation).add("role", role).add("email", email)
- .add("domain", domain).add("projectTeam", projectTeam);
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(kind, bucket, object, entity);
- }
-
- @Override
- public String toString() {
- return string().toString();
+ @SerializedNames(
+ { "id", "bucket", "object", "generation", "entity", "entityId", "role", "email", "domain", "projectTeam" })
+ public static ObjectAccessControls create(String id, String bucket, String object, Long generation, String entity,
+ String entityId, ObjectRole role, String email, String domain, ProjectTeam projectTeam) {
+ return new AutoValue_ObjectAccessControls(id, bucket, object, generation, entity, entityId, role, email, domain,
+ projectTeam);
}
public static Builder builder() {
return new Builder();
}
- public Builder toBuilder() {
- return new Builder().fromObjectAccessControls(this);
- }
-
- public static final class Builder extends Resource.Builder<Builder> {
-
- protected String object;
- protected Long generation;
- protected String bucket;
- protected String entity;
- protected String entityId;
- protected ObjectRole role;
- protected String email;
- protected String domain;
- protected ProjectTeam projectTeam;
+ public static final class Builder {
+ private String id;
+ private String object;
+ private Long generation;
+ private String bucket;
+ private String entity;
+ private String entityId;
+ private ObjectRole role;
+ private String email;
+ private String domain;
+ private ProjectTeam projectTeam;
+
+ public Builder id(String id) {
+ this.id = id;
+ return this;
+ }
public Builder bucket(String bucket) {
this.bucket = bucket;
@@ -189,19 +126,8 @@ public class ObjectAccessControls extends Resource {
}
public ObjectAccessControls build() {
- return new ObjectAccessControls(super.id, super.selfLink, super.etag, bucket, object, generation, entity,
- entityId, role, email, domain, projectTeam);
- }
-
- public Builder fromObjectAccessControls(ObjectAccessControls in) {
- return super.fromResource(in).bucket(in.getBucket()).entity(in.getEntity()).entityId(in.getEntityId())
- .role(in.getRole()).email(in.getEmail()).domain(in.getDomain()).object(in.getObject())
- .generation(in.getGeneration()).projectTeam(in.getProjectTeam());
- }
-
- @Override
- protected Builder self() {
- return this;
+ return ObjectAccessControls
+ .create(id, bucket, object, generation, entity, entityId, role, email, domain, projectTeam);
}
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Owner.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Owner.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Owner.java
new file mode 100644
index 0000000..57137e6
--- /dev/null
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Owner.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.googlecloudstorage.domain;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import com.google.auto.value.AutoValue;
+
+@AutoValue
+public abstract class Owner {
+ public abstract String entity();
+
+ @Nullable public abstract String entityId();
+
+ @SerializedNames({"entity", "entityId"})
+ public static Owner create(String entity, String entityId) {
+ return new AutoValue_Owner(entity, entityId);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ProjectTeam.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ProjectTeam.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ProjectTeam.java
new file mode 100644
index 0000000..538e4c8
--- /dev/null
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ProjectTeam.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.googlecloudstorage.domain;
+
+import org.jclouds.json.SerializedNames;
+
+import com.google.auto.value.AutoValue;
+
+/**
+ * The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current
+ * bucket's logs.
+ */
+@AutoValue
+public abstract class ProjectTeam {
+
+ public enum Team {
+ OWNERS, EDITORS, VIEWERS;
+
+ public String value() {
+ return name().toLowerCase();
+ }
+
+ @Override
+ public String toString() {
+ return value();
+ }
+
+ public static Team fromValue(String team) {
+ return valueOf(team.toUpperCase());
+ }
+ }
+
+ public abstract String projectNumber();
+
+ public abstract Team team();
+
+ @SerializedNames({ "projectNumber", "team" })
+ public static ProjectTeam create(String projectNumber, Team team) {
+ return new AutoValue_ProjectTeam(projectNumber, team);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Resource.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Resource.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Resource.java
deleted file mode 100644
index 89ef315..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Resource.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain;
-
-import static com.google.common.base.Objects.ToStringHelper;
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.beans.ConstructorProperties;
-import java.net.URI;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.CaseFormat;
-import com.google.common.base.Joiner;
-import com.google.common.base.Objects;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
-
-/**
- * Base class for Google Cloud Storage resources.
- */
-
-public class Resource {
-
- public enum Kind {
- BUCKET_ACCESS_CONTROL, BUCKET_ACCESS_CONTROLS,
- BUCKET, BUCKETS,
- OBJECT_ACCESS_CONTROL, OBJECT_ACCESS_CONTROLS,
- OBJECT, OBJECTS,
- COMPOSE_REQUEST;
-
- public String value() {
- return Joiner.on("#").join("storage", CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, name()));
- }
-
- @Override
- public String toString() {
- return value();
- }
-
- public static Kind fromValue(String kind) {
- return valueOf(CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE,
- Iterables.getLast(Splitter.on("#").split(checkNotNull(kind, "kind")))));
- }
- }
-
- protected final Kind kind;
- protected final String id;
- protected final URI selfLink;
- protected final String etag;
-
- @ConstructorProperties({ "kind", "id", "selfLink", "etag" })
- protected Resource(Kind kind, @Nullable String id, @Nullable URI selfLink, @Nullable String etag) {
- this.kind = checkNotNull(kind, "kind");
- this.id = id;
- this.selfLink = selfLink;
- this.etag = etag;
- }
-
- public Kind getKind() {
- return kind;
- }
-
- public String getId() {
- return id;
- }
-
- public URI getSelfLink() {
- return selfLink;
- }
-
- public String getEtag() {
- return etag;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(kind, id, selfLink, etag);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- Resource that = Resource.class.cast(obj);
- return equal(this.kind, that.kind) && equal(this.id, that.id);
- }
-
- protected ToStringHelper string() {
- return toStringHelper(this).omitNullValues().add("kind", kind).add("id", id).add("selfLink", selfLink)
- .add("etag", etag);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromResource(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
-
- protected abstract T self();
-
- protected Kind kind;
- protected String id;
- protected URI selfLink;
- protected String etag;
-
- protected T kind(Kind kind) {
- this.kind = kind;
- return self();
- }
-
- public T id(String id) {
- this.id = id;
- return self();
- }
-
- public T selfLink(URI selfLink) {
- this.selfLink = selfLink;
- return self();
- }
-
- public T etag(String etag) {
- this.etag = etag;
- return self();
- }
-
- public Resource build() {
- return new Resource(kind, id, selfLink, etag);
- }
-
- public T fromResource(Resource in) {
- return this.kind(in.getKind()).id(in.getId()).selfLink(in.getSelfLink()).etag(in.getEtag());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ResumableUpload.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ResumableUpload.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ResumableUpload.java
index ebb80a1..556347a 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ResumableUpload.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ResumableUpload.java
@@ -16,118 +16,28 @@
*/
package org.jclouds.googlecloudstorage.domain;
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-
import org.jclouds.javax.annotation.Nullable;
-import com.google.common.base.Objects.ToStringHelper;
+import com.google.auto.value.AutoValue;
/**
* Represents results of resumable upload response.
*/
-public class ResumableUpload {
-
- protected final Integer statusCode;
- protected final String uploadId;
- protected final String contentLength;
- protected final Long rangeUpperValue;
- protected final Long rangeLowerValue;
-
- private ResumableUpload(Integer statusCode, @Nullable String uploadId, @Nullable String contentLength,
- @Nullable Long rangeLowerValue, @Nullable Long rangeUpperValue) {
- if (rangeLowerValue != null && rangeUpperValue != null) {
- checkArgument(rangeLowerValue < rangeUpperValue, "lower range must less than upper range, was: %s - %s",
- rangeLowerValue, rangeUpperValue);
- }
- this.statusCode = checkNotNull(statusCode, "statusCode");
- this.uploadId = uploadId;
- this.contentLength = contentLength;
- this.rangeUpperValue = rangeUpperValue;
- this.rangeLowerValue = rangeLowerValue;
- }
-
- public String getUploadId() {
- return uploadId;
- }
-
- public Integer getStatusCode() {
- return statusCode;
- }
-
- public String getContentLength() {
- return contentLength;
- }
-
- public Long getRangeUpperValue() {
- return rangeUpperValue;
- }
-
- public Long getRangeLowerValue() {
- return rangeLowerValue;
- }
-
- protected ToStringHelper string() {
- return toStringHelper(this).add("statusCode", statusCode).add("uploadId", uploadId)
- .add("contentLength", contentLength).add("rangeUpperValue", rangeUpperValue)
- .add("rangeLowerValue", rangeLowerValue);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return new Builder().fromResumableUpload(this);
- }
-
- public static final class Builder {
-
- protected String uploadId;
- protected Integer statusCode;
- protected String contentLength;
- protected Long rangeUpperValue;
- protected Long rangeLowerValue;
-
- public Builder uploadId(String uploadId) {
- this.uploadId = uploadId;
- return this;
- }
-
- public Builder statusCode(Integer statusCode) {
- this.statusCode = statusCode;
- return this;
- }
+@AutoValue
+public abstract class ResumableUpload {
- public Builder contentLength(String contentLength) {
- this.contentLength = contentLength;
- return this;
- }
+ public abstract int statusCode();
- public Builder rangeUpperValue(Long rangeUpperValue) {
- this.rangeUpperValue = rangeUpperValue;
- return this;
- }
+ @Nullable public abstract String uploadId();
- public Builder rangeLowerValue(Long rangeLowerValue) {
- this.rangeLowerValue = rangeLowerValue;
- return this;
- }
+ @Nullable public abstract String contentLength();
- public ResumableUpload build() {
- return new ResumableUpload(statusCode, uploadId, contentLength, rangeLowerValue, rangeUpperValue);
- }
+ @Nullable public abstract Long rangeUpperValue();
- public Builder fromResumableUpload(ResumableUpload in) {
- return this.statusCode(in.getStatusCode()).uploadId(in.getUploadId()).contentLength(in.getContentLength())
- .rangeUpperValue(in.getRangeUpperValue()).rangeLowerValue(in.getRangeLowerValue());
- }
+ @Nullable public abstract Long rangeLowerValue();
+ public static ResumableUpload create(int statusCode, String uploadId, String contentLength, Long rangeLowerValue,
+ Long rangeUpperValue) {
+ return new AutoValue_ResumableUpload(statusCode, uploadId, contentLength, rangeLowerValue, rangeUpperValue);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Action.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Action.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Action.java
deleted file mode 100644
index 67431a3..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Action.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain.internal;
-
-import static com.google.common.base.Objects.toStringHelper;
-
-import com.google.common.base.Objects;
-
-/**
- * This is an Internal Object used in BucketLifeCycles/Rules.
- */
-
-public class Action {
- private final String type;
-
- private Action(String type) {
- this.type = type;
- }
-
- public String getType() {
- return type;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(type);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Action other = (Action) obj;
- if (type == null) {
- if (other.type != null)
- return false;
- } else if (!type.equals(other.type))
- return false;
- return true;
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).add("type", type);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
- private String type;
-
- public Builder type(String type) {
- this.type = type;
- return this;
- }
-
- public Action build() {
- return new Action(this.type);
- }
-
- public Builder fromAction(Action in) {
- return this.type(in.getType());
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/BucketCors.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/BucketCors.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/BucketCors.java
deleted file mode 100644
index 0be95c6..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/BucketCors.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain.internal;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-
-import java.util.Set;
-
-import com.google.common.base.Objects;
-import com.google.common.collect.ImmutableSet;
-
-/**
- * The bucket's Cross-Origin Resource Sharing (CORS) configuration.
- *
- * @see <a href= "https://developers.google.com/storage/docs/cross-origin" />
- */
-
-public class BucketCors {
- private final Set<String> origin;
- private final Set<String> method;
- private final Set<String> responseHeader;
- private final Integer maxAgeSeconds;
-
- private BucketCors(Set<String> origin, Set<String> method, Set<String> responseHeader,
- Integer maxAgeSeconds) {
- this.origin = origin.isEmpty() ? null : origin;
- this.method = method.isEmpty() ? null : method;
- this.responseHeader = responseHeader.isEmpty() ? null : responseHeader;
- this.maxAgeSeconds = maxAgeSeconds;
- }
-
- public Set<String> getOrigin() {
- return origin;
- }
-
- public Set<String> getMethod() {
- return method;
- }
-
- public Set<String> getResponseHeader() {
- return responseHeader;
- }
-
- public Integer getMaxAgeSeconds() {
- return maxAgeSeconds;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(origin, method, responseHeader, maxAgeSeconds);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- BucketCors that = BucketCors.class.cast(obj);
- return equal(this.origin, that.origin) && equal(this.method, that.method)
- && equal(this.responseHeader, that.responseHeader) && equal(this.maxAgeSeconds, that.maxAgeSeconds);
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).omitNullValues().add("origin", origin).add("method", method).add("responseHeader", responseHeader)
- .add("maxAgeSeconds", maxAgeSeconds);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
-
- private ImmutableSet.Builder<String> origin = ImmutableSet.builder();
- private ImmutableSet.Builder<String> method = ImmutableSet.builder();
- private ImmutableSet.Builder<String> reponseHeader = ImmutableSet.builder();
- private Integer maxAgeSeconds;
-
- public Builder addOrigin(String origin) {
- this.origin.add(origin);
- return this;
- }
-
- public Builder origin(Set<String> origin) {
- this.origin.addAll(origin);
- return this;
- }
-
- public Builder addMethod(String method) {
- this.method.add(method);
- return this;
- }
-
- public Builder method(Set<String> method) {
- this.method.addAll(method);
- return this;
- }
-
- public Builder addResponseHeader(String responseHeader) {
- this.reponseHeader.add(responseHeader);
- return this;
- }
-
- public Builder responseHeaders(Set<String> responseHeaders) {
- this.reponseHeader.addAll(responseHeaders);
- return this;
- }
-
- public Builder maxAgeSeconds(Integer maxAgeSeconds) {
- this.maxAgeSeconds = maxAgeSeconds;
- return this;
- }
-
- public BucketCors build() {
- return new BucketCors(this.origin.build(), this.method.build(), this.reponseHeader.build(),
- this.maxAgeSeconds);
- }
-
- public Builder fromCors(BucketCors in) {
- return this.maxAgeSeconds(in.getMaxAgeSeconds()).origin(in.getOrigin()).method(in.getMethod())
- .responseHeaders(in.getResponseHeader());
- }
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/BucketLifeCycle.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/BucketLifeCycle.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/BucketLifeCycle.java
deleted file mode 100644
index 07a7461..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/BucketLifeCycle.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain.internal;
-
-import static com.google.common.base.Objects.toStringHelper;
-
-import java.util.Set;
-
-import com.google.common.base.Objects;
-import com.google.common.collect.ImmutableSet;
-
-/**
- * The bucket's lifecycle configuration.
- *
- * @see <a href= "https://developers.google.com/storage/docs/lifecycle" />
- */
-
-public class BucketLifeCycle {
-
- private final Set<Rule> rules;
-
- private BucketLifeCycle(Set<Rule> rules) {
- this.rules = rules.isEmpty() ? null : rules;
- }
-
- public Set<Rule> getRules() {
- return rules;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(rules);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- BucketLifeCycle other = (BucketLifeCycle) obj;
- if (rules == null) {
- if (other.rules != null)
- return false;
- } else if (!rules.equals(other.rules))
- return false;
- return true;
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).add("rule", rules);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
-
- ImmutableSet.Builder<Rule> rules = ImmutableSet.builder();
-
- public Builder addRule(Rule rule) {
- this.rules.add(rule);
- return this;
- }
-
- public Builder rule(Set<Rule> rules) {
- this.rules.addAll(rules);
- return this;
- }
-
- public BucketLifeCycle build() {
- return new BucketLifeCycle(this.rules.build());
- }
-
- public Builder fromLifeCycle(BucketLifeCycle in) {
- return this.rule(in.getRules());
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Condition.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Condition.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Condition.java
deleted file mode 100644
index d298fe7..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Condition.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain.internal;
-
-import static com.google.common.base.Objects.toStringHelper;
-
-import java.util.Date;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-
-/**
- * This is an Internal Object used in BucketLifeCycles/Rules.
- */
-
-public class Condition {
- private final Integer age;
- private final Date createdBefore;
- private final Boolean isLive;
- private final Integer numNewerVersions;
-
- private Condition(@Nullable Integer age, @Nullable Date createdBefore, @Nullable Boolean isLive,
- @Nullable Integer numNewerVersions) {
- this.age = age;
- this.createdBefore = createdBefore;
- this.isLive = isLive;
- this.numNewerVersions = numNewerVersions;
- }
-
- public Integer getAge() {
- return age;
- }
-
- public Date getCreatedBefore() {
- return createdBefore;
- }
-
- public Boolean getIsLive() {
- return isLive;
- }
-
- public Integer getNumNewerVersions() {
- return numNewerVersions;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(age, createdBefore, isLive, numNewerVersions);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Condition other = (Condition) obj;
- if (age == null) {
- if (other.age != null)
- return false;
- } else if (!age.equals(other.age))
- return false;
- if (createdBefore == null) {
- if (other.createdBefore != null)
- return false;
- } else if (!createdBefore.equals(other.createdBefore))
- return false;
- if (isLive == null) {
- if (other.isLive != null)
- return false;
- } else if (!isLive.equals(other.isLive))
- return false;
- if (numNewerVersions == null) {
- if (other.numNewerVersions != null)
- return false;
- } else if (!numNewerVersions.equals(other.numNewerVersions))
- return false;
- return true;
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).add("age", age).add("createdBefore", createdBefore).add("isLive", isLive)
- .add("numNewerVersions", numNewerVersions);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private Integer age;
- private Date createdBefore;
- private Boolean isLive;
- private Integer numNewerVersions;
-
- public Builder age(Integer age) {
- this.age = age;
- return this;
- }
-
- public Builder createdBefore(Date createdBefore) {
- this.createdBefore = createdBefore;
- return this;
- }
-
- public Builder isLive(Boolean isLive) {
- this.isLive = isLive;
- return this;
- }
-
- public Builder numNewerVersions(Integer numNewerVersions) {
- this.numNewerVersions = numNewerVersions;
- return this;
- }
-
- public Condition build() {
- return new Condition(this.age, this.createdBefore, this.isLive, this.numNewerVersions);
- }
-
- public Builder fromCondition(Condition in) {
- return this.age(in.getAge()).createdBefore(in.getCreatedBefore()).isLive(in.getIsLive())
- .numNewerVersions(in.getNumNewerVersions());
- }
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Logging.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Logging.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Logging.java
deleted file mode 100644
index 1bda912..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Logging.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain.internal;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import com.google.common.base.Objects;
-
-/**
- * The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current
- * bucket's logs.
- *
- * @see <a href= "https://developers.google.com/storage/docs/accesslogs" />
- */
-
-public class Logging {
- private final String logBucket;
- private final String logObjectPrefix;
-
- private Logging(String logBucket, String logObjectPrefix) {
-
- this.logBucket = checkNotNull(logBucket, "logBucket");
- this.logObjectPrefix = checkNotNull(logObjectPrefix , "logObjectPrefix");
- }
-
- public String getLogBucket() {
- return logBucket;
- }
-
- public String getLogObjectPrefix() {
- return logObjectPrefix;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(logBucket, logObjectPrefix);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- Logging that = Logging.class.cast(obj);
- return equal(this.logBucket, that.logBucket) && equal(this.logObjectPrefix, that.logObjectPrefix);
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).add("logBucket", logBucket).add("logObjectPrefix", logObjectPrefix);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
- private String logBucket;
- private String logObjectPrefix;
-
- public Builder logBucket(String logBucket) {
- this.logBucket = logBucket;
- return this;
- }
-
- public Builder logObjectPrefix(String logObjectPrefix) {
- this.logObjectPrefix = logObjectPrefix;
- return this;
- }
-
- public Logging build() {
- return new Logging(this.logBucket, this.logObjectPrefix);
- }
-
- public Builder fromLogging(Logging in) {
- return this.logBucket(in.getLogBucket()).logObjectPrefix(in.getLogObjectPrefix());
- }
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Owner.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Owner.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Owner.java
deleted file mode 100644
index 6f9cbdf..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Owner.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain.internal;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-
-/**
- * This is an internal object used in both Bucket and Object representation
- */
-
-public class Owner {
- private final String entity;
- private final String entityId;
-
- private Owner(String entity, @Nullable String entityId) {
- this.entity = checkNotNull(entity, "entity");
- this.entityId = entityId;
- }
-
- public String getEntity() {
- return entity;
- }
-
- public String getEntityId() {
- return entityId;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(entity, entityId);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- Owner that = Owner.class.cast(obj);
- return equal(this.entity, that.entity);
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).omitNullValues().add("entity", entity).add("entityId", entityId);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
- private String entity;
- private String entityId;
-
- public Builder entity(String entity) {
- this.entity = entity;
- return this;
- }
-
- public Builder entityId(String entityId) {
- this.entityId = entityId;
- return this;
- }
-
- public Owner build() {
- return new Owner(this.entity, this.entityId);
- }
-
- public Builder fromOwner(Owner in) {
- return this.entity(in.getEntity()).entityId(in.getEntityId());
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/ProjectTeam.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/ProjectTeam.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/ProjectTeam.java
deleted file mode 100644
index f4bda2c..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/ProjectTeam.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain.internal;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-
-import com.google.common.base.Objects;
-
-/**
- * The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current
- * bucket's logs.
- */
-
-public final class ProjectTeam {
-
- public enum Team {
- OWNERS, EDITORS, VIEWERS;
-
- public String value() {
- return name().toLowerCase();
- }
-
- @Override
- public String toString() {
- return value();
- }
-
- public static Team fromValue(String team) {
- return valueOf(team.toUpperCase());
- }
- }
-
- private final String projectNumber;
- private final Team team;
-
-
- private ProjectTeam(String projectNumber, Team team) {
- this.projectNumber = projectNumber;
- this.team = team;
- }
-
- public String getProjectNumber() {
- return projectNumber;
- }
-
- public Team getTeam() {
- return team;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(projectNumber, team);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- ProjectTeam that = ProjectTeam.class.cast(obj);
- return equal(this.projectNumber, that.projectNumber) && equal(this.team, that.team);
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).add("projectNumber", projectNumber).add("team", team);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
-
- private String projectNumber;
- private Team team;
-
- public Builder projectNumber(String projectNumber) {
- this.projectNumber = projectNumber;
- return this;
- }
-
- public Builder team(Team team) {
- this.team = team;
- return this;
- }
-
- public ProjectTeam build() {
- return new ProjectTeam(this.projectNumber, this.team);
- }
-
- public Builder fromProjectTeam(ProjectTeam in) {
- return this.projectNumber(in.getProjectNumber()).team(in.getTeam());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Rule.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Rule.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Rule.java
deleted file mode 100644
index 45d298e..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Rule.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain.internal;
-
-import static com.google.common.base.Objects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import com.google.common.base.Objects;
-
-/**
- * The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current
- * bucket's logs.
- */
-
-public class Rule {
- private final Action action;
- private final Condition condition;
-
- private Rule(Action action, Condition condition) {
- this.action = checkNotNull(action, "action");
- this.condition = checkNotNull(condition, "condition");
- }
-
- public Action getAction() {
- return action;
- }
-
- public Condition getCondition() {
- return condition;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(action, condition);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Rule other = (Rule) obj;
- if (action == null) {
- if (other.action != null)
- return false;
- } else if (!action.equals(other.action))
- return false;
- if (condition == null) {
- if (other.condition != null)
- return false;
- } else if (!condition.equals(other.condition))
- return false;
- return true;
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).add("condition", condition).add("action", action);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
- private Action action;
- private Condition condition;
-
- public Builder action(Action action) {
- this.action = action;
- return this;
- }
-
- public Builder condtion(Condition condition) {
- this.condition = condition;
- return this;
- }
-
- public Rule build() {
- return new Rule(this.action, this.condition);
- }
-
- public Builder fromRule(Rule in) {
- return this.action(in.getAction()).condtion(in.getCondition());
-
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Versioning.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Versioning.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Versioning.java
deleted file mode 100644
index dd42113..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Versioning.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain.internal;
-
-import static com.google.common.base.Objects.toStringHelper;
-
-import com.google.common.base.Objects;
-
-/**
- * The bucket's versioning configuration.
- *
- * @see <a href= "https://developers.google.com/storage/docs/object-versioning" />
- */
-
-public final class Versioning {
- private final Boolean enabled;
-
- private Versioning(Boolean enabled) {
- this.enabled = enabled;
- }
-
- public Boolean isEnabled() {
- return enabled;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(enabled);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Versioning other = (Versioning) obj;
- if (enabled == null) {
- if (other.enabled != null)
- return false;
- } else if (!enabled.equals(other.enabled))
- return false;
- return true;
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).add("enabled", enabled);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
-
- private Boolean enabled;
-
- public Builder enalbled(Boolean enabled) {
- this.enabled = enabled;
- return this;
- }
-
- public Versioning build() {
- return new Versioning(this.enabled);
- }
-
- public Builder fromVersioning(Versioning in) {
- return this.enalbled(in.isEnabled());
- }
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Website.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Website.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Website.java
deleted file mode 100644
index 7218c85..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/internal/Website.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain.internal;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Objects.toStringHelper;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-
-/**
- * This is a internal object in bucket resource
- *
- * @see <a href= "https://developers.google.com/storage/docs/website-configuration" />
- */
-
-public class Website {
- private final String mainPageSuffix;
- private final String notFoundPage;
-
- private Website(@Nullable String mainPageSuffix, @Nullable String notFoundPage) {
-
- this.mainPageSuffix = mainPageSuffix;
- this.notFoundPage = notFoundPage;
- }
-
- public String getMainPageSuffix() {
- return mainPageSuffix;
- }
-
- public String getNotFoundPage() {
- return notFoundPage;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(mainPageSuffix, notFoundPage);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null || getClass() != obj.getClass())
- return false;
- Website that = Website.class.cast(obj);
- return equal(this.mainPageSuffix, that.mainPageSuffix);
- }
-
- protected Objects.ToStringHelper string() {
- return toStringHelper(this).add("mainPageSuffix", mainPageSuffix).add("notFoundPage", notFoundPage);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
- private String mainPageSuffix;
- private String notFoundPage;
-
- public Builder mainPageSuffix(String mainPageSuffix) {
- this.mainPageSuffix = mainPageSuffix;
- return this;
- }
-
- public Builder notFoundPage(String notFoundPage) {
- this.notFoundPage = notFoundPage;
- return this;
- }
-
- public Website build() {
- return new Website(this.mainPageSuffix, this.notFoundPage);
- }
-
- public Builder fromWebsite(Website in) {
- return this.mainPageSuffix(in.getMainPageSuffix()).notFoundPage(in.getNotFoundPage());
- }
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketAccessControlsTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketAccessControlsTemplate.java
index 3d62b76..04221aa 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketAccessControlsTemplate.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketAccessControlsTemplate.java
@@ -16,50 +16,18 @@
*/
package org.jclouds.googlecloudstorage.domain.templates;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
-/**
- * Represents a Object Access Control Resource.
- *
- * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/>
- */
-public class BucketAccessControlsTemplate {
-
- protected String entity;
- protected Role role;
-
- public BucketAccessControlsTemplate role(Role role) {
- this.role = role;
- return this;
- }
-
- public BucketAccessControlsTemplate entity(String entity) {
- this.entity = entity;
- return this;
- }
+import com.google.auto.value.AutoValue;
- public String getEntity() {
- return entity;
- }
-
- public Role getRole() {
- return role;
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static BucketAccessControlsTemplate fromObjectAccessControlsTemplate(
- BucketAccessControlsTemplate objectAccessControlsTemplate) {
- return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate);
- }
+@AutoValue
+public abstract class BucketAccessControlsTemplate {
- public static class Builder {
+ public abstract String entity();
- public static BucketAccessControlsTemplate fromObjectAccessControlsTemplate(BucketAccessControlsTemplate in) {
- return new BucketAccessControlsTemplate().role(in.getRole()).entity(in.getEntity());
- }
+ public abstract Role role();
+ public static BucketAccessControlsTemplate create(String entity, Role role) {
+ return new AutoValue_BucketAccessControlsTemplate(entity, role);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java
index 5e85bd0..7434757 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java
@@ -17,35 +17,35 @@
package org.jclouds.googlecloudstorage.domain.templates;
-import java.util.Set;
+import java.util.List;
+import org.jclouds.googlecloudstorage.domain.Bucket.Cors;
+import org.jclouds.googlecloudstorage.domain.Bucket.LifeCycle;
+import org.jclouds.googlecloudstorage.domain.Bucket.Logging;
+import org.jclouds.googlecloudstorage.domain.Bucket.Versioning;
+import org.jclouds.googlecloudstorage.domain.Bucket.Website;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass;
-import org.jclouds.googlecloudstorage.domain.internal.BucketCors;
-import org.jclouds.googlecloudstorage.domain.internal.BucketLifeCycle;
-import org.jclouds.googlecloudstorage.domain.internal.Logging;
-import org.jclouds.googlecloudstorage.domain.internal.Owner;
-import org.jclouds.googlecloudstorage.domain.internal.Versioning;
-import org.jclouds.googlecloudstorage.domain.internal.Website;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
+import org.jclouds.googlecloudstorage.domain.Owner;
-import com.google.common.collect.Sets;
+import com.google.common.collect.Lists;
public class BucketTemplate {
- protected String name;
- protected Long projectNumber;
- protected Set<BucketAccessControls> acl = Sets.newLinkedHashSet();
- protected Set<DefaultObjectAccessControls> defaultObjectAccessControls = Sets.newLinkedHashSet();
- protected Owner owner;
- protected Location location;
- protected Website website;
- protected Logging logging;
- protected Versioning versioning;
- protected Set<BucketCors> cors = Sets.newLinkedHashSet();
- protected BucketLifeCycle lifeCycle;
- protected StorageClass storageClass;
+ private String name;
+ private Long projectNumber;
+ private List<BucketAccessControls> acl = Lists.newArrayList();
+ private List<ObjectAccessControls> defaultObjectAccessControls = Lists.newArrayList();
+ private Owner owner;
+ private Location location;
+ private Website website;
+ private Logging logging;
+ private Versioning versioning;
+ private List<Cors> cors = Lists.newArrayList();
+ private LifeCycle lifeCycle;
+ private StorageClass storageClass;
public BucketTemplate name(String name) {
this.name = name;
@@ -82,7 +82,7 @@ public class BucketTemplate {
return this;
}
- public BucketTemplate lifeCycle(BucketLifeCycle lifeCycle) {
+ public BucketTemplate lifeCycle(LifeCycle lifeCycle) {
this.lifeCycle = lifeCycle;
return this;
}
@@ -97,97 +97,76 @@ public class BucketTemplate {
return this;
}
- public BucketTemplate acl(Set<BucketAccessControls> acl) {
-
+ public BucketTemplate acl(List<BucketAccessControls> acl) {
this.acl.addAll(acl);
return this;
}
- public BucketTemplate addDefaultObjectAccessControls(DefaultObjectAccessControls oac) {
+ public BucketTemplate addDefaultObjectAccessControls(ObjectAccessControls oac) {
this.defaultObjectAccessControls.add(oac);
return this;
}
- public BucketTemplate defaultObjectAccessControls(Set<DefaultObjectAccessControls> defaultObjectAcl) {
+ public BucketTemplate defaultObjectAccessControls(List<ObjectAccessControls> defaultObjectAcl) {
this.defaultObjectAccessControls.addAll(defaultObjectAcl);
return this;
}
- public BucketTemplate addCORS(BucketCors cors) {
+ public BucketTemplate addCORS(Cors cors) {
this.cors.add(cors);
return this;
}
- public BucketTemplate cors(Set<BucketCors> cors) {
+ public BucketTemplate cors(List<Cors> cors) {
this.cors.addAll(cors);
return this;
}
- public Long getProjectNumber() {
+ public Long projectNumber() {
return projectNumber;
}
- public String getName() {
+ public String name() {
return name;
}
- public Set<BucketAccessControls> getAcl() {
+ public List<BucketAccessControls> acl() {
return acl;
}
- public Set<DefaultObjectAccessControls> getDefaultObjectAccessControls() {
+ public List<ObjectAccessControls> defaultObjectAccessControls() {
return defaultObjectAccessControls;
}
- public Owner getOwner() {
+ public Owner owner() {
return owner;
}
- public Location getLocation() {
+ public Location location() {
return location;
}
- public Website getWebsite() {
+ public Website website() {
return website;
}
- public Logging getLogging() {
+ public Logging logging() {
return logging;
}
- public Versioning getVersioning() {
+ public Versioning versioning() {
return versioning;
}
- public Set<BucketCors> getCors() {
+ public List<Cors> cors() {
return cors;
}
- public BucketLifeCycle getLifeCycle() {
+ public LifeCycle lifeCycle() {
return lifeCycle;
}
- public StorageClass getStorageClass() {
+ public StorageClass storageClass() {
return storageClass;
}
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static BucketTemplate fromBucketsTemplate(BucketTemplate bucketTemplate) {
- return Builder.fromBucketsTemplate(bucketTemplate);
- }
-
- public static class Builder {
-
- public static BucketTemplate fromBucketsTemplate(BucketTemplate in) {
- return new BucketTemplate().name(in.getName()).projectNumber(in.getProjectNumber()).acl(in.getAcl())
- .defaultObjectAccessControls(in.getDefaultObjectAccessControls()).owner(in.getOwner())
- .location(in.getLocation()).website(in.getWebsite()).logging(in.getLogging())
- .versioning(in.getVersioning()).cors(in.getCors()).lifeCycle(in.getLifeCycle())
- .storageClass(in.getStorageClass());
- }
-
- }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
index 48372cc..0af32ea 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
@@ -17,63 +17,22 @@
package org.jclouds.googlecloudstorage.domain.templates;
-import java.util.Set;
+import java.util.List;
import org.jclouds.googlecloudstorage.domain.GCSObject;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
-import com.google.common.collect.Sets;
+import com.google.auto.value.AutoValue;
-public class ComposeObjectTemplate {
+@AutoValue
+public abstract class ComposeObjectTemplate {
- protected Kind kind;
- protected ObjectTemplate destination;
- protected Set<GCSObject> sourceObjects = Sets.newLinkedHashSet();
+ private final String kind = "storage/composeRequest";
- public ComposeObjectTemplate() {
- this.kind = Kind.COMPOSE_REQUEST;
- }
-
- public ComposeObjectTemplate destination(ObjectTemplate destination) {
- this.destination = destination;
- return this;
- }
-
- public ComposeObjectTemplate addsourceObject(GCSObject sourceObject) {
- this.sourceObjects.add(sourceObject);
- return this;
- }
-
- public ComposeObjectTemplate sourceObjects(Set<GCSObject> sourceObjects) {
- this.sourceObjects.addAll(sourceObjects);
- return this;
- }
-
- public Kind getKind() {
- return kind;
- }
-
- public ObjectTemplate getDestination() {
- return destination;
- }
-
- public Set<GCSObject> getSourceObjects() {
- return sourceObjects;
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static ComposeObjectTemplate fromComposeObjectTemplate(ComposeObjectTemplate composeTemplate) {
- return Builder.fromComposeObjectTemplate(composeTemplate);
- }
-
- public static class Builder {
+ public abstract List<GCSObject> sourceObjects();
- public static ComposeObjectTemplate fromComposeObjectTemplate(ComposeObjectTemplate in) {
- return new ComposeObjectTemplate().sourceObjects(in.getSourceObjects()).destination(in.getDestination());
+ public abstract ObjectTemplate destination();
- }
+ public static ComposeObjectTemplate create(List<GCSObject> sourceObjects, ObjectTemplate destination) {
+ return new AutoValue_ComposeObjectTemplate(sourceObjects, destination);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.java
deleted file mode 100644
index 48648ad..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain.templates;
-
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-
-/**
- * Represents a Object Access Control Resource
- *
- * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/>
- */
-public class DefaultObjectAccessControlsTemplate {
-
- private String entity;
- private ObjectRole role;
-
- public DefaultObjectAccessControlsTemplate role(ObjectRole role) {
- this.role = role;
- return this;
- }
-
- public DefaultObjectAccessControlsTemplate entity(String entity) {
- this.entity = entity;
- return this;
- }
-
- public String getEntity() {
- return entity;
- }
-
- public ObjectRole getRole() {
- return role;
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static DefaultObjectAccessControlsTemplate fromObjectAccessControlsTemplate(
- DefaultObjectAccessControlsTemplate objectAccessControlsTemplate) {
- return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate);
- }
-
- public static class Builder {
-
- public static DefaultObjectAccessControlsTemplate fromObjectAccessControlsTemplate(
- DefaultObjectAccessControlsTemplate in) {
- return new DefaultObjectAccessControlsTemplate().role(in.getRole()).entity(in.getEntity());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java
index a3f45ed..a8e1afb 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java
@@ -18,48 +18,16 @@ package org.jclouds.googlecloudstorage.domain.templates;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-/**
- * Represents a Object Access Control Resource.
- *
- * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/>
- */
-public class ObjectAccessControlsTemplate {
-
- protected String entity;
- protected ObjectRole role;
-
- public ObjectAccessControlsTemplate role(ObjectRole role) {
- this.role = role;
- return this;
- }
-
- public ObjectAccessControlsTemplate entity(String entity) {
- this.entity = entity;
- return this;
- }
+import com.google.auto.value.AutoValue;
- public String getEntity() {
- return entity;
- }
-
- public ObjectRole getRole() {
- return role;
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static ObjectAccessControlsTemplate fromObjectAccessControlsTemplate(
- ObjectAccessControlsTemplate objectAccessControlsTemplate) {
- return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate);
- }
+@AutoValue
+public abstract class ObjectAccessControlsTemplate {
- public static class Builder {
+ public abstract String entity();
- public static ObjectAccessControlsTemplate fromObjectAccessControlsTemplate(ObjectAccessControlsTemplate in) {
- return new ObjectAccessControlsTemplate().role(in.getRole()).entity(in.getEntity());
- }
+ public abstract ObjectRole role();
+ public static ObjectAccessControlsTemplate create(String entity, ObjectRole role) {
+ return new AutoValue_ObjectAccessControlsTemplate(entity, role);
}
}