From fac1fa5930fad99cd48c8a0555ca8304efcb0780 Mon Sep 17 00:00:00 2001 From: Dave Borowitz Date: Thu, 10 Oct 2013 12:55:42 -0700 Subject: [PATCH] Teach InMemoryModule to work with custom index types Change-Id: Iac9b5b825878069783f98aaf77352ff4533a49b6 --- .../gerrit/testutil/InMemoryModule.java | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java b/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java index 39c28688b5..a4174161f2 100644 --- a/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java +++ b/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java @@ -17,6 +17,9 @@ package com.google.gerrit.testutil; import static com.google.common.base.Preconditions.checkState; 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.DisabledChangeHooks; 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.PerThreadRequestScope; 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.NoIndexModule; import com.google.gerrit.server.mail.SignedTokenEmailTokenVerifier; @@ -157,20 +159,26 @@ public class InMemoryModule extends FactoryModule { install(new SmtpEmailSender.Module()); install(new SignedTokenEmailTokenVerifier.Module()); - IndexType indexType = IndexModule.getIndexType(cfgInjector); - switch (indexType) { - case LUCENE: - int version = cfg.getInt("index", "lucene", "testVersion", -1); - checkState(ChangeSchemas.ALL.containsKey(version), - "invalid index.lucene.testVersion %s", version); - install(new LuceneIndexModule(version, 0, null)); - break; - case SQL: - install(new NoIndexModule()); - break; - default: - throw new ProvisionException( - "index type unsupported in tests: " + indexType); + String indexTypeStr = cfg.getString("index", null, "type"); + Optional indexType = Enums.getIfPresent(IndexType.class, + Objects.firstNonNull(indexTypeStr, IndexType.SQL.toString())); + if (indexType.isPresent()) { + switch (indexType.get()) { + case LUCENE: + int version = cfg.getInt("index", "lucene", "testVersion", -1); + checkState(ChangeSchemas.ALL.containsKey(version), + "invalid index.lucene.testVersion %s", version); + install(new LuceneIndexModule(version, 0, null)); + break; + case SQL: + install(new NoIndexModule()); + break; + default: + throw new ProvisionException( + "index type unsupported in tests: " + indexType); + } + } else { + // Custom index type, caller must provide their own module. } }