diff options
author | Antonio Barone <syntonyze@gmail.com> | 2023-11-16 16:49:01 -0800 |
---|---|---|
committer | Antonio Barone <syntonyze@gmail.com> | 2023-11-17 15:15:10 -0800 |
commit | 63c798db62c3994a6609ba089c889a83fb33e35f (patch) | |
tree | 2dd6c94dffa578e9042ed49cab803206ec76e499 | |
parent | 35381c01869adbd35d72b275006d75beb5f00a57 (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
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) { |