Teach InMemoryModule to work with custom index types
Change-Id: Iac9b5b825878069783f98aaf77352ff4533a49b6
This commit is contained in:
@@ -17,6 +17,9 @@ package com.google.gerrit.testutil;
|
|||||||
import static com.google.common.base.Preconditions.checkState;
|
import static com.google.common.base.Preconditions.checkState;
|
||||||
import static com.google.inject.Scopes.SINGLETON;
|
import static com.google.inject.Scopes.SINGLETON;
|
||||||
|
|
||||||
|
import com.google.common.base.Enums;
|
||||||
|
import com.google.common.base.Objects;
|
||||||
|
import com.google.common.base.Optional;
|
||||||
import com.google.gerrit.common.ChangeHooks;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.common.DisabledChangeHooks;
|
import com.google.gerrit.common.DisabledChangeHooks;
|
||||||
import com.google.gerrit.lucene.LuceneIndexModule;
|
import com.google.gerrit.lucene.LuceneIndexModule;
|
||||||
@@ -41,7 +44,6 @@ import com.google.gerrit.server.config.TrackingFootersProvider;
|
|||||||
import com.google.gerrit.server.git.GitRepositoryManager;
|
import com.google.gerrit.server.git.GitRepositoryManager;
|
||||||
import com.google.gerrit.server.git.PerThreadRequestScope;
|
import com.google.gerrit.server.git.PerThreadRequestScope;
|
||||||
import com.google.gerrit.server.index.ChangeSchemas;
|
import com.google.gerrit.server.index.ChangeSchemas;
|
||||||
import com.google.gerrit.server.index.IndexModule;
|
|
||||||
import com.google.gerrit.server.index.IndexModule.IndexType;
|
import com.google.gerrit.server.index.IndexModule.IndexType;
|
||||||
import com.google.gerrit.server.index.NoIndexModule;
|
import com.google.gerrit.server.index.NoIndexModule;
|
||||||
import com.google.gerrit.server.mail.SignedTokenEmailTokenVerifier;
|
import com.google.gerrit.server.mail.SignedTokenEmailTokenVerifier;
|
||||||
@@ -157,20 +159,26 @@ public class InMemoryModule extends FactoryModule {
|
|||||||
install(new SmtpEmailSender.Module());
|
install(new SmtpEmailSender.Module());
|
||||||
install(new SignedTokenEmailTokenVerifier.Module());
|
install(new SignedTokenEmailTokenVerifier.Module());
|
||||||
|
|
||||||
IndexType indexType = IndexModule.getIndexType(cfgInjector);
|
String indexTypeStr = cfg.getString("index", null, "type");
|
||||||
switch (indexType) {
|
Optional<IndexType> indexType = Enums.getIfPresent(IndexType.class,
|
||||||
case LUCENE:
|
Objects.firstNonNull(indexTypeStr, IndexType.SQL.toString()));
|
||||||
int version = cfg.getInt("index", "lucene", "testVersion", -1);
|
if (indexType.isPresent()) {
|
||||||
checkState(ChangeSchemas.ALL.containsKey(version),
|
switch (indexType.get()) {
|
||||||
"invalid index.lucene.testVersion %s", version);
|
case LUCENE:
|
||||||
install(new LuceneIndexModule(version, 0, null));
|
int version = cfg.getInt("index", "lucene", "testVersion", -1);
|
||||||
break;
|
checkState(ChangeSchemas.ALL.containsKey(version),
|
||||||
case SQL:
|
"invalid index.lucene.testVersion %s", version);
|
||||||
install(new NoIndexModule());
|
install(new LuceneIndexModule(version, 0, null));
|
||||||
break;
|
break;
|
||||||
default:
|
case SQL:
|
||||||
throw new ProvisionException(
|
install(new NoIndexModule());
|
||||||
"index type unsupported in tests: " + indexType);
|
break;
|
||||||
|
default:
|
||||||
|
throw new ProvisionException(
|
||||||
|
"index type unsupported in tests: " + indexType);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Custom index type, caller must provide their own module.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user