Use Guice multibindings to configure the aliases
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/f5a7a6f1 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/f5a7a6f1 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/f5a7a6f1 Branch: refs/heads/master Commit: f5a7a6f1d4bf9e8e13f3c88ea3218016a5f994f9 Parents: b02114b Author: Ignasi Barrera <[email protected]> Authored: Mon Mar 23 23:35:55 2015 +0100 Committer: Ignasi Barrera <[email protected]> Committed: Mon Mar 23 23:35:55 2015 +0100 ---------------------------------------------------------------------- apis/openstack-neutron/pom.xml | 5 ++++ .../neutron/v2/config/NeutronHttpApiModule.java | 25 ++++++++++---------- .../v2_0/config/NeutronHttpApiModule.java | 16 +++++-------- 3 files changed, 23 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/f5a7a6f1/apis/openstack-neutron/pom.xml ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/pom.xml b/apis/openstack-neutron/pom.xml index 42b3796..15e0225 100644 --- a/apis/openstack-neutron/pom.xml +++ b/apis/openstack-neutron/pom.xml @@ -71,6 +71,11 @@ <artifactId>jclouds-core</artifactId> <version>${project.parent.version}</version> </dependency> + <!-- for the extension namespaces --> + <dependency> + <groupId>com.google.inject.extensions</groupId> + <artifactId>guice-multibindings</artifactId> + </dependency> <dependency> <groupId>org.apache.jclouds</groupId> <artifactId>jclouds-core</artifactId> http://git-wip-us.apache.org/repos/asf/jclouds/blob/f5a7a6f1/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/config/NeutronHttpApiModule.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/config/NeutronHttpApiModule.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/config/NeutronHttpApiModule.java index e7b33c6..4252467 100644 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/config/NeutronHttpApiModule.java +++ b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/config/NeutronHttpApiModule.java @@ -16,6 +16,8 @@ */ package org.jclouds.openstack.neutron.v2.config; +import static org.jclouds.openstack.keystone.v2_0.config.KeystoneHttpApiModule.aliasBinder; + import java.net.URI; import java.util.Set; import java.util.concurrent.TimeUnit; @@ -41,9 +43,8 @@ import org.jclouds.rest.functions.ImplicitOptionalConverter; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.Multimap; import com.google.inject.Provides; +import com.google.inject.multibindings.MapBinder; /** * Configures the Neutron connection. @@ -57,19 +58,17 @@ public class NeutronHttpApiModule extends HttpApiModule<NeutronApi> { bind(DateAdapter.class).to(Iso8601DateAdapter.class); bind(ImplicitOptionalConverter.class).to(PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet.class); super.configure(); + bindAliases(); } - @Provides - @Singleton - public Multimap<URI, URI> aliases() { - return ImmutableMultimap.<URI, URI>builder() - .put(URI.create(ExtensionNamespaces.L3_ROUTER), - URI.create("http://docs.openstack.org/ext/neutron/router/api/v1.0")) - .put(URI.create(ExtensionNamespaces.SECURITY_GROUPS), - URI.create("http://docs.openstack.org/ext/securitygroups/api/v2.0")) - .put(URI.create(ExtensionNamespaces.LBAAS), - URI.create("http://docs.openstack.org/networking/ext/lbaas/api/v1.0")) - .build(); + private void bindAliases() { + MapBinder<URI, URI> aliases = aliasBinder(binder()); + aliases.addBinding(URI.create(ExtensionNamespaces.L3_ROUTER)).toInstance( + URI.create("http://docs.openstack.org/ext/neutron/router/api/v1.0")); + aliases.addBinding(URI.create(ExtensionNamespaces.SECURITY_GROUPS)).toInstance( + URI.create("http://docs.openstack.org/ext/securitygroups/api/v2.0")); + aliases.addBinding(URI.create(ExtensionNamespaces.LBAAS)).toInstance( + URI.create("http://docs.openstack.org/networking/ext/lbaas/api/v1.0")); } @Provides http://git-wip-us.apache.org/repos/asf/jclouds/blob/f5a7a6f1/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/config/NeutronHttpApiModule.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/config/NeutronHttpApiModule.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/config/NeutronHttpApiModule.java index fe3d74c..b46262e 100644 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/config/NeutronHttpApiModule.java +++ b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/config/NeutronHttpApiModule.java @@ -16,11 +16,14 @@ */ package org.jclouds.openstack.neutron.v2_0.config; -import java.net.URI; +import static org.jclouds.openstack.keystone.v2_0.config.KeystoneHttpApiModule.aliasBinder; + import java.util.Set; import java.util.concurrent.TimeUnit; + import javax.inject.Provider; import javax.inject.Singleton; + import org.jclouds.http.HttpErrorHandler; import org.jclouds.http.annotation.ClientError; import org.jclouds.http.annotation.Redirection; @@ -34,11 +37,10 @@ import org.jclouds.openstack.v2_0.functions.PresentWhenExtensionAnnotationNamesp import org.jclouds.rest.ConfiguresHttpApi; import org.jclouds.rest.config.HttpApiModule; import org.jclouds.rest.functions.ImplicitOptionalConverter; + import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.Multimap; import com.google.inject.Provides; /** @@ -52,17 +54,11 @@ public class NeutronHttpApiModule extends HttpApiModule<NeutronApi> { bind(DateAdapter.class).to(Iso8601DateAdapter.class); bind(ImplicitOptionalConverter.class).to(PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet.class); super.configure(); + aliasBinder(binder()); } @Provides @Singleton - public Multimap<URI, URI> aliases() { - return ImmutableMultimap.<URI, URI>builder() - .build(); - } - - @Provides - @Singleton public LoadingCache<String, Set<? extends Extension>> provideExtensionsByZone(final Provider<NeutronApi> quantumApi) { return CacheBuilder.newBuilder().expireAfterWrite(23, TimeUnit.HOURS) .build(new CacheLoader<String, Set<? extends Extension>>() {
