From 90c5c40fbda6b031f7d7319786c4f8561dba4939 Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Sun, 2 Jan 2011 12:58:35 +0100 Subject: [PATCH] moved provider agnostic location code to core --- .../config/AtmosBlobStoreContextModule.java | 2 +- .../aws/cloudwatch/CloudWatchAsyncClient.java | 4 +- .../aws/config/AWSRestClientModule.java | 4 +- .../EC2BindComputeSuppliersByClass.java | 2 +- .../EC2ComputeServiceContextModule.java | 2 +- .../ec2/compute/functions/ImageParser.java | 2 +- ...rityGroupsAsNeededAndReturnRunOptions.java | 2 +- .../strategy/EC2ListNodesStrategy.java | 2 +- .../suppliers/EC2HardwareSupplier.java | 2 +- .../suppliers/EC2LocationSupplier.java | 2 +- .../RegionAndNameToImageSupplier.java | 2 +- .../aws/ec2/config/EC2RestClientModule.java | 2 +- .../functions/AvailabilityZoneToEndpoint.java | 2 +- .../aws/ec2/services/AMIAsyncClient.java | 28 +++++----- .../AvailabilityZoneAndRegionAsyncClient.java | 4 +- .../ElasticBlockStoreAsyncClient.java | 24 ++++----- .../services/ElasticIPAddressAsyncClient.java | 12 ++--- .../aws/ec2/services/InstanceAsyncClient.java | 48 ++++++++--------- .../aws/ec2/services/KeyPairAsyncClient.java | 8 +-- .../ec2/services/MonitoringAsyncClient.java | 6 +-- .../services/PlacementGroupAsyncClient.java | 10 ++-- .../services/SecurityGroupAsyncClient.java | 16 +++--- .../aws/ec2/services/WindowsAsyncClient.java | 8 +-- .../aws/ec2/xml/AttachmentHandler.java | 2 +- .../aws/ec2/xml/BaseReservationHandler.java | 2 +- .../aws/ec2/xml/BundleTaskHandler.java | 2 +- .../ec2/xml/CreateVolumeResponseHandler.java | 2 +- .../xml/DescribeAddressesResponseHandler.java | 2 +- ...cribeAvailabilityZonesResponseHandler.java | 2 +- .../xml/DescribeImagesResponseHandler.java | 2 +- .../xml/DescribeInstancesResponseHandler.java | 2 +- .../xml/DescribeKeyPairsResponseHandler.java | 2 +- ...DescribeSecurityGroupsResponseHandler.java | 2 +- .../ec2/xml/InstanceStateChangeHandler.java | 2 +- .../aws/ec2/xml/KeyPairResponseHandler.java | 2 +- .../aws/ec2/xml/PlacementGroupHandler.java | 2 +- .../xml/ReservedInstancesOfferingHandler.java | 2 +- .../ec2/xml/RunInstancesResponseHandler.java | 2 +- .../jclouds/aws/ec2/xml/SnapshotHandler.java | 2 +- .../org/jclouds/aws/elb/ELBAsyncClient.java | 12 ++--- .../DescribeLoadBalancersResponseHandler.java | 2 +- .../config/S3BlobStoreContextModule.java | 8 +-- .../aws/simpledb/SimpleDBAsyncClient.java | 12 ++--- .../jclouds/aws/simpledb/SimpleDBClient.java | 2 +- .../org/jclouds/aws/sqs/SQSAsyncClient.java | 6 +-- .../org/jclouds/aws/sqs/xml/QueueHandler.java | 2 +- .../xml/RegexListQueuesResponseHandler.java | 2 +- .../aws/sqs/xml/RegexQueueHandler.java | 2 +- .../ec2/services/BaseEC2AsyncClientTest.java | 2 +- .../aws/ec2/xml/BaseEC2HandlerTest.java | 2 +- ...eAvailabilityZonesResponseHandlerTest.java | 2 +- .../DescribeImagesResponseHandlerTest.java | 2 +- .../DescribeInstancesResponseHandlerTest.java | 2 +- .../DescribeRegionsResponseHandlerTest.java | 2 +- .../config/SimpleDBRestClientModuleTest.java | 2 +- .../sqs/config/SQSRestClientModuleTest.java | 2 +- .../xml/ListQueuesResponseHandlerTest.java | 2 +- .../config/AzureBlobStoreContextModule.java | 2 +- .../TransientBlobStoreContextModule.java | 2 +- .../config/BindComputeSuppliersByClass.java | 27 ++++++++-- .../ComputeServiceAdapterContextModule.java | 4 +- .../config/StubComputeServiceAdapter.java | 2 +- .../compute/suppliers/LocationSupplier.java | 51 ------------------- .../annotations => location}/Provider.java | 2 +- .../java/org/jclouds/location}/Region.java | 4 +- .../RegionToEndpointOrProviderIfNull.java | 22 ++++---- .../FirstZoneOrRegionMatchingRegionId.java | 32 ++++++------ .../suppliers/OnlyLocationOrFirstZone.java | 17 ++++--- .../org/jclouds/rest/RestContextBuilder.java | 2 +- .../internal/RestAnnotationProcessor.java | 2 +- .../rest/internal/RestContextImpl.java | 2 +- .../ElasticStackComputeServiceAdapter.java | 2 +- ...asticStackComputeServiceContextModule.java | 4 +- .../CloudSigmaComputeServiceAdapter.java | 2 +- ...CloudSigmaComputeServiceContextModule.java | 4 +- .../suppliers/GoGridLocationSupplier.java | 2 +- .../SlicehostComputeServiceContextModule.java | 2 +- .../config/RackspaceLocationsSupplier.java | 2 +- .../IBMDeveloperCloudLocationSupplier.java | 2 +- ...verManagerComputeServiceContextModule.java | 4 +- .../OrgAndVDCToLocationSupplier.java | 2 +- .../vcloud/VCloudLoginAsyncClientTest.java | 2 +- 82 files changed, 233 insertions(+), 258 deletions(-) delete mode 100644 compute/src/main/java/org/jclouds/compute/suppliers/LocationSupplier.java rename core/src/main/java/org/jclouds/{rest/annotations => location}/Provider.java (97%) rename {aws/core/src/main/java/org/jclouds/aws => core/src/main/java/org/jclouds/location}/Region.java (94%) rename aws/core/src/main/java/org/jclouds/aws/functions/RegionToEndpoint.java => core/src/main/java/org/jclouds/location/functions/RegionToEndpointOrProviderIfNull.java (65%) rename aws/core/src/main/java/org/jclouds/aws/suppliers/DefaultLocationSupplier.java => core/src/main/java/org/jclouds/location/suppliers/FirstZoneOrRegionMatchingRegionId.java (64%) rename compute/src/main/java/org/jclouds/compute/suppliers/DefaultLocationSupplier.java => core/src/main/java/org/jclouds/location/suppliers/OnlyLocationOrFirstZone.java (70%) diff --git a/atmos/src/main/java/org/jclouds/atmosonline/saas/blobstore/config/AtmosBlobStoreContextModule.java b/atmos/src/main/java/org/jclouds/atmosonline/saas/blobstore/config/AtmosBlobStoreContextModule.java index 6355e22d96..0f5fc6837a 100755 --- a/atmos/src/main/java/org/jclouds/atmosonline/saas/blobstore/config/AtmosBlobStoreContextModule.java +++ b/atmos/src/main/java/org/jclouds/atmosonline/saas/blobstore/config/AtmosBlobStoreContextModule.java @@ -41,7 +41,7 @@ import org.jclouds.collect.Memoized; import org.jclouds.domain.Location; import org.jclouds.domain.LocationScope; import org.jclouds.domain.internal.LocationImpl; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; diff --git a/aws/core/src/main/java/org/jclouds/aws/cloudwatch/CloudWatchAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/cloudwatch/CloudWatchAsyncClient.java index 088f782136..166340b06e 100644 --- a/aws/core/src/main/java/org/jclouds/aws/cloudwatch/CloudWatchAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/cloudwatch/CloudWatchAsyncClient.java @@ -34,7 +34,7 @@ import org.jclouds.aws.cloudwatch.domain.Datapoint; import org.jclouds.aws.cloudwatch.functions.ISO8601Format; import org.jclouds.aws.cloudwatch.xml.GetMetricStatisticsResponseHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.FormParams; import org.jclouds.rest.annotations.ParamParser; @@ -67,7 +67,7 @@ public interface CloudWatchAsyncClient { @XMLResponseParser(GetMetricStatisticsResponseHandler.class) @FormParams(keys = ACTION, values = "GetMetricStatistics") ListenableFuture> getMetricStatisticsInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("MeasureName") String measureName, @FormParam("StartTime") @ParamParser(ISO8601Format.class) Date startTime, @FormParam("EndTime") @ParamParser(ISO8601Format.class) Date endTime, @FormParam("Period") int period, diff --git a/aws/core/src/main/java/org/jclouds/aws/config/AWSRestClientModule.java b/aws/core/src/main/java/org/jclouds/aws/config/AWSRestClientModule.java index 566f12f412..9dbb64180e 100644 --- a/aws/core/src/main/java/org/jclouds/aws/config/AWSRestClientModule.java +++ b/aws/core/src/main/java/org/jclouds/aws/config/AWSRestClientModule.java @@ -33,7 +33,6 @@ import java.util.Set; import javax.inject.Singleton; import org.jclouds.Constants; -import org.jclouds.aws.Region; import org.jclouds.aws.handlers.AWSClientErrorRetryHandler; import org.jclouds.aws.handlers.AWSRedirectionRetryHandler; import org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent; @@ -43,9 +42,10 @@ import org.jclouds.http.RequiresHttp; import org.jclouds.http.annotation.ClientError; import org.jclouds.http.annotation.Redirection; import org.jclouds.http.annotation.ServerError; +import org.jclouds.location.Provider; +import org.jclouds.location.Region; import org.jclouds.logging.Logger.LoggerFactory; import org.jclouds.rest.ConfiguresRestClient; -import org.jclouds.rest.annotations.Provider; import org.jclouds.rest.config.RestClientModule; import com.google.common.base.Predicate; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/config/EC2BindComputeSuppliersByClass.java b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/config/EC2BindComputeSuppliersByClass.java index 5828736d97..36d9f02b1a 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/config/EC2BindComputeSuppliersByClass.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/config/EC2BindComputeSuppliersByClass.java @@ -46,7 +46,7 @@ public class EC2BindComputeSuppliersByClass extends BindComputeSuppliersByClass @Override protected Class> defineDefaultLocationSupplier() { - return org.jclouds.aws.suppliers.DefaultLocationSupplier.class; + return org.jclouds.location.suppliers.FirstZoneOrRegionMatchingRegionId.class; } @Override diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/config/EC2ComputeServiceContextModule.java b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/config/EC2ComputeServiceContextModule.java index 22ea121a19..487de2e62b 100755 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/config/EC2ComputeServiceContextModule.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/config/EC2ComputeServiceContextModule.java @@ -35,7 +35,7 @@ import org.jclouds.compute.ComputeServiceContext; import org.jclouds.compute.config.BaseComputeServiceContextModule; import org.jclouds.compute.domain.Image; import org.jclouds.compute.domain.TemplateBuilder; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; import org.jclouds.rest.suppliers.RetryOnTimeOutButNotOnAuthorizationExceptionSupplier; import com.google.common.base.Supplier; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/functions/ImageParser.java b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/functions/ImageParser.java index ed81f4ffe8..c8ee994db0 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/functions/ImageParser.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/functions/ImageParser.java @@ -46,8 +46,8 @@ import org.jclouds.compute.util.ComputeServiceUtils; import org.jclouds.domain.Location; import org.jclouds.domain.LocationScope; import org.jclouds.domain.internal.LocationImpl; +import org.jclouds.location.Provider; import org.jclouds.logging.Logger; -import org.jclouds.rest.annotations.Provider; import com.google.common.base.Function; import com.google.common.base.Predicate; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions.java b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions.java index cc7839635d..ffb44676cb 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions.java @@ -39,7 +39,7 @@ import org.jclouds.aws.ec2.domain.KeyPair; import org.jclouds.aws.ec2.options.RunInstancesOptions; import org.jclouds.compute.domain.Template; import org.jclouds.compute.options.TemplateOptions; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.Sets; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/strategy/EC2ListNodesStrategy.java b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/strategy/EC2ListNodesStrategy.java index 98b90b3e04..89e06d4169 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/strategy/EC2ListNodesStrategy.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/strategy/EC2ListNodesStrategy.java @@ -37,7 +37,6 @@ import javax.inject.Named; import javax.inject.Singleton; import org.jclouds.Constants; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.EC2AsyncClient; import org.jclouds.aws.ec2.domain.Reservation; import org.jclouds.aws.ec2.domain.RunningInstance; @@ -46,6 +45,7 @@ import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.predicates.NodePredicates; import org.jclouds.compute.reference.ComputeServiceConstants; import org.jclouds.compute.strategy.ListNodesStrategy; +import org.jclouds.location.Region; import org.jclouds.logging.Logger; import com.google.common.base.Function; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/EC2HardwareSupplier.java b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/EC2HardwareSupplier.java index 4a06e5c855..7ad73f262f 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/EC2HardwareSupplier.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/EC2HardwareSupplier.java @@ -46,8 +46,8 @@ import org.jclouds.compute.domain.Hardware; import org.jclouds.compute.reference.ComputeServiceConstants; import org.jclouds.domain.Location; import org.jclouds.domain.LocationScope; +import org.jclouds.location.Provider; import org.jclouds.logging.Logger; -import org.jclouds.rest.annotations.Provider; import com.google.common.base.Predicate; import com.google.common.base.Supplier; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/EC2LocationSupplier.java b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/EC2LocationSupplier.java index 4f4f6408e2..f972ccf6ee 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/EC2LocationSupplier.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/EC2LocationSupplier.java @@ -31,7 +31,7 @@ import javax.inject.Singleton; import org.jclouds.domain.Location; import org.jclouds.domain.LocationScope; import org.jclouds.domain.internal.LocationImpl; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; import com.google.common.base.Function; import com.google.common.base.Supplier; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/RegionAndNameToImageSupplier.java b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/RegionAndNameToImageSupplier.java index 19b2da8eeb..4afedfff97 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/RegionAndNameToImageSupplier.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/compute/suppliers/RegionAndNameToImageSupplier.java @@ -58,13 +58,13 @@ import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.compute.domain.RegionAndName; import org.jclouds.aws.ec2.compute.functions.ImageParser; import org.jclouds.aws.ec2.compute.strategy.DescribeImagesParallel; import org.jclouds.aws.ec2.options.DescribeImagesOptions; import org.jclouds.compute.domain.Image; import org.jclouds.compute.reference.ComputeServiceConstants; +import org.jclouds.location.Region; import org.jclouds.logging.Logger; import com.google.common.base.Function; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/config/EC2RestClientModule.java b/aws/core/src/main/java/org/jclouds/aws/ec2/config/EC2RestClientModule.java index b69f805140..0434036d72 100755 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/config/EC2RestClientModule.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/config/EC2RestClientModule.java @@ -24,7 +24,6 @@ import java.util.Map; import javax.inject.Singleton; -import org.jclouds.aws.Region; import org.jclouds.aws.config.AWSFormSigningRestClientModule; import org.jclouds.aws.ec2.EC2AsyncClient; import org.jclouds.aws.ec2.EC2Client; @@ -50,6 +49,7 @@ import org.jclouds.aws.ec2.services.SecurityGroupClient; import org.jclouds.aws.ec2.services.WindowsAsyncClient; import org.jclouds.aws.ec2.services.WindowsClient; import org.jclouds.http.RequiresHttp; +import org.jclouds.location.Region; import org.jclouds.rest.ConfiguresRestClient; import com.google.common.collect.ImmutableMap; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/functions/AvailabilityZoneToEndpoint.java b/aws/core/src/main/java/org/jclouds/aws/ec2/functions/AvailabilityZoneToEndpoint.java index 3ea3a693e3..f89a4ba693 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/functions/AvailabilityZoneToEndpoint.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/functions/AvailabilityZoneToEndpoint.java @@ -25,7 +25,7 @@ import java.util.Map; import javax.inject.Inject; import javax.inject.Singleton; -import org.jclouds.aws.Region; +import org.jclouds.location.Region; import com.google.common.base.Function; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/services/AMIAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/ec2/services/AMIAsyncClient.java index 64db7f78e9..7d3b12e7cb 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/services/AMIAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/services/AMIAsyncClient.java @@ -48,7 +48,7 @@ import org.jclouds.aws.ec2.xml.ImageIdHandler; import org.jclouds.aws.ec2.xml.PermissionHandler; import org.jclouds.aws.ec2.xml.ProductCodesHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.ExceptionParser; @@ -78,7 +78,7 @@ public interface AMIAsyncClient { @XMLResponseParser(DescribeImagesResponseHandler.class) @ExceptionParser(ReturnEmptySetOnNotFoundOr404.class) ListenableFuture> describeImagesInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, DescribeImagesOptions... options); + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, DescribeImagesOptions... options); /** * @see AMIClient#createImageInRegion @@ -87,7 +87,7 @@ public interface AMIAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "CreateImage") @XMLResponseParser(ImageIdHandler.class) - ListenableFuture createImageInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture createImageInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("Name") String name, @FormParam("InstanceId") String instanceId, CreateImageOptions... options); /** @@ -96,7 +96,7 @@ public interface AMIAsyncClient { @POST @Path("/") @FormParams(keys = ACTION, values = "DeregisterImage") - ListenableFuture deregisterImageInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture deregisterImageInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("ImageId") String imageId); /** @@ -107,7 +107,7 @@ public interface AMIAsyncClient { @FormParams(keys = ACTION, values = "RegisterImage") @XMLResponseParser(ImageIdHandler.class) ListenableFuture registerImageFromManifestInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("Name") String imageName, @FormParam("ImageLocation") String pathToManifest, RegisterImageOptions... options); @@ -120,7 +120,7 @@ public interface AMIAsyncClient { "/dev/sda1", "/dev/sda1" }) @XMLResponseParser(ImageIdHandler.class) ListenableFuture registerUnixImageBackedByEbsInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("Name") String imageName, @FormParam("BlockDeviceMapping.0.Ebs.SnapshotId") String ebsSnapshotId, RegisterImageBackedByEbsOptions... options); @@ -132,7 +132,7 @@ public interface AMIAsyncClient { @Path("/") @FormParams(keys = { ACTION, "Attribute" }, values = { "ResetImageAttribute", "launchPermission" }) ListenableFuture resetLaunchPermissionsOnImageInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("ImageId") String imageId); /** @@ -143,7 +143,7 @@ public interface AMIAsyncClient { @FormParams(keys = { ACTION, "OperationType", "Attribute" }, values = { "ModifyImageAttribute", "add", "launchPermission" }) ListenableFuture addLaunchPermissionsToImageInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindUserIdsToIndexedFormParams.class) Iterable userIds, @BinderParam(BindUserGroupsToIndexedFormParams.class) Iterable userGroups, @FormParam("ImageId") String imageId); @@ -156,7 +156,7 @@ public interface AMIAsyncClient { @FormParams(keys = { ACTION, "OperationType", "Attribute" }, values = { "ModifyImageAttribute", "remove", "launchPermission" }) ListenableFuture removeLaunchPermissionsFromImageInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindUserIdsToIndexedFormParams.class) Iterable userIds, @BinderParam(BindUserGroupsToIndexedFormParams.class) Iterable userGroups, @FormParam("ImageId") String imageId); @@ -169,7 +169,7 @@ public interface AMIAsyncClient { @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeImageAttribute", "launchPermission" }) @XMLResponseParser(PermissionHandler.class) ListenableFuture getLaunchPermissionForImageInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("ImageId") String imageId); /** @@ -180,7 +180,7 @@ public interface AMIAsyncClient { @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeImageAttribute", "productCodes" }) @XMLResponseParser(ProductCodesHandler.class) ListenableFuture> getProductCodesForImageInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("ImageId") String imageId); /** @@ -191,7 +191,7 @@ public interface AMIAsyncClient { @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeImageAttribute", "blockDeviceMapping" }) @XMLResponseParser(BlockDeviceMappingHandler.class) ListenableFuture> getBlockDeviceMappingsForImageInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("ImageId") String imageId); /** @@ -201,7 +201,7 @@ public interface AMIAsyncClient { @Path("/") @FormParams(keys = { ACTION, "OperationType", "Attribute" }, values = { "ModifyImageAttribute", "add", "productCodes" }) - ListenableFuture addProductCodesToImageInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture addProductCodesToImageInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindProductCodesToIndexedFormParams.class) Iterable productCodes, @FormParam("ImageId") String imageId); @@ -213,7 +213,7 @@ public interface AMIAsyncClient { @FormParams(keys = { ACTION, "OperationType", "Attribute" }, values = { "ModifyImageAttribute", "remove", "productCodes" }) ListenableFuture removeProductCodesFromImageInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindProductCodesToIndexedFormParams.class) Iterable productCodes, @FormParam("ImageId") String imageId); } diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/services/AvailabilityZoneAndRegionAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/ec2/services/AvailabilityZoneAndRegionAsyncClient.java index 9cb92eddec..0684fda90d 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/services/AvailabilityZoneAndRegionAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/services/AvailabilityZoneAndRegionAsyncClient.java @@ -37,7 +37,7 @@ import org.jclouds.aws.ec2.options.DescribeRegionsOptions; import org.jclouds.aws.ec2.xml.DescribeAvailabilityZonesResponseHandler; import org.jclouds.aws.ec2.xml.DescribeRegionsResponseHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.ExceptionParser; import org.jclouds.rest.annotations.FormParams; @@ -68,7 +68,7 @@ public interface AvailabilityZoneAndRegionAsyncClient { @XMLResponseParser(DescribeAvailabilityZonesResponseHandler.class) @ExceptionParser(ReturnEmptySetOnNotFoundOr404.class) ListenableFuture> describeAvailabilityZonesInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, DescribeAvailabilityZonesOptions... options); /** diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/services/ElasticBlockStoreAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/ec2/services/ElasticBlockStoreAsyncClient.java index 9f8fe5a9d1..f653e2b989 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/services/ElasticBlockStoreAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/services/ElasticBlockStoreAsyncClient.java @@ -49,7 +49,7 @@ import org.jclouds.aws.ec2.xml.DescribeVolumesResponseHandler; import org.jclouds.aws.ec2.xml.PermissionHandler; import org.jclouds.aws.ec2.xml.SnapshotHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.ExceptionParser; @@ -113,7 +113,7 @@ public interface ElasticBlockStoreAsyncClient { @FormParams(keys = ACTION, values = "DescribeVolumes") @XMLResponseParser(DescribeVolumesResponseHandler.class) ListenableFuture> describeVolumesInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindVolumeIdsToIndexedFormParams.class) String... volumeIds); /** @@ -122,7 +122,7 @@ public interface ElasticBlockStoreAsyncClient { @POST @Path("/") @FormParams(keys = ACTION, values = "DeleteVolume") - ListenableFuture deleteVolumeInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture deleteVolumeInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("VolumeId") String volumeId); /** @@ -132,7 +132,7 @@ public interface ElasticBlockStoreAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "DetachVolume") @ExceptionParser(ReturnVoidOnVolumeAvailable.class) - ListenableFuture detachVolumeInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture detachVolumeInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("VolumeId") String volumeId, @FormParam("Force") boolean force, DetachVolumeOptions... options); /** @@ -143,7 +143,7 @@ public interface ElasticBlockStoreAsyncClient { @FormParams(keys = ACTION, values = "AttachVolume") @XMLResponseParser(AttachmentHandler.class) ListenableFuture attachVolumeInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("VolumeId") String volumeId, @FormParam("InstanceId") String instanceId, @FormParam("Device") String device); @@ -155,7 +155,7 @@ public interface ElasticBlockStoreAsyncClient { @FormParams(keys = ACTION, values = "CreateSnapshot") @XMLResponseParser(SnapshotHandler.class) ListenableFuture createSnapshotInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("VolumeId") String volumeId, CreateSnapshotOptions... options); /** @@ -167,7 +167,7 @@ public interface ElasticBlockStoreAsyncClient { @XMLResponseParser(DescribeSnapshotsResponseHandler.class) @ExceptionParser(ReturnEmptySetOnNotFoundOr404.class) ListenableFuture> describeSnapshotsInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, DescribeSnapshotsOptions... options); /** @@ -177,7 +177,7 @@ public interface ElasticBlockStoreAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "DeleteSnapshot") ListenableFuture deleteSnapshotInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("SnapshotId") String snapshotId); /** @@ -188,7 +188,7 @@ public interface ElasticBlockStoreAsyncClient { @FormParams(keys = { ACTION, "OperationType", "Attribute" }, values = { "ModifySnapshotAttribute", "add", "createVolumePermission" }) ListenableFuture addCreateVolumePermissionsToSnapshotInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindUserIdsToIndexedFormParams.class) Iterable userIds, @BinderParam(BindUserGroupsToIndexedFormParams.class) Iterable userGroups, @FormParam("SnapshotId") String snapshotId); @@ -201,7 +201,7 @@ public interface ElasticBlockStoreAsyncClient { @FormParams(keys = { ACTION, "OperationType", "Attribute" }, values = { "ModifySnapshotAttribute", "remove", "createVolumePermission" }) ListenableFuture removeCreateVolumePermissionsFromSnapshotInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindUserIdsToIndexedFormParams.class) Iterable userIds, @BinderParam(BindUserGroupsToIndexedFormParams.class) Iterable userGroups, @FormParam("SnapshotId") String snapshotId); @@ -214,7 +214,7 @@ public interface ElasticBlockStoreAsyncClient { @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeSnapshotAttribute", "createVolumePermission" }) @XMLResponseParser(PermissionHandler.class) ListenableFuture getCreateVolumePermissionForSnapshotInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("SnapshotId") String snapshotId); /** @@ -224,7 +224,7 @@ public interface ElasticBlockStoreAsyncClient { @Path("/") @FormParams(keys = { ACTION, "Attribute" }, values = { "ResetSnapshotAttribute", "createVolumePermission" }) ListenableFuture resetCreateVolumePermissionsOnSnapshotInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("SnapshotId") String snapshotId); } diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/services/ElasticIPAddressAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/ec2/services/ElasticIPAddressAsyncClient.java index de1b4909f9..f3bac7ad08 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/services/ElasticIPAddressAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/services/ElasticIPAddressAsyncClient.java @@ -35,7 +35,7 @@ import org.jclouds.aws.ec2.domain.PublicIpInstanceIdPair; import org.jclouds.aws.ec2.xml.AllocateAddressResponseHandler; import org.jclouds.aws.ec2.xml.DescribeAddressesResponseHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.ExceptionParser; @@ -66,7 +66,7 @@ public interface ElasticIPAddressAsyncClient { @XMLResponseParser(AllocateAddressResponseHandler.class) @FormParams(keys = ACTION, values = "AllocateAddress") ListenableFuture allocateAddressInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); /** * @see BaseEC2Client#associateAddressInRegion @@ -75,7 +75,7 @@ public interface ElasticIPAddressAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "AssociateAddress") ListenableFuture associateAddressInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("PublicIp") String publicIp, @FormParam("InstanceId") String instanceId); /** @@ -85,7 +85,7 @@ public interface ElasticIPAddressAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "DisassociateAddress") ListenableFuture disassociateAddressInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("PublicIp") String publicIp); /** @@ -95,7 +95,7 @@ public interface ElasticIPAddressAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "ReleaseAddress") ListenableFuture releaseAddressInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("PublicIp") String publicIp); /** @@ -107,7 +107,7 @@ public interface ElasticIPAddressAsyncClient { @XMLResponseParser(DescribeAddressesResponseHandler.class) @ExceptionParser(ReturnEmptySetOnNotFoundOr404.class) ListenableFuture> describeAddressesInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindPublicIpsToIndexedFormParams.class) String... publicIps); } diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/services/InstanceAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/ec2/services/InstanceAsyncClient.java index df9b0241d1..bce92c0962 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/services/InstanceAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/services/InstanceAsyncClient.java @@ -52,7 +52,7 @@ import org.jclouds.aws.ec2.xml.RunInstancesResponseHandler; import org.jclouds.aws.ec2.xml.StringValueHandler; import org.jclouds.aws.ec2.xml.UnencodeStringValueHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.ExceptionParser; @@ -83,7 +83,7 @@ public interface InstanceAsyncClient { @XMLResponseParser(DescribeInstancesResponseHandler.class) @ExceptionParser(ReturnEmptySetOnNotFoundOr404.class) ListenableFuture>> describeInstancesInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); /** @@ -93,7 +93,7 @@ public interface InstanceAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "RunInstances") @XMLResponseParser(RunInstancesResponseHandler.class) - ListenableFuture> runInstancesInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture> runInstancesInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @Nullable @BinderParam(IfNotNullBindAvailabilityZoneToFormParam.class) String nullableAvailabilityZone, @FormParam("ImageId") String imageId, @FormParam("MinCount") int minCount, @FormParam("MaxCount") int maxCount, RunInstancesOptions... options); @@ -104,7 +104,7 @@ public interface InstanceAsyncClient { @POST @Path("/") @FormParams(keys = ACTION, values = "RebootInstances") - ListenableFuture rebootInstancesInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture rebootInstancesInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); /** @@ -115,7 +115,7 @@ public interface InstanceAsyncClient { @FormParams(keys = ACTION, values = "TerminateInstances") @XMLResponseParser(InstanceStateChangeHandler.class) ListenableFuture> terminateInstancesInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); /** @@ -126,7 +126,7 @@ public interface InstanceAsyncClient { @FormParams(keys = ACTION, values = "StopInstances") @XMLResponseParser(InstanceStateChangeHandler.class) ListenableFuture> stopInstancesInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @FormParam("Force") boolean force, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("Force") boolean force, @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); /** @@ -137,7 +137,7 @@ public interface InstanceAsyncClient { @FormParams(keys = ACTION, values = "StartInstances") @XMLResponseParser(InstanceStateChangeHandler.class) ListenableFuture> startInstancesInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); /** @@ -148,7 +148,7 @@ public interface InstanceAsyncClient { @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "userData" }) @XMLResponseParser(UnencodeStringValueHandler.class) ListenableFuture getUserDataForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId); /** @@ -159,7 +159,7 @@ public interface InstanceAsyncClient { @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "rootDeviceName" }) @XMLResponseParser(StringValueHandler.class) ListenableFuture getRootDeviceNameForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId); /** @@ -170,7 +170,7 @@ public interface InstanceAsyncClient { @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "ramdisk" }) @XMLResponseParser(StringValueHandler.class) ListenableFuture getRamdiskForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId); /** @@ -180,7 +180,7 @@ public interface InstanceAsyncClient { @Path("/") @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "kernel" }) @XMLResponseParser(StringValueHandler.class) - ListenableFuture getKernelForInstanceInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture getKernelForInstanceInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId); /** @@ -191,7 +191,7 @@ public interface InstanceAsyncClient { @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "disableApiTermination" }) @XMLResponseParser(BooleanValueHandler.class) ListenableFuture isApiTerminationDisabledForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId); /** @@ -202,7 +202,7 @@ public interface InstanceAsyncClient { @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "instanceType" }) @XMLResponseParser(InstanceTypeHandler.class) ListenableFuture getInstanceTypeForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId); /** @@ -214,7 +214,7 @@ public interface InstanceAsyncClient { "instanceInitiatedShutdownBehavior" }) @XMLResponseParser(InstanceInitiatedShutdownBehaviorHandler.class) ListenableFuture getInstanceInitiatedShutdownBehaviorForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId); /** @@ -225,7 +225,7 @@ public interface InstanceAsyncClient { @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "blockDeviceMapping" }) @XMLResponseParser(BlockDeviceMappingHandler.class) ListenableFuture> getBlockDeviceMappingForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId); /** @@ -235,7 +235,7 @@ public interface InstanceAsyncClient { @Path("/") @FormParams(keys = { ACTION, "Attribute" }, values = { "ResetInstanceAttribute", "ramdisk" }) ListenableFuture resetRamdiskForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId); /** @@ -244,7 +244,7 @@ public interface InstanceAsyncClient { @POST @Path("/") @FormParams(keys = { ACTION, "Attribute" }, values = { "ResetInstanceAttribute", "kernel" }) - ListenableFuture resetKernelForInstanceInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture resetKernelForInstanceInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId); /** @@ -253,7 +253,7 @@ public interface InstanceAsyncClient { @POST @Path("/") @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", "userData" }) - ListenableFuture setUserDataForInstanceInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture setUserDataForInstanceInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") @ParamParser(ConvertUnencodedBytesToBase64EncodedString.class) byte[] unencodedData); @@ -263,7 +263,7 @@ public interface InstanceAsyncClient { @POST @Path("/") @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", "ramdisk" }) - ListenableFuture setRamdiskForInstanceInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture setRamdiskForInstanceInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") String ramdisk); /** @@ -272,7 +272,7 @@ public interface InstanceAsyncClient { @POST @Path("/") @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", "kernel" }) - ListenableFuture setKernelForInstanceInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture setKernelForInstanceInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") String kernel); /** @@ -282,7 +282,7 @@ public interface InstanceAsyncClient { @Path("/") @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", "disableApiTermination" }) ListenableFuture setApiTerminationDisabledForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") boolean apiTerminationDisabled); /** @@ -292,7 +292,7 @@ public interface InstanceAsyncClient { @Path("/") @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", "instanceType" }) ListenableFuture setInstanceTypeForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") String instanceType); /** @@ -303,7 +303,7 @@ public interface InstanceAsyncClient { @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", "instanceInitiatedShutdownBehavior" }) ListenableFuture setInstanceInitiatedShutdownBehaviorForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") InstanceInitiatedShutdownBehavior instanceInitiatedShutdownBehavior); @@ -314,7 +314,7 @@ public interface InstanceAsyncClient { @Path("/") @FormParams(keys = { ACTION }, values = { "ModifyInstanceAttribute" }) ListenableFuture setBlockDeviceMappingForInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId, @BinderParam(BindBlockDeviceMappingToIndexedFormParams.class) BlockDeviceMapping blockDeviceMapping); diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/services/KeyPairAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/ec2/services/KeyPairAsyncClient.java index c69c5baa45..6be04ec18c 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/services/KeyPairAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/services/KeyPairAsyncClient.java @@ -35,7 +35,7 @@ import org.jclouds.aws.ec2.domain.KeyPair; import org.jclouds.aws.ec2.xml.DescribeKeyPairsResponseHandler; import org.jclouds.aws.ec2.xml.KeyPairResponseHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.ExceptionParser; @@ -66,7 +66,7 @@ public interface KeyPairAsyncClient { @FormParams(keys = ACTION, values = "CreateKeyPair") @XMLResponseParser(KeyPairResponseHandler.class) ListenableFuture createKeyPairInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("KeyName") String keyName); /** @@ -78,7 +78,7 @@ public interface KeyPairAsyncClient { @XMLResponseParser(DescribeKeyPairsResponseHandler.class) @ExceptionParser(ReturnEmptySetOnNotFoundOr404.class) ListenableFuture> describeKeyPairsInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindKeyNamesToIndexedFormParams.class) String... keyPairNames); /** @@ -88,7 +88,7 @@ public interface KeyPairAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "DeleteKeyPair") ListenableFuture deleteKeyPairInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("KeyName") String keyName); } diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/services/MonitoringAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/ec2/services/MonitoringAsyncClient.java index 3c5505337b..805d9d5fdc 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/services/MonitoringAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/services/MonitoringAsyncClient.java @@ -34,7 +34,7 @@ import org.jclouds.aws.ec2.binders.BindInstanceIdsToIndexedFormParams; import org.jclouds.aws.ec2.domain.MonitoringState; import org.jclouds.aws.ec2.xml.MonitoringStateHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.FormParams; @@ -63,7 +63,7 @@ public interface MonitoringAsyncClient { @FormParams(keys = ACTION, values = "MonitorInstances") @XMLResponseParser(MonitoringStateHandler.class) ListenableFuture> monitorInstancesInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId.0") String instanceId, @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); @@ -75,7 +75,7 @@ public interface MonitoringAsyncClient { @FormParams(keys = ACTION, values = "UnmonitorInstances") @XMLResponseParser(MonitoringStateHandler.class) ListenableFuture> unmonitorInstancesInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId.0") String instanceId, @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); } diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClient.java index 5bd3df0fb4..0e6f3547b1 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClient.java @@ -34,7 +34,7 @@ import org.jclouds.aws.ec2.binders.BindGroupNamesToIndexedFormParams; import org.jclouds.aws.ec2.domain.PlacementGroup; import org.jclouds.aws.ec2.xml.DescribePlacementGroupsResponseHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.ExceptionParser; @@ -65,7 +65,7 @@ public interface PlacementGroupAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "CreatePlacementGroup") ListenableFuture createPlacementGroupInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("GroupName") String name, @FormParam("Strategy") String strategy); /** @@ -75,7 +75,7 @@ public interface PlacementGroupAsyncClient { @Path("/") @FormParams(keys = { ACTION, "Strategy" }, values = { "CreatePlacementGroup", "cluster" }) ListenableFuture createPlacementGroupInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @FormParam("GroupName") String name); + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("GroupName") String name); /** * @see PlacementGroupClient#deletePlacementGroupInRegion @@ -85,7 +85,7 @@ public interface PlacementGroupAsyncClient { @FormParams(keys = ACTION, values = "DeletePlacementGroup") @ExceptionParser(ReturnVoidOnNotFoundOr404.class) ListenableFuture deletePlacementGroupInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @FormParam("GroupName") String name); + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("GroupName") String name); /** * @see PlacementGroupClient#describePlacementGroupsInRegion @@ -96,7 +96,7 @@ public interface PlacementGroupAsyncClient { @XMLResponseParser(DescribePlacementGroupsResponseHandler.class) @ExceptionParser(ReturnEmptySetOnNotFoundOr404.class) ListenableFuture> describePlacementGroupsInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindGroupNamesToIndexedFormParams.class) String... placementGroupIds); } diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/services/SecurityGroupAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/ec2/services/SecurityGroupAsyncClient.java index 81ee41bb82..94020ef73a 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/services/SecurityGroupAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/services/SecurityGroupAsyncClient.java @@ -37,7 +37,7 @@ import org.jclouds.aws.ec2.domain.SecurityGroup; import org.jclouds.aws.ec2.domain.UserIdGroupPair; import org.jclouds.aws.ec2.xml.DescribeSecurityGroupsResponseHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.ExceptionParser; @@ -68,7 +68,7 @@ public interface SecurityGroupAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "CreateSecurityGroup") ListenableFuture createSecurityGroupInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("GroupName") String name, @FormParam("GroupDescription") String description); /** @@ -79,7 +79,7 @@ public interface SecurityGroupAsyncClient { @FormParams(keys = ACTION, values = "DeleteSecurityGroup") @ExceptionParser(ReturnVoidOnNotFoundOr404.class) ListenableFuture deleteSecurityGroupInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @FormParam("GroupName") String name); + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("GroupName") String name); /** * @see SecurityGroupClient#describeSecurityGroupsInRegion @@ -90,7 +90,7 @@ public interface SecurityGroupAsyncClient { @XMLResponseParser(DescribeSecurityGroupsResponseHandler.class) @ExceptionParser(ReturnEmptySetOnNotFoundOr404.class) ListenableFuture> describeSecurityGroupsInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindGroupNamesToIndexedFormParams.class) String... securityGroupNames); /** @@ -101,7 +101,7 @@ public interface SecurityGroupAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "AuthorizeSecurityGroupIngress") ListenableFuture authorizeSecurityGroupIngressInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("GroupName") String groupName, @BinderParam(BindUserIdGroupPairToSourceSecurityGroupFormParams.class) UserIdGroupPair sourceSecurityGroup); @@ -113,7 +113,7 @@ public interface SecurityGroupAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "AuthorizeSecurityGroupIngress") ListenableFuture authorizeSecurityGroupIngressInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("GroupName") String groupName, @FormParam("IpProtocol") IpProtocol ipProtocol, @FormParam("FromPort") int fromPort, @FormParam("ToPort") int toPort, @FormParam("CidrIp") String cidrIp); @@ -125,7 +125,7 @@ public interface SecurityGroupAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "RevokeSecurityGroupIngress") ListenableFuture revokeSecurityGroupIngressInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("GroupName") String groupName, @BinderParam(BindUserIdGroupPairToSourceSecurityGroupFormParams.class) UserIdGroupPair sourceSecurityGroup); @@ -137,7 +137,7 @@ public interface SecurityGroupAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "RevokeSecurityGroupIngress") ListenableFuture revokeSecurityGroupIngressInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("GroupName") String groupName, @FormParam("IpProtocol") IpProtocol ipProtocol, @FormParam("FromPort") int fromPort, @FormParam("ToPort") int toPort, @FormParam("CidrIp") String cidrIp); } diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/services/WindowsAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/ec2/services/WindowsAsyncClient.java index 896fb5563d..59bda662a3 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/services/WindowsAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/services/WindowsAsyncClient.java @@ -37,7 +37,7 @@ import org.jclouds.aws.ec2.options.BundleInstanceS3StorageOptions; import org.jclouds.aws.ec2.xml.BundleTaskHandler; import org.jclouds.aws.ec2.xml.DescribeBundleTasksResponseHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.ExceptionParser; @@ -68,7 +68,7 @@ public interface WindowsAsyncClient { @FormParams(keys = ACTION, values = "BundleInstance") @XMLResponseParser(BundleTaskHandler.class) ListenableFuture bundleInstanceInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Storage.S3.Prefix") String prefix, @FormParam("Storage.S3.Bucket") String bucket, @BinderParam(BindS3UploadPolicyAndSignature.class) String uploadPolicy, @@ -82,7 +82,7 @@ public interface WindowsAsyncClient { @FormParams(keys = ACTION, values = "CancelBundleTask") @XMLResponseParser(BundleTaskHandler.class) ListenableFuture cancelBundleTaskInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("BundleId") String bundleId); /** @@ -94,7 +94,7 @@ public interface WindowsAsyncClient { @XMLResponseParser(DescribeBundleTasksResponseHandler.class) @ExceptionParser(ReturnEmptySetOnNotFoundOr404.class) ListenableFuture> describeBundleTasksInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @BinderParam(BindBundleIdsToIndexedFormParams.class) String... bundleTaskIds); } diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/AttachmentHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/AttachmentHandler.java index 3c12c3e1f7..0ac933056f 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/AttachmentHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/AttachmentHandler.java @@ -24,11 +24,11 @@ import java.util.Date; import javax.annotation.Resource; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.Attachment; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.date.DateService; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; import org.jclouds.logging.Logger; /** diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/BaseReservationHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/BaseReservationHandler.java index 04c867735b..7cbec53912 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/BaseReservationHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/BaseReservationHandler.java @@ -26,7 +26,6 @@ import java.util.Set; import javax.annotation.Resource; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.Attachment; import org.jclouds.aws.ec2.domain.InstanceState; import org.jclouds.aws.ec2.domain.MonitoringState; @@ -36,6 +35,7 @@ import org.jclouds.aws.ec2.domain.RunningInstance; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.date.DateService; import org.jclouds.http.functions.ParseSax.HandlerForGeneratedRequestWithResult; +import org.jclouds.location.Region; import org.jclouds.logging.Logger; import org.xml.sax.Attributes; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/BundleTaskHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/BundleTaskHandler.java index 6aaab139de..906c0593a5 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/BundleTaskHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/BundleTaskHandler.java @@ -23,11 +23,11 @@ import java.util.Date; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.BundleTask; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.date.DateService; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; /** * diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/CreateVolumeResponseHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/CreateVolumeResponseHandler.java index b78acc834b..067fde22ce 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/CreateVolumeResponseHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/CreateVolumeResponseHandler.java @@ -28,13 +28,13 @@ import java.util.Set; import javax.annotation.Resource; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.Attachment; import org.jclouds.aws.ec2.domain.Volume; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.date.DateService; import org.jclouds.http.HttpRequest; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; import org.jclouds.logging.Logger; import org.xml.sax.Attributes; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeAddressesResponseHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeAddressesResponseHandler.java index 5b3a02b054..9a13385f82 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeAddressesResponseHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeAddressesResponseHandler.java @@ -24,10 +24,10 @@ import java.util.Set; import javax.annotation.Resource; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.PublicIpInstanceIdPair; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.http.functions.ParseSax.HandlerForGeneratedRequestWithResult; +import org.jclouds.location.Region; import org.jclouds.logging.Logger; import com.google.common.collect.Sets; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeAvailabilityZonesResponseHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeAvailabilityZonesResponseHandler.java index 1e5a4908a6..10e20eebc6 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeAvailabilityZonesResponseHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeAvailabilityZonesResponseHandler.java @@ -24,9 +24,9 @@ import java.util.Set; import javax.annotation.Resource; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.AvailabilityZoneInfo; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; import org.jclouds.logging.Logger; import org.xml.sax.Attributes; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeImagesResponseHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeImagesResponseHandler.java index ddee393a37..44e6f154be 100755 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeImagesResponseHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeImagesResponseHandler.java @@ -25,7 +25,6 @@ import java.util.Set; import javax.annotation.Resource; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.Image; import org.jclouds.aws.ec2.domain.RootDeviceType; import org.jclouds.aws.ec2.domain.Image.Architecture; @@ -34,6 +33,7 @@ import org.jclouds.aws.ec2.domain.Image.ImageState; import org.jclouds.aws.ec2.domain.Image.ImageType; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; import org.jclouds.logging.Logger; import org.xml.sax.Attributes; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeInstancesResponseHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeInstancesResponseHandler.java index 2ad0d17757..266b599a5b 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeInstancesResponseHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeInstancesResponseHandler.java @@ -23,10 +23,10 @@ import java.util.Set; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.Reservation; import org.jclouds.aws.ec2.domain.RunningInstance; import org.jclouds.date.DateService; +import org.jclouds.location.Region; import com.google.common.collect.Sets; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeKeyPairsResponseHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeKeyPairsResponseHandler.java index 0972cadd7f..719b359ba5 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeKeyPairsResponseHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeKeyPairsResponseHandler.java @@ -23,10 +23,10 @@ import java.util.Set; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.KeyPair; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; import com.google.common.collect.Sets; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeSecurityGroupsResponseHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeSecurityGroupsResponseHandler.java index 6c0770d131..c4e0e6f3db 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeSecurityGroupsResponseHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/DescribeSecurityGroupsResponseHandler.java @@ -23,13 +23,13 @@ import java.util.Set; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.IpPermission; import org.jclouds.aws.ec2.domain.IpProtocol; import org.jclouds.aws.ec2.domain.SecurityGroup; import org.jclouds.aws.ec2.domain.UserIdGroupPair; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; import org.xml.sax.Attributes; import com.google.common.collect.Sets; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/InstanceStateChangeHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/InstanceStateChangeHandler.java index e7ffffcefa..8e12ed0faf 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/InstanceStateChangeHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/InstanceStateChangeHandler.java @@ -23,11 +23,11 @@ import java.util.Set; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.InstanceState; import org.jclouds.aws.ec2.domain.InstanceStateChange; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.http.functions.ParseSax.HandlerForGeneratedRequestWithResult; +import org.jclouds.location.Region; import org.xml.sax.Attributes; import com.google.common.collect.Sets; diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/KeyPairResponseHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/KeyPairResponseHandler.java index 7127cfb17d..cb883ab2a6 100755 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/KeyPairResponseHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/KeyPairResponseHandler.java @@ -21,10 +21,10 @@ package org.jclouds.aws.ec2.xml; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.KeyPair; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; /** * diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/PlacementGroupHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/PlacementGroupHandler.java index 77f9223b0f..92179f2a83 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/PlacementGroupHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/PlacementGroupHandler.java @@ -21,12 +21,12 @@ package org.jclouds.aws.ec2.xml; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.PlacementGroup; import org.jclouds.aws.ec2.domain.PlacementGroup.State; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.date.DateService; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; /** * diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/ReservedInstancesOfferingHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/ReservedInstancesOfferingHandler.java index 8e30a7e032..a6a4d70b8f 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/ReservedInstancesOfferingHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/ReservedInstancesOfferingHandler.java @@ -21,10 +21,10 @@ package org.jclouds.aws.ec2.xml; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.ReservedInstancesOffering; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; /** * diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/RunInstancesResponseHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/RunInstancesResponseHandler.java index d015f56b24..e0cdd9e5d8 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/RunInstancesResponseHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/RunInstancesResponseHandler.java @@ -21,10 +21,10 @@ package org.jclouds.aws.ec2.xml; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.Reservation; import org.jclouds.aws.ec2.domain.RunningInstance; import org.jclouds.date.DateService; +import org.jclouds.location.Region; /** * Parses the following XML document: diff --git a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/SnapshotHandler.java b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/SnapshotHandler.java index 1e9f9aea87..00216839d3 100644 --- a/aws/core/src/main/java/org/jclouds/aws/ec2/xml/SnapshotHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/ec2/xml/SnapshotHandler.java @@ -23,12 +23,12 @@ import java.util.Date; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.Snapshot; import org.jclouds.aws.ec2.domain.Snapshot.Status; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.date.DateService; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; /** * diff --git a/aws/core/src/main/java/org/jclouds/aws/elb/ELBAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/elb/ELBAsyncClient.java index f0e1c47f49..f2ffa8737b 100644 --- a/aws/core/src/main/java/org/jclouds/aws/elb/ELBAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/elb/ELBAsyncClient.java @@ -36,7 +36,7 @@ import org.jclouds.aws.elb.xml.CreateLoadBalancerResponseHandler; import org.jclouds.aws.elb.xml.DescribeLoadBalancersResponseHandler; import org.jclouds.aws.elb.xml.RegisterInstancesWithLoadBalancerResponseHandler; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.FormParams; @@ -66,7 +66,7 @@ public interface ELBAsyncClient { @XMLResponseParser(CreateLoadBalancerResponseHandler.class) @FormParams(keys = ACTION, values = "CreateLoadBalancer") ListenableFuture createLoadBalancerInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("LoadBalancerName") String name, @FormParam("Listeners.member.1.Protocol") String protocol, @FormParam("Listeners.member.1.LoadBalancerPort") int loadBalancerPort, @@ -80,7 +80,7 @@ public interface ELBAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "DeleteLoadBalancer") ListenableFuture deleteLoadBalancerInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("LoadBalancerName") String name); /** @@ -91,7 +91,7 @@ public interface ELBAsyncClient { @XMLResponseParser(RegisterInstancesWithLoadBalancerResponseHandler.class) @FormParams(keys = ACTION, values = "RegisterInstancesWithLoadBalancer") ListenableFuture> registerInstancesWithLoadBalancerInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("LoadBalancerName") String name, @BinderParam(BindELBInstanceIdsToIndexedFormParams.class) String... instanceIds); @@ -102,7 +102,7 @@ public interface ELBAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "DeregisterInstancesFromLoadBalancer") ListenableFuture deregisterInstancesWithLoadBalancerInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("LoadBalancerName") String name, @BinderParam(BindELBInstanceIdsToIndexedFormParams.class) String... instanceIds); @@ -114,6 +114,6 @@ public interface ELBAsyncClient { @XMLResponseParser(DescribeLoadBalancersResponseHandler.class) @FormParams(keys = ACTION, values = "DescribeLoadBalancers") ListenableFuture> describeLoadBalancersInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); } diff --git a/aws/core/src/main/java/org/jclouds/aws/elb/xml/DescribeLoadBalancersResponseHandler.java b/aws/core/src/main/java/org/jclouds/aws/elb/xml/DescribeLoadBalancersResponseHandler.java index 80aa2a8ba6..aaa7adfdd1 100644 --- a/aws/core/src/main/java/org/jclouds/aws/elb/xml/DescribeLoadBalancersResponseHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/elb/xml/DescribeLoadBalancersResponseHandler.java @@ -24,7 +24,6 @@ import java.util.Set; import javax.annotation.Resource; import javax.inject.Inject; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.util.EC2Utils; import org.jclouds.aws.elb.domain.LoadBalancer; import org.jclouds.aws.elb.domain.LoadBalancer.AppCookieStickinessPolicy; @@ -33,6 +32,7 @@ import org.jclouds.aws.elb.domain.LoadBalancer.LoadBalancerListener; import org.jclouds.date.DateService; import org.jclouds.http.HttpRequest; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; import org.jclouds.logging.Logger; import org.xml.sax.Attributes; diff --git a/aws/core/src/main/java/org/jclouds/aws/s3/blobstore/config/S3BlobStoreContextModule.java b/aws/core/src/main/java/org/jclouds/aws/s3/blobstore/config/S3BlobStoreContextModule.java index 2a93fee09a..bd031b2b77 100755 --- a/aws/core/src/main/java/org/jclouds/aws/s3/blobstore/config/S3BlobStoreContextModule.java +++ b/aws/core/src/main/java/org/jclouds/aws/s3/blobstore/config/S3BlobStoreContextModule.java @@ -23,7 +23,6 @@ import java.util.Set; import javax.inject.Singleton; -import org.jclouds.aws.Region; import org.jclouds.aws.s3.S3AsyncClient; import org.jclouds.aws.s3.S3Client; import org.jclouds.aws.s3.blobstore.S3AsyncBlobStore; @@ -31,7 +30,6 @@ import org.jclouds.aws.s3.blobstore.S3BlobRequestSigner; import org.jclouds.aws.s3.blobstore.S3BlobStore; import org.jclouds.aws.s3.blobstore.functions.LocationFromBucketLocation; import org.jclouds.aws.s3.domain.BucketMetadata; -import org.jclouds.aws.suppliers.DefaultLocationSupplier; import org.jclouds.blobstore.AsyncBlobStore; import org.jclouds.blobstore.BlobRequestSigner; import org.jclouds.blobstore.BlobStore; @@ -43,7 +41,9 @@ import org.jclouds.collect.Memoized; import org.jclouds.domain.Location; import org.jclouds.domain.LocationScope; import org.jclouds.domain.internal.LocationImpl; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; +import org.jclouds.location.Region; +import org.jclouds.location.suppliers.FirstZoneOrRegionMatchingRegionId; import com.google.common.base.Function; import com.google.common.base.Supplier; @@ -65,7 +65,7 @@ public class S3BlobStoreContextModule extends AbstractModule { protected void configure() { install(new BlobStoreMapModule()); bind(new TypeLiteral>() { - }).to(new TypeLiteral() { + }).to(new TypeLiteral() { }); bind(ConsistencyModel.class).toInstance(ConsistencyModel.EVENTUAL); bind(AsyncBlobStore.class).to(S3AsyncBlobStore.class).in(Scopes.SINGLETON); diff --git a/aws/core/src/main/java/org/jclouds/aws/simpledb/SimpleDBAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/simpledb/SimpleDBAsyncClient.java index 855bf45568..4a55207c65 100644 --- a/aws/core/src/main/java/org/jclouds/aws/simpledb/SimpleDBAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/simpledb/SimpleDBAsyncClient.java @@ -30,7 +30,6 @@ import javax.ws.rs.POST; import javax.ws.rs.Path; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; import org.jclouds.aws.simpledb.binders.BindAttributesToIndexedFormParams; import org.jclouds.aws.simpledb.domain.Item; import org.jclouds.aws.simpledb.domain.AttributePair; @@ -38,6 +37,7 @@ import org.jclouds.aws.simpledb.domain.ListDomainsResponse; import org.jclouds.aws.simpledb.options.ListDomainsOptions; import org.jclouds.aws.simpledb.xml.ItemsHandler; import org.jclouds.aws.simpledb.xml.ListDomainsResponseHandler; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.FormParams; @@ -68,7 +68,7 @@ public interface SimpleDBAsyncClient { @FormParams(keys = ACTION, values = "ListDomains") @XMLResponseParser(ListDomainsResponseHandler.class) ListenableFuture listDomainsInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, ListDomainsOptions... options); + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, ListDomainsOptions... options); /** * @see SimpleDBClient#createDomainInRegion @@ -76,7 +76,7 @@ public interface SimpleDBAsyncClient { @POST @Path("/") @FormParams(keys = ACTION, values = "CreateDomain") - ListenableFuture createDomainInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture createDomainInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("DomainName") String domainName); /** @@ -85,7 +85,7 @@ public interface SimpleDBAsyncClient { @POST @Path("/") @FormParams(keys = ACTION, values = "DeleteDomain") - ListenableFuture deleteDomainInRegion(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture deleteDomainInRegion(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("DomainName") String domainName); @@ -95,7 +95,7 @@ public interface SimpleDBAsyncClient { @POST @Path("/") @FormParams(keys = ACTION, values = "PutAttributes") - ListenableFuture putAttributes(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture putAttributes(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("DomainName") String domainName, @FormParam("ItemName") String itemName, @BinderParam(BindAttributesToIndexedFormParams.class) Item attributes); @@ -107,7 +107,7 @@ public interface SimpleDBAsyncClient { @Path("/") @FormParams(keys = ACTION, values = "Select") @XMLResponseParser(ItemsHandler.class) - ListenableFuture> select(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + ListenableFuture> select(@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("SelectExpression") String selectExpression); diff --git a/aws/core/src/main/java/org/jclouds/aws/simpledb/SimpleDBClient.java b/aws/core/src/main/java/org/jclouds/aws/simpledb/SimpleDBClient.java index 25aa7db973..75e488326f 100644 --- a/aws/core/src/main/java/org/jclouds/aws/simpledb/SimpleDBClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/simpledb/SimpleDBClient.java @@ -25,12 +25,12 @@ import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; import javax.ws.rs.FormParam; -import org.jclouds.aws.functions.RegionToEndpoint; import org.jclouds.aws.simpledb.domain.Item; import org.jclouds.aws.simpledb.domain.AttributePair; import org.jclouds.aws.simpledb.domain.ListDomainsResponse; import org.jclouds.aws.simpledb.options.ListDomainsOptions; import org.jclouds.concurrent.Timeout; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.EndpointParam; import com.google.common.util.concurrent.ListenableFuture; diff --git a/aws/core/src/main/java/org/jclouds/aws/sqs/SQSAsyncClient.java b/aws/core/src/main/java/org/jclouds/aws/sqs/SQSAsyncClient.java index b5687ea429..f80b338f90 100644 --- a/aws/core/src/main/java/org/jclouds/aws/sqs/SQSAsyncClient.java +++ b/aws/core/src/main/java/org/jclouds/aws/sqs/SQSAsyncClient.java @@ -30,7 +30,6 @@ import javax.ws.rs.POST; import javax.ws.rs.Path; import org.jclouds.aws.filters.FormSigner; -import org.jclouds.aws.functions.RegionToEndpoint; import org.jclouds.aws.sqs.domain.Queue; import org.jclouds.aws.sqs.functions.QueueLocation; import org.jclouds.aws.sqs.options.CreateQueueOptions; @@ -38,6 +37,7 @@ import org.jclouds.aws.sqs.options.ListQueuesOptions; import org.jclouds.aws.sqs.xml.RegexListQueuesResponseHandler; import org.jclouds.aws.sqs.xml.RegexMD5Handler; import org.jclouds.aws.sqs.xml.RegexQueueHandler; +import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; import org.jclouds.rest.annotations.EndpointParam; import org.jclouds.rest.annotations.FormParams; import org.jclouds.rest.annotations.RequestFilters; @@ -66,7 +66,7 @@ public interface SQSAsyncClient { @FormParams(keys = ACTION, values = "ListQueues") @ResponseParser(RegexListQueuesResponseHandler.class) ListenableFuture> listQueuesInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, ListQueuesOptions... options); /** @@ -77,7 +77,7 @@ public interface SQSAsyncClient { @FormParams(keys = ACTION, values = "CreateQueue") @ResponseParser(RegexQueueHandler.class) ListenableFuture createQueueInRegion( - @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("QueueName") String queueName, CreateQueueOptions... options); /** diff --git a/aws/core/src/main/java/org/jclouds/aws/sqs/xml/QueueHandler.java b/aws/core/src/main/java/org/jclouds/aws/sqs/xml/QueueHandler.java index 4f07561e0e..7eb08160ba 100644 --- a/aws/core/src/main/java/org/jclouds/aws/sqs/xml/QueueHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/sqs/xml/QueueHandler.java @@ -26,9 +26,9 @@ import javax.inject.Inject; import javax.inject.Provider; import javax.ws.rs.core.UriBuilder; -import org.jclouds.aws.Region; import org.jclouds.aws.sqs.domain.Queue; import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Region; import com.google.common.collect.ImmutableBiMap; diff --git a/aws/core/src/main/java/org/jclouds/aws/sqs/xml/RegexListQueuesResponseHandler.java b/aws/core/src/main/java/org/jclouds/aws/sqs/xml/RegexListQueuesResponseHandler.java index e121817d3f..23e7bd1638 100644 --- a/aws/core/src/main/java/org/jclouds/aws/sqs/xml/RegexListQueuesResponseHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/sqs/xml/RegexListQueuesResponseHandler.java @@ -26,11 +26,11 @@ import java.util.Set; import javax.inject.Inject; import javax.inject.Singleton; -import org.jclouds.aws.Region; import org.jclouds.aws.sqs.domain.Queue; import org.jclouds.aws.sqs.xml.internal.BaseRegexQueueHandler; import org.jclouds.http.HttpResponse; import org.jclouds.http.functions.ReturnStringIf2xx; +import org.jclouds.location.Region; import com.google.common.base.Function; diff --git a/aws/core/src/main/java/org/jclouds/aws/sqs/xml/RegexQueueHandler.java b/aws/core/src/main/java/org/jclouds/aws/sqs/xml/RegexQueueHandler.java index ee89cd49f7..647495ac93 100644 --- a/aws/core/src/main/java/org/jclouds/aws/sqs/xml/RegexQueueHandler.java +++ b/aws/core/src/main/java/org/jclouds/aws/sqs/xml/RegexQueueHandler.java @@ -25,11 +25,11 @@ import java.util.Map; import javax.inject.Inject; import javax.inject.Singleton; -import org.jclouds.aws.Region; import org.jclouds.aws.sqs.domain.Queue; import org.jclouds.aws.sqs.xml.internal.BaseRegexQueueHandler; import org.jclouds.http.HttpResponse; import org.jclouds.http.functions.ReturnStringIf2xx; +import org.jclouds.location.Region; import com.google.common.base.Function; import com.google.common.collect.Iterables; diff --git a/aws/core/src/test/java/org/jclouds/aws/ec2/services/BaseEC2AsyncClientTest.java b/aws/core/src/test/java/org/jclouds/aws/ec2/services/BaseEC2AsyncClientTest.java index d618438c48..256d7fbe9f 100644 --- a/aws/core/src/test/java/org/jclouds/aws/ec2/services/BaseEC2AsyncClientTest.java +++ b/aws/core/src/test/java/org/jclouds/aws/ec2/services/BaseEC2AsyncClientTest.java @@ -72,7 +72,7 @@ public abstract class BaseEC2AsyncClientTest extends RestClientTest { @Override protected Map provideAvailabilityZoneToRegions(EC2Client client, - @org.jclouds.aws.Region Map regions) { + @org.jclouds.location.Region Map regions) { return ImmutableMap. of(AvailabilityZone.US_EAST_1A, Region.US_EAST_1); } } diff --git a/aws/core/src/test/java/org/jclouds/aws/ec2/xml/BaseEC2HandlerTest.java b/aws/core/src/test/java/org/jclouds/aws/ec2/xml/BaseEC2HandlerTest.java index 5697967ebf..5cb2bf1b14 100644 --- a/aws/core/src/test/java/org/jclouds/aws/ec2/xml/BaseEC2HandlerTest.java +++ b/aws/core/src/test/java/org/jclouds/aws/ec2/xml/BaseEC2HandlerTest.java @@ -57,7 +57,7 @@ public class BaseEC2HandlerTest extends BaseHandlerTest { @SuppressWarnings("unused") @Singleton @Provides - @org.jclouds.aws.Region + @org.jclouds.location.Region String provideDefaultRegion() { return defaultRegion; } diff --git a/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeAvailabilityZonesResponseHandlerTest.java b/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeAvailabilityZonesResponseHandlerTest.java index a6be7e4fa3..fb116e6703 100644 --- a/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeAvailabilityZonesResponseHandlerTest.java +++ b/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeAvailabilityZonesResponseHandlerTest.java @@ -51,7 +51,7 @@ public class DescribeAvailabilityZonesResponseHandlerTest extends BaseHandlerTes @Override protected void configure() { - bindConstant().annotatedWith(org.jclouds.aws.Region.class).to("SHOULDNTSEETHISASXMLHASREGIONDATA"); + bindConstant().annotatedWith(org.jclouds.location.Region.class).to("SHOULDNTSEETHISASXMLHASREGIONDATA"); super.configure(); } diff --git a/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeImagesResponseHandlerTest.java b/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeImagesResponseHandlerTest.java index 5b2277c8c5..054e98ce2d 100644 --- a/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeImagesResponseHandlerTest.java +++ b/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeImagesResponseHandlerTest.java @@ -24,7 +24,6 @@ import static org.testng.Assert.assertEquals; import java.io.InputStream; import java.util.Set; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.compute.functions.ImageParserTest; import org.jclouds.aws.ec2.domain.Image; import org.jclouds.aws.ec2.domain.Image.Architecture; @@ -34,6 +33,7 @@ import org.jclouds.aws.ec2.domain.Image.ImageType; import org.jclouds.aws.ec2.domain.RootDeviceType; import org.jclouds.http.functions.ParseSax; import org.jclouds.http.functions.config.SaxParserModule; +import org.jclouds.location.Region; import org.testng.annotations.Test; import com.google.common.collect.ImmutableMap; diff --git a/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeInstancesResponseHandlerTest.java b/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeInstancesResponseHandlerTest.java index d72ff44389..3950e63e0d 100644 --- a/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeInstancesResponseHandlerTest.java +++ b/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeInstancesResponseHandlerTest.java @@ -25,7 +25,6 @@ import java.io.InputStream; import java.net.UnknownHostException; import java.util.Set; -import org.jclouds.aws.Region; import org.jclouds.aws.ec2.domain.Attachment; import org.jclouds.aws.ec2.domain.AvailabilityZone; import org.jclouds.aws.ec2.domain.InstanceState; @@ -38,6 +37,7 @@ import org.jclouds.aws.ec2.domain.RunningInstance.EbsBlockDevice; import org.jclouds.date.DateService; import org.jclouds.http.functions.ParseSax; import org.jclouds.http.functions.config.SaxParserModule; +import org.jclouds.location.Region; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; diff --git a/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeRegionsResponseHandlerTest.java b/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeRegionsResponseHandlerTest.java index b29418fff5..0e98c85b68 100644 --- a/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeRegionsResponseHandlerTest.java +++ b/aws/core/src/test/java/org/jclouds/aws/ec2/xml/DescribeRegionsResponseHandlerTest.java @@ -29,7 +29,7 @@ import org.jclouds.aws.domain.Region; import org.jclouds.http.functions.BaseHandlerTest; import org.jclouds.http.functions.ParseSax; import org.jclouds.http.functions.config.SaxParserModule; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; import org.jclouds.util.Strings2; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; diff --git a/aws/core/src/test/java/org/jclouds/aws/simpledb/config/SimpleDBRestClientModuleTest.java b/aws/core/src/test/java/org/jclouds/aws/simpledb/config/SimpleDBRestClientModuleTest.java index d844879ecf..b2a08202ba 100644 --- a/aws/core/src/test/java/org/jclouds/aws/simpledb/config/SimpleDBRestClientModuleTest.java +++ b/aws/core/src/test/java/org/jclouds/aws/simpledb/config/SimpleDBRestClientModuleTest.java @@ -61,7 +61,7 @@ public class SimpleDBRestClientModuleTest { @Test void testRegions() { Map regionMap = createInjector().getInstance( - new Key>(org.jclouds.aws.Region.class) { + new Key>(org.jclouds.location.Region.class) { }); assertEquals(regionMap, ImmutableMap. of(Region.US_EAST_1, URI .create("https://sdb.amazonaws.com"), Region.US_WEST_1, URI diff --git a/aws/core/src/test/java/org/jclouds/aws/sqs/config/SQSRestClientModuleTest.java b/aws/core/src/test/java/org/jclouds/aws/sqs/config/SQSRestClientModuleTest.java index 26711f681d..c6cce67893 100644 --- a/aws/core/src/test/java/org/jclouds/aws/sqs/config/SQSRestClientModuleTest.java +++ b/aws/core/src/test/java/org/jclouds/aws/sqs/config/SQSRestClientModuleTest.java @@ -61,7 +61,7 @@ public class SQSRestClientModuleTest { @Test void testRegions() { Map regionMap = createInjector().getInstance( - new Key>(org.jclouds.aws.Region.class) { + new Key>(org.jclouds.location.Region.class) { }); assertEquals(regionMap, ImmutableMap. of(Region.US_EAST_1, URI .create("https://sqs.us-east-1.amazonaws.com"), Region.US_WEST_1, URI diff --git a/aws/core/src/test/java/org/jclouds/aws/sqs/xml/ListQueuesResponseHandlerTest.java b/aws/core/src/test/java/org/jclouds/aws/sqs/xml/ListQueuesResponseHandlerTest.java index feec50e4cd..4edae58195 100644 --- a/aws/core/src/test/java/org/jclouds/aws/sqs/xml/ListQueuesResponseHandlerTest.java +++ b/aws/core/src/test/java/org/jclouds/aws/sqs/xml/ListQueuesResponseHandlerTest.java @@ -88,7 +88,7 @@ public class ListQueuesResponseHandlerTest extends PerformanceTest { @SuppressWarnings("unused") @Provides @Singleton - @org.jclouds.aws.Region + @org.jclouds.location.Region Map provideRegions() { return ImmutableMap. of(Region.EU_WEST_1, URI .create("https://eu-west-1.queue.amazonaws.com")); diff --git a/azure/src/main/java/org/jclouds/azure/storage/blob/blobstore/config/AzureBlobStoreContextModule.java b/azure/src/main/java/org/jclouds/azure/storage/blob/blobstore/config/AzureBlobStoreContextModule.java index da5e50669b..a8b362745d 100755 --- a/azure/src/main/java/org/jclouds/azure/storage/blob/blobstore/config/AzureBlobStoreContextModule.java +++ b/azure/src/main/java/org/jclouds/azure/storage/blob/blobstore/config/AzureBlobStoreContextModule.java @@ -41,7 +41,7 @@ import org.jclouds.collect.Memoized; import org.jclouds.domain.Location; import org.jclouds.domain.LocationScope; import org.jclouds.domain.internal.LocationImpl; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; diff --git a/blobstore/src/main/java/org/jclouds/blobstore/config/TransientBlobStoreContextModule.java b/blobstore/src/main/java/org/jclouds/blobstore/config/TransientBlobStoreContextModule.java index 7c76b8b6d1..8e42ca78c3 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/config/TransientBlobStoreContextModule.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/config/TransientBlobStoreContextModule.java @@ -38,7 +38,7 @@ import org.jclouds.collect.Memoized; import org.jclouds.domain.Location; import org.jclouds.domain.LocationScope; import org.jclouds.domain.internal.LocationImpl; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; diff --git a/compute/src/main/java/org/jclouds/compute/config/BindComputeSuppliersByClass.java b/compute/src/main/java/org/jclouds/compute/config/BindComputeSuppliersByClass.java index 8e9651f0c3..cb6e77c0db 100644 --- a/compute/src/main/java/org/jclouds/compute/config/BindComputeSuppliersByClass.java +++ b/compute/src/main/java/org/jclouds/compute/config/BindComputeSuppliersByClass.java @@ -21,16 +21,19 @@ package org.jclouds.compute.config; import java.util.Set; +import javax.inject.Inject; +import javax.inject.Singleton; + import org.jclouds.compute.domain.Hardware; import org.jclouds.compute.domain.Image; -import org.jclouds.compute.suppliers.DefaultLocationSupplier; -import org.jclouds.compute.suppliers.LocationSupplier; import org.jclouds.domain.Location; +import org.jclouds.location.suppliers.OnlyLocationOrFirstZone; import com.google.common.base.Supplier; import com.google.inject.AbstractModule; import com.google.inject.Scopes; import com.google.inject.TypeLiteral; + /** * @author Adrian Cole */ @@ -49,11 +52,27 @@ public abstract class BindComputeSuppliersByClass extends AbstractModule { protected abstract Class>> defineHardwareSupplier(); protected Class>> defineLocationSupplier() { - return LocationSupplier.class; + return SupplierOfLocationSet.class; + } + + @Singleton + static class SupplierOfLocationSet implements Supplier> { + private final Set locations; + + @Inject + SupplierOfLocationSet(Set locations) { + this.locations = locations; + } + + @Override + public Set get() { + return locations; + } + } protected Class> defineDefaultLocationSupplier() { - return DefaultLocationSupplier.class; + return OnlyLocationOrFirstZone.class; } protected void bindImageSupplier(Class>> clazz) { diff --git a/compute/src/main/java/org/jclouds/compute/config/ComputeServiceAdapterContextModule.java b/compute/src/main/java/org/jclouds/compute/config/ComputeServiceAdapterContextModule.java index 160b147d84..5b203278a4 100644 --- a/compute/src/main/java/org/jclouds/compute/config/ComputeServiceAdapterContextModule.java +++ b/compute/src/main/java/org/jclouds/compute/config/ComputeServiceAdapterContextModule.java @@ -40,8 +40,8 @@ import org.jclouds.compute.strategy.RebootNodeStrategy; import org.jclouds.compute.strategy.ResumeNodeStrategy; import org.jclouds.compute.strategy.SuspendNodeStrategy; import org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies; -import org.jclouds.compute.suppliers.DefaultLocationSupplier; import org.jclouds.domain.Location; +import org.jclouds.location.suppliers.OnlyLocationOrFirstZone; import com.google.common.base.Function; import com.google.common.base.Supplier; @@ -120,7 +120,7 @@ public class ComputeServiceAdapterContextModule extends BaseCo protected void bindDefaultLocation() { bind(new TypeLiteral>() { - }).to(DefaultLocationSupplier.class); + }).to(OnlyLocationOrFirstZone.class); } @Provides diff --git a/compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceAdapter.java b/compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceAdapter.java index 61766f6070..ce5db29dba 100644 --- a/compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceAdapter.java +++ b/compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceAdapter.java @@ -69,7 +69,7 @@ public class StubComputeServiceAdapter implements JCloudsNativeComputeServiceAda public StubComputeServiceAdapter(ConcurrentMap nodes, Supplier location, @Named("NODE_ID") Provider idProvider, @Named("PUBLIC_IP_PREFIX") String publicIpPrefix, @Named("PRIVATE_IP_PREFIX") String privateIpPrefix, @Named("PASSWORD_PREFIX") String passwordPrefix, - @org.jclouds.rest.annotations.Provider String providerName, Map> osToVersionMap) { + @org.jclouds.location.Provider String providerName, Map> osToVersionMap) { this.nodes = nodes; this.location = location; this.idProvider = idProvider; diff --git a/compute/src/main/java/org/jclouds/compute/suppliers/LocationSupplier.java b/compute/src/main/java/org/jclouds/compute/suppliers/LocationSupplier.java deleted file mode 100644 index 8336082741..0000000000 --- a/compute/src/main/java/org/jclouds/compute/suppliers/LocationSupplier.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed 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.compute.suppliers; - -import java.util.Set; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.domain.Location; - -import com.google.common.base.Supplier; - -/** - * - * @author Adrian Cole - * - * By default allows you to use a static set of locations bound to Set - */ -@Singleton -public class LocationSupplier implements Supplier> { - private final Set locations; - - @Inject - LocationSupplier(Set locations) { - this.locations = locations; - } - - @Override - public Set get() { - return locations; - } - -} \ No newline at end of file diff --git a/core/src/main/java/org/jclouds/rest/annotations/Provider.java b/core/src/main/java/org/jclouds/location/Provider.java similarity index 97% rename from core/src/main/java/org/jclouds/rest/annotations/Provider.java rename to core/src/main/java/org/jclouds/location/Provider.java index e5913d237b..c54ff1ad88 100644 --- a/core/src/main/java/org/jclouds/rest/annotations/Provider.java +++ b/core/src/main/java/org/jclouds/location/Provider.java @@ -17,7 +17,7 @@ * ==================================================================== */ -package org.jclouds.rest.annotations; +package org.jclouds.location; import static java.lang.annotation.ElementType.ANNOTATION_TYPE; import static java.lang.annotation.ElementType.FIELD; diff --git a/aws/core/src/main/java/org/jclouds/aws/Region.java b/core/src/main/java/org/jclouds/location/Region.java similarity index 94% rename from aws/core/src/main/java/org/jclouds/aws/Region.java rename to core/src/main/java/org/jclouds/location/Region.java index 2bf19494fb..f74cc747ce 100644 --- a/aws/core/src/main/java/org/jclouds/aws/Region.java +++ b/core/src/main/java/org/jclouds/location/Region.java @@ -17,7 +17,7 @@ * ==================================================================== */ -package org.jclouds.aws; +package org.jclouds.location; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -27,7 +27,7 @@ import java.lang.annotation.Target; import javax.inject.Qualifier; /** - * Related to a EC2 resource. + * Related to a Region-scoped resource. * * @author Adrian Cole * diff --git a/aws/core/src/main/java/org/jclouds/aws/functions/RegionToEndpoint.java b/core/src/main/java/org/jclouds/location/functions/RegionToEndpointOrProviderIfNull.java similarity index 65% rename from aws/core/src/main/java/org/jclouds/aws/functions/RegionToEndpoint.java rename to core/src/main/java/org/jclouds/location/functions/RegionToEndpointOrProviderIfNull.java index a9dc5b90d3..1a5bd6ca40 100644 --- a/aws/core/src/main/java/org/jclouds/aws/functions/RegionToEndpoint.java +++ b/core/src/main/java/org/jclouds/location/functions/RegionToEndpointOrProviderIfNull.java @@ -17,16 +17,19 @@ * ==================================================================== */ -package org.jclouds.aws.functions; +package org.jclouds.location.functions; + +import static com.google.common.base.Preconditions.checkNotNull; import java.net.URI; import java.util.Map; +import javax.annotation.Nullable; import javax.inject.Inject; import javax.inject.Singleton; -import org.jclouds.aws.Region; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; +import org.jclouds.location.Region; import com.google.common.base.Function; @@ -35,17 +38,18 @@ import com.google.common.base.Function; * @author Adrian Cole */ @Singleton -public class RegionToEndpoint implements Function { - private final Map regionToEndpoint; +public class RegionToEndpointOrProviderIfNull implements Function { private final URI defaultUri; + private final Map regionToEndpoint; @Inject - public RegionToEndpoint(@Region Map regionToEndpoint, @Provider URI defaultUri) { - this.regionToEndpoint = regionToEndpoint; - this.defaultUri = defaultUri; + public RegionToEndpointOrProviderIfNull(@Provider URI defaultUri, @Region Map regionToEndpoint) { + this.defaultUri = checkNotNull(defaultUri, "defaultUri"); + this.regionToEndpoint = checkNotNull(regionToEndpoint, "regionToEndpoint"); } - public URI apply(Object from) { + @Override + public URI apply(@Nullable Object from) { return from == null ? defaultUri : regionToEndpoint.get(from); } diff --git a/aws/core/src/main/java/org/jclouds/aws/suppliers/DefaultLocationSupplier.java b/core/src/main/java/org/jclouds/location/suppliers/FirstZoneOrRegionMatchingRegionId.java similarity index 64% rename from aws/core/src/main/java/org/jclouds/aws/suppliers/DefaultLocationSupplier.java rename to core/src/main/java/org/jclouds/location/suppliers/FirstZoneOrRegionMatchingRegionId.java index cec0d37e21..41cf9758a7 100644 --- a/aws/core/src/main/java/org/jclouds/aws/suppliers/DefaultLocationSupplier.java +++ b/core/src/main/java/org/jclouds/location/suppliers/FirstZoneOrRegionMatchingRegionId.java @@ -17,7 +17,9 @@ * ==================================================================== */ -package org.jclouds.aws.suppliers; +package org.jclouds.location.suppliers; + +import static com.google.common.base.Preconditions.checkNotNull; import java.util.NoSuchElementException; import java.util.Set; @@ -25,10 +27,10 @@ import java.util.Set; import javax.inject.Inject; import javax.inject.Singleton; -import org.jclouds.aws.Region; import org.jclouds.collect.Memoized; import org.jclouds.domain.Location; import org.jclouds.domain.LocationScope; +import org.jclouds.location.Region; import com.google.common.base.Predicate; import com.google.common.base.Supplier; @@ -38,38 +40,38 @@ import com.google.common.collect.Iterables; * @author Adrian Cole */ @Singleton -public class DefaultLocationSupplier implements Supplier { +public class FirstZoneOrRegionMatchingRegionId implements Supplier { private final String region; - private final Supplier> set; + private final Supplier> locationsSupplier; @Inject - DefaultLocationSupplier(@Region final String region, @Memoized Supplier> set) { - this.region = region; - this.set = set; + FirstZoneOrRegionMatchingRegionId(@Region String region, @Memoized Supplier> locationsSupplier) { + this.region = checkNotNull(region, "region"); + this.locationsSupplier = checkNotNull(locationsSupplier, "locationsSupplier"); } @Override @Singleton public Location get() { try { - Location toReturn = Iterables.find(set.get(), new Predicate() { + Location toReturn = Iterables.find(locationsSupplier.get(), new Predicate() { @Override public boolean apply(Location input) { switch (input.getScope()) { - case ZONE: - return input.getParent().getId().equals(region); - case REGION: - return input.getId().equals(region); - default: - return false; + case ZONE: + return input.getParent().getId().equals(region); + case REGION: + return input.getId().equals(region); + default: + return false; } } }); return toReturn.getScope() == LocationScope.REGION ? toReturn : toReturn.getParent(); } catch (NoSuchElementException e) { - throw new IllegalStateException(String.format("region: %s not found in %s", region, set)); + throw new IllegalStateException(String.format("region: %s not found in %s", region, locationsSupplier)); } } } \ No newline at end of file diff --git a/compute/src/main/java/org/jclouds/compute/suppliers/DefaultLocationSupplier.java b/core/src/main/java/org/jclouds/location/suppliers/OnlyLocationOrFirstZone.java similarity index 70% rename from compute/src/main/java/org/jclouds/compute/suppliers/DefaultLocationSupplier.java rename to core/src/main/java/org/jclouds/location/suppliers/OnlyLocationOrFirstZone.java index 974f230b9e..e626645909 100644 --- a/compute/src/main/java/org/jclouds/compute/suppliers/DefaultLocationSupplier.java +++ b/core/src/main/java/org/jclouds/location/suppliers/OnlyLocationOrFirstZone.java @@ -17,8 +17,9 @@ * ==================================================================== */ -package org.jclouds.compute.suppliers; +package org.jclouds.location.suppliers; +import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.collect.Iterables.find; import static com.google.common.collect.Iterables.getOnlyElement; @@ -40,19 +41,19 @@ import com.google.common.base.Supplier; * */ @Singleton -public class DefaultLocationSupplier implements Supplier { - private final Supplier> locations; +public class OnlyLocationOrFirstZone implements Supplier { + private final Supplier> locationsSupplier; @Inject - DefaultLocationSupplier(@Memoized Supplier> locations) { - this.locations = locations; + OnlyLocationOrFirstZone(@Memoized Supplier> locationsSupplier) { + this.locationsSupplier = checkNotNull(locationsSupplier, "locationsSupplierSupplier"); } @Override public Location get() { - if (locations.get().size() == 1) - return getOnlyElement(locations.get()); - return find(locations.get(), new Predicate() { + if (locationsSupplier.get().size() == 1) + return getOnlyElement(locationsSupplier.get()); + return find(locationsSupplier.get(), new Predicate() { @Override public boolean apply(Location input) { diff --git a/core/src/main/java/org/jclouds/rest/RestContextBuilder.java b/core/src/main/java/org/jclouds/rest/RestContextBuilder.java index 66a12f5ba9..3a8fe09510 100755 --- a/core/src/main/java/org/jclouds/rest/RestContextBuilder.java +++ b/core/src/main/java/org/jclouds/rest/RestContextBuilder.java @@ -41,13 +41,13 @@ import org.jclouds.concurrent.config.ExecutorServiceModule; import org.jclouds.http.RequiresHttp; import org.jclouds.http.config.ConfiguresHttpCommandExecutorService; import org.jclouds.http.config.JavaUrlHttpCommandExecutorServiceModule; +import org.jclouds.location.Provider; import org.jclouds.logging.config.LoggingModule; import org.jclouds.logging.jdk.config.JDKLoggingModule; import org.jclouds.rest.annotations.Api; import org.jclouds.rest.annotations.ApiVersion; import org.jclouds.rest.annotations.Credential; import org.jclouds.rest.annotations.Identity; -import org.jclouds.rest.annotations.Provider; import org.jclouds.rest.config.CredentialStoreModule; import org.jclouds.rest.config.RestClientModule; import org.jclouds.rest.config.RestModule; diff --git a/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java b/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java index 30b123cca6..c6f402bb71 100755 --- a/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java +++ b/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java @@ -403,7 +403,7 @@ public class RestAnnotationProcessor { } } catch (IllegalStateException e) { logger.trace("looking up default endpoint for %s", cma); - endpoint = injector.getInstance(Key.get(URI.class, org.jclouds.rest.annotations.Provider.class)); + endpoint = injector.getInstance(Key.get(URI.class, org.jclouds.location.Provider.class)); logger.trace("using default endpoint %s for %s", endpoint, cma); } GeneratedHttpRequest.Builder requestBuilder; diff --git a/core/src/main/java/org/jclouds/rest/internal/RestContextImpl.java b/core/src/main/java/org/jclouds/rest/internal/RestContextImpl.java index 99742c61fe..17f3d5c380 100644 --- a/core/src/main/java/org/jclouds/rest/internal/RestContextImpl.java +++ b/core/src/main/java/org/jclouds/rest/internal/RestContextImpl.java @@ -28,12 +28,12 @@ import javax.inject.Inject; import org.jclouds.domain.Credentials; import org.jclouds.lifecycle.Closer; +import org.jclouds.location.Provider; import org.jclouds.logging.Logger; import org.jclouds.rest.RestContext; import org.jclouds.rest.Utils; import org.jclouds.rest.annotations.ApiVersion; import org.jclouds.rest.annotations.Identity; -import org.jclouds.rest.annotations.Provider; import com.google.inject.Injector; import com.google.inject.Key; diff --git a/elasticstack/src/main/java/org/jclouds/elasticstack/compute/ElasticStackComputeServiceAdapter.java b/elasticstack/src/main/java/org/jclouds/elasticstack/compute/ElasticStackComputeServiceAdapter.java index 0439ef8d14..1cadb31ce2 100644 --- a/elasticstack/src/main/java/org/jclouds/elasticstack/compute/ElasticStackComputeServiceAdapter.java +++ b/elasticstack/src/main/java/org/jclouds/elasticstack/compute/ElasticStackComputeServiceAdapter.java @@ -41,8 +41,8 @@ import org.jclouds.elasticstack.domain.Server; import org.jclouds.elasticstack.domain.ServerInfo; import org.jclouds.elasticstack.domain.WellKnownImage; import org.jclouds.elasticstack.reference.ElasticStackConstants; +import org.jclouds.location.Provider; import org.jclouds.logging.Logger; -import org.jclouds.rest.annotations.Provider; import com.google.common.base.Function; import com.google.common.base.Predicate; diff --git a/elasticstack/src/main/java/org/jclouds/elasticstack/compute/config/ElasticStackComputeServiceContextModule.java b/elasticstack/src/main/java/org/jclouds/elasticstack/compute/config/ElasticStackComputeServiceContextModule.java index 8c702ede2c..49d8a9c565 100644 --- a/elasticstack/src/main/java/org/jclouds/elasticstack/compute/config/ElasticStackComputeServiceContextModule.java +++ b/elasticstack/src/main/java/org/jclouds/elasticstack/compute/config/ElasticStackComputeServiceContextModule.java @@ -34,7 +34,6 @@ import org.jclouds.compute.domain.Image; import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.domain.Volume; import org.jclouds.compute.reference.ComputeServiceConstants; -import org.jclouds.compute.suppliers.DefaultLocationSupplier; import org.jclouds.domain.Location; import org.jclouds.elasticstack.ElasticStackAsyncClient; import org.jclouds.elasticstack.ElasticStackClient; @@ -52,6 +51,7 @@ import org.jclouds.elasticstack.domain.WellKnownImage; import org.jclouds.elasticstack.predicates.DriveClaimed; import org.jclouds.functions.IdentityFunction; import org.jclouds.json.Json; +import org.jclouds.location.suppliers.OnlyLocationOrFirstZone; import org.jclouds.predicates.RetryablePredicate; import org.jclouds.util.Strings2; @@ -84,7 +84,7 @@ public class ElasticStackComputeServiceContextModule }).to(ElasticStackComputeServiceAdapter.class); bind(IdentityFunction.class).toInstance(IdentityFunction.INSTANCE); bind(new TypeLiteral>() { - }).to(DefaultLocationSupplier.class); + }).to(OnlyLocationOrFirstZone.class); bind(new TypeLiteral>() { }).to(ServerInfoToNodeMetadata.class); bind(new TypeLiteral>() { diff --git a/providers/cloudsigma/src/main/java/org/jclouds/cloudsigma/compute/CloudSigmaComputeServiceAdapter.java b/providers/cloudsigma/src/main/java/org/jclouds/cloudsigma/compute/CloudSigmaComputeServiceAdapter.java index c29111a60a..24f9d0d3af 100644 --- a/providers/cloudsigma/src/main/java/org/jclouds/cloudsigma/compute/CloudSigmaComputeServiceAdapter.java +++ b/providers/cloudsigma/src/main/java/org/jclouds/cloudsigma/compute/CloudSigmaComputeServiceAdapter.java @@ -58,8 +58,8 @@ import org.jclouds.domain.Credentials; import org.jclouds.domain.Location; import org.jclouds.domain.LocationScope; import org.jclouds.domain.internal.LocationImpl; +import org.jclouds.location.Provider; import org.jclouds.logging.Logger; -import org.jclouds.rest.annotations.Provider; import com.google.common.base.Function; import com.google.common.base.Predicate; diff --git a/providers/cloudsigma/src/main/java/org/jclouds/cloudsigma/compute/config/CloudSigmaComputeServiceContextModule.java b/providers/cloudsigma/src/main/java/org/jclouds/cloudsigma/compute/config/CloudSigmaComputeServiceContextModule.java index d0daf5e0e9..5a5ae83dc9 100644 --- a/providers/cloudsigma/src/main/java/org/jclouds/cloudsigma/compute/config/CloudSigmaComputeServiceContextModule.java +++ b/providers/cloudsigma/src/main/java/org/jclouds/cloudsigma/compute/config/CloudSigmaComputeServiceContextModule.java @@ -50,9 +50,9 @@ import org.jclouds.compute.domain.TemplateBuilder; import org.jclouds.compute.domain.Volume; import org.jclouds.compute.domain.os.OsFamilyVersion64Bit; import org.jclouds.compute.reference.ComputeServiceConstants; -import org.jclouds.compute.suppliers.DefaultLocationSupplier; import org.jclouds.domain.Location; import org.jclouds.functions.IdentityFunction; +import org.jclouds.location.suppliers.OnlyLocationOrFirstZone; import org.jclouds.predicates.RetryablePredicate; import com.google.common.base.Function; @@ -89,7 +89,7 @@ public class CloudSigmaComputeServiceContextModule }).to(CloudSigmaComputeServiceAdapter.class); bind(IdentityFunction.class).toInstance(IdentityFunction.INSTANCE); bind(new TypeLiteral>() { - }).to(DefaultLocationSupplier.class); + }).to(OnlyLocationOrFirstZone.class); bind(new TypeLiteral>() { }).to(ServerInfoToNodeMetadata.class); bind(new TypeLiteral>() { diff --git a/providers/gogrid/src/main/java/org/jclouds/gogrid/compute/suppliers/GoGridLocationSupplier.java b/providers/gogrid/src/main/java/org/jclouds/gogrid/compute/suppliers/GoGridLocationSupplier.java index ccd6d9f79a..3aadcc038a 100644 --- a/providers/gogrid/src/main/java/org/jclouds/gogrid/compute/suppliers/GoGridLocationSupplier.java +++ b/providers/gogrid/src/main/java/org/jclouds/gogrid/compute/suppliers/GoGridLocationSupplier.java @@ -32,8 +32,8 @@ import org.jclouds.domain.LocationScope; import org.jclouds.domain.internal.LocationImpl; import org.jclouds.gogrid.GoGridClient; import org.jclouds.gogrid.domain.Option; +import org.jclouds.location.Provider; import org.jclouds.logging.Logger; -import org.jclouds.rest.annotations.Provider; import com.google.common.base.Supplier; import com.google.common.collect.Sets; diff --git a/providers/slicehost/src/main/java/org/jclouds/slicehost/compute/config/SlicehostComputeServiceContextModule.java b/providers/slicehost/src/main/java/org/jclouds/slicehost/compute/config/SlicehostComputeServiceContextModule.java index ca21e49616..675aeadb44 100644 --- a/providers/slicehost/src/main/java/org/jclouds/slicehost/compute/config/SlicehostComputeServiceContextModule.java +++ b/providers/slicehost/src/main/java/org/jclouds/slicehost/compute/config/SlicehostComputeServiceContextModule.java @@ -28,7 +28,7 @@ import org.jclouds.compute.internal.BaseComputeService; import org.jclouds.domain.Location; import org.jclouds.domain.LocationScope; import org.jclouds.domain.internal.LocationImpl; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; import com.google.common.collect.ImmutableSet; import com.google.inject.Provides; diff --git a/rackspace/src/main/java/org/jclouds/rackspace/config/RackspaceLocationsSupplier.java b/rackspace/src/main/java/org/jclouds/rackspace/config/RackspaceLocationsSupplier.java index 533c053ea0..da213ee524 100644 --- a/rackspace/src/main/java/org/jclouds/rackspace/config/RackspaceLocationsSupplier.java +++ b/rackspace/src/main/java/org/jclouds/rackspace/config/RackspaceLocationsSupplier.java @@ -26,7 +26,7 @@ import javax.inject.Inject; import org.jclouds.domain.Location; import org.jclouds.domain.LocationScope; import org.jclouds.domain.internal.LocationImpl; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; import com.google.common.base.Supplier; import com.google.common.collect.ImmutableSet; diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudLocationSupplier.java b/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudLocationSupplier.java index 20193abff6..afb894ddff 100644 --- a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudLocationSupplier.java +++ b/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudLocationSupplier.java @@ -51,7 +51,7 @@ public class IBMDeveloperCloudLocationSupplier implements Supplier>() { }).to(ServerManagerComputeServiceAdapter.class); bind(new TypeLiteral>() { - }).to(DefaultLocationSupplier.class); + }).to(OnlyLocationOrFirstZone.class); bind(new TypeLiteral>() { }).to(ServerToNodeMetadata.class); bind(new TypeLiteral>() { diff --git a/vcloud/core/src/main/java/org/jclouds/vcloud/compute/suppliers/OrgAndVDCToLocationSupplier.java b/vcloud/core/src/main/java/org/jclouds/vcloud/compute/suppliers/OrgAndVDCToLocationSupplier.java index f25a87123b..f6d44f295b 100644 --- a/vcloud/core/src/main/java/org/jclouds/vcloud/compute/suppliers/OrgAndVDCToLocationSupplier.java +++ b/vcloud/core/src/main/java/org/jclouds/vcloud/compute/suppliers/OrgAndVDCToLocationSupplier.java @@ -44,7 +44,7 @@ public class OrgAndVDCToLocationSupplier implements Supplier> orgNameToVDCResource; @Inject - OrgAndVDCToLocationSupplier(@org.jclouds.rest.annotations.Provider String providerName, + OrgAndVDCToLocationSupplier(@org.jclouds.location.Provider String providerName, @org.jclouds.vcloud.endpoints.Org Supplier> orgNameToResource, Supplier> orgNameToVDCResource) { this.providerName = providerName; diff --git a/vcloud/core/src/test/java/org/jclouds/vcloud/VCloudLoginAsyncClientTest.java b/vcloud/core/src/test/java/org/jclouds/vcloud/VCloudLoginAsyncClientTest.java index 6e0f30df93..8cb8916f54 100755 --- a/vcloud/core/src/test/java/org/jclouds/vcloud/VCloudLoginAsyncClientTest.java +++ b/vcloud/core/src/test/java/org/jclouds/vcloud/VCloudLoginAsyncClientTest.java @@ -32,9 +32,9 @@ import javax.ws.rs.core.HttpHeaders; import org.jclouds.concurrent.Timeout; import org.jclouds.http.HttpRequest; import org.jclouds.http.filters.BasicAuthentication; +import org.jclouds.location.Provider; import org.jclouds.rest.RestClientTest; import org.jclouds.rest.RestContextSpec; -import org.jclouds.rest.annotations.Provider; import org.jclouds.rest.internal.RestAnnotationProcessor; import org.jclouds.vcloud.domain.VCloudSession; import org.jclouds.vcloud.endpoints.VCloudLogin;