Merge "Mark classes as Singleton when possible"
diff --git a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigServlet.java b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigServlet.java
index bedff8d..1cf6e88 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigServlet.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigServlet.java
@@ -26,9 +26,11 @@
 import com.google.gerrit.server.project.ProjectCache;
 import com.google.gerrit.server.project.ProjectResource;
 import com.google.inject.Inject;
+import com.google.inject.Singleton;
 import java.io.IOException;
 
 /** REST Endpoint to configure labels and our simple submit rules */
+@Singleton
 public class ConfigServlet
     implements RestReadView<ProjectResource>, RestModifyView<ProjectResource, SubmitConfig> {
   private final ProjectCache projectCache;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigTranslator.java b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigTranslator.java
index 9087bdd..6a8ce81 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigTranslator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigTranslator.java
@@ -23,12 +23,14 @@
 import com.google.gerrit.server.project.ProjectConfig;
 import com.google.gerrit.server.project.ProjectState;
 import com.google.inject.Inject;
+import com.google.inject.Singleton;
 import com.googlesource.gerrit.plugins.simplesubmitrules.SimpleSubmitRulesConfig;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Map;
 
 /** Codec class used to convert {@link SubmitConfig} from/to a Gerrit config */
+@Singleton
 public final class ConfigTranslator {
   private final PluginConfigFactory pluginConfigFactory;
   private final String pluginName;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/SubmitConfig.java b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/SubmitConfig.java
index 9c05ffc..0d7ae98 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/SubmitConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/SubmitConfig.java
@@ -16,11 +16,13 @@
 
 import com.google.common.base.MoreObjects;
 import com.google.gerrit.common.data.LabelFunction;
+import com.google.inject.Singleton;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 
+@Singleton
 public class SubmitConfig {
   public Map<String, SubmitConfig.LabelDefinition> labels = new HashMap<>();
   public SubmitConfig.CommentsRules comments = new SubmitConfig.CommentsRules();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/NoUnresolvedCommentsRule.java b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/NoUnresolvedCommentsRule.java
index bd6451c..47d74f2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/NoUnresolvedCommentsRule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/NoUnresolvedCommentsRule.java
@@ -26,6 +26,7 @@
 import com.google.gerrit.server.rules.SubmitRule;
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
+import com.google.inject.Singleton;
 import com.googlesource.gerrit.plugins.simplesubmitrules.SimpleSubmitRulesConfig;
 import java.util.Collection;
 import java.util.Collections;
@@ -33,6 +34,7 @@
 import org.slf4j.LoggerFactory;
 
 /** Simple rule: block submission when unresolved comments are present. */
+@Singleton
 public class NoUnresolvedCommentsRule implements SubmitRule {
   private static final Logger log = LoggerFactory.getLogger(NoUnresolvedCommentsRule.class);
   private static final SubmitRequirement REQUIREMENT =
diff --git a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/RequireNonAuthorApprovalRule.java b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/RequireNonAuthorApprovalRule.java
index 648c71b..b4df629 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/RequireNonAuthorApprovalRule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/RequireNonAuthorApprovalRule.java
@@ -28,6 +28,7 @@
 import com.google.gerrit.server.rules.SubmitRule;
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
+import com.google.inject.Singleton;
 import com.googlesource.gerrit.plugins.simplesubmitrules.SimpleSubmitRulesConfig;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -39,6 +40,7 @@
 import org.slf4j.LoggerFactory;
 
 /** Simple rule: require a non-author approval or block submission */
+@Singleton
 public class RequireNonAuthorApprovalRule implements SubmitRule {
   private static final Logger log = LoggerFactory.getLogger(RequireNonAuthorApprovalRule.class);
   private static final String E_UNABLE_TO_FETCH_CHANGE_OWNER = "Unable to fetch the change owner";