diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java index e037e59080..d7f7df63ed 100644 --- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java +++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java @@ -64,11 +64,11 @@ public class ElasticIndexModule extends LifecycleModule { install(new IndexModule(threads)); if (singleVersions == null) { + bind(AbstractVersionManager.class).to(ElasticVersionManager.class); listener().to(ElasticVersionManager.class); } else { install(new SingleVersionModule(singleVersions)); } - bind(AbstractVersionManager.class).to(ElasticVersionManager.class); } @Provides diff --git a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneIndexModule.java b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneIndexModule.java index 9a7aadbfb3..5e857908cd 100644 --- a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneIndexModule.java +++ b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneIndexModule.java @@ -78,7 +78,6 @@ public class LuceneIndexModule extends LifecycleModule { } else { install(new SingleVersionModule(singleVersions)); } - bind(AbstractVersionManager.class).to(LuceneVersionManager.class); } @Provides @@ -92,6 +91,7 @@ public class LuceneIndexModule extends LifecycleModule { private static class MultiVersionModule extends LifecycleModule { @Override public void configure() { + bind(AbstractVersionManager.class).to(LuceneVersionManager.class); listener().to(LuceneVersionManager.class); } } diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java index e85adcf561..bb1ceeeca3 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java @@ -487,7 +487,7 @@ public class Daemon extends SiteProgram { sysInjector.getInstance(DownloadConfig.class), sysInjector.getInstance(LfsPluginAuthCommand.Module.class))); if (!slave) { - modules.add(new IndexCommandsModule()); + modules.add(new IndexCommandsModule(sysInjector)); } return sysInjector.createChildInjector(modules); } diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexCommandsModule.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexCommandsModule.java index d00468ade7..5d1f9556ca 100644 --- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexCommandsModule.java +++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexCommandsModule.java @@ -14,20 +14,31 @@ package com.google.gerrit.sshd.commands; +import com.google.gerrit.server.index.AbstractVersionManager; import com.google.gerrit.sshd.CommandModule; import com.google.gerrit.sshd.CommandName; import com.google.gerrit.sshd.Commands; import com.google.gerrit.sshd.DispatchCommandProvider; +import com.google.inject.Injector; +import com.google.inject.Key; public class IndexCommandsModule extends CommandModule { + private final Injector injector; + + public IndexCommandsModule(Injector injector) { + this.injector = injector; + } + @Override protected void configure() { CommandName gerrit = Commands.named("gerrit"); CommandName index = Commands.named(gerrit, "index"); command(index).toProvider(new DispatchCommandProvider(index)); - command(index, IndexActivateCommand.class); - command(index, IndexStartCommand.class); + if (injector.getExistingBinding(Key.get(AbstractVersionManager.class)) != null) { + command(index, IndexActivateCommand.class); + command(index, IndexStartCommand.class); + } command(index, IndexChangesCommand.class); command(index, IndexProjectCommand.class); } diff --git a/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java b/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java index 2450ae7340..eeeb002856 100644 --- a/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java +++ b/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java @@ -391,7 +391,7 @@ public class WebAppInitializer extends GuiceServletContextListener implements Fi false, sysInjector.getInstance(DownloadConfig.class), sysInjector.getInstance(LfsPluginAuthCommand.Module.class))); - modules.add(new IndexCommandsModule()); + modules.add(new IndexCommandsModule(sysInjector)); return sysInjector.createChildInjector(modules); }