Move routers configuration out of kafka domain

Routers should be isolated from the Kafka internals.
They should be moved to the multi-site engine and used across
broker implementations.

Feature: Issue 10829
Change-Id: Ie95931692d28d1fd4db6eeef1fd2d73dbe220b84
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java
index 15abfac..b201942 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/Module.java
@@ -34,6 +34,7 @@
 import com.googlesource.gerrit.plugins.multisite.cache.CacheModule;
 import com.googlesource.gerrit.plugins.multisite.event.EventModule;
 import com.googlesource.gerrit.plugins.multisite.forwarder.ForwarderModule;
+import com.googlesource.gerrit.plugins.multisite.forwarder.router.RouterModule;
 import com.googlesource.gerrit.plugins.multisite.index.IndexModule;
 import com.googlesource.gerrit.plugins.multisite.kafka.KafkaBrokerApi;
 import com.googlesource.gerrit.plugins.multisite.kafka.router.KafkaForwardedEventRouterModule;
@@ -124,6 +125,8 @@
     DynamicItem.bind(binder(), BrokerApi.class).to(KafkaBrokerApi.class).in(Scopes.SINGLETON);
     listener().to(KafkaBrokerApi.class);
 
+    install(new RouterModule());
+
     install(kafkaForwardedEventRouterModule);
     install(kafkaBrokerForwarderModule);
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/RouterModule.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/RouterModule.java
new file mode 100644
index 0000000..6f1572a
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/RouterModule.java
@@ -0,0 +1,27 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// 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 com.googlesource.gerrit.plugins.multisite.forwarder.router;
+
+import com.google.inject.AbstractModule;
+
+public class RouterModule extends AbstractModule {
+  @Override
+  protected void configure() {
+    bind(ForwardedIndexEventRouter.class).to(IndexEventRouter.class);
+    bind(ForwardedCacheEvictionEventRouter.class).to(CacheEvictionEventRouter.class);
+    bind(ForwardedProjectListUpdateRouter.class).to(ProjectListUpdateRouter.class);
+    bind(ForwardedStreamEventRouter.class).to(StreamEventRouter.class);
+  }
+}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/router/KafkaForwardedEventRouterModule.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/router/KafkaForwardedEventRouterModule.java
index a6422ae..2e05de8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/router/KafkaForwardedEventRouterModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/kafka/router/KafkaForwardedEventRouterModule.java
@@ -16,14 +16,6 @@
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Inject;
-import com.googlesource.gerrit.plugins.multisite.forwarder.router.CacheEvictionEventRouter;
-import com.googlesource.gerrit.plugins.multisite.forwarder.router.ForwardedCacheEvictionEventRouter;
-import com.googlesource.gerrit.plugins.multisite.forwarder.router.ForwardedIndexEventRouter;
-import com.googlesource.gerrit.plugins.multisite.forwarder.router.ForwardedProjectListUpdateRouter;
-import com.googlesource.gerrit.plugins.multisite.forwarder.router.ForwardedStreamEventRouter;
-import com.googlesource.gerrit.plugins.multisite.forwarder.router.IndexEventRouter;
-import com.googlesource.gerrit.plugins.multisite.forwarder.router.ProjectListUpdateRouter;
-import com.googlesource.gerrit.plugins.multisite.forwarder.router.StreamEventRouter;
 import com.googlesource.gerrit.plugins.multisite.kafka.KafkaConfiguration;
 import com.googlesource.gerrit.plugins.multisite.kafka.consumer.KafkaConsumerModule;
 
@@ -41,11 +33,6 @@
   @Override
   protected void configure() {
     if (kafkaConfig.kafkaSubscriber().enabled()) {
-      bind(ForwardedIndexEventRouter.class).to(IndexEventRouter.class);
-      bind(ForwardedCacheEvictionEventRouter.class).to(CacheEvictionEventRouter.class);
-      bind(ForwardedProjectListUpdateRouter.class).to(ProjectListUpdateRouter.class);
-      bind(ForwardedStreamEventRouter.class).to(StreamEventRouter.class);
-
       install(kafkaConsumerModule);
     }
   }