Implement connection monitoring feature without external class
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
index e081ca1..419e8d8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
@@ -18,14 +18,12 @@
 import com.google.gerrit.extensions.events.LifecycleListener;
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.inject.AbstractModule;
-import com.google.inject.assistedinject.FactoryModuleBuilder;
 
 class Module extends AbstractModule {
   @Override
   protected void configure() {
     bind(AMQPSession.class);
     bind(Properties.class);
-    bind(ConnectionMonitorTask.class);
     DynamicSet.bind(binder(), ChangeListener.class).to(RabbitMQManager.class);
     DynamicSet.bind(binder(), LifecycleListener.class).to(RabbitMQManager.class);
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/RabbitMQManager.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/RabbitMQManager.java
index 8121d4a..9096e00 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/RabbitMQManager.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/RabbitMQManager.java
@@ -10,6 +10,7 @@
 import org.slf4j.LoggerFactory;
 
 import java.util.Timer;
+import java.util.TimerTask;
 
 public class RabbitMQManager implements ChangeListener, LifecycleListener {
 
@@ -19,19 +20,24 @@
   private final AMQPSession session;
   private final Gson gson = new Gson();
   private final Timer monitorTimer = new Timer();
-  private final ConnectionMonitorTask monitorTask;
 
   @Inject
-  public RabbitMQManager(Properties properties, AMQPSession session, ConnectionMonitorTask monitorTask) {
+  public RabbitMQManager(Properties properties, AMQPSession session) {
     this.properties = properties;
     this.session = session;
-    this.monitorTask = monitorTask;
   }
 
   @Override
   public void start() {
     session.connect();
-    monitorTimer.schedule(monitorTask, MONITOR_FIRATTIME_DELAY, properties.getConnectionMonitorInterval());
+    monitorTimer.schedule(new TimerTask() {
+      @Override
+      public void run() {
+        if (!session.isOpen()) {
+          session.connect();
+        }
+      }
+    }, MONITOR_FIRATTIME_DELAY, properties.getConnectionMonitorInterval());
   }
 
   @Override