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");
+ }
+}