Align EventHandler and CacheEvictionHandler with IndexHandler

Both classes were depending on a ScheduledThreadPoolExecutor but they
only need an Executor. This will allow to simplify the unit tests since
a DirectExecutor could be used instead of mocking
ScheduledThreadPoolExecutor.

Change-Id: Icf78b7e970d6839228465eb65ea4669e5d9ba04c
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionHandler.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionHandler.java
index 89229fc..2352605 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionHandler.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionHandler.java
@@ -21,17 +21,17 @@
 import com.ericsson.gerrit.plugins.highavailability.forwarder.Context;
 import com.ericsson.gerrit.plugins.highavailability.forwarder.Forwarder;
 
-import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.Executor;
 import java.util.regex.Pattern;
 
 class CacheEvictionHandler<K, V> implements CacheRemovalListener<K, V> {
-  private final ScheduledThreadPoolExecutor executor;
+  private final Executor executor;
   private final Forwarder forwarder;
   private final Pattern pattern;
 
   @Inject
   CacheEvictionHandler(Forwarder forwarder,
-      @CacheExecutor ScheduledThreadPoolExecutor executor) {
+      @CacheExecutor Executor executor) {
     this.forwarder = forwarder;
     this.executor = executor;
     pattern = Pattern.compile(
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheModule.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheModule.java
index 671264b..6bb245b 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheModule.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheModule.java
@@ -18,13 +18,13 @@
 import com.google.gerrit.lifecycle.LifecycleModule;
 import com.google.gerrit.server.cache.CacheRemovalListener;
 
-import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.Executor;
 
 public class CacheModule extends LifecycleModule {
 
   @Override
   protected void configure() {
-    bind(ScheduledThreadPoolExecutor.class)
+    bind(Executor.class)
         .annotatedWith(CacheExecutor.class)
         .toProvider(CacheExecutorProvider.class);
     listener().to(CacheExecutorProvider.class);
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/event/EventHandler.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/event/EventHandler.java
index c4716d3..0b671d1 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/event/EventHandler.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/event/EventHandler.java
@@ -23,16 +23,16 @@
 import com.ericsson.gerrit.plugins.highavailability.forwarder.Context;
 import com.ericsson.gerrit.plugins.highavailability.forwarder.Forwarder;
 
-import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.Executor;
 
 class EventHandler implements EventListener {
-  private final ScheduledThreadPoolExecutor executor;
+  private final Executor executor;
   private final Forwarder forwarder;
   private final String pluginName;
 
   @Inject
   EventHandler(Forwarder forwarder,
-      @EventExecutor ScheduledThreadPoolExecutor executor,
+      @EventExecutor Executor executor,
       @PluginName String pluginName) {
     this.forwarder = forwarder;
     this.executor = executor;
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/event/EventModule.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/event/EventModule.java
index 76b68f2..3fce10f 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/event/EventModule.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/event/EventModule.java
@@ -20,13 +20,13 @@
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.gerrit.lifecycle.LifecycleModule;
 
-import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.Executor;
 
 public class EventModule extends LifecycleModule {
 
   @Override
   protected void configure() {
-    bind(ScheduledThreadPoolExecutor.class)
+    bind(Executor.class)
         .annotatedWith(EventExecutor.class)
         .toProvider(EventExecutorProvider.class);
     listener().to(EventExecutorProvider.class);