Add ConnectionMonitorTask class
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/ConnectionMonitorTask.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/ConnectionMonitorTask.java
new file mode 100644
index 0000000..c44cf18
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/ConnectionMonitorTask.java
@@ -0,0 +1,24 @@
+package com.googlesource.gerrit.plugins.rabbitmq;
+
+import com.google.inject.Inject;
+
+import java.util.TimerTask;
+
+public class ConnectionMonitorTask extends TimerTask {
+
+ private final AMQPSession.Factory sessionFactory;
+
+ @Inject
+ public ConnectionMonitorTask(AMQPSession.Factory sessionFactory) {
+ this.sessionFactory = sessionFactory;
+ }
+
+ @Override
+ public void run() {
+ AMQPSession session = sessionFactory.create();
+ if (!session.isOpen()) {
+ session.connect();
+ }
+ }
+
+}
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 4067d5c..e9ec6a6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
@@ -24,6 +24,7 @@
@Override
protected void configure() {
bind(AMQPSession.class);
+ bind(ConnectionMonitorTask.class);
DynamicSet.bind(binder(), ChangeListener.class).to(PluginChangeListener.class);
DynamicSet.bind(binder(), LifecycleListener.class).to(PluginChangeListener.class);
install(new FactoryModuleBuilder().build(AMQPSession.Factory.class));