Add a class to store automerge configuration

Add a class to store automerge configuration.

Signed-off-by: Francois Visconte <f.visconte@criteo.com>
diff --git a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
index a3e2a7d..70c17bc 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
@@ -14,20 +14,38 @@
 
 package com.criteo.gerrit.plugins.automerge;
 
+import com.google.gerrit.common.ChangeListener;
 import com.google.gerrit.extensions.events.LifecycleListener;
+import com.google.gerrit.server.events.ChangeEvent;
+
+import org.eclipse.jgit.lib.Config;
+
+import com.google.gerrit.server.config.GerritServerConfig;
+import com.google.inject.Inject;
 
 /**
  * Starts at the same time as the gerrit server, and sets up our
  * change hook listener.
  */
-public class AutomaticMerger implements LifecycleListener {
+public class AutomaticMerger implements ChangeListener, LifecycleListener {
+
+  private final AutomergeConfig config;
+
+  @Inject
+  public AutomaticMerger(@GerritServerConfig Config gerritConfig){
+    this.config = new AutomergeConfig(gerritConfig);
+  }
 
   @Override
   public void start() {
-    // TODO(cupcicm): Add the change listener here.
   }
 
   @Override
   public void stop() {
   }
+
+  @Override
+  synchronized public void onChangeEvent(ChangeEvent event) {
+
+  }
 }
diff --git a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomergeConfig.java b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomergeConfig.java
new file mode 100644
index 0000000..c850bef
--- /dev/null
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomergeConfig.java
@@ -0,0 +1,46 @@
+package com.criteo.gerrit.plugins.automerge;
+
+import com.google.gerrit.server.config.GerritServerConfig;
+
+import org.eclipse.jgit.lib.Config;
+
+public class AutomergeConfig {
+
+  public final static String AUTOMERGE_SECTION = "automerge";
+  public final static String BOT_EMAIL_KEY = "botEmail";
+  private final static String defaultBotEmail = "qabot@criteo.com";
+  private final static String defaultTopicPrefix = "crossrepo/";
+  public final static String TOPIC_PREFIX_KEY = "topicPrefix";
+
+  public static final String getDefaultBotEmail() {
+    return defaultBotEmail;
+
+  }
+
+  public static final String getDefaultTopicPrefix() {
+    return defaultTopicPrefix;
+  }
+
+  private final Config config;
+
+
+  public AutomergeConfig(@GerritServerConfig final Config config) {
+    this.config = config;
+  }
+
+  public final String getBotEmail() {
+    final String botEmail = config.getString(AUTOMERGE_SECTION, null, BOT_EMAIL_KEY);
+    if (botEmail == null) {
+      return defaultBotEmail;
+    }
+    return botEmail;
+  }
+
+  public final String getTopicPrefix() {
+    final String topicPrefix = config.getString(AUTOMERGE_SECTION, null, TOPIC_PREFIX_KEY);
+    if (topicPrefix == null) {
+      return defaultTopicPrefix;
+    }
+    return topicPrefix;
+  }
+}
diff --git a/src/test/java/com/criteo/gerrit/plugins/automerge/AutomergeConfigTest.java b/src/test/java/com/criteo/gerrit/plugins/automerge/AutomergeConfigTest.java
new file mode 100644
index 0000000..1c23f4d
--- /dev/null
+++ b/src/test/java/com/criteo/gerrit/plugins/automerge/AutomergeConfigTest.java
@@ -0,0 +1,29 @@
+package com.criteo.gerrit.plugins.automerge;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.jgit.lib.Config;
+import org.junit.Test;
+
+public class AutomergeConfigTest {
+
+  @Test
+  public void testGetDefaultConfig() {
+    final Config conf = new Config();
+    final AutomergeConfig amconf = new AutomergeConfig(conf);
+
+    assertEquals(amconf.getBotEmail(), AutomergeConfig.getDefaultBotEmail());
+    assertEquals(amconf.getTopicPrefix(), AutomergeConfig.getDefaultTopicPrefix());
+  }
+
+  @Test
+  public void testGetValues() {
+    final Config conf = new Config();
+    conf.setString(AutomergeConfig.AUTOMERGE_SECTION, null, AutomergeConfig.BOT_EMAIL_KEY, "Foo@bar.com");
+    conf.setString(AutomergeConfig.AUTOMERGE_SECTION, null, AutomergeConfig.TOPIC_PREFIX_KEY, "fake_prefix");
+
+    final AutomergeConfig amconf = new AutomergeConfig(conf);
+    assertEquals(amconf.getBotEmail(), "Foo@bar.com");
+    assertEquals(amconf.getTopicPrefix(), "fake_prefix");
+  }
+}