Move replication queue binding out of GerritGlobalModule

Handling replication by push over Git might not be the best strategy
for all installations. Allow this binding to be managed at the
daemon or webapp container level.

Change-Id: I090e03a7b04a04489df0b2a7d45f333b65d50b45
This commit is contained in:
Shawn O. Pearce
2011-10-18 12:42:40 -07:00
parent b92b81371b
commit f16431b7b4
4 changed files with 11 additions and 3 deletions

View File

@@ -34,6 +34,7 @@ import com.google.gerrit.server.config.CanonicalWebUrlModule;
import com.google.gerrit.server.config.CanonicalWebUrlProvider;
import com.google.gerrit.server.config.GerritGlobalModule;
import com.google.gerrit.server.config.MasterNodeStartup;
import com.google.gerrit.server.git.PushReplication;
import com.google.gerrit.server.git.WorkQueue;
import com.google.gerrit.server.mail.SmtpEmailSender;
import com.google.gerrit.server.schema.SchemaVersionCheck;
@@ -193,6 +194,7 @@ public class Daemon extends SiteProgram {
modules.add(new WorkQueue.Module());
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
modules.add(new SmtpEmailSender.Module());
modules.add(new PushReplication.Module());
if (httpd) {
modules.add(new CanonicalWebUrlModule() {
@Override

View File

@@ -42,9 +42,7 @@ import com.google.gerrit.server.git.ChangeMergeQueue;
import com.google.gerrit.server.git.GitModule;
import com.google.gerrit.server.git.MergeQueue;
import com.google.gerrit.server.git.PushAllProjectsOp;
import com.google.gerrit.server.git.PushReplication;
import com.google.gerrit.server.git.ReloadSubmitQueueOp;
import com.google.gerrit.server.git.ReplicationQueue;
import com.google.gerrit.server.git.SecureCredentialsProvider;
import com.google.gerrit.server.git.TagCache;
import com.google.gerrit.server.git.TransferConfig;
@@ -128,7 +126,6 @@ public class GerritGlobalModule extends FactoryModule {
bind(EventFactory.class);
bind(TransferConfig.class);
bind(ReplicationQueue.class).to(PushReplication.class).in(SINGLETON);
factory(SecureCredentialsProvider.Factory.class);
factory(PushAllProjectsOp.Factory.class);

View File

@@ -72,6 +72,13 @@ import java.util.concurrent.TimeUnit;
public class PushReplication implements ReplicationQueue {
static final Logger log = LoggerFactory.getLogger(PushReplication.class);
public static class Module extends AbstractModule {
@Override
protected void configure() {
bind(ReplicationQueue.class).to(PushReplication.class);
}
}
static {
// Install our own factory which always runs in batch mode, as we
// have no UI available for interactive prompting.

View File

@@ -26,6 +26,7 @@ import com.google.gerrit.server.config.GerritServerConfigModule;
import com.google.gerrit.server.config.MasterNodeStartup;
import com.google.gerrit.server.config.SitePath;
import com.google.gerrit.server.git.LocalDiskRepositoryManager;
import com.google.gerrit.server.git.PushReplication;
import com.google.gerrit.server.git.WorkQueue;
import com.google.gerrit.server.mail.SmtpEmailSender;
import com.google.gerrit.server.schema.DataSourceProvider;
@@ -183,6 +184,7 @@ public class WebAppInitializer extends GuiceServletContextListener {
modules.add(new WorkQueue.Module());
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
modules.add(new SmtpEmailSender.Module());
modules.add(new PushReplication.Module());
modules.add(new CanonicalWebUrlModule() {
@Override
protected Class<? extends Provider<String>> provider() {