You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by an...@apache.org on 2014/01/23 06:26:56 UTC

git commit: Looking better...although the cleanup is probably a bit premature

Updated Branches:
  refs/heads/JCLOUDS-427 2c63e222e -> 320a8c2cd


Looking better...although the cleanup is probably a bit premature


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/320a8c2c
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/320a8c2c
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/320a8c2c

Branch: refs/heads/JCLOUDS-427
Commit: 320a8c2cdcbf397dbf8d55ae1ef524b2e89460ca
Parents: 2c63e22
Author: Andrew Phillips <an...@apache.org>
Authored: Thu Jan 23 00:26:15 2014 -0500
Committer: Andrew Phillips <an...@apache.org>
Committed: Thu Jan 23 00:26:15 2014 -0500

----------------------------------------------------------------------
 .../com/google/common/reflect/TypeToken2.java   | 16 ++++++------
 .../org/jclouds/rest/config/BinderUtils.java    | 26 ++++++--------------
 2 files changed, 16 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/320a8c2c/core/src/main/java/com/google/common/reflect/TypeToken2.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/google/common/reflect/TypeToken2.java b/core/src/main/java/com/google/common/reflect/TypeToken2.java
index b12bf69..7a09e49 100644
--- a/core/src/main/java/com/google/common/reflect/TypeToken2.java
+++ b/core/src/main/java/com/google/common/reflect/TypeToken2.java
@@ -21,13 +21,15 @@ import com.google.common.reflect.TypeParameter;
 import com.google.common.reflect.TypeToken;
 
 /*
- * Evil stuff. See https://issues.apache.org/jira/browse/JCLOUDS-427
+ * Evil stuff, adapted from https://code.google.com/p/guava-libraries/source/browse/guava/src/com/google/common/reflect/TypeToken.java#236.
+ * See https://issues.apache.org/jira/browse/JCLOUDS-427
  */
 public class TypeToken2<T> extends TypeToken<T> {
-  public <X, Y> TypeToken<T> where(TypeParameter<X> typeParam, Class<X> typeArg, TypeParameter<Y> typeParam2, Class<Y> typeArg2) {
-    TypeResolver resolver = new TypeResolver()
-        .where(ImmutableMap.of(typeParam.typeVariable, of(typeArg).getType(), typeParam2.typeVariable, of(typeArg2).getType()));
-    // If there's any type error, we'd report now rather than later.
-    return (TypeToken<T>) TypeToken.of(resolver.resolveType(getType()));
-  }   
+   @SuppressWarnings("unchecked")
+   public <X, Y> TypeToken<T> where(TypeParameter<X> typeParam, Class<X> typeArg, TypeParameter<Y> typeParam2, Class<Y> typeArg2) {
+      TypeResolver resolver = new TypeResolver()
+            .where(ImmutableMap.of(typeParam.typeVariable, of(typeArg).getType(), typeParam2.typeVariable, of(typeArg2).getType()));
+      // If there's any type error, we'd report now rather than later.
+      return (TypeToken<T>) TypeToken.of(resolver.resolveType(getType()));
+   }   
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds/blob/320a8c2c/core/src/main/java/org/jclouds/rest/config/BinderUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/rest/config/BinderUtils.java b/core/src/main/java/org/jclouds/rest/config/BinderUtils.java
index 22d837f..7a2c5d6 100644
--- a/core/src/main/java/org/jclouds/rest/config/BinderUtils.java
+++ b/core/src/main/java/org/jclouds/rest/config/BinderUtils.java
@@ -101,23 +101,11 @@ public class BinderUtils {
    @Deprecated
    @SuppressWarnings({ "unchecked", "serial" })
    private static <S, A> void bindHttpApiProvider(Binder binder, Class<S> sync, Class<A> async) {
-      TypeToken<SyncToAsyncHttpApiProvider<S, A>> token = new TypeToken<SyncToAsyncHttpApiProvider<S, A>>() {
-      };
-      System.out.println("**** token now (step 1): " + token);
-      token = token.where(new TypeParameter<A>() {}, async);
-      System.out.println("**** token now (after A): " + token);
-      token = token.where(new TypeParameter<S>() {}, TypeToken.of(sync));
-      System.out.println("**** token now (after S, using TypeToken): " + token);
-      TypeToken2<SyncToAsyncHttpApiProvider<S, A>> token2 = new TypeToken2<SyncToAsyncHttpApiProvider<S, A>>() {
-      };
-      TypeToken<SyncToAsyncHttpApiProvider<S, A>> done = token2.where(new TypeParameter<A>() {}, async, new TypeParameter<S>() {}, sync);
-      System.out.println("**** token2 now: " + done);
-      try {
-      binder.bind(sync).toProvider(TypeLiteral.class.cast(TypeLiteral.get(done.getType())));
-      } catch (RuntimeException e) {
-        System.err.format("************ Caught '%s' trying to bind '%s' to '%s'. Input async class: '%s'%n%n", e.getMessage(), TypeLiteral.get(token.getType()), sync, async);
-        throw e;
-      }
+      TypeToken<SyncToAsyncHttpApiProvider<S, A>> token = new TypeToken2<SyncToAsyncHttpApiProvider<S, A>>() {
+      }.where(new TypeParameter<A>() {
+      }, async, new TypeParameter<S>() {
+      }, sync);
+      binder.bind(sync).toProvider(TypeLiteral.class.cast(TypeLiteral.get(token.getType())));
    }
      
    /**
@@ -153,9 +141,9 @@ public class BinderUtils {
    @Deprecated
    @SuppressWarnings({ "unchecked", "serial" })
    private static <S, A> void bindCallGetOnFutures(Binder binder, Class<S> sync, Class<A> async) {
-      TypeToken<CallGetOnFuturesProvider<S, A>> token = new TypeToken<CallGetOnFuturesProvider<S, A>>() {
+      TypeToken<CallGetOnFuturesProvider<S, A>> token = new TypeToken2<CallGetOnFuturesProvider<S, A>>() {
       }.where(new TypeParameter<A>() {
-      }, async).where(new TypeParameter<S>() {
+      }, async, new TypeParameter<S>() {
       }, sync);
       binder.bind(sync).toProvider(TypeLiteral.class.cast(TypeLiteral.get(token.getType())));
    }