diff --git a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java index 73b1be379c..b9519a476f 100644 --- a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java +++ b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java @@ -134,6 +134,18 @@ public class LuceneChangeIndex implements ChangeIndex { LUCENE_VERSIONS = versions.build(); } + public static void setReady(SitePaths sitePaths, int version, boolean ready) + throws IOException { + try { + FileBasedConfig cfg = + LuceneVersionManager.loadGerritIndexConfig(sitePaths); + LuceneVersionManager.setReady(cfg, version, ready); + cfg.save(); + } catch (ConfigInvalidException e) { + throw new IOException(e); + } + } + static interface Factory { LuceneChangeIndex create(Schema schema, String base); } @@ -304,13 +316,7 @@ public class LuceneChangeIndex implements ChangeIndex { @Override public void markReady(boolean ready) throws IOException { - try { - FileBasedConfig cfg = LuceneVersionManager.loadGerritIndexConfig(sitePaths); - LuceneVersionManager.setReady(cfg, schema.getVersion(), ready); - cfg.save(); - } catch (ConfigInvalidException e) { - throw new IOException(e); - } + setReady(sitePaths, schema.getVersion(), ready); } private static final ImmutableSet FIELDS = diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitIndex.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitIndex.java index b4d3ae4475..b691f88583 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitIndex.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitIndex.java @@ -14,47 +14,15 @@ package com.google.gerrit.pgm.init; -import com.google.common.collect.Sets; import com.google.gerrit.lucene.LuceneChangeIndex; -import com.google.gerrit.lucene.LuceneIndexModule; import com.google.gerrit.pgm.util.ConsoleUI; -import com.google.gerrit.reviewdb.client.Change; -import com.google.gerrit.reviewdb.client.PatchSet; -import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.reviewdb.client.Project.NameKey; -import com.google.gerrit.reviewdb.server.ReviewDb; -import com.google.gerrit.server.config.FactoryModule; -import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.SitePaths; -import com.google.gerrit.server.config.TrackingFooter; -import com.google.gerrit.server.config.TrackingFooters; -import com.google.gerrit.server.git.GitRepositoryManager; -import com.google.gerrit.server.index.ChangeIndex; import com.google.gerrit.server.index.ChangeSchemas; import com.google.gerrit.server.index.IndexModule.IndexType; -import com.google.gerrit.server.patch.IntraLineDiff; -import com.google.gerrit.server.patch.IntraLineDiffKey; -import com.google.gerrit.server.patch.PatchList; -import com.google.gerrit.server.patch.PatchListCache; -import com.google.gerrit.server.patch.PatchListKey; -import com.google.gerrit.server.patch.PatchListNotAvailableException; -import com.google.gerrit.server.query.change.ChangeData; -import com.google.gwtorm.server.OrmException; -import com.google.gwtorm.server.SchemaFactory; -import com.google.inject.Guice; import com.google.inject.Inject; -import com.google.inject.Injector; -import com.google.inject.Provides; -import com.google.inject.ProvisionException; import com.google.inject.Singleton; -import org.eclipse.jgit.errors.RepositoryNotFoundException; -import org.eclipse.jgit.lib.Config; -import org.eclipse.jgit.lib.Repository; - import java.io.IOException; -import java.util.Collections; -import java.util.SortedSet; /** Initialize the {@code index} configuration section. */ @Singleton @@ -80,7 +48,8 @@ class InitIndex implements InitStep { IndexType type = index.select("Type", "type", IndexType.LUCENE); if (site.isNew && type == IndexType.LUCENE) { - createLuceneIndex(); + LuceneChangeIndex.setReady( + site, ChangeSchemas.getLatest().getVersion(), true); } else { ui.message("The index must be built before starting Gerrit:\n" + " java -jar gerrit.war reindex -d site_path\n"); @@ -88,96 +57,6 @@ class InitIndex implements InitStep { } } - private void createLuceneIndex() throws IOException { - Injector injector = Guice.createInjector( - new LuceneIndexModule(ChangeSchemas.getLatest().getVersion(), 0, null), - new MockIndexSupportModule()); - - ChangeIndex index = injector.getInstance(LuceneChangeIndex.class); - index.markReady(true); - index.close(); - } - - private class MockIndexSupportModule extends FactoryModule { - @Override - protected void configure() { - bind(SitePaths.class).toInstance(site); - factory(ChangeData.Factory.class); - } - - @Provides @GerritServerConfig Config getConfig() { - return new Config(); - } - - @Provides TrackingFooters newTrackingFooters() { - return new TrackingFooters(Collections. emptyList()); - } - - @Provides ReviewDb getReviewDb() { - throw new ProvisionException("database not initialized"); - } - - @Provides SchemaFactory getSchemaFactory() { - return new SchemaFactory() { - @Override - public ReviewDb open() throws OrmException { - return getReviewDb(); - } - }; - } - - @Provides GitRepositoryManager getGitRepositoryManager() { - return new GitRepositoryManager() { - @Override - public Repository openRepository(Project.NameKey name) - throws RepositoryNotFoundException{ - throw new RepositoryNotFoundException(name.get()); - } - - @Override - public Repository createRepository(Project.NameKey name) - throws RepositoryNotFoundException { - throw new RepositoryNotFoundException(name.get()); - } - - @Override - public SortedSet list() { - return Sets.newTreeSet(); - } - - @Override - public String getProjectDescription(Project.NameKey name) { - return null; - } - - @Override - public void setProjectDescription(NameKey name, String description) { - } - }; - } - - @Provides PatchListCache newPatchListCache() { - return new PatchListCache() { - @Override - public PatchList get(PatchListKey key) - throws PatchListNotAvailableException { - throw new PatchListNotAvailableException("new site, no changes"); - } - - @Override - public PatchList get(Change change, PatchSet patchSet) - throws PatchListNotAvailableException { - throw new PatchListNotAvailableException("new site, no changes"); - } - - @Override - public IntraLineDiff getIntraLineDiff(IntraLineDiffKey key) { - return null; - } - }; - } - } - @Override public void postRun() throws Exception { }