diff options
Diffstat (limited to 'routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/RoutingModule.java')
-rw-r--r-- | routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/RoutingModule.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/RoutingModule.java b/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/RoutingModule.java index 8a109aece..6badcab29 100644 --- a/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/RoutingModule.java +++ b/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/RoutingModule.java @@ -16,15 +16,21 @@ package io.fd.hc2vpp.routing; +import com.google.common.annotations.VisibleForTesting; import com.google.inject.AbstractModule; +import com.google.inject.Provider; +import com.google.inject.Singleton; import com.google.inject.multibindings.Multibinder; import com.google.inject.name.Names; import io.fd.hc2vpp.common.translate.util.MultiNamingContext; import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.hc2vpp.routing.read.RoutingReaderFactory; +import io.fd.hc2vpp.routing.services.FibTableService; +import io.fd.hc2vpp.routing.services.FibTableServiceProvider; import io.fd.hc2vpp.routing.write.RoutingWriterFactory; import io.fd.honeycomb.translate.read.ReaderFactory; import io.fd.honeycomb.translate.write.WriterFactory; +import javax.annotation.Nonnull; import net.jmob.guice.conf.core.ConfigurationModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,12 +41,23 @@ import org.slf4j.LoggerFactory; public class RoutingModule extends AbstractModule { private static final Logger LOG = LoggerFactory.getLogger(RoutingModule.class); + private final Class<? extends Provider<FibTableService>> fibTableServiceProvider; + + public RoutingModule() { + this(FibTableServiceProvider.class); + } + + @VisibleForTesting + protected RoutingModule(@Nonnull final Class<? extends Provider<FibTableService>> fibTableServiceProvider) { + this.fibTableServiceProvider = fibTableServiceProvider; + } @Override protected void configure() { LOG.info("Starting initialization"); // requests injection of properties install(ConfigurationModule.create()); + bind(FibTableService.class).toProvider(fibTableServiceProvider).in(Singleton.class); requestInjection(RoutingConfiguration.class); bind(NamingContext.class) |