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";