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())));
}