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/11/04 17:28:15 UTC

[1/2] git commit: Cleanup ListPage in google apis.

Repository: jclouds-labs-google
Updated Branches:
  refs/heads/master 9f60939e8 -> a9ea2adfd


Cleanup ListPage in google apis.


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/bb9934cf
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/tree/bb9934cf
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/diff/bb9934cf

Branch: refs/heads/master
Commit: bb9934cfab2aecac09e38c28e163d2d8864ee0e7
Parents: 9f60939
Author: Adrian Cole <ad...@gmail.com>
Authored: Mon Nov 3 20:08:36 2014 -0800
Committer: Adrian Cole <ad...@apache.org>
Committed: Tue Nov 4 08:25:03 2014 -0800

----------------------------------------------------------------------
 .../googlecloudstorage/domain/ListPage.java       | 15 +++++++--------
 .../GoogleComputeEngineFallbacks.java             |  2 +-
 .../googlecomputeengine/domain/ListPage.java      | 18 +++++-------------
 .../features/HttpHealthCheckApiLiveTest.java      |  4 +++-
 .../features/RegionOperationApiExpectTest.java    |  3 +--
 .../features/TargetPoolApiLiveTest.java           |  4 ++--
 .../features/ZoneOperationApiExpectTest.java      |  3 +--
 .../parse/ParseAddressListTest.java               |  3 +--
 .../parse/ParseDiskListTest.java                  |  3 +--
 .../parse/ParseDiskTypeListTest.java              |  3 +--
 .../parse/ParseFirewallListTest.java              |  3 +--
 .../parse/ParseForwardingRuleListTest.java        |  3 +--
 .../parse/ParseGlobalOperationListTest.java       |  3 +--
 .../parse/ParseHttpHealthCheckListTest.java       |  3 +--
 .../parse/ParseImageListTest.java                 |  3 +--
 .../parse/ParseInstanceListTest.java              |  3 +--
 .../parse/ParseMachineTypeListTest.java           |  3 +--
 .../parse/ParseNetworkListTest.java               |  3 +--
 .../parse/ParseRegionListTest.java                |  3 +--
 .../parse/ParseRouteListTest.java                 |  3 +--
 .../parse/ParseSnapshotListTest.java              |  3 +--
 .../parse/ParseTargetPoolListTest.java            |  3 +--
 .../parse/ParseZoneListTest.java                  |  3 +--
 23 files changed, 36 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/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 efa017c..f94b1ca 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,32 +16,31 @@
  */
 package org.jclouds.googlecloudstorage.domain;
 
+import static org.jclouds.googlecloudstorage.internal.NullSafeCopies.copyOf;
+
 import java.beans.ConstructorProperties;
 import java.util.List;
 
 import org.jclouds.javax.annotation.Nullable;
 
 import com.google.common.collect.ForwardingList;
-import com.google.common.collect.ImmutableList;
 
