nacx commented on this pull request.


> @@ -40,6 +51,16 @@
 @ConfiguresHttpApi
 public class DimensionDataCloudControlHttpApiModule extends 
HttpApiModule<DimensionDataCloudControlApi> {
 
+   @Override
+   protected void installLocations() {
+      super.installLocations();
+      
bind(RegionIdToURISupplier.class).to(RegionsToApiEndpoints.class).in(Scopes.SINGLETON);
+      
bind(ZoneIdsSupplier.class).to(ZoneIdsFromRegionIdToZoneIdsValues.class).in(Scopes.SINGLETON);
+      
bind(RegionIdsSupplier.class).to(RegionIdsFromRegionIdToURIKeySet.class).in(Scopes.SINGLETON);

Remove this binding, as it is the one causing the circular dependency.

The `RegionsToApiEndpoints` supplier that provides the endpoint for each region 
uses the `@Region Supplier<Set<String>>` (the `RegionIdsSupplier`). but with 
this binding it was being configured to get the regions from the `Map<String, 
Supplier<URI>>` generated by the `RegionIdToURISupplier`, thus the circular 
dependency.

The default implementation of the `RegionIdsSupplier` just populates the list 
of regions based on the value of the `jclouds.regions` property, which is what 
we want here, so removing the binding should leave all good and the regions 
properly configured.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/433#pullrequestreview-111891587

Reply via email to