summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntonio Barone <syntonyze@gmail.com>2023-11-16 16:49:01 -0800
committerAntonio Barone <syntonyze@gmail.com>2023-11-17 15:15:10 -0800
commit63c798db62c3994a6609ba089c889a83fb33e35f (patch)
tree2dd6c94dffa578e9042ed49cab803206ec76e499
parent35381c01869adbd35d72b275006d75beb5f00a57 (diff)
Allow plugins to consume a singleton OnlineProjectsMigrationChecker
Plugins that are interested in getting injected an instance of OnlineProjectsMigrationChecker, should be getting the same singleton instance used by gerrit core. In order to achieve this, the OnlineProjectsMigrationChecker, similarly to other core Gerrit components, needs to be bound explicitly by Guice. Release-Notes: skip Forward-Compatible: checked Change-Id: I22b895f4352ba42e3c01c0b3ce4fe98dfc1c165c
-rw-r--r--java/com/google/gerrit/httpd/init/WebAppInitializer.java2
-rw-r--r--java/com/google/gerrit/pgm/util/SiteProgram.java2
-rw-r--r--java/com/google/gerrit/server/notedb/OnlineProjectsMigrationChecker.java11
3 files changed, 13 insertions, 2 deletions
diff --git a/java/com/google/gerrit/httpd/init/WebAppInitializer.java b/java/com/google/gerrit/httpd/init/WebAppInitializer.java
index 6deaf2d37e..b2d18f1d76 100644
--- a/java/com/google/gerrit/httpd/init/WebAppInitializer.java
+++ b/java/com/google/gerrit/httpd/init/WebAppInitializer.java
@@ -85,6 +85,7 @@ import com.google.gerrit.server.mail.receive.MailReceiver;
import com.google.gerrit.server.mail.send.SmtpEmailSender;
import com.google.gerrit.server.mime.MimeUtil2Module;
import com.google.gerrit.server.notedb.NotesMigration;
+import com.google.gerrit.server.notedb.OnlineProjectsMigrationChecker;
import com.google.gerrit.server.patch.DiffExecutorModule;
import com.google.gerrit.server.permissions.DefaultPermissionBackendModule;
import com.google.gerrit.server.plugins.PluginGuiceEnvironment;
@@ -309,6 +310,7 @@ public class WebAppInitializer extends GuiceServletContextListener implements Fi
}
modules.add(new DatabaseModule());
modules.add(new NotesMigration.Module());
+ modules.add(new OnlineProjectsMigrationChecker.Module());
modules.add(
new LifecycleModule() {
@Override
diff --git a/java/com/google/gerrit/pgm/util/SiteProgram.java b/java/com/google/gerrit/pgm/util/SiteProgram.java
index 6c44a2b043..702a96fe2b 100644
--- a/java/com/google/gerrit/pgm/util/SiteProgram.java
+++ b/java/com/google/gerrit/pgm/util/SiteProgram.java
@@ -31,6 +31,7 @@ import com.google.gerrit.server.config.SitePath;
import com.google.gerrit.server.git.GitRepositoryManagerModule;
import com.google.gerrit.server.git.SystemReaderInstaller;
import com.google.gerrit.server.notedb.NotesMigration;
+import com.google.gerrit.server.notedb.OnlineProjectsMigrationChecker;
import com.google.gerrit.server.schema.DataSourceModule;
import com.google.gerrit.server.schema.DataSourceProvider;
import com.google.gerrit.server.schema.DataSourceType;
@@ -199,6 +200,7 @@ public abstract class SiteProgram extends AbstractProgram {
modules.add(new SchemaModule());
modules.add(cfgInjector.getInstance(GitRepositoryManagerModule.class));
modules.add(new NotesMigration.Module());
+ modules.add(new OnlineProjectsMigrationChecker.Module());
try {
return Guice.createInjector(PRODUCTION, modules);
diff --git a/java/com/google/gerrit/server/notedb/OnlineProjectsMigrationChecker.java b/java/com/google/gerrit/server/notedb/OnlineProjectsMigrationChecker.java
index 04a6ece6da..0772e82ec9 100644
--- a/java/com/google/gerrit/server/notedb/OnlineProjectsMigrationChecker.java
+++ b/java/com/google/gerrit/server/notedb/OnlineProjectsMigrationChecker.java
@@ -23,18 +23,25 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableSet;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.config.GerritServerConfigProvider;
+import com.google.inject.AbstractModule;
import com.google.inject.Inject;
-import com.google.inject.Singleton;
+import com.google.inject.Scopes;
import java.util.Arrays;
import java.util.Set;
import org.eclipse.jgit.lib.Config;
-@Singleton
public class OnlineProjectsMigrationChecker {
private Set<String> migrationProjects;
private final GerritServerConfigProvider configProvider;
private final NotesMigration notesMigration;
+ public static class Module extends AbstractModule {
+ @Override
+ public void configure() {
+ bind(OnlineProjectsMigrationChecker.class).in(Scopes.SINGLETON);
+ }
+ }
+
@Inject
public OnlineProjectsMigrationChecker(
GerritServerConfigProvider configProvider, NotesMigration notesMigration) {