-/**
- * The collection returned from any <code>listFirstPage()</code> method.
- */
+/** An immutable list that includes a token, if there is another page available. */
 public final class ListPage<T> extends ForwardingList<T> {
 
    private final List<T> items;
    private final String nextPageToken;
    private final List<String> prefixes;
 
-   public static <T> ListPage<T> create(Iterable<T> items, String nextPageToken, List<String> prefixes) {
+   public static <T> ListPage<T> create(List<T> items, String nextPageToken, List<String> prefixes) {
       return new ListPage<T>(items, nextPageToken, prefixes);
    }
 
    @ConstructorProperties({ "items", "nextPageToken", "prefixes" })
-   ListPage(Iterable<T> items, String nextPageToken, List<String> prefixes) {
-      this.items = items != null ? ImmutableList.copyOf(items) : ImmutableList.<T>of();
+   ListPage(List<T> items, String nextPageToken, List<String> prefixes) {
+      this.items = copyOf(items);
       this.nextPageToken = nextPageToken;
-      this.prefixes = prefixes != null ? prefixes : ImmutableList.<String>of();
+      this.prefixes = copyOf(prefixes);
    }
 
    @Nullable public String nextPageToken() {

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineFallbacks.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineFallbacks.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineFallbacks.java
index 573bca0..4cdbad1 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineFallbacks.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineFallbacks.java
@@ -37,7 +37,7 @@ public final class GoogleComputeEngineFallbacks {
    }
    public static final class EmptyListPageOnNotFoundOr404 implements Fallback<Object> {
       @Override public ListPage<Object> createOrPropagate(Throwable t) throws Exception {
-         return valOnNotFoundOr404(ListPage.create(null, null, null), t);
+         return valOnNotFoundOr404(ListPage.create(null, null), t);
       }
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/ListPage.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/ListPage.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/ListPage.java
index 0205df1..8d66104 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/ListPage.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/ListPage.java
@@ -25,34 +25,26 @@ import org.jclouds.javax.annotation.Nullable;
 
 import com.google.common.collect.ForwardingList;
 
-/**
- * The collection returned from any <code>listFirstPage()</code> method.
- */
+/** An immutable list that includes a token, if there is another page available. */
 public final class ListPage<T> extends ForwardingList<T> {
 
    private final List<T> items;
    private final String nextPageToken;
-   private final List<String> prefixes;
 
-   public static <T> ListPage<T> create(List<T> items, String nextPageToken, List<String> prefixes) {
-      return new ListPage<T>(items, nextPageToken, prefixes);
+   public static <T> ListPage<T> create(List<T> items, String nextPageToken) {
+      return new ListPage<T>(items, nextPageToken);
    }
 
-   @ConstructorProperties({ "items", "nextPageToken", "prefixes" })
-   ListPage(List<T> items, String nextPageToken, List<String> prefixes) {
+   @ConstructorProperties({ "items", "nextPageToken" })
+   ListPage(List<T> items, String nextPageToken) {
       this.items = copyOf(items);
       this.nextPageToken = nextPageToken;
-      this.prefixes = copyOf(prefixes);
    }
 
    @Nullable public String nextPageToken() {
       return nextPageToken;
    }
 
-   public List<String> prefixes() {
-      return prefixes;
-   }
-
    @Override protected List<T> delegate() {
       return items;
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApiLiveTest.java
index 139e610..bebe700 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApiLiveTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApiLiveTest.java
@@ -27,6 +27,8 @@ import org.jclouds.googlecomputeengine.options.HttpHealthCheckCreationOptions;
 import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.testng.annotations.Test;
 
+import com.google.common.collect.Iterables;
+
 public class HttpHealthCheckApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
 
    private static final String HTTP_HEALTH_CHECK_NAME = "http-health-check-api-live-test";
@@ -69,7 +71,7 @@ public class HttpHealthCheckApiLiveTest extends BaseGoogleComputeEngineApiLiveTe
    public void testListHttpHealthCheck() {
       ListPage<HttpHealthCheck> httpHealthCheck = api().list(new ListOptions.Builder()
               .filter("name eq " + HTTP_HEALTH_CHECK_NAME));
-      assertEquals(httpHealthCheck.size(), 1);
+      assertEquals(Iterables.size(httpHealthCheck), 1);
    }
 
    @Test(groups = "live", dependsOnMethods = "testGetHttpHealthCheck")

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java
index 83ef30a..0e1a2f8 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java
@@ -53,8 +53,7 @@ public class RegionOperationApiExpectTest extends BaseGoogleComputeEngineApiExpe
    private ListPage<Operation> expectedList() {
       return ListPage.create( //
             ImmutableList.of(new ParseRegionOperationTest().expected()), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
index 52f2e82..124d062 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
@@ -40,6 +40,7 @@ import org.testng.annotations.AfterClass;
 import org.testng.annotations.Test;
 
 import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
 
 public class TargetPoolApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
 
@@ -205,10 +206,9 @@ public class TargetPoolApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
 
    @Test(groups = "live", dependsOnMethods = "testInsertTargetPool")
    public void testListTargetPool() {
-
       ListPage<TargetPool> targetPool = api().list(new ListOptions.Builder()
               .filter("name eq " + BACKUP_TARGETPOOL_NAME));
-      assertEquals(targetPool.size(), 1);
+      assertEquals(Iterables.size(targetPool), 1);
    }
 
    @Test(groups = "live", dependsOnMethods = {"testInsertTargetPool2"})

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java
index 7608a71..4be46c3 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java
@@ -100,8 +100,7 @@ public class ZoneOperationApiExpectTest extends BaseGoogleComputeEngineApiExpect
    private static ListPage<Operation> expectedList() {
       return ListPage.create( //
             ImmutableList.of(new ParseZoneOperationTest().expected()), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressListTest.java
index b71726f..b269d7b 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressListTest.java
@@ -52,8 +52,7 @@ public class ParseAddressListTest extends BaseGoogleComputeEngineParseTest<ListP
       );
       return ListPage.create( //
             ImmutableList.of(address1, address2), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskListTest.java
index d2fb69c..6909f23 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskListTest.java
@@ -39,8 +39,7 @@ public class ParseDiskListTest extends BaseGoogleComputeEngineParseTest<ListPage
    public ListPage<Disk> expected() {
       return ListPage.create( //
             ImmutableList.of(new ParseDiskTest().expected()), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskTypeListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskTypeListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskTypeListTest.java
index af03d68..e7f0488 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskTypeListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskTypeListTest.java
@@ -52,8 +52,7 @@ public class ParseDiskTypeListTest extends BaseGoogleComputeEngineParseTest<List
       DiskType diskType2 = new ParseDiskTypeTest().expected();
       return ListPage.create( //
             ImmutableList.of(diskType1, diskType2), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallListTest.java
index e897e10..1b0e13b 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallListTest.java
@@ -53,8 +53,7 @@ public class ParseFirewallListTest extends BaseGoogleComputeEngineParseTest<List
       );
       return ListPage.create( //
             ImmutableList.of(firewall1, firewall2), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseForwardingRuleListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseForwardingRuleListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseForwardingRuleListTest.java
index f3dcd74..551c06e 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseForwardingRuleListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseForwardingRuleListTest.java
@@ -39,8 +39,7 @@ public class ParseForwardingRuleListTest extends BaseGoogleComputeEngineParseTes
    public ListPage<ForwardingRule> expected() {
       return ListPage.create( //
             ImmutableList.of(new ParseForwardingRuleTest().expected()), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseGlobalOperationListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseGlobalOperationListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseGlobalOperationListTest.java
index 1536545..3ebd1a3 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseGlobalOperationListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseGlobalOperationListTest.java
@@ -39,8 +39,7 @@ public class ParseGlobalOperationListTest extends BaseGoogleComputeEngineParseTe
    public ListPage<Operation> expected() {
       return ListPage.create( //
             ImmutableList.of(new ParseGlobalOperationTest().expected()), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseHttpHealthCheckListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseHttpHealthCheckListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseHttpHealthCheckListTest.java
index bb5cc39..3cd4722 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseHttpHealthCheckListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseHttpHealthCheckListTest.java
@@ -70,8 +70,7 @@ public class ParseHttpHealthCheckListTest extends BaseGoogleComputeEngineParseTe
       );
       return ListPage.create( //
             ImmutableList.of(healthCheck1, healthCheck2, healthCheck3), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java
index 9c40040..dadc1f0 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java
@@ -38,8 +38,7 @@ public class ParseImageListTest extends BaseGoogleComputeEngineParseTest<ListPag
    public ListPage<Image> expected() {
       return ListPage.create( //
             ImmutableList.of(new ParseImageTest().expected()), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceListTest.java
index 2cc4697..49ebe26 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceListTest.java
@@ -39,8 +39,7 @@ public class ParseInstanceListTest extends BaseGoogleComputeEngineParseTest<List
    public ListPage<Instance> expected() {
       return ListPage.create( //
             ImmutableList.of(new ParseInstanceTest().expected()), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
index 74d7fde..25ed1f2 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
@@ -80,8 +80,7 @@ public class ParseMachineTypeListTest extends BaseGoogleComputeEngineParseTest<L
       );
       return ListPage.create( //
             ImmutableList.of(machineType1, machineType2, machineType3), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkListTest.java
index 78b0f5e..2f0bd11 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkListTest.java
@@ -39,8 +39,7 @@ public class ParseNetworkListTest extends BaseGoogleComputeEngineParseTest<ListP
    public ListPage<Network> expected() {
       return ListPage.create( //
             ImmutableList.of(new ParseNetworkTest().expected()), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
index b5e0bff..d7c9497 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
@@ -61,8 +61,7 @@ public class ParseRegionListTest extends BaseGoogleComputeEngineParseTest<ListPa
       );
       return ListPage.create( //
             ImmutableList.of(region1, region2), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
index 0f0fbb8..cd425a6 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
@@ -56,8 +56,7 @@ public class ParseRouteListTest extends BaseGoogleComputeEngineParseTest<ListPag
       );
       return ListPage.create( //
             ImmutableList.of(route1, route2), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
index 6ed886b..96d5564 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
@@ -52,8 +52,7 @@ public class ParseSnapshotListTest extends BaseGoogleComputeEngineParseTest<List
       );
       return ListPage.create( //
             ImmutableList.of(snapshot1, snapshot2), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolListTest.java
index 474fbde..d900f90 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolListTest.java
@@ -39,8 +39,7 @@ public class ParseTargetPoolListTest extends BaseGoogleComputeEngineParseTest<Li
    public ListPage<TargetPool> expected() {
       return ListPage.create( //
             ImmutableList.of(new ParseTargetPoolTest().expected()), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bb9934cf/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
index 90902c8..5fd45d3 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
@@ -57,8 +57,7 @@ public class ParseZoneListTest extends BaseGoogleComputeEngineParseTest<ListPage
       );
       return ListPage.create( //
             ImmutableList.of(zone1, zone2), // items
-            null, // nextPageToken
-            null // prefixes
+            null // nextPageToken
       );
    }
 }


[2/2] git commit: JCLOUDS-458 Fix some obvious bugs in google-cloud-storage.

Posted by ad...@apache.org.
JCLOUDS-458 Fix some obvious bugs in google-cloud-storage.


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/a9ea2adf
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/tree/a9ea2adf
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/diff/a9ea2adf

Branch: refs/heads/master
Commit: a9ea2adfde71eb45d5c4513186a41733e0557c5b
Parents: bb9934c
Author: Adrian Cole <ad...@gmail.com>
Authored: Mon Nov 3 20:48:12 2014 -0800
Committer: Adrian Cole <ad...@apache.org>
Committed: Tue Nov 4 08:25:28 2014 -0800

----------------------------------------------------------------------
 .../binders/MultipartUploadBinder.java          | 19 +++++---
 .../blobstore/GCSBlobStore.java                 | 50 +++++++++-----------
 .../functions/ObjectListToStorageMetadata.java  |  1 -
 .../SequentialMultipartUploadStrategy.java      | 25 ++++------
 .../googlecloudstorage/domain/GCSObject.java    | 22 ++++-----
 .../googlecloudstorage/features/ObjectApi.java  |  3 +-
 6 files changed, 55 insertions(+), 65 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/a9ea2adf/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 dfd4f7e..ca6422b 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
@@ -29,30 +29,35 @@ import org.jclouds.io.Payloads;
 import org.jclouds.io.payloads.MultipartForm;
 import org.jclouds.io.payloads.Part;
 import org.jclouds.io.payloads.StringPayload;
+import org.jclouds.json.Json;
 import org.jclouds.rest.MapBinder;
 
-import com.google.gson.Gson;
-
-public class MultipartUploadBinder implements MapBinder {
+import com.google.inject.Inject;
 
+public final class MultipartUploadBinder implements MapBinder {
    private static final String BOUNDARY_HEADER = "multipart_boundary";
 
+   private final Json json;
+
+   @Inject MultipartUploadBinder(Json json){
+      this.json = json;
+   }
+
    @Override public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) {
       ObjectTemplate template = (ObjectTemplate) postParams.get("template");
       Payload payload = (Payload) postParams.get("payload");
 
-      String contentType = checkNotNull(template.cacheControl(), "contentType");
+      String contentType = checkNotNull(template.contentType(), "contentType");
       Long length = checkNotNull(template.size(), "contentLength");
 
-      StringPayload jsonPayload = Payloads.newStringPayload(new Gson().toJson(template));
+      StringPayload jsonPayload = Payloads.newStringPayload(json.toJson(template));
 
       payload.getContentMetadata().setContentLength(length);
 
       Part jsonPart = Part.create("Metadata", jsonPayload, new Part.PartOptions().contentType(APPLICATION_JSON));
       Part mediaPart = Part.create(template.name(), payload, new Part.PartOptions().contentType(contentType));
 
-      MultipartForm compPayload = new MultipartForm(BOUNDARY_HEADER, jsonPart, mediaPart);
-      request.setPayload(compPayload);
+      request.setPayload(new MultipartForm(BOUNDARY_HEADER, jsonPart, mediaPart));
       // HeaderPart
       request.toBuilder().replaceHeader(CONTENT_TYPE, "Multipart/related; boundary= " + BOUNDARY_HEADER).build();
       return request;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/a9ea2adf/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 c388857..fd8cfdb 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
@@ -18,12 +18,13 @@ package org.jclouds.googlecloudstorage.blobstore;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.io.BaseEncoding.base64;
+import static org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole.READER;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.util.Set;
 
-import javax.inject.Singleton;
+import javax.inject.Inject;
 
 import org.jclouds.blobstore.BlobStoreContext;
 import org.jclouds.blobstore.domain.Blob;
@@ -35,6 +36,7 @@ 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;
+import org.jclouds.blobstore.options.GetOptions;
 import org.jclouds.blobstore.options.ListContainerOptions;
 import org.jclouds.blobstore.options.PutOptions;
 import org.jclouds.blobstore.strategy.internal.FetchBlobMetadata;
@@ -50,7 +52,7 @@ import org.jclouds.googlecloudstorage.blobstore.functions.ObjectToBlobMetadata;
 import org.jclouds.googlecloudstorage.blobstore.strategy.internal.MultipartUploadStrategy;
 import org.jclouds.googlecloudstorage.config.UserProject;
 import org.jclouds.googlecloudstorage.domain.Bucket;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
+import org.jclouds.googlecloudstorage.domain.DomainResourceReferences;
 import org.jclouds.googlecloudstorage.domain.GCSObject;
 import org.jclouds.googlecloudstorage.domain.ListPage;
 import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
@@ -66,24 +68,21 @@ import com.google.common.base.Supplier;
 import com.google.common.base.Throwables;
 import com.google.common.collect.Iterables;
 import com.google.common.hash.HashCode;
-import com.google.inject.Inject;
 import com.google.inject.Provider;
 
-@Singleton
-public class GCSBlobStore extends BaseBlobStore {
+public final class GCSBlobStore extends BaseBlobStore {
 
-   GoogleCloudStorageApi api;
-   BucketToStorageMetadata bucketToStorageMetadata;
-   ObjectToBlobMetadata objectToBlobMetadata;
-   ObjectListToStorageMetadata objectListToStorageMetadata;
-   Provider<FetchBlobMetadata> fetchBlobMetadataProvider;
-   BlobMetadataToObjectTemplate blobMetadataToObjectTemplate;
-   BlobStoreListContainerOptionsToListObjectOptions listContainerOptionsToListObjectOptions;
-   MultipartUploadStrategy multipartUploadStrategy;
-   Supplier<String> projectId;
+   private final GoogleCloudStorageApi api;
+   private final BucketToStorageMetadata bucketToStorageMetadata;
+   private final ObjectToBlobMetadata objectToBlobMetadata;
+   private final ObjectListToStorageMetadata objectListToStorageMetadata;
+   private final Provider<FetchBlobMetadata> fetchBlobMetadataProvider;
+   private final BlobMetadataToObjectTemplate blobMetadataToObjectTemplate;
+   private final BlobStoreListContainerOptionsToListObjectOptions listContainerOptionsToListObjectOptions;
+   private final MultipartUploadStrategy multipartUploadStrategy;
+   private final Supplier<String> projectId;
 
-   @Inject
-   protected GCSBlobStore(BlobStoreContext context, BlobUtils blobUtils, Supplier<Location> defaultLocation,
+   @Inject GCSBlobStore(BlobStoreContext context, BlobUtils blobUtils, Supplier<Location> defaultLocation,
             @Memoized Supplier<Set<? extends Location>> locations, GoogleCloudStorageApi api,
             BucketToStorageMetadata bucketToStorageMetadata, ObjectToBlobMetadata objectToBlobMetadata,
             ObjectListToStorageMetadata objectListToStorageMetadata,
@@ -105,9 +104,10 @@ public class GCSBlobStore extends BaseBlobStore {
 
    @Override
    public PageSet<? extends StorageMetadata> list() {
-      return new Function<ListPage<Bucket>, org.jclouds.blobstore.domain.PageSet<? extends StorageMetadata>>() {
-         public org.jclouds.blobstore.domain.PageSet<? extends StorageMetadata> apply(ListPage<Bucket> from) {
-            return new PageSetImpl<StorageMetadata>(Iterables.transform(from, bucketToStorageMetadata), null);
+      return new Function<ListPage<Bucket>, PageSet<? extends StorageMetadata>>() {
+         public PageSet<? extends StorageMetadata> apply(ListPage<Bucket> from) {
+            return new PageSetImpl<StorageMetadata>(Iterables.transform(from, bucketToStorageMetadata),
+                  from.nextPageToken());
          }
       }.apply(api.getBucketApi().listBucket(projectId.get()));
    }
@@ -121,8 +121,7 @@ public class GCSBlobStore extends BaseBlobStore {
    public boolean createContainerInLocation(Location location, String container) {
       BucketTemplate template = new BucketTemplate().name(container);
       if (location != null) {
-         org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location gcsLocation = org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location
-                  .fromValue(location.getId());
+         DomainResourceReferences.Location gcsLocation = DomainResourceReferences.Location.fromValue(location.getId());
          template = template.location(gcsLocation);
       }
       return api.getBucketApi().createBucket(projectId.get(), template) != null;
@@ -132,15 +131,13 @@ public class GCSBlobStore extends BaseBlobStore {
    public boolean createContainerInLocation(Location location, String container, CreateContainerOptions options) {
       BucketTemplate template = new BucketTemplate().name(container);
       if (location != null) {
-         org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location gcsLocation = org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location
-                  .fromValue(location.getId());
+         DomainResourceReferences.Location gcsLocation = DomainResourceReferences.Location.fromValue(location.getId());
          template = template.location(gcsLocation);
       }
       Bucket bucket = api.getBucketApi().createBucket(projectId.get(), template);
       if (options.isPublicRead()) {
          try {
-            ObjectAccessControlsTemplate doAclTemplate = ObjectAccessControlsTemplate
-                  .create("allUsers", ObjectRole.READER);
+            ObjectAccessControlsTemplate doAclTemplate = ObjectAccessControlsTemplate.create("allUsers", READER);
             api.getDefaultObjectAccessControlsApi().createDefaultObjectAccessControls(container, doAclTemplate);
          } catch (HttpResponseException e) {
             // If DefaultObjectAccessControls operation fail, Reverse create operation the operation.
@@ -162,7 +159,6 @@ public class GCSBlobStore extends BaseBlobStore {
 
    @Override
    public PageSet<? extends StorageMetadata> list(String container, ListContainerOptions options) {
-
       if (options != null && options != ListContainerOptions.NONE) {
          ListObjectOptions listOptions = listContainerOptionsToListObjectOptions.apply(options);
          ListPage<GCSObject> gcsList = api.getObjectApi().listObjects(container, listOptions);
@@ -218,7 +214,7 @@ public class GCSBlobStore extends BaseBlobStore {
    }
 
    @Override
-   public Blob getBlob(String container, String name, org.jclouds.blobstore.options.GetOptions options) {
+   public Blob getBlob(String container, String name, GetOptions options) {
       GCSObject gcsObject = api.getObjectApi().getObject(container, name);
       if (gcsObject == null) {
          return null;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/a9ea2adf/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 a5c6f73..1fc612d 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
@@ -58,6 +58,5 @@ public class ObjectListToStorageMetadata implements Function<ListPage<GCSObject>
                      return input;
                   }
                }), from.nextPageToken());
-
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/a9ea2adf/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 c244f5c..3ee612d 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
@@ -20,13 +20,10 @@ import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.util.List;
 
-import javax.annotation.Resource;
-import javax.inject.Named;
 import javax.inject.Provider;
 
 import org.jclouds.blobstore.domain.Blob;
 import org.jclouds.blobstore.domain.BlobBuilder;
-import org.jclouds.blobstore.reference.BlobStoreConstants;
 import org.jclouds.googlecloudstorage.GoogleCloudStorageApi;
 import org.jclouds.googlecloudstorage.blobstore.functions.BlobMetadataToObjectTemplate;
 import org.jclouds.googlecloudstorage.domain.GCSObject;
@@ -34,16 +31,11 @@ import org.jclouds.googlecloudstorage.domain.templates.ComposeObjectTemplate;
 import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
 import org.jclouds.io.Payload;
 import org.jclouds.io.PayloadSlicer;
-import org.jclouds.logging.Logger;
 
 import com.google.common.collect.Lists;
 import com.google.inject.Inject;
 
-public class SequentialMultipartUploadStrategy extends MultipartUploadStrategy {
-
-   @Resource
-   @Named(BlobStoreConstants.BLOBSTORE_LOGGER)
-   private Logger logger = Logger.NULL;
+public final class SequentialMultipartUploadStrategy extends MultipartUploadStrategy {
 
    private final GoogleCloudStorageApi api;
    private final Provider<BlobBuilder> blobBuilders;
@@ -52,16 +44,15 @@ public class SequentialMultipartUploadStrategy extends MultipartUploadStrategy {
    private final PayloadSlicer slicer;
    private final MultipartNamingStrategy namingStrategy;
 
-   @Inject
-   public SequentialMultipartUploadStrategy(GoogleCloudStorageApi api, Provider<BlobBuilder> blobBuilders,
+   @Inject SequentialMultipartUploadStrategy(GoogleCloudStorageApi api, Provider<BlobBuilder> blobBuilders,
             BlobMetadataToObjectTemplate blob2ObjectTemplate, MultipartUploadSlicingAlgorithm algorithm,
             PayloadSlicer slicer, MultipartNamingStrategy namingStrategy) {
-      this.api = checkNotNull(api, "api");
-      this.blobBuilders = checkNotNull(blobBuilders, "blobBuilders");
-      this.blob2ObjectTemplate = checkNotNull(blob2ObjectTemplate, "blob2Object");
-      this.algorithm = checkNotNull(algorithm, "algorithm");
-      this.slicer = checkNotNull(slicer, "slicer");
-      this.namingStrategy = checkNotNull(namingStrategy, "namingStrategy");
+      this.api = api;
+      this.blobBuilders = blobBuilders;
+      this.blob2ObjectTemplate = blob2ObjectTemplate;
+      this.algorithm = algorithm;
+      this.slicer = slicer;
+      this.namingStrategy = namingStrategy;
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/a9ea2adf/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 7b3fc7f..77c1350 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
@@ -44,31 +44,31 @@ public abstract class GCSObject {
    public abstract String etag();
    public abstract String name();
    public abstract String bucket();
-   public abstract Long generation();
-   public abstract Long metageneration();
+   public abstract long generation();
+   public abstract long metageneration();
    public abstract String contentType();
    public abstract Date updated();
-   public abstract Date timeDeleted();
+   @Nullable public abstract Date timeDeleted();
    public abstract StorageClass storageClass();
-   public abstract Long size();
+   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();
+   @Nullable public abstract String contentEncoding();
+   @Nullable public abstract String contentDisposition();
+   @Nullable public abstract String contentLanguage();
+   @Nullable public abstract String cacheControl();
    public abstract List<ObjectAccessControls> acl();
    public abstract Owner owner();
    @Nullable public abstract String crc32c();
-   public abstract Integer componentCount();
+   @Nullable 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,
+   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) {

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/a9ea2adf/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
index 77d6cf0..75cdf2d 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
@@ -474,7 +474,6 @@ public interface ObjectApi {
     *
     * @return a {@link GCSObject}
     */
-
    @Named("Object:multipartUpload")
    @POST
    @QueryParams(keys = "uploadType", values = "multipart")
@@ -483,6 +482,6 @@ public interface ObjectApi {
    @OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
    @MapBinder(MultipartUploadBinder.class)
    GCSObject multipartUpload(@PathParam("bucket") String bucketName,
-            @BinderParam(BindToJsonPayload.class) ObjectTemplate objectTemplate,
+            @PayloadParam("template") ObjectTemplate objectTemplate,
             @PayloadParam("payload") Payload payload);
 }