diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/AtmosApiMetadata.java b/apis/atmos/src/main/java/org/jclouds/atmos/AtmosApiMetadata.java index b823601ab7..a76b5ceae1 100644 --- a/apis/atmos/src/main/java/org/jclouds/atmos/AtmosApiMetadata.java +++ b/apis/atmos/src/main/java/org/jclouds/atmos/AtmosApiMetadata.java @@ -22,6 +22,7 @@ import static java.util.concurrent.TimeUnit.MINUTES; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; import static org.jclouds.blobstore.reference.BlobStoreConstants.PROPERTY_USER_METADATA_PREFIX; import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -87,7 +88,7 @@ public class AtmosApiMetadata extends BaseRestApiMetadata { .version("1.4.0") .defaultEndpoint("https://accesspoint.atmosonline.com") .defaultProperties(AtmosApiMetadata.defaultProperties()) - .view(TypeToken.of(BlobStoreContext.class)) + .view(typeTokenOf(BlobStoreContext.class)) .defaultModules(ImmutableSet.>of(AtmosRestClientModule.class, AtmosBlobStoreContextModule.class)); } diff --git a/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/config/CloudFilesRestClientModule.java b/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/config/CloudFilesRestClientModule.java index c9d43ed792..f7be4a1ae6 100644 --- a/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/config/CloudFilesRestClientModule.java +++ b/apis/cloudfiles/src/main/java/org/jclouds/cloudfiles/config/CloudFilesRestClientModule.java @@ -18,6 +18,8 @@ */ package org.jclouds.cloudfiles.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.net.URI; import java.util.Map; @@ -38,7 +40,6 @@ import org.jclouds.rest.ConfiguresRestClient; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Supplier; import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeToken; import com.google.inject.Provides; import com.google.inject.Scopes; @@ -49,7 +50,7 @@ import com.google.inject.Scopes; @ConfiguresRestClient public class CloudFilesRestClientModule extends SwiftRestClientModule { public CloudFilesRestClientModule() { - super(TypeToken.of(CloudFilesClient.class), TypeToken.of(CloudFilesAsyncClient.class), ImmutableMap + super(typeTokenOf(CloudFilesClient.class), typeTokenOf(CloudFilesAsyncClient.class), ImmutableMap ., Class> of()); } diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersApiMetadata.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersApiMetadata.java index 5900b61406..05629065e0 100644 --- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersApiMetadata.java +++ b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersApiMetadata.java @@ -21,6 +21,7 @@ package org.jclouds.cloudservers; import static java.util.concurrent.TimeUnit.MINUTES; import static java.util.concurrent.TimeUnit.SECONDS; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -79,7 +80,7 @@ public class CloudServersApiMetadata extends BaseRestApiMetadata { .version("1.0") .defaultEndpoint("https://auth.api.rackspacecloud.com") .defaultProperties(CloudServersApiMetadata.defaultProperties()) - .view(TypeToken.of(ComputeServiceContext.class)) + .view(typeTokenOf(ComputeServiceContext.class)) .defaultModules(ImmutableSet.>of(CloudServersRestClientModule.class, CloudServersComputeServiceContextModule.class)); } diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/CloudSigmaApiMetadata.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/CloudSigmaApiMetadata.java index 3d0c1dce85..2f5783241d 100644 --- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/CloudSigmaApiMetadata.java +++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/CloudSigmaApiMetadata.java @@ -22,6 +22,7 @@ import static java.util.concurrent.TimeUnit.MINUTES; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; import static org.jclouds.cloudsigma.reference.CloudSigmaConstants.PROPERTY_VNC_PASSWORD; import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -86,7 +87,7 @@ public class CloudSigmaApiMetadata extends BaseRestApiMetadata { .version("1.0") .defaultEndpoint("https://api.cloudsigma.com") .defaultProperties(CloudSigmaApiMetadata.defaultProperties()) - .view(TypeToken.of(ComputeServiceContext.class)) + .view(typeTokenOf(ComputeServiceContext.class)) .defaultModules(ImmutableSet.>of(CloudSigmaRestClientModule.class, CloudSigmaComputeServiceContextModule.class)); } diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackApiMetadata.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackApiMetadata.java index c0b0f67731..39c0d8aab9 100644 --- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackApiMetadata.java +++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackApiMetadata.java @@ -20,6 +20,7 @@ package org.jclouds.cloudstack; import static java.util.concurrent.TimeUnit.MINUTES; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -80,7 +81,7 @@ public class CloudStackApiMetadata extends BaseRestApiMetadata { .documentation(URI.create("http://download.cloud.com/releases/2.2.0/api_2.2.12/TOC_User.html")) .defaultEndpoint("http://localhost:8080/client/api") .version("2.2") - .view(TypeToken.of(CloudStackContext.class)) + .view(typeTokenOf(CloudStackContext.class)) .defaultProperties(CloudStackApiMetadata.defaultProperties()) .defaultModules(ImmutableSet.> builder() .add(CloudStackParserModule.class) diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/internal/BaseCloudStackClientLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/internal/BaseCloudStackClientLiveTest.java index c291840107..d4473f09dc 100644 --- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/internal/BaseCloudStackClientLiveTest.java +++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/internal/BaseCloudStackClientLiveTest.java @@ -21,6 +21,7 @@ package org.jclouds.cloudstack.internal; import static com.google.common.collect.Iterables.filter; import static com.google.common.collect.Iterables.get; import static java.util.concurrent.TimeUnit.SECONDS; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.util.Predicates2.retry; import static org.testng.Assert.assertEquals; @@ -85,7 +86,7 @@ public class BaseCloudStackClientLiveTest extends BaseGenericComputeServiceConte @Override protected TypeToken viewType() { - return TypeToken.of(CloudStackContext.class); + return typeTokenOf(CloudStackContext.class); } @Override diff --git a/apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/config/CloudWatchRestClientModule.java b/apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/config/CloudWatchRestClientModule.java index 68955fbe38..9960771441 100644 --- a/apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/config/CloudWatchRestClientModule.java +++ b/apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/config/CloudWatchRestClientModule.java @@ -18,17 +18,18 @@ */ package org.jclouds.cloudwatch.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.util.Map; import org.jclouds.aws.config.FormSigningRestClientModule; -import org.jclouds.cloudwatch.CloudWatchAsyncApi; import org.jclouds.cloudwatch.CloudWatchApi; -import org.jclouds.cloudwatch.features.MetricAsyncApi; +import org.jclouds.cloudwatch.CloudWatchAsyncApi; import org.jclouds.cloudwatch.features.MetricApi; +import org.jclouds.cloudwatch.features.MetricAsyncApi; import org.jclouds.rest.ConfiguresRestClient; import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeToken; /** * Configures the Monitoring connection. @@ -42,7 +43,7 @@ public class CloudWatchRestClientModule extends FormSigningRestClientModule extend @SuppressWarnings("unchecked") public EC2RestClientModule() { // retaining top-level type of EC2Client vs EC2Api until we migrate all functionality up - super(TypeToken.class.cast(TypeToken.of(EC2Client.class)), TypeToken.class.cast(TypeToken.of(EC2AsyncClient.class)), DELEGATE_MAP); + super(TypeToken.class.cast(typeTokenOf(EC2Client.class)), TypeToken.class.cast(typeTokenOf(EC2AsyncClient.class)), DELEGATE_MAP); } protected EC2RestClientModule(TypeToken syncClientType, TypeToken asyncClientType, diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApiMetadata.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApiMetadata.java index a2ae9f9728..911bc4b0b5 100644 --- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApiMetadata.java +++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApiMetadata.java @@ -21,6 +21,7 @@ package org.jclouds.elasticstack; import static java.util.concurrent.TimeUnit.MINUTES; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; import static org.jclouds.elasticstack.reference.ElasticStackConstants.PROPERTY_VNC_PASSWORD; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -86,7 +87,7 @@ public class ElasticStackApiMetadata extends BaseRestApiMetadata { .version("1.0") .defaultEndpoint("https://api-lon-p.elastichosts.com") .defaultProperties(ElasticStackApiMetadata.defaultProperties()) - .view(TypeToken.of(ComputeServiceContext.class)) + .view(typeTokenOf(ComputeServiceContext.class)) .defaultModules(ImmutableSet.>of(ElasticStackRestClientModule.class, ElasticStackComputeServiceContextModule.class)); } diff --git a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/config/CinderRestClientModule.java b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/config/CinderRestClientModule.java index b4beeb9978..9947f07757 100644 --- a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/config/CinderRestClientModule.java +++ b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/config/CinderRestClientModule.java @@ -18,6 +18,8 @@ */ package org.jclouds.openstack.cinder.v1.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.net.URI; import java.util.Map; @@ -66,7 +68,7 @@ public class CinderRestClientModule syncClientType, TypeToken asyncClientType, Map, Class> sync2Async) { diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneRestClientModule.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneRestClientModule.java index c77f70b1f9..a03933e505 100644 --- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneRestClientModule.java +++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneRestClientModule.java @@ -18,6 +18,7 @@ */ package org.jclouds.openstack.keystone.v2_0.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.util.Suppliers2.getLastValueInMap; import java.net.URI; @@ -90,7 +91,7 @@ public class KeystoneRestClientModule syncApiType, TypeToken asyncApiType, Map, Class> sync2Async) { diff --git a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/config/NovaEC2RestClientModule.java b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/config/NovaEC2RestClientModule.java index 5bbf3d0c2d..612c352080 100644 --- a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/config/NovaEC2RestClientModule.java +++ b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/config/NovaEC2RestClientModule.java @@ -18,6 +18,8 @@ */ package org.jclouds.openstack.nova.ec2.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.util.Map; import javax.inject.Singleton; @@ -55,7 +57,6 @@ import org.jclouds.openstack.nova.ec2.xml.NovaDescribeImagesResponseHandler; import org.jclouds.rest.ConfiguresRestClient; import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeToken; import com.google.inject.Provides; import com.google.inject.Scopes; @@ -78,7 +79,7 @@ public class NovaEC2RestClientModule extends EC2RestClientModule>builder() .add(KeystoneAuthenticationModule.class) .add(ZoneModule.class) diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/config/NovaRestClientModule.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/config/NovaRestClientModule.java index 7dfc19c055..875f653a42 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/config/NovaRestClientModule.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/config/NovaRestClientModule.java @@ -18,6 +18,8 @@ */ package org.jclouds.openstack.nova.v2_0.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.net.URI; import java.util.Map; import java.util.Set; @@ -119,7 +121,7 @@ public class NovaRestClientModule ext @SuppressWarnings("unchecked") public NovaRestClientModule() { - super(TypeToken.class.cast(TypeToken.of(NovaApi.class)), TypeToken.class.cast(TypeToken.of(NovaAsyncApi.class)), DELEGATE_MAP); + super(TypeToken.class.cast(typeTokenOf(NovaApi.class)), TypeToken.class.cast(typeTokenOf(NovaAsyncApi.class)), DELEGATE_MAP); } protected NovaRestClientModule(TypeToken syncClientType, TypeToken asyncClientType, diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/CloudLoadBalancersApiMetadata.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/CloudLoadBalancersApiMetadata.java index f748519137..3845dfc89a 100644 --- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/CloudLoadBalancersApiMetadata.java +++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/CloudLoadBalancersApiMetadata.java @@ -22,6 +22,7 @@ import static java.util.concurrent.TimeUnit.MINUTES; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE; import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -40,7 +41,6 @@ import org.jclouds.rest.internal.BaseRestApiMetadata; import com.google.common.collect.ImmutableSet; import com.google.common.reflect.TypeToken; import com.google.inject.Module; - /** * Implementation of {@link ApiMetadata} for CloudLoadBalancers 1.0 API * @@ -86,7 +86,7 @@ public class CloudLoadBalancersApiMetadata extends BaseRestApiMetadata { .version("1.0") .defaultEndpoint("https://identity.api.rackspacecloud.com/v2.0/") .defaultProperties(CloudLoadBalancersApiMetadata.defaultProperties()) - .view(TypeToken.of(LoadBalancerServiceContext.class)) + .view(typeTokenOf(LoadBalancerServiceContext.class)) .defaultModules( ImmutableSet.> of( CloudIdentityAuthenticationModule.class, diff --git a/apis/s3/src/main/java/org/jclouds/s3/S3ApiMetadata.java b/apis/s3/src/main/java/org/jclouds/s3/S3ApiMetadata.java index 4e9eeabf15..1fdc07e64e 100644 --- a/apis/s3/src/main/java/org/jclouds/s3/S3ApiMetadata.java +++ b/apis/s3/src/main/java/org/jclouds/s3/S3ApiMetadata.java @@ -27,6 +27,7 @@ import static org.jclouds.aws.reference.AWSConstants.PROPERTY_HEADER_TAG; import static org.jclouds.blobstore.reference.BlobStoreConstants.DIRECTORY_SUFFIX_FOLDER; import static org.jclouds.blobstore.reference.BlobStoreConstants.PROPERTY_BLOBSTORE_DIRECTORY_SUFFIX; import static org.jclouds.blobstore.reference.BlobStoreConstants.PROPERTY_USER_METADATA_PREFIX; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.s3.reference.S3Constants.PROPERTY_S3_SERVICE_PATH; import static org.jclouds.s3.reference.S3Constants.PROPERTY_S3_VIRTUAL_HOST_BUCKETS; @@ -115,7 +116,7 @@ public class S3ApiMetadata extends BaseRestApiMetadata { .version(S3AsyncClient.VERSION) .defaultProperties(S3ApiMetadata.defaultProperties()) .context(CONTEXT_TOKEN) - .view(TypeToken.of(S3BlobStoreContext.class)) + .view(typeTokenOf(S3BlobStoreContext.class)) .defaultModules(ImmutableSet.>of(S3RestClientModule.class, S3BlobStoreContextModule.class)); } diff --git a/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobRequestSigner.java b/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobRequestSigner.java index 0b12c18c29..41e7458e01 100644 --- a/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobRequestSigner.java +++ b/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobRequestSigner.java @@ -20,6 +20,7 @@ package org.jclouds.s3.blobstore; import static com.google.common.base.Preconditions.checkNotNull; import static org.jclouds.blobstore.util.BlobStoreUtils.cleanRequest; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import javax.inject.Inject; import javax.inject.Singleton; @@ -61,7 +62,7 @@ public class S3BlobRequestSigner implements BlobRequest this.processor = checkNotNull(processor, "processor"); this.blobToObject = checkNotNull(blobToObject, "blobToObject"); this.blob2HttpGetOptions = checkNotNull(blob2HttpGetOptions, "blob2HttpGetOptions"); - TypeToken interfaceType = TypeToken.of(interfaceClass); + TypeToken interfaceType = typeTokenOf(interfaceClass); this.getMethod = interfaceType.method(interfaceClass.getMethod("getObject", String.class, String.class, GetOptions[].class)); this.deleteMethod = interfaceType.method(interfaceClass.getMethod("deleteObject", String.class, String.class)); diff --git a/apis/s3/src/main/java/org/jclouds/s3/config/S3RestClientModule.java b/apis/s3/src/main/java/org/jclouds/s3/config/S3RestClientModule.java index a054f0e4f5..7b8075d4c6 100644 --- a/apis/s3/src/main/java/org/jclouds/s3/config/S3RestClientModule.java +++ b/apis/s3/src/main/java/org/jclouds/s3/config/S3RestClientModule.java @@ -18,6 +18,8 @@ */ package org.jclouds.s3.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.net.URI; import java.util.Set; import java.util.concurrent.TimeUnit; @@ -75,7 +77,7 @@ public class S3RestClientModule ext @SuppressWarnings("unchecked") public S3RestClientModule() { - this(TypeToken.class.cast(TypeToken.of(S3Client.class)), TypeToken.class.cast(TypeToken.of(S3AsyncClient.class))); + this(TypeToken.class.cast(typeTokenOf(S3Client.class)), TypeToken.class.cast(typeTokenOf(S3AsyncClient.class))); } protected S3RestClientModule(TypeToken syncClientType, TypeToken asyncClientType) { diff --git a/apis/sqs/src/main/java/org/jclouds/sqs/config/SQSRestClientModule.java b/apis/sqs/src/main/java/org/jclouds/sqs/config/SQSRestClientModule.java index 09b4882d07..3f9293f80f 100644 --- a/apis/sqs/src/main/java/org/jclouds/sqs/config/SQSRestClientModule.java +++ b/apis/sqs/src/main/java/org/jclouds/sqs/config/SQSRestClientModule.java @@ -18,6 +18,8 @@ */ package org.jclouds.sqs.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.util.Map; import org.jclouds.aws.config.FormSigningRestClientModule; @@ -39,7 +41,6 @@ import org.jclouds.sqs.handlers.ParseSQSErrorFromXmlContent; import org.jclouds.sqs.handlers.SQSErrorRetryHandler; import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeToken; /** * Configures the SQS connection. @@ -55,7 +56,7 @@ public class SQSRestClientModule extends FormSigningRestClientModule>builder() .add(StorageEndpointModule.class) diff --git a/apis/swift/src/main/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSigner.java b/apis/swift/src/main/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSigner.java index e01a1fdb67..e046d7ee50 100644 --- a/apis/swift/src/main/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSigner.java +++ b/apis/swift/src/main/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSigner.java @@ -25,6 +25,7 @@ import static com.google.common.io.BaseEncoding.base16; import static com.google.common.io.ByteStreams.readBytes; import static org.jclouds.blobstore.util.BlobStoreUtils.cleanRequest; import static org.jclouds.crypto.Macs.asByteProcessor; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.util.Strings2.toInputStream; import java.io.IOException; @@ -98,7 +99,7 @@ public class SwiftBlobSigner implements BlobRe this.blobToObject = checkNotNull(blobToObject, "blobToObject"); this.blob2HttpGetOptions = checkNotNull(blob2HttpGetOptions, "blob2HttpGetOptions"); - TypeToken owner = TypeToken.of(interfaceType.getType()); + TypeToken owner = typeTokenOf(interfaceType.getType()); this.getMethod = owner.method(interfaceType.getRawType().getMethod("getObject", String.class, String.class, GetOptions[].class)); this.deleteMethod = owner diff --git a/apis/swift/src/main/java/org/jclouds/openstack/swift/config/SwiftKeystoneRestClientModule.java b/apis/swift/src/main/java/org/jclouds/openstack/swift/config/SwiftKeystoneRestClientModule.java index deff5d995d..b8586f8584 100644 --- a/apis/swift/src/main/java/org/jclouds/openstack/swift/config/SwiftKeystoneRestClientModule.java +++ b/apis/swift/src/main/java/org/jclouds/openstack/swift/config/SwiftKeystoneRestClientModule.java @@ -1,5 +1,7 @@ package org.jclouds.openstack.swift.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import org.jclouds.openstack.swift.CommonSwiftAsyncClient; import org.jclouds.openstack.swift.CommonSwiftClient; import org.jclouds.openstack.swift.SwiftKeystoneAsyncClient; @@ -7,7 +9,6 @@ import org.jclouds.openstack.swift.SwiftKeystoneClient; import org.jclouds.rest.ConfiguresRestClient; import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeToken; import com.google.inject.Scopes; /** @@ -18,7 +19,7 @@ import com.google.inject.Scopes; public class SwiftKeystoneRestClientModule extends SwiftRestClientModule { public SwiftKeystoneRestClientModule() { - super(TypeToken.of(SwiftKeystoneClient.class), TypeToken.of(SwiftKeystoneAsyncClient.class), ImmutableMap + super(typeTokenOf(SwiftKeystoneClient.class), typeTokenOf(SwiftKeystoneAsyncClient.class), ImmutableMap ., Class> of()); } diff --git a/apis/swift/src/main/java/org/jclouds/openstack/swift/config/SwiftRestClientModule.java b/apis/swift/src/main/java/org/jclouds/openstack/swift/config/SwiftRestClientModule.java index 5cc3fa31a3..141f9fe10a 100644 --- a/apis/swift/src/main/java/org/jclouds/openstack/swift/config/SwiftRestClientModule.java +++ b/apis/swift/src/main/java/org/jclouds/openstack/swift/config/SwiftRestClientModule.java @@ -17,7 +17,7 @@ * under the License. */ package org.jclouds.openstack.swift.config; - +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.util.Suppliers2.getLastValueInMap; import java.net.URI; @@ -63,7 +63,7 @@ public class SwiftRestClientModule, Class> of()); } diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java index cd43a7a49d..8060c64cc3 100644 --- a/apis/vcloud/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java +++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java @@ -22,6 +22,7 @@ import static java.util.concurrent.TimeUnit.MINUTES; import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_FENCEMODE; import static org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED; import static org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_VERSION_SCHEMA; @@ -101,7 +102,7 @@ public class VCloudApiMetadata extends BaseRestApiMetadata { .documentation(URI.create("http://www.vmware.com/support/pubs/vcd_pubs.html")) .version("1.0") .defaultProperties(VCloudApiMetadata.defaultProperties()) - .view(TypeToken.of(ComputeServiceContext.class)) + .view(typeTokenOf(ComputeServiceContext.class)) .defaultModules(ImmutableSet.>of(VCloudRestClientModule.class, VCloudComputeServiceContextModule.class)); } diff --git a/blobstore/src/main/java/org/jclouds/blobstore/util/BlobStoreUtils.java b/blobstore/src/main/java/org/jclouds/blobstore/util/BlobStoreUtils.java index aaafe1ced2..f6438dc6be 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/util/BlobStoreUtils.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/util/BlobStoreUtils.java @@ -19,6 +19,7 @@ package org.jclouds.blobstore.util; import static com.google.common.base.Preconditions.checkNotNull; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.util.List; import java.util.Map; diff --git a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java index 8666118854..df3a48af7b 100644 --- a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java +++ b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java @@ -20,6 +20,7 @@ package org.jclouds.blobstore.integration.internal; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Throwables.propagateIfPossible; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.testng.Assert.assertEquals; import java.io.IOException; @@ -523,7 +524,7 @@ public class BaseBlobStoreIntegrationTest extends BaseViewLiveTest viewType() { - return TypeToken.of(BlobStoreContext.class); + return typeTokenOf(BlobStoreContext.class); } } diff --git a/blobstore/src/test/java/org/jclouds/blobstore/internal/BaseBlobStoreApiMetadataTest.java b/blobstore/src/test/java/org/jclouds/blobstore/internal/BaseBlobStoreApiMetadataTest.java index 53fe31b5fd..e85fef0d1a 100644 --- a/blobstore/src/test/java/org/jclouds/blobstore/internal/BaseBlobStoreApiMetadataTest.java +++ b/blobstore/src/test/java/org/jclouds/blobstore/internal/BaseBlobStoreApiMetadataTest.java @@ -18,6 +18,8 @@ */ package org.jclouds.blobstore.internal; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import org.jclouds.View; import org.jclouds.apis.ApiMetadata; import org.jclouds.apis.internal.BaseApiMetadataTest; @@ -35,7 +37,7 @@ import com.google.common.reflect.TypeToken; public abstract class BaseBlobStoreApiMetadataTest extends BaseApiMetadataTest { public BaseBlobStoreApiMetadataTest(ApiMetadata toTest) { - super(toTest, ImmutableSet.>of(TypeToken.of(BlobStoreContext.class))); + super(toTest, ImmutableSet.>of(typeTokenOf(BlobStoreContext.class))); } } diff --git a/common/azure/src/test/java/org/jclouds/azure/storage/filters/SharedKeyLiteAuthenticationTest.java b/common/azure/src/test/java/org/jclouds/azure/storage/filters/SharedKeyLiteAuthenticationTest.java index ba353964ee..fda2bfd69c 100644 --- a/common/azure/src/test/java/org/jclouds/azure/storage/filters/SharedKeyLiteAuthenticationTest.java +++ b/common/azure/src/test/java/org/jclouds/azure/storage/filters/SharedKeyLiteAuthenticationTest.java @@ -18,6 +18,7 @@ */ package org.jclouds.azure.storage.filters; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.testng.Assert.assertEquals; import java.io.IOException; @@ -141,7 +142,7 @@ public class SharedKeyLiteAuthenticationTest { .modules( ImmutableSet. of(new MockModule(), new NullLoggingModule(), new AzureStorageRestClientModule(TypeToken - .of(IntegrationTestClient.class), TypeToken.of(IntegrationTestAsyncClient.class)))) + .of(IntegrationTestClient.class), typeTokenOf(IntegrationTestAsyncClient.class)))) .buildInjector(); filter = injector.getInstance(SharedKeyLiteAuthentication.class); } diff --git a/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceApiMetadataTest.java b/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceApiMetadataTest.java index 38e2753611..ac6579c31b 100644 --- a/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceApiMetadataTest.java +++ b/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceApiMetadataTest.java @@ -1,5 +1,7 @@ package org.jclouds.compute.internal; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import org.jclouds.View; import org.jclouds.apis.ApiMetadata; import org.jclouds.apis.internal.BaseApiMetadataTest; @@ -17,7 +19,7 @@ import com.google.common.reflect.TypeToken; public abstract class BaseComputeServiceApiMetadataTest extends BaseApiMetadataTest { public BaseComputeServiceApiMetadataTest(ApiMetadata toTest) { - super(toTest, ImmutableSet.>of(TypeToken.of(ComputeServiceContext.class))); + super(toTest, ImmutableSet.>of(typeTokenOf(ComputeServiceContext.class))); } } diff --git a/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceContextLiveTest.java b/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceContextLiveTest.java index c6db584d3b..5e281e3e7d 100644 --- a/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceContextLiveTest.java +++ b/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceContextLiveTest.java @@ -18,6 +18,8 @@ */ package org.jclouds.compute.internal; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import org.jclouds.compute.ComputeServiceContext; import com.google.common.reflect.TypeToken; @@ -29,7 +31,7 @@ public abstract class BaseComputeServiceContextLiveTest extends BaseGenericCompu @Override protected TypeToken viewType() { - return TypeToken.of(ComputeServiceContext.class); + return typeTokenOf(ComputeServiceContext.class); } } diff --git a/core/src/main/java/org/jclouds/ContextBuilder.java b/core/src/main/java/org/jclouds/ContextBuilder.java index 0a5a80b7d0..254de0a220 100644 --- a/core/src/main/java/org/jclouds/ContextBuilder.java +++ b/core/src/main/java/org/jclouds/ContextBuilder.java @@ -42,6 +42,7 @@ import static org.jclouds.Constants.PROPERTY_ENDPOINT; import static org.jclouds.Constants.PROPERTY_IDENTITY; import static org.jclouds.Constants.PROPERTY_ISO3166_CODES; import static org.jclouds.Constants.PROPERTY_PROVIDER; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.util.Throwables2.propagateAuthorizationOrOriginalException; import java.util.List; @@ -485,12 +486,12 @@ public class ContextBuilder { return any(modules, configuresRest); } - @SuppressWarnings("unchecked") + @SuppressWarnings({ "unchecked", "rawtypes" }) static void addClientModule(ApiMetadata apiMetadata, List modules) { // TODO: move this up if (apiMetadata instanceof RestApiMetadata) { RestApiMetadata rest = RestApiMetadata.class.cast(apiMetadata); - modules.add(new RestClientModule(TypeToken.of(rest.getApi()), TypeToken.of(rest.getAsyncApi()))); + modules.add(new RestClientModule(typeTokenOf(rest.getApi()), typeTokenOf(rest.getAsyncApi()))); } else { modules.add(new RestModule()); } @@ -567,7 +568,7 @@ public class ContextBuilder { * @see #buildView(TypeToken) */ public V buildView(Class viewType) { - return buildView(TypeToken.of(checkNotNull(viewType, "viewType"))); + return buildView(typeTokenOf(viewType)); } /** diff --git a/core/src/main/java/org/jclouds/apis/Apis.java b/core/src/main/java/org/jclouds/apis/Apis.java index 5cfbf9b32e..58b722095c 100644 --- a/core/src/main/java/org/jclouds/apis/Apis.java +++ b/core/src/main/java/org/jclouds/apis/Apis.java @@ -21,6 +21,7 @@ package org.jclouds.apis; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.collect.Iterables.filter; import static com.google.common.collect.Iterables.find; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.util.NoSuchElementException; import java.util.ServiceLoader; @@ -115,7 +116,7 @@ public class Apis { } public static Iterable viewableAs(Class type) { - return filter(all(), ApiPredicates.viewableAs(TypeToken.of(type))); + return filter(all(), ApiPredicates.viewableAs(typeTokenOf(type))); } /** diff --git a/core/src/main/java/org/jclouds/apis/internal/BaseApiMetadata.java b/core/src/main/java/org/jclouds/apis/internal/BaseApiMetadata.java index 38c314a3e5..761023998e 100644 --- a/core/src/main/java/org/jclouds/apis/internal/BaseApiMetadata.java +++ b/core/src/main/java/org/jclouds/apis/internal/BaseApiMetadata.java @@ -32,6 +32,7 @@ import static org.jclouds.Constants.PROPERTY_SCHEDULER_THREADS; import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL; import static org.jclouds.Constants.PROPERTY_SO_TIMEOUT; import static org.jclouds.Constants.PROPERTY_USER_THREADS; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -92,7 +93,7 @@ public abstract class BaseApiMetadata implements ApiMetadata { private Optional defaultCredential = Optional.absent(); private Properties defaultProperties = BaseApiMetadata.defaultProperties(); private URI documentation; - private TypeToken context = TypeToken.of(Context.class); + private TypeToken context = typeTokenOf(Context.class); private Set> defaultModules = ImmutableSet.of(); /** @@ -118,7 +119,7 @@ public abstract class BaseApiMetadata implements ApiMetadata { */ @Override public T view(Class view) { - return view(TypeToken.of(checkNotNull(view, "view"))); + return view(typeTokenOf(checkNotNull(view, "view"))); } /** diff --git a/core/src/main/java/org/jclouds/config/BindRestContextWithWildcardExtendsExplicitAndRawType.java b/core/src/main/java/org/jclouds/config/BindRestContextWithWildcardExtendsExplicitAndRawType.java index 946748f252..780b22ed23 100644 --- a/core/src/main/java/org/jclouds/config/BindRestContextWithWildcardExtendsExplicitAndRawType.java +++ b/core/src/main/java/org/jclouds/config/BindRestContextWithWildcardExtendsExplicitAndRawType.java @@ -20,6 +20,7 @@ package org.jclouds.config; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import org.jclouds.rest.RestApiMetadata; import org.jclouds.rest.RestContext; @@ -49,7 +50,7 @@ public class BindRestContextWithWildcardExtendsExplicitAndRawType extends Abstra @SuppressWarnings("unchecked") @Override protected void configure() { - TypeToken concreteType = BaseRestApiMetadata.contextToken(TypeToken.of(restApiMetadata.getApi()), TypeToken + TypeToken concreteType = BaseRestApiMetadata.contextToken(typeTokenOf(restApiMetadata.getApi()), TypeToken .of(restApiMetadata.getAsyncApi())); // bind explicit type bind(TypeLiteral.get(concreteType.getType())).to( diff --git a/core/src/main/java/org/jclouds/http/HttpException.java b/core/src/main/java/org/jclouds/http/HttpException.java index 02fd3b9025..2e76c7b08e 100644 --- a/core/src/main/java/org/jclouds/http/HttpException.java +++ b/core/src/main/java/org/jclouds/http/HttpException.java @@ -25,15 +25,17 @@ package org.jclouds.http; */ public class HttpException extends RuntimeException { - public HttpException(String s) { - super(s); - } + private static final long serialVersionUID = 1L; - public HttpException(String s, Throwable throwable) { - super(s, throwable); - } + public HttpException(String s) { + super(s); + } - public HttpException(Throwable throwable) { - super(throwable); - } + public HttpException(String s, Throwable throwable) { + super(s, throwable); + } + + public HttpException(Throwable throwable) { + super(throwable); + } } diff --git a/core/src/main/java/org/jclouds/http/HttpResponseException.java b/core/src/main/java/org/jclouds/http/HttpResponseException.java index 519910fa08..fbe3542feb 100644 --- a/core/src/main/java/org/jclouds/http/HttpResponseException.java +++ b/core/src/main/java/org/jclouds/http/HttpResponseException.java @@ -32,6 +32,8 @@ import org.jclouds.util.Strings2; */ public class HttpResponseException extends RuntimeException { + private static final long serialVersionUID = 1L; + protected final HttpCommand command; protected final HttpResponse response; private String content; diff --git a/core/src/main/java/org/jclouds/http/internal/BaseHttpCommandExecutorService.java b/core/src/main/java/org/jclouds/http/internal/BaseHttpCommandExecutorService.java index 8264c4c707..3c8dc3a4ee 100644 --- a/core/src/main/java/org/jclouds/http/internal/BaseHttpCommandExecutorService.java +++ b/core/src/main/java/org/jclouds/http/internal/BaseHttpCommandExecutorService.java @@ -20,6 +20,7 @@ package org.jclouds.http.internal; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.io.ByteStreams.copy; +import static com.google.common.io.ByteStreams.nullOutputStream; import static org.jclouds.http.HttpUtils.checkRequestHasContentLengthOrChunkedEncoding; import static org.jclouds.http.HttpUtils.wirePayloadIfEnabled; @@ -47,7 +48,6 @@ import org.jclouds.io.ContentMetadataCodec; import org.jclouds.logging.Logger; import org.jclouds.util.Throwables2; -import com.google.common.io.NullOutputStream; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; @@ -106,7 +106,7 @@ public abstract class BaseHttpCommandExecutorService implements HttpCommandEx public void close() throws IOException { if (!closed) { try { - copy(this, new NullOutputStream()); + copy(this, nullOutputStream()); } catch (IOException e) { } finally { closed = true; diff --git a/core/src/main/java/org/jclouds/providers/Providers.java b/core/src/main/java/org/jclouds/providers/Providers.java index 36d57255ba..8500ba6977 100644 --- a/core/src/main/java/org/jclouds/providers/Providers.java +++ b/core/src/main/java/org/jclouds/providers/Providers.java @@ -20,6 +20,7 @@ package org.jclouds.providers; import static com.google.common.collect.Iterables.filter; import static com.google.common.collect.Iterables.find; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.util.NoSuchElementException; import java.util.ServiceLoader; @@ -116,7 +117,7 @@ public class Providers { } public static Iterable viewableAs(Class viewableAs) { - return filter(all(), ProviderPredicates.viewableAs(TypeToken.of(viewableAs))); + return filter(all(), ProviderPredicates.viewableAs(typeTokenOf(viewableAs))); } /** @@ -178,7 +179,7 @@ public class Providers { public static Iterable boundedByIso3166Code(String iso3166Code, Class viewableAs) { - return boundedByIso3166Code(iso3166Code, TypeToken.of(viewableAs)); + return boundedByIso3166Code(iso3166Code, typeTokenOf(viewableAs)); } /** @@ -214,6 +215,6 @@ public class Providers { public static Iterable collocatedWith(ProviderMetadata providerMetadata, Class viewableAs) { - return collocatedWith(providerMetadata, TypeToken.of(viewableAs)); + return collocatedWith(providerMetadata, typeTokenOf(viewableAs)); } } diff --git a/core/src/main/java/org/jclouds/reflect/FunctionalReflection.java b/core/src/main/java/org/jclouds/reflect/FunctionalReflection.java index d7a8c36678..fe659fad4b 100644 --- a/core/src/main/java/org/jclouds/reflect/FunctionalReflection.java +++ b/core/src/main/java/org/jclouds/reflect/FunctionalReflection.java @@ -24,6 +24,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Predicates.notNull; import static com.google.common.base.Throwables.propagate; import static com.google.common.collect.Iterables.all; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.util.Throwables2.propagateIfPossible; import java.lang.reflect.Method; @@ -84,7 +85,7 @@ public final class FunctionalReflection { public static T newProxy(Class enclosingType, Function invocationFunction) { checkNotNull(invocationFunction, "invocationFunction"); return newProxy(enclosingType, - new FunctionalInvocationHandler(TypeToken.of(enclosingType), invocationFunction)); + new FunctionalInvocationHandler(typeTokenOf(enclosingType), invocationFunction)); } @SuppressWarnings("unchecked") diff --git a/core/src/main/java/org/jclouds/reflect/Reflection2.java b/core/src/main/java/org/jclouds/reflect/Reflection2.java new file mode 100644 index 0000000000..b3c9eeb1b7 --- /dev/null +++ b/core/src/main/java/org/jclouds/reflect/Reflection2.java @@ -0,0 +1,83 @@ +/** + * Licensed to jclouds, Inc. (jclouds) under one or more + * contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. jclouds 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.reflect; + +import static com.google.common.base.Preconditions.checkNotNull; + +import java.lang.reflect.Type; + +import com.google.common.annotations.Beta; +import com.google.common.base.Function; +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; +import com.google.common.reflect.TypeToken; + +/** + * Invokable utilities + * + * @since 1.6 + */ +@Beta +public final class Reflection2 { + private static final LoadingCache, TypeToken> typeTokenForClass = CacheBuilder.newBuilder().build( + new CacheLoader, TypeToken>() { + public TypeToken load(final Class key) throws Exception { + return TypeToken.of(key); + } + }); + + /** + * Cache of type tokens for the supplied class. + */ + public static Function, TypeToken> typeTokenForClass() { + return typeTokenForClass; + } + + /** + * Cache of type tokens for the supplied class. + */ + @SuppressWarnings("unchecked") + public static TypeToken typeTokenOf(Class in) { + return (TypeToken) typeTokenForClass.apply(checkNotNull(in, "class")); + } + + private static final LoadingCache> typeTokenForType = CacheBuilder.newBuilder().build( + new CacheLoader>() { + public TypeToken load(final Type key) throws Exception { + return TypeToken.of(key); + } + }); + + /** + * Cache of type tokens for the supplied class. + */ + public static Function> typeTokenForType() { + return typeTokenForType; + } + + /** + * Cache of type tokens for the supplied type. + */ + @SuppressWarnings("unchecked") + public static TypeToken typeTokenOf(Type in) { + return (TypeToken) typeTokenForType.apply(checkNotNull(in, "class")); + } + +} \ No newline at end of file diff --git a/core/src/main/java/org/jclouds/rest/config/CallGetOnFuturesProvider.java b/core/src/main/java/org/jclouds/rest/config/CallGetOnFuturesProvider.java index a0bcab88f3..58018d61c9 100644 --- a/core/src/main/java/org/jclouds/rest/config/CallGetOnFuturesProvider.java +++ b/core/src/main/java/org/jclouds/rest/config/CallGetOnFuturesProvider.java @@ -18,6 +18,8 @@ */ package org.jclouds.rest.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.lang.reflect.Proxy; import javax.inject.Inject; @@ -28,7 +30,6 @@ import org.jclouds.rest.internal.InvokeAndCallGetOnFutures; import com.google.common.cache.Cache; import com.google.common.reflect.Invokable; -import com.google.common.reflect.TypeToken; import com.google.inject.Provider; /** @@ -46,7 +47,7 @@ public class CallGetOnFuturesProvider implements Provider { Class asyncApiType) { this.syncInvoker = syncInvoker; this.apiType = apiType; - RestModule.putInvokables(TypeToken.of(apiType), TypeToken.of(asyncApiType), invokables); + RestModule.putInvokables(typeTokenOf(apiType), typeTokenOf(asyncApiType), invokables); } @SuppressWarnings("unchecked") diff --git a/core/src/main/java/org/jclouds/rest/config/HttpApiProvider.java b/core/src/main/java/org/jclouds/rest/config/HttpApiProvider.java index c7622c81d2..6c55f065dd 100644 --- a/core/src/main/java/org/jclouds/rest/config/HttpApiProvider.java +++ b/core/src/main/java/org/jclouds/rest/config/HttpApiProvider.java @@ -18,6 +18,8 @@ */ package org.jclouds.rest.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.lang.reflect.Proxy; import javax.inject.Inject; @@ -28,7 +30,6 @@ import org.jclouds.rest.internal.InvokeHttpMethod; import com.google.common.cache.Cache; import com.google.common.reflect.Invokable; -import com.google.common.reflect.TypeToken; import com.google.inject.Provider; /** @@ -45,7 +46,7 @@ public class HttpApiProvider implements Provider { DelegatesToInvocationFunction httpInvoker, Class apiType, Class asyncApiType) { this.httpInvoker = httpInvoker; this.apiType = apiType; - RestModule.putInvokables(TypeToken.of(apiType), TypeToken.of(asyncApiType), invokables); + RestModule.putInvokables(typeTokenOf(apiType), typeTokenOf(asyncApiType), invokables); } @SuppressWarnings("unchecked") diff --git a/core/src/main/java/org/jclouds/rest/config/RestModule.java b/core/src/main/java/org/jclouds/rest/config/RestModule.java index df3a75d2e1..f7c30a7fbc 100644 --- a/core/src/main/java/org/jclouds/rest/config/RestModule.java +++ b/core/src/main/java/org/jclouds/rest/config/RestModule.java @@ -23,6 +23,7 @@ import static com.google.common.base.Throwables.propagate; import static com.google.common.collect.Maps.transformValues; import static com.google.common.util.concurrent.Atomics.newReference; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.rest.config.BinderUtils.bindHttpApi; import static org.jclouds.util.Maps2.transformKeys; import static org.jclouds.util.Predicates2.startsWith; @@ -42,7 +43,6 @@ import org.jclouds.http.functions.config.SaxParserModule; import org.jclouds.internal.FilterStringsBoundToInjectorByName; import org.jclouds.json.config.GsonModule; import org.jclouds.location.config.LocationModule; -import com.google.common.reflect.Invokable; import org.jclouds.rest.AuthorizationException; import org.jclouds.rest.HttpAsyncClient; import org.jclouds.rest.HttpClient; @@ -56,6 +56,7 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import com.google.common.reflect.Invokable; import com.google.common.reflect.TypeToken; import com.google.inject.AbstractModule; import com.google.inject.Provides; @@ -87,9 +88,9 @@ public class RestModule extends AbstractModule { @Singleton protected Cache, Invokable> seedKnownSync2AsyncInvokables() { Cache, Invokable> sync2AsyncBuilder = CacheBuilder.newBuilder().build(); - putInvokables(TypeToken.of(HttpClient.class), TypeToken.of(HttpAsyncClient.class), sync2AsyncBuilder); + putInvokables(typeTokenOf(HttpClient.class), typeTokenOf(HttpAsyncClient.class), sync2AsyncBuilder); for (Class s : sync2Async.keySet()) { - putInvokables(TypeToken.of(s), TypeToken.of(sync2Async.get(s)), sync2AsyncBuilder); + putInvokables(typeTokenOf(s), typeTokenOf(sync2Async.get(s)), sync2AsyncBuilder); } return sync2AsyncBuilder; } diff --git a/core/src/main/java/org/jclouds/rest/internal/BaseRestApiMetadata.java b/core/src/main/java/org/jclouds/rest/internal/BaseRestApiMetadata.java index bd9f0db45b..f48d88f8ad 100644 --- a/core/src/main/java/org/jclouds/rest/internal/BaseRestApiMetadata.java +++ b/core/src/main/java/org/jclouds/rest/internal/BaseRestApiMetadata.java @@ -19,6 +19,7 @@ package org.jclouds.rest.internal; import static com.google.common.base.Preconditions.checkNotNull; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.util.Properties; @@ -71,7 +72,7 @@ public abstract class BaseRestApiMetadata extends BaseApiMetadata implements Res checkNotNull(asyncApi, "asyncApi"); javaApi(api, asyncApi) .name(String.format("%s->%s", api.getSimpleName(), asyncApi.getSimpleName())) - .context(contextToken(TypeToken.of(api), TypeToken.of(asyncApi))) + .context(contextToken(typeTokenOf(api), typeTokenOf(asyncApi))) .defaultProperties(BaseRestApiMetadata.defaultProperties()); } diff --git a/core/src/main/java/org/jclouds/rest/internal/DelegatesToInvocationFunction.java b/core/src/main/java/org/jclouds/rest/internal/DelegatesToInvocationFunction.java index 2e6f604315..9ae84c1f5d 100644 --- a/core/src/main/java/org/jclouds/rest/internal/DelegatesToInvocationFunction.java +++ b/core/src/main/java/org/jclouds/rest/internal/DelegatesToInvocationFunction.java @@ -17,13 +17,13 @@ * under the License. */ package org.jclouds.rest.internal; - import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Predicates.notNull; import static com.google.common.base.Throwables.propagate; import static com.google.common.collect.Iterables.all; import static com.google.common.collect.Iterables.find; import static com.google.inject.util.Types.newParameterizedType; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.util.Optionals2.isReturnTypeOptional; import static org.jclouds.util.Optionals2.unwrapIfOptional; import static org.jclouds.util.Throwables2.getFirstThrowableOfType; @@ -148,7 +148,7 @@ public final class DelegatesToInvocationFunction, Class> syncToAsync, TypeLiteral enclosingType, Function> optionalConverter, F methodInvoker) { this.injector = checkNotNull(injector, "injector"); - this.enclosingType = (TypeToken) TypeToken.of(checkNotNull(enclosingType, "enclosingType").getType()); + this.enclosingType = (TypeToken) typeTokenOf(checkNotNull(enclosingType, "enclosingType").getType()); this.setCaller = checkNotNull(setCaller, "setCaller"); this.syncToAsync = checkNotNull(syncToAsync, "syncToAsync"); this.optionalConverter = checkNotNull(optionalConverter, "optionalConverter"); diff --git a/core/src/test/java/org/jclouds/apis/BaseViewLiveTest.java b/core/src/test/java/org/jclouds/apis/BaseViewLiveTest.java index b6513ca8c0..21ff854231 100644 --- a/core/src/test/java/org/jclouds/apis/BaseViewLiveTest.java +++ b/core/src/test/java/org/jclouds/apis/BaseViewLiveTest.java @@ -18,6 +18,8 @@ */ package org.jclouds.apis; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.util.Properties; import org.jclouds.Context; @@ -46,7 +48,7 @@ public abstract class BaseViewLiveTest extends BaseContextLiveTe @Override protected TypeToken contextType() { - return TypeToken.of(Context.class); + return typeTokenOf(Context.class); } protected V createView(Properties props, Iterable modules) { diff --git a/core/src/test/java/org/jclouds/internal/BaseViewTest.java b/core/src/test/java/org/jclouds/internal/BaseViewTest.java index 5e2c677983..c3de223bb6 100644 --- a/core/src/test/java/org/jclouds/internal/BaseViewTest.java +++ b/core/src/test/java/org/jclouds/internal/BaseViewTest.java @@ -19,6 +19,7 @@ package org.jclouds.internal; import static org.easymock.EasyMock.createMock; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotEquals; import static org.testng.Assert.fail; @@ -31,7 +32,6 @@ import org.testng.annotations.Test; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; -import com.google.common.reflect.TypeToken; /** * @author Adrian Cole @@ -64,22 +64,22 @@ public class BaseViewTest { private static class Wine extends BaseView { protected Wine() { - super(new Water(), TypeToken.of(Water.class)); + super(new Water(), typeTokenOf(Water.class)); } } public void testWaterTurnedIntoWine() { Wine wine = new Wine(); - assertEquals(wine.getBackendType(), TypeToken.of(Water.class)); - assertEquals(wine.unwrap(TypeToken.of(Water.class)).getClass(), Water.class); + assertEquals(wine.getBackendType(), typeTokenOf(Water.class)); + assertEquals(wine.unwrap(typeTokenOf(Water.class)).getClass(), Water.class); assertEquals(wine.unwrap().getClass(), Water.class); } public void testPeanutButterDidntTurnIntoWine() { Wine wine = new Wine(); - assertNotEquals(wine.getBackendType(), TypeToken.of(PeanutButter.class)); + assertNotEquals(wine.getBackendType(), typeTokenOf(PeanutButter.class)); try { - wine.unwrap(TypeToken.of(PeanutButter.class)); + wine.unwrap(typeTokenOf(PeanutButter.class)); fail(); } catch (IllegalArgumentException e) { assertEquals(e.getMessage(), "backend type: org.jclouds.internal.BaseViewTest$Water not assignable from org.jclouds.internal.BaseViewTest$PeanutButter"); diff --git a/core/src/test/java/org/jclouds/providers/internal/BaseProviderMetadataTest.java b/core/src/test/java/org/jclouds/providers/internal/BaseProviderMetadataTest.java index 006397de21..a915b12e1e 100644 --- a/core/src/test/java/org/jclouds/providers/internal/BaseProviderMetadataTest.java +++ b/core/src/test/java/org/jclouds/providers/internal/BaseProviderMetadataTest.java @@ -19,6 +19,7 @@ package org.jclouds.providers.internal; import static com.google.common.base.Preconditions.checkNotNull; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.testng.Assert.assertEquals; import java.util.Set; @@ -62,7 +63,7 @@ public abstract class BaseProviderMetadataTest { public void testOfApiContains() { if (expectedApi == null) Logger.getAnonymousLogger().warning("please update your test class"); - ImmutableSet ofApi = ImmutableSet.copyOf(Providers.apiMetadataAssignableFrom(TypeToken.of(expectedApi.getClass()))); + ImmutableSet ofApi = ImmutableSet.copyOf(Providers.apiMetadataAssignableFrom(typeTokenOf(expectedApi.getClass()))); assert ofApi.contains(toTest) : String.format("%s not found in %s", toTest, ofApi); } diff --git a/core/src/test/java/org/jclouds/rest/internal/BaseRestApiMetadataTest.java b/core/src/test/java/org/jclouds/rest/internal/BaseRestApiMetadataTest.java index 629a6e9508..68448dd562 100644 --- a/core/src/test/java/org/jclouds/rest/internal/BaseRestApiMetadataTest.java +++ b/core/src/test/java/org/jclouds/rest/internal/BaseRestApiMetadataTest.java @@ -18,6 +18,8 @@ */ package org.jclouds.rest.internal; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.util.Set; import org.jclouds.View; @@ -44,7 +46,7 @@ public abstract class BaseRestApiMetadataTest extends BaseApiMetadataTest { @Test public void testContextAssignableFromRestContext() { - Set all = ImmutableSet.copyOf(Apis.contextAssignableFrom(TypeToken.of(RestContext.class))); + Set all = ImmutableSet.copyOf(Apis.contextAssignableFrom(typeTokenOf(RestContext.class))); assert all.contains(toTest) : String.format("%s not found in %s", toTest, all); } diff --git a/core/src/test/java/org/jclouds/rest/internal/BlockOnFutureTest.java b/core/src/test/java/org/jclouds/rest/internal/BlockOnFutureTest.java index 3c64aa4aea..ed4e669578 100644 --- a/core/src/test/java/org/jclouds/rest/internal/BlockOnFutureTest.java +++ b/core/src/test/java/org/jclouds/rest/internal/BlockOnFutureTest.java @@ -22,6 +22,7 @@ import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.verify; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.testng.Assert.assertEquals; import java.util.concurrent.ExecutionException; @@ -67,7 +68,7 @@ public class BlockOnFutureTest { @BeforeClass void setupInvocations() throws SecurityException, NoSuchMethodException { - enclosingType = TypeToken.of(ThingAsyncApi.class); + enclosingType = typeTokenOf(ThingAsyncApi.class); get = Invocation.create(enclosingType.method(ThingAsyncApi.class.getDeclaredMethod("get")), ImmutableList.of()); namedGet = Invocation.create(enclosingType.method(ThingAsyncApi.class.getDeclaredMethod("namedGet")), ImmutableList.of()); diff --git a/core/src/test/java/org/jclouds/util/Throwables2Test.java b/core/src/test/java/org/jclouds/util/Throwables2Test.java index 98f493e213..907d739865 100644 --- a/core/src/test/java/org/jclouds/util/Throwables2Test.java +++ b/core/src/test/java/org/jclouds/util/Throwables2Test.java @@ -20,6 +20,7 @@ package org.jclouds.util; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.createNiceMock; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.util.Throwables2.getFirstThrowableOfType; import static org.jclouds.util.Throwables2.propagateIfPossible; import static org.testng.Assert.assertEquals; @@ -147,14 +148,14 @@ public class Throwables2Test { @Test(expectedExceptions = TestException.class) public void testPropagateExceptionThatsInList() throws Throwable { Exception e = new TestException(); - propagateIfPossible(e, ImmutableSet.> of(TypeToken.of(TestException.class))); + propagateIfPossible(e, ImmutableSet.> of(typeTokenOf(TestException.class))); } @Test(expectedExceptions = TestException.class) public void testPropagateWrappedExceptionThatsInList() throws Throwable { Exception e = new TestException(); propagateIfPossible(new RuntimeException(e), - ImmutableSet.> of(TypeToken.of(TestException.class))); + ImmutableSet.> of(typeTokenOf(TestException.class))); } public void testPropagateIfPossibleDoesnThrowExceptionNotInList() throws Throwable { diff --git a/labs/abiquo/src/main/java/org/jclouds/abiquo/AbiquoApiMetadata.java b/labs/abiquo/src/main/java/org/jclouds/abiquo/AbiquoApiMetadata.java index 19247114ad..681e4edc61 100644 --- a/labs/abiquo/src/main/java/org/jclouds/abiquo/AbiquoApiMetadata.java +++ b/labs/abiquo/src/main/java/org/jclouds/abiquo/AbiquoApiMetadata.java @@ -18,12 +18,12 @@ */ package org.jclouds.abiquo; - import static java.util.concurrent.TimeUnit.SECONDS; import static org.jclouds.Constants.PROPERTY_MAX_REDIRECTS; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; import static org.jclouds.abiquo.config.AbiquoProperties.ASYNC_TASK_MONITOR_DELAY; import static org.jclouds.abiquo.config.AbiquoProperties.CREDENTIAL_IS_TOKEN; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -91,7 +91,7 @@ public class AbiquoApiMetadata extends BaseRestApiMetadata { .defaultEndpoint("http://localhost/api") .version(AbiquoAsyncApi.API_VERSION) .buildVersion(AbiquoAsyncApi.BUILD_VERSION) - .view(TypeToken.of(AbiquoContext.class)) + .view(typeTokenOf(AbiquoContext.class)) .defaultProperties(AbiquoApiMetadata.defaultProperties()) .defaultModules( ImmutableSet.> of(AbiquoRestClientModule.class, diff --git a/labs/abiquo/src/test/java/org/jclouds/abiquo/internal/BaseAbiquoLiveApiTest.java b/labs/abiquo/src/test/java/org/jclouds/abiquo/internal/BaseAbiquoLiveApiTest.java index 52eae23905..737f37ff49 100644 --- a/labs/abiquo/src/test/java/org/jclouds/abiquo/internal/BaseAbiquoLiveApiTest.java +++ b/labs/abiquo/src/test/java/org/jclouds/abiquo/internal/BaseAbiquoLiveApiTest.java @@ -16,9 +16,10 @@ * specific language governing permissions and limitations * under the License. */ - package org.jclouds.abiquo.internal; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.util.Properties; import org.jclouds.abiquo.AbiquoContext; @@ -58,7 +59,7 @@ public abstract class BaseAbiquoLiveApiTest extends BaseViewLiveTest viewType() { - return TypeToken.of(AbiquoContext.class); + return typeTokenOf(AbiquoContext.class); } } diff --git a/labs/azure-management/src/main/java/org/jclouds/azure/management/AzureManagementApiMetadata.java b/labs/azure-management/src/main/java/org/jclouds/azure/management/AzureManagementApiMetadata.java index 0c631d05a5..4230f092f0 100644 --- a/labs/azure-management/src/main/java/org/jclouds/azure/management/AzureManagementApiMetadata.java +++ b/labs/azure-management/src/main/java/org/jclouds/azure/management/AzureManagementApiMetadata.java @@ -21,6 +21,7 @@ package org.jclouds.azure.management; import static java.util.concurrent.TimeUnit.SECONDS; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; import static org.jclouds.azure.management.config.AzureManagementProperties.SUBSCRIPTION_ID; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -82,7 +83,7 @@ public class AzureManagementApiMetadata extends BaseRestApiMetadata { .endpointName("Service Management Endpoint ending in your Subscription Id") .documentation(URI.create("http://msdn.microsoft.com/en-us/library/ee460799")) .defaultProperties(AzureManagementApiMetadata.defaultProperties()) - .view(TypeToken.of(ComputeServiceContext.class)) + .view(typeTokenOf(ComputeServiceContext.class)) .defaultModules(ImmutableSet.> of(AzureManagementComputeServiceContextModule.class, AzureManagementRestClientModule.class)); } diff --git a/labs/elb/src/main/java/org/jclouds/elb/config/ELBRestClientModule.java b/labs/elb/src/main/java/org/jclouds/elb/config/ELBRestClientModule.java index b63b1f4500..aa4d0d4144 100644 --- a/labs/elb/src/main/java/org/jclouds/elb/config/ELBRestClientModule.java +++ b/labs/elb/src/main/java/org/jclouds/elb/config/ELBRestClientModule.java @@ -18,23 +18,24 @@ */ package org.jclouds.elb.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.util.Map; import org.jclouds.aws.config.FormSigningRestClientModule; -import org.jclouds.elb.ELBAsyncApi; import org.jclouds.elb.ELBApi; -import org.jclouds.elb.features.InstanceAsyncApi; -import org.jclouds.elb.features.InstanceApi; -import org.jclouds.elb.features.LoadBalancerAsyncApi; -import org.jclouds.elb.features.LoadBalancerApi; -import org.jclouds.elb.features.PolicyAsyncApi; -import org.jclouds.elb.features.PolicyApi; -import org.jclouds.elb.features.AvailabilityZoneAsyncApi; +import org.jclouds.elb.ELBAsyncApi; import org.jclouds.elb.features.AvailabilityZoneApi; +import org.jclouds.elb.features.AvailabilityZoneAsyncApi; +import org.jclouds.elb.features.InstanceApi; +import org.jclouds.elb.features.InstanceAsyncApi; +import org.jclouds.elb.features.LoadBalancerApi; +import org.jclouds.elb.features.LoadBalancerAsyncApi; +import org.jclouds.elb.features.PolicyApi; +import org.jclouds.elb.features.PolicyAsyncApi; import org.jclouds.rest.ConfiguresRestClient; import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeToken; /** * Configures the ELB connection. @@ -51,6 +52,6 @@ public class ELBRestClientModule extends FormSigningRestClientModule> of( FGCPComputeServiceContextModule.class, diff --git a/labs/iam/src/main/java/org/jclouds/iam/config/IAMRestClientModule.java b/labs/iam/src/main/java/org/jclouds/iam/config/IAMRestClientModule.java index 25e0c165e2..90eee2d161 100644 --- a/labs/iam/src/main/java/org/jclouds/iam/config/IAMRestClientModule.java +++ b/labs/iam/src/main/java/org/jclouds/iam/config/IAMRestClientModule.java @@ -18,17 +18,18 @@ */ package org.jclouds.iam.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.util.Map; import org.jclouds.aws.config.FormSigningRestClientModule; -import org.jclouds.iam.IAMAsyncApi; import org.jclouds.iam.IAMApi; -import org.jclouds.iam.features.UserAsyncApi; +import org.jclouds.iam.IAMAsyncApi; import org.jclouds.iam.features.UserApi; +import org.jclouds.iam.features.UserAsyncApi; import org.jclouds.rest.ConfiguresRestClient; import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeToken; /** * Configures the Monitoring connection. @@ -42,7 +43,7 @@ public class IAMRestClientModule extends FormSigningRestClientModule> of(DatacentersAreZonesModule.class, JoyentCloudRestClientModule.class, JoyentCloudComputeServiceContextModule.class)); } diff --git a/labs/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/reference/Metadata.java b/labs/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/reference/Metadata.java index fd61e2b391..45ab0c07cb 100644 --- a/labs/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/reference/Metadata.java +++ b/labs/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/reference/Metadata.java @@ -18,6 +18,8 @@ */ package org.jclouds.joyent.cloudapi.v6_5.reference; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.lang.reflect.Type; import java.util.Map; @@ -30,7 +32,7 @@ import com.google.common.reflect.TypeToken; * @author Adrian Cole */ public enum Metadata { - ROOT_AUTHORIZED_KEYS(TypeToken.of(String.class).getType()), + ROOT_AUTHORIZED_KEYS(typeTokenOf(String.class).getType()), /** * If the dataset you create a machine from is set to generate passwords for * you, the username/password pairs will be returned in the metadata response diff --git a/labs/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthRestClientModule.java b/labs/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthRestClientModule.java index 3f6864aa1b..485e1c7b0a 100644 --- a/labs/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthRestClientModule.java +++ b/labs/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthRestClientModule.java @@ -1,17 +1,21 @@ package org.jclouds.oauth.v2.config; -import com.google.common.base.Supplier; -import com.google.common.base.Suppliers; -import com.google.common.reflect.TypeToken; -import com.google.inject.Provides; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + +import java.net.URI; + +import javax.inject.Singleton; + import org.jclouds.oauth.v2.OAuthApi; import org.jclouds.oauth.v2.OAuthAsyncApi; import org.jclouds.providers.ProviderMetadata; import org.jclouds.rest.ConfiguresRestClient; import org.jclouds.rest.config.RestClientModule; -import javax.inject.Singleton; -import java.net.URI; +import com.google.common.base.Supplier; +import com.google.common.base.Suppliers; +import com.google.common.reflect.TypeToken; +import com.google.inject.Provides; /** * OAuth module to when accessing OAuth stand-alone. @@ -22,7 +26,7 @@ import java.net.URI; public class OAuthRestClientModule extends RestClientModule { public OAuthRestClientModule() { - super(TypeToken.class.cast(TypeToken.of(OAuthApi.class)), TypeToken.class.cast(TypeToken.of(OAuthAsyncApi + super(TypeToken.class.cast(typeTokenOf(OAuthApi.class)), TypeToken.class.cast(typeTokenOf(OAuthAsyncApi .class))); } diff --git a/labs/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/config/GlanceRestClientModule.java b/labs/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/config/GlanceRestClientModule.java index e5bda4af23..a28270c73e 100644 --- a/labs/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/config/GlanceRestClientModule.java +++ b/labs/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/config/GlanceRestClientModule.java @@ -18,6 +18,8 @@ */ package org.jclouds.openstack.glance.v1_0.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.net.URI; import java.util.Map; import java.util.Set; @@ -68,7 +70,7 @@ public class GlanceRestClientModule syncClientType, TypeToken asyncClientType, Map, Class> sync2Async) { diff --git a/labs/openstack-quantum/src/main/java/org/jclouds/openstack/quantum/v1_0/config/QuantumRestClientModule.java b/labs/openstack-quantum/src/main/java/org/jclouds/openstack/quantum/v1_0/config/QuantumRestClientModule.java index 4290fa1f52..4f2591ab60 100644 --- a/labs/openstack-quantum/src/main/java/org/jclouds/openstack/quantum/v1_0/config/QuantumRestClientModule.java +++ b/labs/openstack-quantum/src/main/java/org/jclouds/openstack/quantum/v1_0/config/QuantumRestClientModule.java @@ -18,6 +18,8 @@ */ package org.jclouds.openstack.quantum.v1_0.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.net.URI; import java.util.Map; import java.util.Set; @@ -72,7 +74,7 @@ public class QuantumRestClientModule syncClientType, TypeToken asyncClientType, Map, Class> sync2Async) { diff --git a/labs/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/config/SwiftRestClientModule.java b/labs/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/config/SwiftRestClientModule.java index fe022ae57b..58914ab047 100644 --- a/labs/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/config/SwiftRestClientModule.java +++ b/labs/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/config/SwiftRestClientModule.java @@ -18,6 +18,8 @@ */ package org.jclouds.openstack.swift.v1.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.net.URI; import java.util.Map; import java.util.Set; @@ -75,7 +77,7 @@ public class SwiftRestClientModule @SuppressWarnings("unchecked") public SwiftRestClientModule() { - super(TypeToken.class.cast(TypeToken.of(SwiftApi.class)), TypeToken.class.cast(TypeToken.of(SwiftAsyncApi.class)), DELEGATE_MAP); + super(TypeToken.class.cast(typeTokenOf(SwiftApi.class)), TypeToken.class.cast(typeTokenOf(SwiftAsyncApi.class)), DELEGATE_MAP); } protected SwiftRestClientModule(TypeToken syncClientType, TypeToken asyncClientType, Map, Class> sync2Async) { diff --git a/labs/rds/src/main/java/org/jclouds/rds/config/RDSRestClientModule.java b/labs/rds/src/main/java/org/jclouds/rds/config/RDSRestClientModule.java index 617981b96f..4008ce82ef 100644 --- a/labs/rds/src/main/java/org/jclouds/rds/config/RDSRestClientModule.java +++ b/labs/rds/src/main/java/org/jclouds/rds/config/RDSRestClientModule.java @@ -18,21 +18,22 @@ */ package org.jclouds.rds.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.util.Map; import org.jclouds.aws.config.FormSigningRestClientModule; -import org.jclouds.rds.RDSAsyncApi; import org.jclouds.rds.RDSApi; -import org.jclouds.rds.features.InstanceAsyncApi; +import org.jclouds.rds.RDSAsyncApi; import org.jclouds.rds.features.InstanceApi; -import org.jclouds.rds.features.SecurityGroupAsyncApi; +import org.jclouds.rds.features.InstanceAsyncApi; import org.jclouds.rds.features.SecurityGroupApi; -import org.jclouds.rds.features.SubnetGroupAsyncApi; +import org.jclouds.rds.features.SecurityGroupAsyncApi; import org.jclouds.rds.features.SubnetGroupApi; +import org.jclouds.rds.features.SubnetGroupAsyncApi; import org.jclouds.rest.ConfiguresRestClient; import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeToken; /** * Configures the RDS connection. @@ -48,6 +49,6 @@ public class RDSRestClientModule extends FormSigningRestClientModule>of(VPDCRestClientModule.class, VPDCComputeServiceContextModule.class)); } diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadata.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadata.java index e0d9025f98..b7d0052e53 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadata.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadata.java @@ -21,6 +21,7 @@ package org.jclouds.vcloud.director.v1_5; import static java.util.concurrent.TimeUnit.MINUTES; import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants.PROPERTY_VCLOUD_DIRECTOR_TIMEOUT_TASK_COMPLETED; import static org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants.PROPERTY_VCLOUD_DIRECTOR_VERSION_SCHEMA; import static org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants.PROPERTY_VCLOUD_DIRECTOR_XML_NAMESPACE; @@ -32,8 +33,8 @@ import java.util.Properties; import org.jclouds.apis.ApiMetadata; import org.jclouds.rest.internal.BaseRestApiMetadata; import org.jclouds.vcloud.director.v1_5.config.VCloudDirectorRestClientModule; -import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorAsyncApi; import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi; +import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorAsyncApi; import com.google.common.reflect.TypeToken; @@ -44,7 +45,7 @@ import com.google.common.reflect.TypeToken; */ public class VCloudDirectorApiMetadata extends BaseRestApiMetadata { - public static final TypeToken CONTEXT_TOKEN = TypeToken.of(VCloudDirectorContext.class); + public static final TypeToken CONTEXT_TOKEN = typeTokenOf(VCloudDirectorContext.class); @Override public Builder toBuilder() { @@ -88,7 +89,7 @@ public class VCloudDirectorApiMetadata extends BaseRestApiMetadata { .documentation(URI.create("http://www.vmware.com/support/pubs/vcd_pubs.html")) .version("1.5") .defaultProperties(VCloudDirectorApiMetadata.defaultProperties()) - .context(TypeToken.of(VCloudDirectorContext.class)) + .context(typeTokenOf(VCloudDirectorContext.class)) .defaultModule(VCloudDirectorRestClientModule.class); } diff --git a/loadbalancer/src/test/java/org/jclouds/loadbalancer/BaseLoadBalancerServiceLiveTest.java b/loadbalancer/src/test/java/org/jclouds/loadbalancer/BaseLoadBalancerServiceLiveTest.java index 738208b33b..e9e296aeed 100644 --- a/loadbalancer/src/test/java/org/jclouds/loadbalancer/BaseLoadBalancerServiceLiveTest.java +++ b/loadbalancer/src/test/java/org/jclouds/loadbalancer/BaseLoadBalancerServiceLiveTest.java @@ -20,6 +20,7 @@ package org.jclouds.loadbalancer; import static com.google.common.base.Preconditions.checkNotNull; import static java.util.concurrent.TimeUnit.SECONDS; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.util.Predicates2.retry; import static org.testng.Assert.assertNotNull; @@ -183,6 +184,6 @@ public abstract class BaseLoadBalancerServiceLiveTest extends BaseViewLiveTest viewType() { - return TypeToken.of(LoadBalancerServiceContext.class); + return typeTokenOf(LoadBalancerServiceContext.class); } } diff --git a/loadbalancer/src/test/java/org/jclouds/loadbalancer/internal/BaseLoadBalancerServiceApiMetadataTest.java b/loadbalancer/src/test/java/org/jclouds/loadbalancer/internal/BaseLoadBalancerServiceApiMetadataTest.java index 236b27c16e..cd40a0c8e1 100644 --- a/loadbalancer/src/test/java/org/jclouds/loadbalancer/internal/BaseLoadBalancerServiceApiMetadataTest.java +++ b/loadbalancer/src/test/java/org/jclouds/loadbalancer/internal/BaseLoadBalancerServiceApiMetadataTest.java @@ -18,6 +18,8 @@ */ package org.jclouds.loadbalancer.internal; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import org.jclouds.View; import org.jclouds.apis.ApiMetadata; import org.jclouds.apis.internal.BaseApiMetadataTest; @@ -35,7 +37,7 @@ import com.google.common.reflect.TypeToken; public abstract class BaseLoadBalancerServiceApiMetadataTest extends BaseApiMetadataTest { public BaseLoadBalancerServiceApiMetadataTest(ApiMetadata toTest) { - super(toTest, ImmutableSet.>of(TypeToken.of(LoadBalancerServiceContext.class))); + super(toTest, ImmutableSet.>of(typeTokenOf(LoadBalancerServiceContext.class))); } } diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/config/AWSEC2RestClientModule.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/config/AWSEC2RestClientModule.java index c4e35505e5..106b4dd8ba 100644 --- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/config/AWSEC2RestClientModule.java +++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/config/AWSEC2RestClientModule.java @@ -18,6 +18,8 @@ */ package org.jclouds.aws.ec2.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; + import java.util.Map; import javax.inject.Singleton; @@ -68,7 +70,6 @@ import org.jclouds.rest.ConfiguresRestClient; import com.google.common.base.Function; import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeToken; import com.google.inject.Provides; import com.google.inject.TypeLiteral; @@ -97,7 +98,7 @@ public class AWSEC2RestClientModule extends EC2RestClientModule>of(AWSS3RestClientModule.class, AWSS3BlobStoreContextModule.class)); } diff --git a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/config/AWSS3RestClientModule.java b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/config/AWSS3RestClientModule.java index cb5118181c..d0050b8e95 100644 --- a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/config/AWSS3RestClientModule.java +++ b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/config/AWSS3RestClientModule.java @@ -19,6 +19,7 @@ package org.jclouds.aws.s3.config; import static org.jclouds.aws.domain.Region.US_STANDARD; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import javax.inject.Singleton; @@ -35,7 +36,6 @@ import org.jclouds.s3.predicates.validators.BucketNameValidator; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; -import com.google.common.reflect.TypeToken; import com.google.inject.Provides; /** @@ -47,7 +47,7 @@ import com.google.inject.Provides; public class AWSS3RestClientModule extends S3RestClientModule { public AWSS3RestClientModule() { - super(TypeToken.of(AWSS3Client.class), TypeToken.of(AWSS3AsyncClient.class)); + super(typeTokenOf(AWSS3Client.class), typeTokenOf(AWSS3AsyncClient.class)); } @Override diff --git a/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobApiMetadata.java b/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobApiMetadata.java index f64199541e..100fe0c60e 100644 --- a/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobApiMetadata.java +++ b/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobApiMetadata.java @@ -21,6 +21,7 @@ package org.jclouds.azureblob; import static java.util.concurrent.TimeUnit.MINUTES; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; import static org.jclouds.blobstore.reference.BlobStoreConstants.PROPERTY_USER_METADATA_PREFIX; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -85,7 +86,7 @@ public class AzureBlobApiMetadata extends BaseRestApiMetadata { .defaultEndpoint("https://${jclouds.identity}.blob.core.windows.net") .documentation(URI.create("http://msdn.microsoft.com/en-us/library/dd135733.aspx")) .defaultProperties(AzureBlobApiMetadata.defaultProperties()) - .view(TypeToken.of(BlobStoreContext.class)) + .view(typeTokenOf(BlobStoreContext.class)) .defaultModules(ImmutableSet.>of(AzureBlobRestClientModule.class, AzureBlobStoreContextModule.class)); } diff --git a/providers/glesys/src/main/java/org/jclouds/glesys/GleSYSApiMetadata.java b/providers/glesys/src/main/java/org/jclouds/glesys/GleSYSApiMetadata.java index 5df9afe324..1266ad4bb3 100644 --- a/providers/glesys/src/main/java/org/jclouds/glesys/GleSYSApiMetadata.java +++ b/providers/glesys/src/main/java/org/jclouds/glesys/GleSYSApiMetadata.java @@ -21,6 +21,7 @@ package org.jclouds.glesys; import static java.util.concurrent.TimeUnit.MINUTES; import static java.util.concurrent.TimeUnit.SECONDS; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -83,7 +84,7 @@ public class GleSYSApiMetadata extends BaseRestApiMetadata { .buildVersion("3.5.0") .defaultEndpoint("https://api.glesys.com") .defaultProperties(GleSYSApiMetadata.defaultProperties()) - .view(TypeToken.of(ComputeServiceContext.class)) + .view(typeTokenOf(ComputeServiceContext.class)) .defaultModules(ImmutableSet.>of(GleSYSComputeServiceContextModule.class, GleSYSRestClientModule.class)); } diff --git a/providers/gogrid/src/main/java/org/jclouds/gogrid/GoGridApiMetadata.java b/providers/gogrid/src/main/java/org/jclouds/gogrid/GoGridApiMetadata.java index 5de6ed448a..b932d49df1 100644 --- a/providers/gogrid/src/main/java/org/jclouds/gogrid/GoGridApiMetadata.java +++ b/providers/gogrid/src/main/java/org/jclouds/gogrid/GoGridApiMetadata.java @@ -20,6 +20,7 @@ package org.jclouds.gogrid; import static java.util.concurrent.TimeUnit.SECONDS; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -79,7 +80,7 @@ public class GoGridApiMetadata extends BaseRestApiMetadata { .version(GoGridAsyncClient.VERSION) .defaultEndpoint("https://api.gogrid.com/api") .defaultProperties(GoGridApiMetadata.defaultProperties()) - .view(TypeToken.of(ComputeServiceContext.class)) + .view(typeTokenOf(ComputeServiceContext.class)) .defaultModules(ImmutableSet.>of(GoGridRestClientModule.class, GoGridComputeServiceContextModule.class)); } diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobRequestSigner.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobRequestSigner.java index a54ab60813..456ede0de4 100644 --- a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobRequestSigner.java +++ b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobRequestSigner.java @@ -28,6 +28,7 @@ import static com.google.common.io.BaseEncoding.base16; import static com.google.common.io.ByteStreams.readBytes; import static org.jclouds.blobstore.util.BlobStoreUtils.cleanRequest; import static org.jclouds.crypto.Macs.asByteProcessor; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.util.Strings2.toInputStream; import java.io.IOException; @@ -100,8 +101,7 @@ public class HPCloudObjectStorageBlobRequestSigner implements BlobRequestSigner this.blob2HttpGetOptions = checkNotNull(blob2HttpGetOptions, "blob2HttpGetOptions"); Class interfaceClass = HPCloudObjectStorageAsyncApi.class; - TypeToken interfaceType = TypeToken.of(HPCloudObjectStorageAsyncApi.class); - + TypeToken interfaceType = typeTokenOf(HPCloudObjectStorageAsyncApi.class); this.getMethod = interfaceType.method(interfaceClass.getMethod("getObject", String.class, String.class, GetOptions[].class)); this.deleteMethod = interfaceType.method(interfaceClass.getMethod("removeObject", String.class, String.class)); diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageRestClientModule.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageRestClientModule.java index 4db5bda2a5..b8f148aead 100644 --- a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageRestClientModule.java +++ b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageRestClientModule.java @@ -18,6 +18,7 @@ */ package org.jclouds.hpcloud.objectstorage.config; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import static org.jclouds.util.Suppliers2.getLastValueInMap; import java.net.URI; @@ -40,7 +41,6 @@ import org.jclouds.rest.annotations.ApiVersion; import com.google.common.base.Supplier; import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeToken; import com.google.inject.Provides; import com.google.inject.Scopes; @@ -55,7 +55,7 @@ public class HPCloudObjectStorageRestClientModule extends CDNContainerApi.class, CDNContainerAsyncApi.class).build(); public HPCloudObjectStorageRestClientModule() { - super(TypeToken.of(HPCloudObjectStorageApi.class), TypeToken.of(HPCloudObjectStorageAsyncApi.class), + super(typeTokenOf(HPCloudObjectStorageApi.class), typeTokenOf(HPCloudObjectStorageAsyncApi.class), DELEGATE_MAP); } diff --git a/providers/softlayer/src/main/java/org/jclouds/softlayer/SoftLayerApiMetadata.java b/providers/softlayer/src/main/java/org/jclouds/softlayer/SoftLayerApiMetadata.java index 0c1e58cb6b..842a00cab8 100644 --- a/providers/softlayer/src/main/java/org/jclouds/softlayer/SoftLayerApiMetadata.java +++ b/providers/softlayer/src/main/java/org/jclouds/softlayer/SoftLayerApiMetadata.java @@ -21,6 +21,7 @@ package org.jclouds.softlayer; import static java.util.concurrent.TimeUnit.MINUTES; import static java.util.concurrent.TimeUnit.SECONDS; import static org.jclouds.Constants.PROPERTY_TIMEOUTS_PREFIX; +import static org.jclouds.reflect.Reflection2.typeTokenOf; import java.net.URI; import java.util.Properties; @@ -81,7 +82,7 @@ public class SoftLayerApiMetadata extends BaseRestApiMetadata { .version("3") .defaultEndpoint("https://api.softlayer.com/rest") .defaultProperties(SoftLayerApiMetadata.defaultProperties()) - .view(TypeToken.of(ComputeServiceContext.class)) + .view(typeTokenOf(ComputeServiceContext.class)) .defaultModules(ImmutableSet.>of(SoftLayerRestClientModule.class, SoftLayerComputeServiceContextModule.class)); }