Extract interfaces for Index and IndexCollection

Add another type argument for the key type, e.g. Change.Id. Keep
subinterfaces ChangeIndex and ChangeIndexCollection to avoid having to
pass around lots of type arguments; Schema<ChangeData> was bad enough,
adding one more would be tortuous.

Change-Id: Id54b985692ca41ffcaabe9793d8b9035cb1d4e82
This commit is contained in:
Dave Borowitz
2016-03-15 14:18:51 +01:00
parent e023347830
commit da0459d20c
30 changed files with 235 additions and 183 deletions

View File

@@ -45,6 +45,7 @@ import com.google.gerrit.server.index.FieldDef;
import com.google.gerrit.server.index.FieldDef.FillArgs;
import com.google.gerrit.server.index.FieldType;
import com.google.gerrit.server.index.IndexExecutor;
import com.google.gerrit.server.index.QueryOptions;
import com.google.gerrit.server.index.Schema;
import com.google.gerrit.server.index.Schema.Values;
import com.google.gerrit.server.index.change.ChangeField;
@@ -57,7 +58,6 @@ import com.google.gerrit.server.query.Predicate;
import com.google.gerrit.server.query.QueryParseException;
import com.google.gerrit.server.query.change.ChangeData;
import com.google.gerrit.server.query.change.ChangeDataSource;
import com.google.gerrit.server.query.change.QueryOptions;
import com.google.gwtorm.protobuf.ProtobufCodec;
import com.google.gwtorm.server.OrmException;
import com.google.gwtorm.server.ResultSet;

View File

@@ -17,10 +17,10 @@ package com.google.gerrit.lucene;
import com.google.gerrit.extensions.events.LifecycleListener;
import com.google.gerrit.lifecycle.LifecycleModule;
import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.index.IndexCollection;
import com.google.gerrit.server.index.IndexConfig;
import com.google.gerrit.server.index.IndexModule;
import com.google.gerrit.server.index.Schema;
import com.google.gerrit.server.index.change.ChangeIndexCollection;
import com.google.gerrit.server.index.change.ChangeSchemas;
import com.google.gerrit.server.query.change.ChangeData;
import com.google.inject.Inject;
@@ -88,11 +88,11 @@ public class LuceneIndexModule extends LifecycleModule {
@Singleton
static class SingleVersionListener implements LifecycleListener {
private final IndexCollection indexes;
private final ChangeIndexCollection indexes;
private final LuceneChangeIndex index;
@Inject
SingleVersionListener(IndexCollection indexes,
SingleVersionListener(ChangeIndexCollection indexes,
LuceneChangeIndex index) {
this.indexes = indexes;
this.index = index;

View File

@@ -22,8 +22,8 @@ import com.google.common.primitives.Ints;
import com.google.gerrit.extensions.events.LifecycleListener;
import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.index.IndexCollection;
import com.google.gerrit.server.index.Schema;
import com.google.gerrit.server.index.change.ChangeIndexCollection;
import com.google.gerrit.server.index.change.ChangeSchemas;
import com.google.gerrit.server.query.change.ChangeData;
import com.google.inject.Inject;
@@ -92,7 +92,7 @@ public class LuceneVersionManager implements LifecycleListener {
private final SitePaths sitePaths;
private final LuceneChangeIndex.Factory indexFactory;
private final IndexCollection indexes;
private final ChangeIndexCollection indexes;
private final OnlineReindexer.Factory reindexerFactory;
private final boolean onlineUpgrade;
private OnlineReindexer reindexer;
@@ -102,7 +102,7 @@ public class LuceneVersionManager implements LifecycleListener {
@GerritServerConfig Config cfg,
SitePaths sitePaths,
LuceneChangeIndex.Factory indexFactory,
IndexCollection indexes,
ChangeIndexCollection indexes,
OnlineReindexer.Factory reindexerFactory) {
this.sitePaths = sitePaths;
this.indexFactory = indexFactory;

View File

@@ -17,9 +17,10 @@ package com.google.gerrit.lucene;
import static com.google.common.base.Preconditions.checkNotNull;
import com.google.common.collect.Lists;
import com.google.gerrit.server.index.IndexCollection;
import com.google.gerrit.server.index.Index;
import com.google.gerrit.server.index.SiteIndexer;
import com.google.gerrit.server.index.change.ChangeIndex;
import com.google.gerrit.server.index.change.ChangeIndexCollection;
import com.google.gerrit.server.project.ProjectCache;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
@@ -39,7 +40,7 @@ public class OnlineReindexer {
OnlineReindexer create(int version);
}
private final IndexCollection indexes;
private final ChangeIndexCollection indexes;
private final SiteIndexer batchIndexer;
private final ProjectCache projectCache;
private final int version;
@@ -48,7 +49,7 @@ public class OnlineReindexer {
@Inject
OnlineReindexer(
IndexCollection indexes,
ChangeIndexCollection indexes,
SiteIndexer batchIndexer,
ProjectCache projectCache,
@Assisted int version) {
@@ -84,7 +85,7 @@ public class OnlineReindexer {
return version;
}
private static int version(ChangeIndex i) {
private static int version(Index<?, ?> i) {
return i.getSchema().getVersion();
}