summaryrefslogtreecommitdiffstats
path: root/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/RoutingModule.java
diff options
context:
space:
mode:
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.java17
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)