Merge branch 'master' of github.com:jclouds/jclouds into 1.5.x
* 'master' of github.com:jclouds/jclouds:
fix covariance/assignability in RestContext<? extends Client> subclasses
Issue 891: ensure we run apt update when install jdk fails
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosRestClientModule.java b/apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosRestClientModule.java
index b9d52d4..469922a 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosRestClientModule.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosRestClientModule.java
@@ -50,9 +50,6 @@
*/
@ConfiguresRestClient
public class AtmosRestClientModule extends RestClientModule<AtmosClient, AtmosAsyncClient> {
- public AtmosRestClientModule() {
- super(AtmosClient.class, AtmosAsyncClient.class);
- }
@Override
protected void configure() {
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 cdbc74d..bbaffb5 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
@@ -54,10 +54,6 @@
@ConfiguresRestClient
public class CloudFilesRestClientModule extends RestClientModule<CloudFilesClient, CloudFilesAsyncClient> {
- public CloudFilesRestClientModule() {
- super(CloudFilesClient.class, CloudFilesAsyncClient.class);
- }
-
@Provides
@Singleton
CommonSwiftClient provideCommonSwiftClient(CloudFilesClient in) {
diff --git a/apis/cloudloadbalancers/src/main/java/org/jclouds/cloudloadbalancers/config/CloudLoadBalancersRestClientModule.java b/apis/cloudloadbalancers/src/main/java/org/jclouds/cloudloadbalancers/config/CloudLoadBalancersRestClientModule.java
index bd9e8ce..f7bc1f3 100644
--- a/apis/cloudloadbalancers/src/main/java/org/jclouds/cloudloadbalancers/config/CloudLoadBalancersRestClientModule.java
+++ b/apis/cloudloadbalancers/src/main/java/org/jclouds/cloudloadbalancers/config/CloudLoadBalancersRestClientModule.java
@@ -73,7 +73,7 @@
.build();
public CloudLoadBalancersRestClientModule() {
- super(CloudLoadBalancersClient.class, CloudLoadBalancersAsyncClient.class, DELEGATE_MAP);
+ super(DELEGATE_MAP);
}
protected void installLocations() {
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/config/CloudServersRestClientModule.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/config/CloudServersRestClientModule.java
index 13f267c..bb0399d 100644
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/config/CloudServersRestClientModule.java
+++ b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/config/CloudServersRestClientModule.java
@@ -54,10 +54,6 @@
@ConfiguresRestClient
public class CloudServersRestClientModule extends RestClientModule<CloudServersClient, CloudServersAsyncClient> {
- public CloudServersRestClientModule() {
- super(CloudServersClient.class, CloudServersAsyncClient.class);
- }
-
@Override
protected void configure() {
bind(DateAdapter.class).to(Iso8601DateAdapter.class);
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/config/CloudSigmaRestClientModule.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/config/CloudSigmaRestClientModule.java
index ce17878..a8ca588 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/config/CloudSigmaRestClientModule.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/config/CloudSigmaRestClientModule.java
@@ -57,10 +57,6 @@
@ConfiguresRestClient
public class CloudSigmaRestClientModule extends RestClientModule<CloudSigmaClient, CloudSigmaAsyncClient> {
- public CloudSigmaRestClientModule() {
- super(CloudSigmaClient.class, CloudSigmaAsyncClient.class);
- }
-
@Override
protected void bindErrorHandlers() {
bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(CloudSigmaErrorHandler.class);
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CloudStackRestClientModule.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CloudStackRestClientModule.java
index a5b63e1..7bf1afd 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CloudStackRestClientModule.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CloudStackRestClientModule.java
@@ -221,7 +221,7 @@
}
public CloudStackRestClientModule() {
- super(CloudStackClient.class, CloudStackAsyncClient.class, DELEGATE_MAP);
+ super(DELEGATE_MAP);
}
@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 ebede44..7905335 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
@@ -30,8 +30,5 @@
*/
@ConfiguresRestClient
public class CloudWatchRestClientModule extends FormSigningRestClientModule<CloudWatchClient, CloudWatchAsyncClient> {
- public CloudWatchRestClientModule() {
- super(CloudWatchClient.class, CloudWatchAsyncClient.class);
- }
}
diff --git a/apis/deltacloud/src/main/java/org/jclouds/deltacloud/config/DeltacloudRestClientModule.java b/apis/deltacloud/src/main/java/org/jclouds/deltacloud/config/DeltacloudRestClientModule.java
index 8a1664d..73974a0 100644
--- a/apis/deltacloud/src/main/java/org/jclouds/deltacloud/config/DeltacloudRestClientModule.java
+++ b/apis/deltacloud/src/main/java/org/jclouds/deltacloud/config/DeltacloudRestClientModule.java
@@ -63,10 +63,6 @@
@ConfiguresRestClient
public class DeltacloudRestClientModule extends RestClientModule<DeltacloudClient, DeltacloudAsyncClient> {
- public DeltacloudRestClientModule() {
- super(DeltacloudClient.class, DeltacloudAsyncClient.class);
- }
-
@Override
protected void bindErrorHandlers() {
bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(DeltacloudErrorHandler.class);
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java b/apis/ec2/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java
index b15f956..2964886 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java
@@ -62,7 +62,7 @@
/** The serialVersionUID */
private static final long serialVersionUID = 4424763314988423886L;
- public static final TypeToken<RestContext<EC2Client, EC2AsyncClient>> CONTEXT_TOKEN = new TypeToken<RestContext<EC2Client, EC2AsyncClient>>() {
+ public static final TypeToken<RestContext<? extends EC2Client, ? extends EC2AsyncClient>> CONTEXT_TOKEN = new TypeToken<RestContext<? extends EC2Client, ? extends EC2AsyncClient>>() {
private static final long serialVersionUID = -5070937833892503232L;
};
@@ -103,6 +103,7 @@
.documentation(URI.create("http://docs.amazonwebservices.com/AWSEC2/latest/APIReference"))
.version(EC2AsyncClient.VERSION)
.defaultProperties(EC2ApiMetadata.defaultProperties())
+ .context(CONTEXT_TOKEN)
.wrapper(EC2ComputeServiceContext.class)
.defaultModules(ImmutableSet.<Class<? extends Module>>of(EC2RestClientModule.class, EC2ResolveImagesModule.class, EC2ComputeServiceContextModule.class));
}
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/config/EC2RestClientModule.java b/apis/ec2/src/main/java/org/jclouds/ec2/config/EC2RestClientModule.java
index aad33fa..48047b3 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/config/EC2RestClientModule.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/config/EC2RestClientModule.java
@@ -49,6 +49,7 @@
import org.jclouds.rest.ConfiguresRestClient;
import com.google.common.collect.ImmutableMap;
+import com.google.common.reflect.TypeToken;
import com.google.inject.Scopes;
/**
@@ -59,26 +60,28 @@
@ConfiguresRestClient
public class EC2RestClientModule<S extends EC2Client, A extends EC2AsyncClient> extends
WithZonesFormSigningRestClientModule<S, A> {
-
public static final Map<Class<?>, Class<?>> DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>> builder()//
- .put(AMIClient.class, AMIAsyncClient.class)//
- .put(ElasticIPAddressClient.class, ElasticIPAddressAsyncClient.class)//
- .put(InstanceClient.class, InstanceAsyncClient.class)//
- .put(KeyPairClient.class, KeyPairAsyncClient.class)//
- .put(SecurityGroupClient.class, SecurityGroupAsyncClient.class)//
- .put(WindowsClient.class, WindowsAsyncClient.class)//
- .put(AvailabilityZoneAndRegionClient.class, AvailabilityZoneAndRegionAsyncClient.class)//
- .put(ElasticBlockStoreClient.class, ElasticBlockStoreAsyncClient.class)//
- .build();
-
+ .put(AMIClient.class, AMIAsyncClient.class)//
+ .put(ElasticIPAddressClient.class, ElasticIPAddressAsyncClient.class)//
+ .put(InstanceClient.class, InstanceAsyncClient.class)//
+ .put(KeyPairClient.class, KeyPairAsyncClient.class)//
+ .put(SecurityGroupClient.class, SecurityGroupAsyncClient.class)//
+ .put(WindowsClient.class, WindowsAsyncClient.class)//
+ .put(AvailabilityZoneAndRegionClient.class, AvailabilityZoneAndRegionAsyncClient.class)//
+ .put(ElasticBlockStoreClient.class, ElasticBlockStoreAsyncClient.class)//
+ .build();
+
@SuppressWarnings("unchecked")
public EC2RestClientModule() {
- this((Class) EC2Client.class, (Class) EC2AsyncClient.class, DELEGATE_MAP);
+ super((TypeToken) TypeToken.of(EC2Client.class), (TypeToken) TypeToken.of(EC2AsyncClient.class), DELEGATE_MAP);
}
- public EC2RestClientModule(Class<S> sync, Class<A> async, Map<Class<?>, Class<?>> delegateMap) {
- super(sync, async, delegateMap);
+ protected EC2RestClientModule(TypeToken<S> syncClientType, TypeToken<A> asyncClientType,
+ Map<Class<?>, Class<?>> sync2Async) {
+ super(syncClientType, asyncClientType, sync2Async);
}
+
+
@Override
protected void installLocations() {
diff --git a/apis/ec2/src/test/java/org/jclouds/ec2/services/BaseEC2AsyncClientTest.java b/apis/ec2/src/test/java/org/jclouds/ec2/services/BaseEC2AsyncClientTest.java
index 7d3f66c..2890eae 100644
--- a/apis/ec2/src/test/java/org/jclouds/ec2/services/BaseEC2AsyncClientTest.java
+++ b/apis/ec2/src/test/java/org/jclouds/ec2/services/BaseEC2AsyncClientTest.java
@@ -62,13 +62,9 @@
*/
@Test(groups = "unit")
public abstract class BaseEC2AsyncClientTest<T> extends BaseAsyncClientTest<T> {
- @ConfiguresRestClient
+ @ConfiguresRestClient
protected static class StubEC2RestClientModule extends EC2RestClientModule<EC2Client, EC2AsyncClient> {
- public StubEC2RestClientModule() {
- super(EC2Client.class, EC2AsyncClient.class, DELEGATE_MAP);
- }
-
@Provides
@Singleton
LoadingCache<RegionAndName, Image> provide(){
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/config/ElasticStackRestClientModule.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/config/ElasticStackRestClientModule.java
index 93781f3..38b3a85 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/config/ElasticStackRestClientModule.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/config/ElasticStackRestClientModule.java
@@ -57,10 +57,6 @@
@ConfiguresRestClient
public class ElasticStackRestClientModule extends RestClientModule<ElasticStackClient, ElasticStackAsyncClient> {
- public ElasticStackRestClientModule() {
- super(ElasticStackClient.class, ElasticStackAsyncClient.class);
- }
-
@Override
protected void configure() {
super.configure();
diff --git a/apis/nova/src/main/java/org/jclouds/openstack/nova/config/NovaRestClientModule.java b/apis/nova/src/main/java/org/jclouds/openstack/nova/config/NovaRestClientModule.java
index e1c3186..d82c9f0 100644
--- a/apis/nova/src/main/java/org/jclouds/openstack/nova/config/NovaRestClientModule.java
+++ b/apis/nova/src/main/java/org/jclouds/openstack/nova/config/NovaRestClientModule.java
@@ -51,7 +51,6 @@
private final OpenStackAuthenticationModule module;
public NovaRestClientModule(OpenStackAuthenticationModule module) {
- super(NovaClient.class, NovaAsyncClient.class);
this.module = module;
}
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 6ea5685..5d6358b 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
@@ -41,10 +41,6 @@
@ConfiguresRestClient
public class NovaEC2RestClientModule extends EC2RestClientModule<EC2Client, EC2AsyncClient> {
- public NovaEC2RestClientModule() {
- super(EC2Client.class, EC2AsyncClient.class, DELEGATE_MAP);
- }
-
@Override
protected void configure() {
super.configure();
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v1_1/config/NovaRestClientModule.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v1_1/config/NovaRestClientModule.java
index 32c8513..c9f603d 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v1_1/config/NovaRestClientModule.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v1_1/config/NovaRestClientModule.java
@@ -78,7 +78,7 @@
.put(KeyPairClient.class, KeyPairAsyncClient.class).build();
public NovaRestClientModule() {
- super(NovaClient.class, NovaAsyncClient.class, DELEGATE_MAP);
+ super(DELEGATE_MAP);
}
@Override
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 10f0ce4..ae09127 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/S3ApiMetadata.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/S3ApiMetadata.java
@@ -65,7 +65,7 @@
/** The serialVersionUID */
private static final long serialVersionUID = 820062881469203616L;
- public static final TypeToken<RestContext<S3Client, S3AsyncClient>> CONTEXT_TOKEN = new TypeToken<RestContext<S3Client, S3AsyncClient>>() {
+ public static final TypeToken<RestContext<? extends S3Client,? extends S3AsyncClient>> CONTEXT_TOKEN = new TypeToken<RestContext<? extends S3Client,? extends S3AsyncClient>>() {
private static final long serialVersionUID = -5070937833892503232L;
};
@@ -107,6 +107,7 @@
.documentation(URI.create("http://docs.amazonwebservices.com/AmazonS3/latest/API"))
.version(S3AsyncClient.VERSION)
.defaultProperties(S3ApiMetadata.defaultProperties())
+ .context(CONTEXT_TOKEN)
.wrapper(TypeToken.of(S3BlobStoreContext.class))
.defaultModules(ImmutableSet.<Class<? extends Module>>of(S3RestClientModule.class, S3BlobStoreContextModule.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 a1c4450..57978bf 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
@@ -46,6 +46,7 @@
import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
import com.google.common.collect.Maps;
+import com.google.common.reflect.TypeToken;
import com.google.inject.Provides;
import com.google.inject.Scopes;
@@ -59,11 +60,11 @@
@SuppressWarnings("unchecked")
public S3RestClientModule() {
- this((Class) S3Client.class, (Class) S3AsyncClient.class);
+ this((TypeToken) TypeToken.of(S3Client.class), (TypeToken) TypeToken.of(S3AsyncClient.class));
}
- public S3RestClientModule(Class<S> sync, Class<A> async) {
- super(sync, async);
+ protected S3RestClientModule(TypeToken<S> syncClientType, TypeToken<A> asyncClientType) {
+ super(syncClientType, asyncClientType);
}
@Provides
@@ -82,10 +83,10 @@
@Override
protected void configure() {
+ super.configure();
install(new S3ObjectModule());
install(new S3ParserModule());
bind(RequestAuthorizeSignature.class).in(Scopes.SINGLETON);
- super.configure();
}
@Override
diff --git a/apis/s3/src/test/java/org/jclouds/s3/S3AsyncClientTest.java b/apis/s3/src/test/java/org/jclouds/s3/S3AsyncClientTest.java
index 5e54b10..70b8b7c 100644
--- a/apis/s3/src/test/java/org/jclouds/s3/S3AsyncClientTest.java
+++ b/apis/s3/src/test/java/org/jclouds/s3/S3AsyncClientTest.java
@@ -478,13 +478,9 @@
checkFilters(request);
}
- @ConfiguresRestClient
+ @ConfiguresRestClient
private static final class TestS3RestClientModule extends S3RestClientModule<S3Client, S3AsyncClient> {
- public TestS3RestClientModule() {
- super(S3Client.class, S3AsyncClient.class);
- }
-
@Override
protected String provideTimeStamp(@TimeStamp Supplier<String> cache) {
return "2009-11-08T15:54:08.897Z";
diff --git a/apis/s3/src/test/java/org/jclouds/s3/blobstore/S3BlobRequestSignerTest.java b/apis/s3/src/test/java/org/jclouds/s3/blobstore/S3BlobRequestSignerTest.java
index edc9b03..b2f8bd5 100644
--- a/apis/s3/src/test/java/org/jclouds/s3/blobstore/S3BlobRequestSignerTest.java
+++ b/apis/s3/src/test/java/org/jclouds/s3/blobstore/S3BlobRequestSignerTest.java
@@ -118,10 +118,6 @@
@ConfiguresRestClient
private static final class TestS3RestClientModule extends S3RestClientModule<S3Client, S3AsyncClient> {
- public TestS3RestClientModule() {
- super(S3Client.class, S3AsyncClient.class);
- }
-
@Override
protected String provideTimeStamp(@TimeStamp Supplier<String> cache) {
return "Thu, 05 Jun 2008 16:38:19 GMT";
diff --git a/apis/s3/src/test/java/org/jclouds/s3/internal/BaseS3ClientExpectTest.java b/apis/s3/src/test/java/org/jclouds/s3/internal/BaseS3ClientExpectTest.java
index f38e1e4..5fd0cbb 100644
--- a/apis/s3/src/test/java/org/jclouds/s3/internal/BaseS3ClientExpectTest.java
+++ b/apis/s3/src/test/java/org/jclouds/s3/internal/BaseS3ClientExpectTest.java
@@ -40,10 +40,6 @@
@ConfiguresRestClient
private static final class TestS3RestClientModule extends S3RestClientModule<S3Client, S3AsyncClient> {
- public TestS3RestClientModule() {
- super(S3Client.class, S3AsyncClient.class);
- }
-
@Override
protected String provideTimeStamp(@TimeStamp Supplier<String> cache) {
return CONSTANT_DATE;
diff --git a/apis/swift/src/main/java/org/jclouds/openstack/swift/config/BaseSwiftRestClientModule.java b/apis/swift/src/main/java/org/jclouds/openstack/swift/config/BaseSwiftRestClientModule.java
index 4dd9137..c84c046 100644
--- a/apis/swift/src/main/java/org/jclouds/openstack/swift/config/BaseSwiftRestClientModule.java
+++ b/apis/swift/src/main/java/org/jclouds/openstack/swift/config/BaseSwiftRestClientModule.java
@@ -50,13 +50,11 @@
RestClientModule<S, A> {
private final OpenStackAuthenticationModule module;
- public BaseSwiftRestClientModule(Class<S> syncClientType, Class<A> asyncClientType) {
- this(new OpenStackAuthenticationModule(), syncClientType, asyncClientType);
+ public BaseSwiftRestClientModule() {
+ this(new OpenStackAuthenticationModule());
}
- public BaseSwiftRestClientModule(OpenStackAuthenticationModule module, Class<S> syncClientType,
- Class<A> asyncClientType) {
- super(syncClientType, asyncClientType);
+ public BaseSwiftRestClientModule(OpenStackAuthenticationModule module) {
this.module = module;
}
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 a647924..ebbaab3 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
@@ -35,10 +35,6 @@
@ConfiguresRestClient
public class SwiftRestClientModule extends BaseSwiftRestClientModule<SwiftClient, SwiftAsyncClient> {
- public SwiftRestClientModule() {
- super(SwiftClient.class, SwiftAsyncClient.class);
- }
-
@Provides
@Singleton
CommonSwiftClient provideCommonSwiftClient(SwiftClient in) {
diff --git a/apis/swift/src/test/java/org/jclouds/openstack/swift/CommonSwiftClientTest.java b/apis/swift/src/test/java/org/jclouds/openstack/swift/CommonSwiftClientTest.java
index ced9b5f..cc74c18 100644
--- a/apis/swift/src/test/java/org/jclouds/openstack/swift/CommonSwiftClientTest.java
+++ b/apis/swift/src/test/java/org/jclouds/openstack/swift/CommonSwiftClientTest.java
@@ -67,7 +67,7 @@
protected static class TestSwiftRestClientModule extends
BaseSwiftRestClientModule<SwiftClient, SwiftAsyncClient> {
private TestSwiftRestClientModule() {
- super(new TestOpenStackAuthenticationModule(), SwiftClient.class, SwiftAsyncClient.class);
+ super(new TestOpenStackAuthenticationModule());
}
@Provides
@Singleton
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/config/VCloudRestClientModule.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/config/VCloudRestClientModule.java
index a7131c8..96d82e0 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/config/VCloudRestClientModule.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/config/VCloudRestClientModule.java
@@ -144,7 +144,7 @@
.build();
public VCloudRestClientModule() {
- super(VCloudClient.class, VCloudAsyncClient.class, DELEGATE_MAP);
+ super(DELEGATE_MAP);
}
@Provides
diff --git a/apis/walrus/src/main/java/org/jclouds/walrus/config/WalrusRestClientModule.java b/apis/walrus/src/main/java/org/jclouds/walrus/config/WalrusRestClientModule.java
index 9cf9b55..b5c75f3 100644
--- a/apis/walrus/src/main/java/org/jclouds/walrus/config/WalrusRestClientModule.java
+++ b/apis/walrus/src/main/java/org/jclouds/walrus/config/WalrusRestClientModule.java
@@ -26,6 +26,7 @@
import org.jclouds.s3.config.S3RestClientModule;
import org.jclouds.walrus.WalrusAsyncClient;
+import com.google.common.reflect.TypeToken;
import com.google.inject.Provides;
/**
@@ -34,9 +35,8 @@
*/
@ConfiguresRestClient
public class WalrusRestClientModule extends S3RestClientModule<S3Client, WalrusAsyncClient> {
-
public WalrusRestClientModule() {
- super(S3Client.class, WalrusAsyncClient.class);
+ super(TypeToken.of(S3Client.class), TypeToken.of(WalrusAsyncClient.class));
}
@Provides
diff --git a/common/aws/src/main/java/org/jclouds/aws/config/AWSRestClientModule.java b/common/aws/src/main/java/org/jclouds/aws/config/AWSRestClientModule.java
index 62772ab..7915b4f 100644
--- a/common/aws/src/main/java/org/jclouds/aws/config/AWSRestClientModule.java
+++ b/common/aws/src/main/java/org/jclouds/aws/config/AWSRestClientModule.java
@@ -31,22 +31,32 @@
import org.jclouds.rest.ConfiguresRestClient;
import org.jclouds.rest.config.RestClientModule;
+import com.google.common.reflect.TypeToken;
+
/**
*
* @author Adrian Cole
*/
@ConfiguresRestClient
-public class AWSRestClientModule<S, A> extends RestClientModule<S, A> {
+public abstract class AWSRestClientModule<S, A> extends RestClientModule<S, A> {
- public AWSRestClientModule(Class<S> syncClientType, Class<A> asyncClientType, Map<Class<?>, Class<?>> delegates) {
- super(syncClientType, asyncClientType, delegates);
+ protected AWSRestClientModule(Map<Class<?>, Class<?>> delegates) {
+ super(delegates);
}
- public AWSRestClientModule(Class<S> syncClientType, Class<A> asyncClientType) {
+ protected AWSRestClientModule() {
+ }
+
+ protected AWSRestClientModule(TypeToken<S> syncClientType, TypeToken<A> asyncClientType) {
super(syncClientType, asyncClientType);
}
+ protected AWSRestClientModule(TypeToken<S> syncClientType, TypeToken<A> asyncClientType,
+ Map<Class<?>, Class<?>> sync2Async) {
+ super(syncClientType, asyncClientType, sync2Async);
+ }
+
@Override
protected void bindErrorHandlers() {
bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(ParseAWSErrorFromXmlContent.class);
diff --git a/common/aws/src/main/java/org/jclouds/aws/config/FormSigningRestClientModule.java b/common/aws/src/main/java/org/jclouds/aws/config/FormSigningRestClientModule.java
index cda15e2..12b90f3 100644
--- a/common/aws/src/main/java/org/jclouds/aws/config/FormSigningRestClientModule.java
+++ b/common/aws/src/main/java/org/jclouds/aws/config/FormSigningRestClientModule.java
@@ -31,6 +31,7 @@
import org.jclouds.rest.ConfiguresRestClient;
import org.jclouds.rest.RequestSigner;
+import com.google.common.reflect.TypeToken;
import com.google.inject.Provides;
/**
@@ -38,17 +39,24 @@
* @author Adrian Cole
*/
@ConfiguresRestClient
-public class FormSigningRestClientModule<S, A> extends AWSRestClientModule<S, A> {
+public abstract class FormSigningRestClientModule<S, A> extends AWSRestClientModule<S, A> {
- public FormSigningRestClientModule(Class<S> syncClientType, Class<A> asyncClientType,
- Map<Class<?>, Class<?>> delegates) {
- super(syncClientType, asyncClientType, delegates);
+ protected FormSigningRestClientModule(Map<Class<?>, Class<?>> delegates) {
+ super(delegates);
}
- public FormSigningRestClientModule(Class<S> syncClientType, Class<A> asyncClientType) {
+ protected FormSigningRestClientModule() {
+ }
+
+ protected FormSigningRestClientModule(TypeToken<S> syncClientType, TypeToken<A> asyncClientType) {
super(syncClientType, asyncClientType);
}
+ protected FormSigningRestClientModule(TypeToken<S> syncClientType, TypeToken<A> asyncClientType,
+ Map<Class<?>, Class<?>> sync2Async) {
+ super(syncClientType, asyncClientType, sync2Async);
+ }
+
@Provides
@TimeStamp
protected String provideTimeStamp(final DateService dateService,
diff --git a/common/aws/src/main/java/org/jclouds/aws/config/WithZonesFormSigningRestClientModule.java b/common/aws/src/main/java/org/jclouds/aws/config/WithZonesFormSigningRestClientModule.java
index de77334..e41fd7a 100644
--- a/common/aws/src/main/java/org/jclouds/aws/config/WithZonesFormSigningRestClientModule.java
+++ b/common/aws/src/main/java/org/jclouds/aws/config/WithZonesFormSigningRestClientModule.java
@@ -23,21 +23,29 @@
import org.jclouds.rest.ConfiguresRestClient;
+import com.google.common.reflect.TypeToken;
+
/**
*
* @author Adrian Cole
*/
@ConfiguresRestClient
-public class WithZonesFormSigningRestClientModule<S, A> extends FormSigningRestClientModule<S, A> {
-
- public WithZonesFormSigningRestClientModule(Class<S> syncClientType, Class<A> asyncClientType,
- Map<Class<?>, Class<?>> delegates) {
- super(syncClientType, asyncClientType, delegates);
+public abstract class WithZonesFormSigningRestClientModule<S, A> extends FormSigningRestClientModule<S, A> {
+ protected WithZonesFormSigningRestClientModule(Map<Class<?>, Class<?>> delegates) {
+ super(delegates);
}
- public WithZonesFormSigningRestClientModule(Class<S> syncClientType, Class<A> asyncClientType) {
+ protected WithZonesFormSigningRestClientModule() {
+ }
+
+ protected WithZonesFormSigningRestClientModule(TypeToken<S> syncClientType, TypeToken<A> asyncClientType) {
super(syncClientType, asyncClientType);
}
+ protected WithZonesFormSigningRestClientModule(TypeToken<S> syncClientType, TypeToken<A> asyncClientType,
+ Map<Class<?>, Class<?>> sync2Async) {
+ super(syncClientType, asyncClientType, sync2Async);
+ }
+
}
\ No newline at end of file
diff --git a/common/azure/src/main/java/org/jclouds/azure/storage/config/AzureStorageRestClientModule.java b/common/azure/src/main/java/org/jclouds/azure/storage/config/AzureStorageRestClientModule.java
index 2a8ed8c..86f871f 100644
--- a/common/azure/src/main/java/org/jclouds/azure/storage/config/AzureStorageRestClientModule.java
+++ b/common/azure/src/main/java/org/jclouds/azure/storage/config/AzureStorageRestClientModule.java
@@ -38,6 +38,7 @@
import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
+import com.google.common.reflect.TypeToken;
import com.google.inject.Provides;
/**
@@ -47,8 +48,11 @@
*/
@ConfiguresRestClient
public class AzureStorageRestClientModule<S, A> extends RestClientModule<S, A> {
+ protected AzureStorageRestClientModule() {
- public AzureStorageRestClientModule(Class<S> syncClientType, Class<A> asyncClientType) {
+ }
+
+ public AzureStorageRestClientModule(TypeToken<S> syncClientType, TypeToken<A> asyncClientType) {
super(syncClientType, asyncClientType);
}
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 4f9c8b6..74898ea 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
@@ -39,6 +39,7 @@
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableSet;
+import com.google.common.reflect.TypeToken;
import com.google.inject.Injector;
import com.google.inject.Module;
@@ -140,8 +141,9 @@
.credentials(ACCOUNT, "credential")
.modules(
ImmutableSet.<Module> of(new MockModule(), new NullLoggingModule(),
- new AzureStorageRestClientModule<IntegrationTestClient, IntegrationTestAsyncClient>(
- IntegrationTestClient.class, IntegrationTestAsyncClient.class))).buildInjector();
+ new AzureStorageRestClientModule<IntegrationTestClient, IntegrationTestAsyncClient>(TypeToken
+ .of(IntegrationTestClient.class), TypeToken.of(IntegrationTestAsyncClient.class))))
+ .buildInjector();
filter = injector.getInstance(SharedKeyLiteAuthentication.class);
}
}
\ No newline at end of file
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudRestClientModule.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudRestClientModule.java
index 3936909..37de990 100644
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudRestClientModule.java
+++ b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudRestClientModule.java
@@ -96,13 +96,11 @@
public class TerremarkVCloudRestClientModule<S, A> extends RestClientModule<S, A> {
- public TerremarkVCloudRestClientModule(Class<S> syncClientType, Class<A> asyncClientType) {
- super(syncClientType, asyncClientType);
+ public TerremarkVCloudRestClientModule() {
}
- public TerremarkVCloudRestClientModule(Class<S> syncClientType, Class<A> asyncClientType,
- Map<Class<?>, Class<?>> delegateMap) {
- super(syncClientType, asyncClientType, delegateMap);
+ public TerremarkVCloudRestClientModule(Map<Class<?>, Class<?>> delegateMap) {
+ super(delegateMap);
}
@Override
diff --git a/compute/src/test/resources/initscript_with_java.sh b/compute/src/test/resources/initscript_with_java.sh
index e1f991b..d7bbeed 100644
--- a/compute/src/test/resources/initscript_with_java.sh
+++ b/compute/src/test/resources/initscript_with_java.sh
@@ -84,13 +84,13 @@
exit 1
}
alias apt-get-install="apt-get install -f -y -qq --force-yes"
-alias apt-get-upgrade="(apt-get update -qq&&apt-get upgrade -y -qq)"
+alias apt-get-update="apt-get update -qq"
function ensure_cmd_or_install_package_apt(){
local cmd=$1
local pkg=$2
- hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-upgrade && apt-get-install $pkg )
+ hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-update && apt-get-install $pkg )
}
function ensure_cmd_or_install_package_yum(){
@@ -155,7 +155,7 @@
function installOpenJDK() {
if hash apt-get 2>/dev/null; then
export JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-6-openjdk}
- test -d $JAVA_HOME || apt-get-install openjdk-6-jdk
+ test -d $JAVA_HOME || apt-get-install openjdk-6-jdk || ( apt-get-update && apt-get-install openjdk-6-jdk )
elif hash yum 2>/dev/null; then
export pkg=java-1.6.0-openjdk-devel
yum --nogpgcheck -y install $pkg &&
diff --git a/compute/src/test/resources/initscript_with_jboss.sh b/compute/src/test/resources/initscript_with_jboss.sh
index e700985..edec50e 100644
--- a/compute/src/test/resources/initscript_with_jboss.sh
+++ b/compute/src/test/resources/initscript_with_jboss.sh
@@ -84,13 +84,13 @@
exit 1
}
alias apt-get-install="apt-get install -f -y -qq --force-yes"
-alias apt-get-upgrade="(apt-get update -qq&&apt-get upgrade -y -qq)"
+alias apt-get-update="apt-get update -qq"
function ensure_cmd_or_install_package_apt(){
local cmd=$1
local pkg=$2
- hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-upgrade && apt-get-install $pkg )
+ hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-update && apt-get-install $pkg )
}
function ensure_cmd_or_install_package_yum(){
@@ -155,7 +155,7 @@
function installOpenJDK() {
if hash apt-get 2>/dev/null; then
export JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-6-openjdk}
- test -d $JAVA_HOME || apt-get-install openjdk-6-jdk
+ test -d $JAVA_HOME || apt-get-install openjdk-6-jdk || ( apt-get-update && apt-get-install openjdk-6-jdk )
elif hash yum 2>/dev/null; then
export pkg=java-1.6.0-openjdk-devel
yum --nogpgcheck -y install $pkg &&
diff --git a/compute/src/test/resources/runscript.sh b/compute/src/test/resources/runscript.sh
index 082c625..1c45816 100644
--- a/compute/src/test/resources/runscript.sh
+++ b/compute/src/test/resources/runscript.sh
@@ -84,13 +84,13 @@
exit 1
}
alias apt-get-install="apt-get install -f -y -qq --force-yes"
-alias apt-get-upgrade="(apt-get update -qq&&apt-get upgrade -y -qq)"
+alias apt-get-update="apt-get update -qq"
function ensure_cmd_or_install_package_apt(){
local cmd=$1
local pkg=$2
- hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-upgrade && apt-get-install $pkg )
+ hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-update && apt-get-install $pkg )
}
function ensure_cmd_or_install_package_yum(){
@@ -155,7 +155,7 @@
function installOpenJDK() {
if hash apt-get 2>/dev/null; then
export JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-6-openjdk}
- test -d $JAVA_HOME || apt-get-install openjdk-6-jdk
+ test -d $JAVA_HOME || apt-get-install openjdk-6-jdk || ( apt-get-update && apt-get-install openjdk-6-jdk )
elif hash yum 2>/dev/null; then
export pkg=java-1.6.0-openjdk-devel
yum --nogpgcheck -y install $pkg &&
diff --git a/core/src/main/java/org/jclouds/ContextBuilder.java b/core/src/main/java/org/jclouds/ContextBuilder.java
index b3ed279..b57dd40 100644
--- a/core/src/main/java/org/jclouds/ContextBuilder.java
+++ b/core/src/main/java/org/jclouds/ContextBuilder.java
@@ -68,6 +68,8 @@
import org.jclouds.rest.config.CredentialStoreModule;
import org.jclouds.rest.config.RestClientModule;
import org.jclouds.rest.config.RestModule;
+import org.jclouds.rest.internal.BaseRestApiMetadata;
+import org.jclouds.rest.internal.RestContextImpl;
import org.nnsoft.guice.rocoto.Rocoto;
import org.nnsoft.guice.rocoto.configuration.ConfigurationModule;
@@ -93,6 +95,7 @@
import com.google.inject.Provides;
import com.google.inject.Stage;
import com.google.inject.TypeLiteral;
+import com.google.inject.util.Types;
/**
* Creates {@link RestContext} or {@link Injector} instances based on the most commonly requested
@@ -109,6 +112,37 @@
*/
public final class ContextBuilder {
+ static class ResolveRestContextModule extends AbstractModule {
+ private final RestApiMetadata restApiMetadata;
+
+ ResolveRestContextModule(RestApiMetadata restApiMetadata) {
+ this.restApiMetadata = restApiMetadata;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected void configure() {
+ if (restApiMetadata.getContext().getRawType().equals(RestContext.class)) {
+ TypeToken concreteType = BaseRestApiMetadata.contextToken(TypeToken.of(restApiMetadata.getApi()), TypeToken
+ .of(restApiMetadata.getAsyncApi()));
+ // bind explicit type
+ bind(TypeLiteral.get(concreteType.getType())).to(
+ (TypeLiteral) TypeLiteral.get(Types.newParameterizedType(RestContextImpl.class, restApiMetadata
+ .getApi(), restApiMetadata.getAsyncApi())));
+ // bind potentially wildcard type
+ if (!concreteType.equals(restApiMetadata.getContext())) {
+ bind(TypeLiteral.get(restApiMetadata.getContext().getType())).to(
+ (TypeLiteral) TypeLiteral.get(Types.newParameterizedType(RestContextImpl.class, restApiMetadata
+ .getApi(), restApiMetadata.getAsyncApi())));
+ }
+ // bind w/o types
+ bind(TypeLiteral.get(RestContext.class)).to(
+ (TypeLiteral) TypeLiteral.get(Types.newParameterizedType(RestContextImpl.class, restApiMetadata
+ .getApi(), restApiMetadata.getAsyncApi())));
+ }
+ }
+ }
+
private final class BindDefaultContextQualifiedToProvider extends AbstractModule {
@Override
protected void configure() {
@@ -301,6 +335,7 @@
Iterable<Module> defaultModules = ifSpecifiedByUserDontIncludeDefaultRestModule(restModuleSpecifiedByUser);
Iterables.addAll(modules, defaultModules);
addClientModuleIfNotPresent(modules);
+ addRestContextBinding();
addLoggingModuleIfNotPresent(modules);
addHttpModuleIfNeededAndNotPresent(modules);
addExecutorServiceIfNotPresent(modules);
@@ -314,6 +349,12 @@
return returnVal;
}
+ void addRestContextBinding() {
+ if (apiMetadata instanceof RestApiMetadata) {
+ modules.add(new ResolveRestContextModule(RestApiMetadata.class.cast(apiMetadata)));
+ }
+ }
+
private Iterable<Module> ifSpecifiedByUserDontIncludeDefaultRestModule(boolean restModuleSpecifiedByUser) {
Iterable<Module> defaultModules = Iterables.transform(apiMetadata.getDefaultModules(),
new Function<Class<? extends Module>, Module>() {
@@ -384,13 +425,13 @@
protected void addClientModule(List<Module> modules) {
// TODO: move this up
if (apiMetadata instanceof RestApiMetadata) {
- final RestApiMetadata rest = RestApiMetadata.class.cast(apiMetadata);
- modules.add(new RestClientModule(rest.getApi(), rest.getAsyncApi()));
+ RestApiMetadata rest = RestApiMetadata.class.cast(apiMetadata);
+ modules.add(new RestClientModule(TypeToken.of(rest.getApi()), TypeToken.of(rest.getAsyncApi())));
} else {
modules.add(new RestModule());
}
}
-
+
@VisibleForTesting
protected void addEventBusIfNotPresent(List<Module> modules) {
if (!any(modules, new Predicate<Module>() {
diff --git a/core/src/main/java/org/jclouds/rest/config/RestClientModule.java b/core/src/main/java/org/jclouds/rest/config/RestClientModule.java
index cf0cc4b..a2af4eb 100644
--- a/core/src/main/java/org/jclouds/rest/config/RestClientModule.java
+++ b/core/src/main/java/org/jclouds/rest/config/RestClientModule.java
@@ -21,13 +21,10 @@
import java.util.Map;
import org.jclouds.rest.ConfiguresRestClient;
-import org.jclouds.rest.RestContext;
-import org.jclouds.rest.internal.RestContextImpl;
+import org.jclouds.util.TypeTokens2;
import com.google.common.collect.ImmutableMap;
-import com.google.inject.Scopes;
-import com.google.inject.TypeLiteral;
-import com.google.inject.util.Types;
+import com.google.common.reflect.TypeToken;
/**
*
@@ -35,50 +32,65 @@
*/
@ConfiguresRestClient
public class RestClientModule<S, A> extends RestModule {
- protected final Class<A> asyncClientType;
- protected final Class<S> syncClientType;
-
- public RestClientModule(Class<S> syncClientType, Class<A> asyncClientType,
- Map<Class<?>, Class<?>> sync2Async) {
+ protected final TypeToken<S> syncClientType;
+ protected final TypeToken<A> asyncClientType;
+
+ /**
+ * Note that this ctor requires that you instantiate w/resolved generic params. For example, via
+ * a subclass of a bound type, or natural instantiation w/resolved type params.
+ */
+ protected RestClientModule(Map<Class<?>, Class<?>> sync2Async) {
super(sync2Async);
- this.asyncClientType = asyncClientType;
- this.syncClientType = syncClientType;
+ this.syncClientType = TypeTokens2.checkBound(new TypeToken<S>(getClass()) {
+ private static final long serialVersionUID = 7519656925453755752L;
+ });
+ this.asyncClientType = TypeTokens2.checkBound(new TypeToken<A>(getClass()) {
+ private static final long serialVersionUID = -4420015967358511548L;
+ });
}
- public RestClientModule(Class<S> syncClientType, Class<A> asyncClientType) {
- this(syncClientType, asyncClientType, ImmutableMap
- .<Class<?>, Class<?>> of(syncClientType, asyncClientType));
+ /**
+ * @see #RestClientModule(Map)
+ */
+ protected RestClientModule() {
+ this(ImmutableMap.<Class<?>, Class<?>> of());
}
-
- @SuppressWarnings( { "unchecked", "rawtypes" })
+
+ /**
+ * @see #RestClientModule(TypeToken, TypeToken, Map)
+ */
+ public RestClientModule(TypeToken<S> syncClientType, TypeToken<A> asyncClientType) {
+ this(syncClientType, asyncClientType, ImmutableMap.<Class<?>, Class<?>> of());
+ }
+
+ /**
+ * only necessary when type params are not resolvable at runtime.
+ */
+ public RestClientModule(TypeToken<S> syncClientType, TypeToken<A> asyncClientType, Map<Class<?>, Class<?>> sync2Async) {
+ super(sync2Async);
+ this.syncClientType = TypeTokens2.checkBound(syncClientType);
+ this.asyncClientType = TypeTokens2.checkBound(asyncClientType);
+ }
+
@Override
protected void configure() {
super.configure();
- // Ensures the restcontext can be looked up without generic types.
- bind(new TypeLiteral<RestContext>() {
- }).to(
- (TypeLiteral) TypeLiteral.get(Types.newParameterizedType(
- RestContextImpl.class, syncClientType, asyncClientType))).in(
- Scopes.SINGLETON);
- bind(TypeLiteral.get(Types.newParameterizedType(RestContext.class, syncClientType, asyncClientType))).to(
- (TypeLiteral) TypeLiteral.get(Types.newParameterizedType(RestContextImpl.class, syncClientType,
- asyncClientType))).in(Scopes.SINGLETON);
bindAsyncClient();
bindClient();
bindErrorHandlers();
bindRetryHandlers();
}
+
+
/**
* overrides this to change the default retry handlers for the http engine
*
* ex.
*
* <pre>
- * bind(HttpRetryHandler.class).annotatedWith(Redirection.class).to(
- * AWSRedirectionRetryHandler.class);
- * bind(HttpRetryHandler.class).annotatedWith(ClientError.class).to(
- * AWSClientErrorRetryHandler.class);
+ * bind(HttpRetryHandler.class).annotatedWith(Redirection.class).to(AWSRedirectionRetryHandler.class);
+ * bind(HttpRetryHandler.class).annotatedWith(ClientError.class).to(AWSClientErrorRetryHandler.class);
* </pre>
*
*/
@@ -91,12 +103,9 @@
* ex.
*
* <pre>
- * bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(
- * ParseAWSErrorFromXmlContent.class);
- * bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(
- * ParseAWSErrorFromXmlContent.class);
- * bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(
- * ParseAWSErrorFromXmlContent.class);
+ * bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(ParseAWSErrorFromXmlContent.class);
+ * bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(ParseAWSErrorFromXmlContent.class);
+ * bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(ParseAWSErrorFromXmlContent.class);
* </pre>
*
*
@@ -105,12 +114,11 @@
}
protected void bindAsyncClient() {
- BinderUtils.bindAsyncClient(binder(), asyncClientType);
+ BinderUtils.bindAsyncClient(binder(), asyncClientType.getRawType());
}
protected void bindClient() {
- BinderUtils.bindClient(binder(), syncClientType, asyncClientType,
- sync2Async);
+ BinderUtils.bindClient(binder(), syncClientType.getRawType(), asyncClientType.getRawType(), sync2Async);
}
}
\ No newline at end of file
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 2f2478a..1aa9075 100644
--- a/core/src/main/java/org/jclouds/rest/internal/BaseRestApiMetadata.java
+++ b/core/src/main/java/org/jclouds/rest/internal/BaseRestApiMetadata.java
@@ -67,6 +67,14 @@
return props;
}
+ public static <S, A> TypeToken<RestContext<S, A>> contextToken(TypeToken<S> apiToken, TypeToken<A> asyncApiToken) {
+ return new TypeToken<RestContext<S, A>>() {
+ private static final long serialVersionUID = 1L;
+ }.where(new TypeParameter<S>() {
+ }, apiToken).where(new TypeParameter<A>() {
+ }, asyncApiToken);
+ }
+
public static class Builder extends BaseApiMetadata.Builder implements RestApiMetadata.Builder {
protected Class<?> api;
protected Class<?> asyncApi;
@@ -80,14 +88,6 @@
.context(contextToken(TypeToken.of(api), TypeToken.of(asyncApi)))
.defaultProperties(BaseRestApiMetadata.defaultProperties());
}
-
- protected <S, A> TypeToken<RestContext<S, A>> contextToken(TypeToken<S> apiToken, TypeToken<A> asyncApiToken) {
- return new TypeToken<RestContext<S, A>>() {
- private static final long serialVersionUID = 1L;
- }.where(new TypeParameter<S>() {
- }, apiToken).where(new TypeParameter<A>() {
- }, asyncApiToken);
- }
/**
* {@inheritDoc}
diff --git a/core/src/main/java/org/jclouds/util/TypeTokens2.java b/core/src/main/java/org/jclouds/util/TypeTokens2.java
new file mode 100644
index 0000000..05dad33
--- /dev/null
+++ b/core/src/main/java/org/jclouds/util/TypeTokens2.java
@@ -0,0 +1,40 @@
+/**
+ * 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.util;
+
+import static com.google.common.base.Preconditions.checkState;
+
+import java.lang.reflect.TypeVariable;
+
+import com.google.common.reflect.TypeToken;
+
+/**
+ *
+ * @author Adrian Cole
+ */
+public class TypeTokens2 {
+ /**
+ * @throws IllegalStateException if the type is an instanceof {@link TypeVariable}
+ */
+ public static <T> TypeToken<T> checkBound(TypeToken<T> type) throws IllegalStateException {
+ checkState(!(type.getType() instanceof TypeVariable<?>),
+ "unbound type variable: %s, use ctor that explicitly assigns this", type);
+ return type;
+ }
+}
diff --git a/core/src/test/java/org/jclouds/http/handlers/BackoffLimitedRetryHandlerTest.java b/core/src/test/java/org/jclouds/http/handlers/BackoffLimitedRetryHandlerTest.java
index 457a812..2c9ac3d 100644
--- a/core/src/test/java/org/jclouds/http/handlers/BackoffLimitedRetryHandlerTest.java
+++ b/core/src/test/java/org/jclouds/http/handlers/BackoffLimitedRetryHandlerTest.java
@@ -54,7 +54,7 @@
import com.google.inject.TypeLiteral;
import com.sun.jersey.api.uri.UriBuilderImpl;
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "BackoffLimitedRetryHandlerTest")
public class BackoffLimitedRetryHandlerTest {
BackoffLimitedRetryHandler handler = new BackoffLimitedRetryHandler();
diff --git a/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java b/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java
index 1a97fda..bf21b33 100644
--- a/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java
+++ b/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java
@@ -176,7 +176,7 @@
@ConfiguresRestClient
protected static class CallerModule extends RestClientModule<Caller, AsyncCaller> {
CallerModule() {
- super(Caller.class, AsyncCaller.class, ImmutableMap.<Class<?>, Class<?>> of(Callee.class, AsyncCallee.class, Callee2.class, AsyncCallee2.class));
+ super(ImmutableMap.<Class<?>, Class<?>> of(Callee.class, AsyncCallee.class, Callee2.class, AsyncCallee2.class));
}
@Override
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 8319a69..cf67ae6 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
@@ -30,8 +30,5 @@
*/
@ConfiguresRestClient
public class ELBRestClientModule extends FormSigningRestClientModule<ELBClient, ELBAsyncClient> {
- public ELBRestClientModule() {
- super(ELBClient.class, ELBAsyncClient.class);
- }
}
diff --git a/labs/glesys/src/main/java/org/jclouds/glesys/config/GleSYSRestClientModule.java b/labs/glesys/src/main/java/org/jclouds/glesys/config/GleSYSRestClientModule.java
index a069b43..aafb715 100644
--- a/labs/glesys/src/main/java/org/jclouds/glesys/config/GleSYSRestClientModule.java
+++ b/labs/glesys/src/main/java/org/jclouds/glesys/config/GleSYSRestClientModule.java
@@ -64,7 +64,7 @@
.build();
public GleSYSRestClientModule() {
- super(GleSYSClient.class, GleSYSAsyncClient.class, DELEGATE_MAP);
+ super(DELEGATE_MAP);
}
@Override
diff --git a/labs/opsource-servers/src/main/java/org/jclouds/opsource/servers/config/OpSourceServersRestClientModule.java b/labs/opsource-servers/src/main/java/org/jclouds/opsource/servers/config/OpSourceServersRestClientModule.java
index 99cd087..1c7aa1a 100644
--- a/labs/opsource-servers/src/main/java/org/jclouds/opsource/servers/config/OpSourceServersRestClientModule.java
+++ b/labs/opsource-servers/src/main/java/org/jclouds/opsource/servers/config/OpSourceServersRestClientModule.java
@@ -56,7 +56,7 @@
.build();
public OpSourceServersRestClientModule() {
- super(OpSourceServersClient.class, OpSourceServersAsyncClient.class, DELEGATE_MAP);
+ super(DELEGATE_MAP);
}
@Override
diff --git a/labs/savvis-symphonyvpdc/src/main/java/org/jclouds/savvis/vpdc/config/VPDCRestClientModule.java b/labs/savvis-symphonyvpdc/src/main/java/org/jclouds/savvis/vpdc/config/VPDCRestClientModule.java
index 98bd9e0..ddae92f 100644
--- a/labs/savvis-symphonyvpdc/src/main/java/org/jclouds/savvis/vpdc/config/VPDCRestClientModule.java
+++ b/labs/savvis-symphonyvpdc/src/main/java/org/jclouds/savvis/vpdc/config/VPDCRestClientModule.java
@@ -147,7 +147,7 @@
.build();
public VPDCRestClientModule() {
- super(VPDCClient.class, VPDCAsyncClient.class, DELEGATE_MAP);
+ super(DELEGATE_MAP);
}
@Singleton
diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorRestClientModule.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorRestClientModule.java
index f1826f9..c6c4df7 100644
--- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorRestClientModule.java
+++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorRestClientModule.java
@@ -152,7 +152,7 @@
}
public VCloudDirectorRestClientModule() {
- super(VCloudDirectorClient.class, VCloudDirectorAsyncClient.class, ADMIN_DELEGATE_MAP);
+ super(ADMIN_DELEGATE_MAP);
}
@Override
diff --git a/labs/virtualbox/src/test/resources/test_guest_additions_installer_init.sh b/labs/virtualbox/src/test/resources/test_guest_additions_installer_init.sh
index 47c37db..cccddd0 100644
--- a/labs/virtualbox/src/test/resources/test_guest_additions_installer_init.sh
+++ b/labs/virtualbox/src/test/resources/test_guest_additions_installer_init.sh
@@ -84,13 +84,13 @@
exit 1
}
alias apt-get-install="apt-get install -f -y -qq --force-yes"
-alias apt-get-upgrade="(apt-get update -qq&&apt-get upgrade -y -qq)"
+alias apt-get-update="apt-get update -qq"
function ensure_cmd_or_install_package_apt(){
local cmd=$1
local pkg=$2
- hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-upgrade && apt-get-install $pkg )
+ hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-update && apt-get-install $pkg )
}
function ensure_cmd_or_install_package_yum(){
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2ApiMetadata.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2ApiMetadata.java
index e89fe71..8431b17 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2ApiMetadata.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2ApiMetadata.java
@@ -82,6 +82,7 @@
.version(AWSEC2AsyncClient.VERSION)
.name("Amazon-specific EC2 API")
.wrapper(AWSEC2ComputeServiceContext.class)
+ .context(CONTEXT_TOKEN)
.defaultProperties(AWSEC2ApiMetadata.defaultProperties())
.defaultModules(ImmutableSet.<Class<? extends Module>>of(AWSEC2RestClientModule.class, EC2ResolveImagesModule.class, AWSEC2ComputeServiceContextModule.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 90072be..119e0f1 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
@@ -64,6 +64,7 @@
import org.jclouds.rest.ConfiguresRestClient;
import com.google.common.collect.ImmutableMap;
+import com.google.common.reflect.TypeToken;
import com.google.inject.Provides;
/**
@@ -90,7 +91,7 @@
.build();
public AWSEC2RestClientModule() {
- super(AWSEC2Client.class, AWSEC2AsyncClient.class, DELEGATE_MAP);
+ super(TypeToken.of(AWSEC2Client.class), TypeToken.of(AWSEC2AsyncClient.class), DELEGATE_MAP);
}
@Singleton
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateBuilderLiveTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateBuilderLiveTest.java
index b02b379..55e762f 100644
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateBuilderLiveTest.java
+++ b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateBuilderLiveTest.java
@@ -28,11 +28,13 @@
import java.util.Set;
import org.jclouds.aws.domain.Region;
+import org.jclouds.aws.ec2.AWSEC2ApiMetadata;
import org.jclouds.aws.ec2.reference.AWSEC2Constants;
import org.jclouds.compute.ComputeServiceContext;
import org.jclouds.compute.domain.OsFamily;
import org.jclouds.compute.domain.OsFamilyVersion64Bit;
import org.jclouds.compute.domain.Template;
+import org.jclouds.ec2.EC2ApiMetadata;
import org.jclouds.ec2.compute.EC2TemplateBuilderLiveTest;
import org.jclouds.ec2.compute.predicates.EC2ImagePredicates;
import org.jclouds.ec2.domain.InstanceType;
@@ -365,6 +367,12 @@
assert (defaultTemplate.getImage().getProviderId().startsWith("ami-")) : defaultTemplate;
assertEquals(defaultTemplate.getImage().getId(), imageId);
}
+
+ @Test
+ public void testAssignability() {
+ context.unwrap(EC2ApiMetadata.CONTEXT_TOKEN);
+ context.unwrap(AWSEC2ApiMetadata.CONTEXT_TOKEN);
+ }
@Override
protected Set<String> getIso3166Codes() {
diff --git a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/AWSS3ApiMetadata.java b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/AWSS3ApiMetadata.java
index 165792f..b05dff5 100644
--- a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/AWSS3ApiMetadata.java
+++ b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/AWSS3ApiMetadata.java
@@ -73,6 +73,7 @@
id("aws-s3")
.name("Amazon-specific S3 API")
.defaultProperties(AWSS3ApiMetadata.defaultProperties())
+ .context(CONTEXT_TOKEN)
.wrapper(TypeToken.of(AWSS3BlobStoreContext.class))
.defaultModules(ImmutableSet.<Class<? extends Module>>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 f468441..93e4538 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
@@ -41,6 +41,7 @@
import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
+import com.google.common.reflect.TypeToken;
import com.google.inject.Provides;
/**
@@ -50,7 +51,11 @@
*/
@ConfiguresRestClient
public class AWSS3RestClientModule extends S3RestClientModule<AWSS3Client, AWSS3AsyncClient> {
-
+
+ public AWSS3RestClientModule() {
+ super(TypeToken.of(AWSS3Client.class), TypeToken.of(AWSS3AsyncClient.class));
+ }
+
@Override
protected Supplier<String> defaultRegionForBucket(@Region Supplier<String> defaultRegion) {
return Suppliers.ofInstance(US_STANDARD);
@@ -68,11 +73,7 @@
protected Supplier<URI> provideBucketURI(@Named(PROPERTY_REGION + "." + US_STANDARD + "." + ENDPOINT) String endpoint){
return Suppliers.ofInstance(URI.create(endpoint));
}
-
- public AWSS3RestClientModule() {
- super(AWSS3Client.class, AWSS3AsyncClient.class);
- }
-
+
@Singleton
@Provides
S3Client provide(AWSS3Client in) {
diff --git a/providers/azureblob/src/main/java/org/jclouds/azureblob/config/AzureBlobRestClientModule.java b/providers/azureblob/src/main/java/org/jclouds/azureblob/config/AzureBlobRestClientModule.java
index c94667f..a7ab369 100644
--- a/providers/azureblob/src/main/java/org/jclouds/azureblob/config/AzureBlobRestClientModule.java
+++ b/providers/azureblob/src/main/java/org/jclouds/azureblob/config/AzureBlobRestClientModule.java
@@ -36,10 +36,6 @@
@ConfiguresRestClient
public class AzureBlobRestClientModule extends AzureStorageRestClientModule<AzureBlobClient, AzureBlobAsyncClient> {
- public AzureBlobRestClientModule() {
- super(AzureBlobClient.class, AzureBlobAsyncClient.class);
- }
-
@Override
protected void configure() {
install(new AzureBlobModule());
diff --git a/providers/gogrid/src/main/java/org/jclouds/gogrid/config/GoGridRestClientModule.java b/providers/gogrid/src/main/java/org/jclouds/gogrid/config/GoGridRestClientModule.java
index 8e97f21..3c16eb7 100644
--- a/providers/gogrid/src/main/java/org/jclouds/gogrid/config/GoGridRestClientModule.java
+++ b/providers/gogrid/src/main/java/org/jclouds/gogrid/config/GoGridRestClientModule.java
@@ -71,7 +71,7 @@
.build();
public GoGridRestClientModule() {
- super(GoGridClient.class, GoGridAsyncClient.class, DELEGATE_MAP);
+ super(DELEGATE_MAP);
}
@Provides
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 a6ab327..1419e37 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
@@ -67,7 +67,7 @@
HPCloudCDNClient.class, HPCloudCDNAsyncClient.class).build();
public HPCloudObjectStorageRestClientModule() {
- super(HPCloudObjectStorageClient.class, HPCloudObjectStorageAsyncClient.class, DELEGATE_MAP);
+ super(DELEGATE_MAP);
}
protected void configure() {
diff --git a/providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/config/RimuHostingRestClientModule.java b/providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/config/RimuHostingRestClientModule.java
index e572fd6..aedde4e 100644
--- a/providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/config/RimuHostingRestClientModule.java
+++ b/providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/config/RimuHostingRestClientModule.java
@@ -48,10 +48,6 @@
@ConfiguresRestClient
public class RimuHostingRestClientModule extends RestClientModule<RimuHostingClient, RimuHostingAsyncClient> {
- public RimuHostingRestClientModule() {
- super(RimuHostingClient.class, RimuHostingAsyncClient.class);
- }
-
@Override
protected void configure() {
bind(DateAdapter.class).to(RimuIso8601DateAdapter.class);
diff --git a/providers/slicehost/src/main/java/org/jclouds/slicehost/config/SlicehostRestClientModule.java b/providers/slicehost/src/main/java/org/jclouds/slicehost/config/SlicehostRestClientModule.java
index b1e5ef9..aa91891 100644
--- a/providers/slicehost/src/main/java/org/jclouds/slicehost/config/SlicehostRestClientModule.java
+++ b/providers/slicehost/src/main/java/org/jclouds/slicehost/config/SlicehostRestClientModule.java
@@ -35,10 +35,6 @@
@ConfiguresRestClient
public class SlicehostRestClientModule extends RestClientModule<SlicehostClient, SlicehostAsyncClient> {
- public SlicehostRestClientModule() {
- super(SlicehostClient.class, SlicehostAsyncClient.class);
- }
-
@Override
protected void bindErrorHandlers() {
bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(ParseSlicehostErrorFromHttpResponse.class);
diff --git a/providers/softlayer/src/main/java/org/jclouds/softlayer/config/SoftLayerRestClientModule.java b/providers/softlayer/src/main/java/org/jclouds/softlayer/config/SoftLayerRestClientModule.java
index 03e07d1..b2eadbe 100644
--- a/providers/softlayer/src/main/java/org/jclouds/softlayer/config/SoftLayerRestClientModule.java
+++ b/providers/softlayer/src/main/java/org/jclouds/softlayer/config/SoftLayerRestClientModule.java
@@ -62,7 +62,7 @@
.build();
public SoftLayerRestClientModule() {
- super(SoftLayerClient.class, SoftLayerAsyncClient.class, DELEGATE_MAP);
+ super(DELEGATE_MAP);
}
@Override
diff --git a/providers/trmk-ecloud/src/main/java/org/jclouds/trmk/ecloud/config/TerremarkECloudRestClientModule.java b/providers/trmk-ecloud/src/main/java/org/jclouds/trmk/ecloud/config/TerremarkECloudRestClientModule.java
index c777657..d761013 100644
--- a/providers/trmk-ecloud/src/main/java/org/jclouds/trmk/ecloud/config/TerremarkECloudRestClientModule.java
+++ b/providers/trmk-ecloud/src/main/java/org/jclouds/trmk/ecloud/config/TerremarkECloudRestClientModule.java
@@ -61,7 +61,7 @@
.build();
public TerremarkECloudRestClientModule() {
- super(TerremarkECloudClient.class, TerremarkECloudAsyncClient.class, DELEGATE_MAP);
+ super(DELEGATE_MAP);
}
@Provides
diff --git a/providers/trmk-vcloudexpress/src/main/java/org/jclouds/trmk/vcloudexpress/config/TerremarkVCloudExpressRestClientModule.java b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/trmk/vcloudexpress/config/TerremarkVCloudExpressRestClientModule.java
index 6a618b5..7889a33 100644
--- a/providers/trmk-vcloudexpress/src/main/java/org/jclouds/trmk/vcloudexpress/config/TerremarkVCloudExpressRestClientModule.java
+++ b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/trmk/vcloudexpress/config/TerremarkVCloudExpressRestClientModule.java
@@ -39,10 +39,6 @@
public class TerremarkVCloudExpressRestClientModule extends
TerremarkVCloudRestClientModule<TerremarkVCloudExpressClient, TerremarkVCloudExpressAsyncClient> {
- public TerremarkVCloudExpressRestClientModule() {
- super(TerremarkVCloudExpressClient.class, TerremarkVCloudExpressAsyncClient.class);
- }
-
@Provides
@Singleton
protected TerremarkVCloudAsyncClient provideVCloudAsyncClient(TerremarkVCloudExpressAsyncClient in) {
diff --git a/scriptbuilder/src/main/resources/functions/installOpenJDK.sh b/scriptbuilder/src/main/resources/functions/installOpenJDK.sh
index 2013913..71539db 100644
--- a/scriptbuilder/src/main/resources/functions/installOpenJDK.sh
+++ b/scriptbuilder/src/main/resources/functions/installOpenJDK.sh
@@ -20,7 +20,7 @@
function installOpenJDK() {
if hash apt-get 2>/dev/null; then
export JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-6-openjdk}
- test -d $JAVA_HOME || apt-get-install openjdk-6-jdk
+ test -d $JAVA_HOME || apt-get-install openjdk-6-jdk || ( apt-get-update && apt-get-install openjdk-6-jdk )
elif hash yum 2>/dev/null; then
export pkg=java-1.6.0-openjdk-devel
yum --nogpgcheck -y install $pkg &&
diff --git a/scriptbuilder/src/main/resources/functions/setupPublicCurl.sh b/scriptbuilder/src/main/resources/functions/setupPublicCurl.sh
index ad72ddb..b0854d7 100644
--- a/scriptbuilder/src/main/resources/functions/setupPublicCurl.sh
+++ b/scriptbuilder/src/main/resources/functions/setupPublicCurl.sh
@@ -1,11 +1,11 @@
alias apt-get-install="apt-get install -f -y -qq --force-yes"
-alias apt-get-upgrade="(apt-get update -qq&&apt-get upgrade -y -qq)"
+alias apt-get-update="apt-get update -qq"
function ensure_cmd_or_install_package_apt(){
local cmd=$1
local pkg=$2
- hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-upgrade && apt-get-install $pkg )
+ hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-update && apt-get-install $pkg )
}
function ensure_cmd_or_install_package_yum(){
diff --git a/scriptbuilder/src/test/resources/test_install_jdk_scriptbuilder.sh b/scriptbuilder/src/test/resources/test_install_jdk_scriptbuilder.sh
index f3a502a..52c1074 100644
--- a/scriptbuilder/src/test/resources/test_install_jdk_scriptbuilder.sh
+++ b/scriptbuilder/src/test/resources/test_install_jdk_scriptbuilder.sh
@@ -84,13 +84,13 @@
exit 1
}
alias apt-get-install="apt-get install -f -y -qq --force-yes"
-alias apt-get-upgrade="(apt-get update -qq&&apt-get upgrade -y -qq)"
+alias apt-get-update="apt-get update -qq"
function ensure_cmd_or_install_package_apt(){
local cmd=$1
local pkg=$2
- hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-upgrade && apt-get-install $pkg )
+ hash $cmd 2>/dev/null || apt-get-install $pkg || ( apt-get-update && apt-get-install $pkg )
}
function ensure_cmd_or_install_package_yum(){
@@ -155,7 +155,7 @@
function installOpenJDK() {
if hash apt-get 2>/dev/null; then
export JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-6-openjdk}
- test -d $JAVA_HOME || apt-get-install openjdk-6-jdk
+ test -d $JAVA_HOME || apt-get-install openjdk-6-jdk || ( apt-get-update && apt-get-install openjdk-6-jdk )
elif hash yum 2>/dev/null; then
export pkg=java-1.6.0-openjdk-devel
yum --nogpgcheck -y install $pkg &&