This is an automated email from the ASF dual-hosted git repository.

rnewson pushed a commit to branch import-nouveau-reorg-wip
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 817a7e0a5bbdf7eafd667fc5c8682c55ad12371c
Author: Robert Newson <[email protected]>
AuthorDate: Mon Dec 19 13:42:15 2022 +0000

    wip
---
 .../apache/couchdb/nouveau/NouveauApplication.java |   3 -
 .../apache/couchdb/nouveau/core/IndexManager.java  |   6 +-
 .../apache/couchdb/nouveau/core/lucene/Index.java  |   5 +
 .../apache/couchdb/nouveau/core/lucene/Lucene.java |   9 +-
 .../couchdb/nouveau/core/lucene/package.html       |  14 ++
 .../v461/AnalyzerFactory.java}                     |   4 +-
 .../{Lucene461.java => v461/LuceneImpl.java}       |   8 +-
 .../v9/AnalyzerFactory.java}                       |   4 +-
 .../lucene/{Lucene9.java => v9/LuceneImpl.java}    |   8 +-
 .../couchdb/nouveau/core/AnalyzerFactoryTest.java  | 256 ---------------------
 .../couchdb/nouveau/core/IndexManagerTest.java     |  10 +-
 11 files changed, 50 insertions(+), 277 deletions(-)

diff --git 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java
 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java
index 2df8b3f8f..c0f509185 100644
--- 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java
+++ 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java
@@ -15,7 +15,6 @@ package org.apache.couchdb.nouveau;
 
 import java.util.concurrent.ExecutorService;
 
-import org.apache.couchdb.nouveau.core.V9AnalyzerFactory;
 import org.apache.couchdb.nouveau.core.DocumentFactory;
 import org.apache.couchdb.nouveau.core.FileAlreadyExistsExceptionMapper;
 import org.apache.couchdb.nouveau.core.FileNotFoundExceptionMapper;
@@ -48,7 +47,6 @@ public class NouveauApplication extends 
Application<NouveauApplicationConfigurat
     @Override
     public void run(NouveauApplicationConfiguration configuration, Environment 
environment) throws Exception {
         final DocumentFactory documentFactory = new DocumentFactory();
-        final V9AnalyzerFactory analyzerFactory = new V9AnalyzerFactory();
 
         final ExecutorService searchExecutor =
             environment.lifecycle().executorService("searches").build();
@@ -65,7 +63,6 @@ public class NouveauApplication extends 
Application<NouveauApplicationConfigurat
         indexManager.setMaxIndexesOpen(configuration.getMaxIndexesOpen());
         
indexManager.setCommitIntervalSeconds(configuration.getCommitIntervalSeconds());
         indexManager.setIdleSeconds(configuration.getIdleSeconds());
-        indexManager.setAnalyzerFactory(analyzerFactory);
         indexManager.setObjectMapper(objectMapper);
         indexManager.setSearcherFactory(searcherFactory);
         environment.lifecycle().manage(indexManager);
diff --git 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java
 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java
index 4975bcb5d..583d56189 100644
--- 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java
+++ 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java
@@ -34,6 +34,8 @@ import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Response.Status;
 
 import org.apache.couchdb.nouveau.api.IndexDefinition;
+import org.apache.couchdb.nouveau.core.lucene.v9.AnalyzerFactory;
+
 import v9.org.apache.lucene.analysis.Analyzer;
 import v9.org.apache.lucene.index.IndexWriter;
 import v9.org.apache.lucene.index.IndexWriterConfig;
@@ -234,7 +236,7 @@ public class IndexManager implements Managed {
     private Path rootDir;
 
     @NotNull
-    private V9AnalyzerFactory analyzerFactory;
+    private AnalyzerFactory analyzerFactory;
 
     @NotNull
     private ObjectMapper objectMapper;
@@ -339,7 +341,7 @@ public class IndexManager implements Managed {
         this.rootDir = rootDir;
     }
 
-    public void setAnalyzerFactory(final V9AnalyzerFactory analyzerFactory) {
+    public void setAnalyzerFactory(final AnalyzerFactory analyzerFactory) {
         this.analyzerFactory = analyzerFactory;
     }
 
diff --git 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Index.java
 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Index.java
new file mode 100644
index 000000000..728e61e98
--- /dev/null
+++ 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Index.java
@@ -0,0 +1,5 @@
+package org.apache.couchdb.nouveau.core.lucene;
+
+public abstract class Index {
+
+}
diff --git 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Lucene.java
 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Lucene.java
index 6c794c2ba..23c70f47c 100644
--- 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Lucene.java
+++ 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Lucene.java
@@ -17,12 +17,13 @@ import java.io.IOException;
 
 import org.apache.couchdb.nouveau.api.AnalyzeRequest;
 import org.apache.couchdb.nouveau.api.AnalyzeResponse;
+import org.apache.couchdb.nouveau.api.IndexDefinition;
 import org.apache.couchdb.nouveau.api.LuceneVersion;
 
 public abstract class Lucene {
 
-    private static final Lucene LUCENE_9 = new Lucene9();
-    private static final Lucene LUCENE_4_6_1 = new Lucene461();
+    private static final Lucene LUCENE_9 = new 
org.apache.couchdb.nouveau.core.lucene.v9.LuceneImpl();
+    private static final Lucene LUCENE_4_6_1 = new 
org.apache.couchdb.nouveau.core.lucene.v461.LuceneImpl();
 
     public final static AnalyzeResponse analyzeText(final AnalyzeRequest 
request) throws IOException {
         return forVersion(request.getLuceneVersion()).analyzeImpl(request);
@@ -30,6 +31,10 @@ public abstract class Lucene {
 
     public abstract AnalyzeResponse analyzeImpl(final AnalyzeRequest request) 
throws IOException;
 
+    public abstract void create(final String name, final IndexDefinition def) 
throws IOException;
+
+    public abstract Index open(final String name) throws IOException;
+
     private static Lucene forVersion(final LuceneVersion luceneVersion) {
         switch(luceneVersion) {
             case LUCENE_4_6_1:
diff --git 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/package.html
 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/package.html
new file mode 100644
index 000000000..d97bb2952
--- /dev/null
+++ 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/package.html
@@ -0,0 +1,14 @@
+<html>
+    <body>
+        <h1>Lucene package</h1>
+        <p>
+            In order to support multiple versions of Lucene concurrently, 
Nouveau introduces
+            a high-level facade interface, behind which is a concrete 
implementation that uses
+            classes from the respective Lucene versions.
+        </p>
+        <p>
+            Nouveau uses the maven shade plugin to relocate the supported 
versions of Lucene into
+            distinct packages, rather than do some ClassLoader magic.
+        </p>
+    </body>
+</html>
\ No newline at end of file
diff --git 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/V461AnalyzerFactory.java
 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v461/AnalyzerFactory.java
similarity index 98%
rename from 
java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/V461AnalyzerFactory.java
rename to 
java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v461/AnalyzerFactory.java
index 52ff55357..d318a6a6d 100644
--- 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/V461AnalyzerFactory.java
+++ 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v461/AnalyzerFactory.java
@@ -11,7 +11,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.couchdb.nouveau.core;
+package org.apache.couchdb.nouveau.core.lucene.v461;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -63,7 +63,7 @@ import v461.org.apache.lucene.analysis.th.ThaiAnalyzer;
 import v461.org.apache.lucene.analysis.tr.TurkishAnalyzer;
 import v461.org.apache.lucene.util.Version;
 
-public class V461AnalyzerFactory {
+class AnalyzerFactory {
 
     private static final Version VERSION = Version.LUCENE_46;
 
diff --git 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Lucene461.java
 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v461/LuceneImpl.java
similarity index 90%
rename from 
java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Lucene461.java
rename to 
java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v461/LuceneImpl.java
index 9cc6eea6f..7b55cbbd3 100644
--- 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Lucene461.java
+++ 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v461/LuceneImpl.java
@@ -11,7 +11,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.couchdb.nouveau.core.lucene;
+package org.apache.couchdb.nouveau.core.lucene.v461;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -22,15 +22,15 @@ import javax.ws.rs.core.Response.Status;
 
 import org.apache.couchdb.nouveau.api.AnalyzeRequest;
 import org.apache.couchdb.nouveau.api.AnalyzeResponse;
-import org.apache.couchdb.nouveau.core.V461AnalyzerFactory;
+import org.apache.couchdb.nouveau.core.lucene.Lucene;
 
 import v461.org.apache.lucene.analysis.Analyzer;
 import v461.org.apache.lucene.analysis.TokenStream;
 import v461.org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 
-class Lucene461 extends Lucene {
+public class LuceneImpl extends Lucene {
 
-    private final V461AnalyzerFactory analyzerFactory = new 
V461AnalyzerFactory();
+    private final AnalyzerFactory analyzerFactory = new AnalyzerFactory();
 
     @Override
     public AnalyzeResponse analyzeImpl(final AnalyzeRequest request) throws 
IOException {
diff --git 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/V9AnalyzerFactory.java
 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v9/AnalyzerFactory.java
similarity index 98%
rename from 
java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/V9AnalyzerFactory.java
rename to 
java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v9/AnalyzerFactory.java
index afa9d77d3..72177926f 100644
--- 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/V9AnalyzerFactory.java
+++ 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v9/AnalyzerFactory.java
@@ -11,7 +11,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.couchdb.nouveau.core;
+package org.apache.couchdb.nouveau.core.lucene.v9;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -62,7 +62,7 @@ import v9.org.apache.lucene.analysis.sv.SwedishAnalyzer;
 import v9.org.apache.lucene.analysis.th.ThaiAnalyzer;
 import v9.org.apache.lucene.analysis.tr.TurkishAnalyzer;
 
-public class V9AnalyzerFactory {
+class AnalyzerFactory {
 
     public Analyzer fromDefinition(final IndexDefinition indexDefinition) {
         final Analyzer defaultAnalyzer = 
newAnalyzer(indexDefinition.getDefaultAnalyzer());
diff --git 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Lucene9.java
 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v9/LuceneImpl.java
similarity index 90%
rename from 
java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Lucene9.java
rename to 
java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v9/LuceneImpl.java
index 15803bcb6..d79eb9e69 100644
--- 
a/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/Lucene9.java
+++ 
b/java/nouveau/server/src/main/java/org/apache/couchdb/nouveau/core/lucene/v9/LuceneImpl.java
@@ -11,7 +11,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.couchdb.nouveau.core.lucene;
+package org.apache.couchdb.nouveau.core.lucene.v9;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -22,15 +22,15 @@ import javax.ws.rs.core.Response.Status;
 
 import org.apache.couchdb.nouveau.api.AnalyzeRequest;
 import org.apache.couchdb.nouveau.api.AnalyzeResponse;
-import org.apache.couchdb.nouveau.core.V9AnalyzerFactory;
+import org.apache.couchdb.nouveau.core.lucene.Lucene;
 
 import v9.org.apache.lucene.analysis.Analyzer;
 import v9.org.apache.lucene.analysis.TokenStream;
 import v9.org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 
-class Lucene9 extends Lucene {
+public class LuceneImpl extends Lucene {
 
-    private final V9AnalyzerFactory analyzerFactory = new V9AnalyzerFactory();
+    private final AnalyzerFactory analyzerFactory = new AnalyzerFactory();
 
     @Override
     public AnalyzeResponse analyzeImpl(final AnalyzeRequest request) throws 
IOException {
diff --git 
a/java/nouveau/server/src/test/java/org/apache/couchdb/nouveau/core/AnalyzerFactoryTest.java
 
b/java/nouveau/server/src/test/java/org/apache/couchdb/nouveau/core/AnalyzerFactoryTest.java
deleted file mode 100644
index 8e769a045..000000000
--- 
a/java/nouveau/server/src/test/java/org/apache/couchdb/nouveau/core/AnalyzerFactoryTest.java
+++ /dev/null
@@ -1,256 +0,0 @@
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.couchdb.nouveau.core;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import v9.org.apache.lucene.analysis.Analyzer;
-import v9.org.apache.lucene.analysis.ar.ArabicAnalyzer;
-import v9.org.apache.lucene.analysis.bg.BulgarianAnalyzer;
-import v9.org.apache.lucene.analysis.ca.CatalanAnalyzer;
-import v9.org.apache.lucene.analysis.cjk.CJKAnalyzer;
-import v9.org.apache.lucene.analysis.classic.ClassicAnalyzer;
-import v9.org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer;
-import v9.org.apache.lucene.analysis.core.KeywordAnalyzer;
-import v9.org.apache.lucene.analysis.core.SimpleAnalyzer;
-import v9.org.apache.lucene.analysis.core.WhitespaceAnalyzer;
-import v9.org.apache.lucene.analysis.cz.CzechAnalyzer;
-import v9.org.apache.lucene.analysis.da.DanishAnalyzer;
-import v9.org.apache.lucene.analysis.de.GermanAnalyzer;
-import v9.org.apache.lucene.analysis.email.UAX29URLEmailAnalyzer;
-import v9.org.apache.lucene.analysis.en.EnglishAnalyzer;
-import v9.org.apache.lucene.analysis.es.SpanishAnalyzer;
-import v9.org.apache.lucene.analysis.eu.BasqueAnalyzer;
-import v9.org.apache.lucene.analysis.fa.PersianAnalyzer;
-import v9.org.apache.lucene.analysis.fi.FinnishAnalyzer;
-import v9.org.apache.lucene.analysis.fr.FrenchAnalyzer;
-import v9.org.apache.lucene.analysis.ga.IrishAnalyzer;
-import v9.org.apache.lucene.analysis.gl.GalicianAnalyzer;
-import v9.org.apache.lucene.analysis.hi.HindiAnalyzer;
-import v9.org.apache.lucene.analysis.hu.HungarianAnalyzer;
-import v9.org.apache.lucene.analysis.hy.ArmenianAnalyzer;
-import v9.org.apache.lucene.analysis.id.IndonesianAnalyzer;
-import v9.org.apache.lucene.analysis.it.ItalianAnalyzer;
-import v9.org.apache.lucene.analysis.ja.JapaneseAnalyzer;
-import v9.org.apache.lucene.analysis.lv.LatvianAnalyzer;
-import v9.org.apache.lucene.analysis.nl.DutchAnalyzer;
-import v9.org.apache.lucene.analysis.no.NorwegianAnalyzer;
-import v9.org.apache.lucene.analysis.pl.PolishAnalyzer;
-import v9.org.apache.lucene.analysis.pt.PortugueseAnalyzer;
-import v9.org.apache.lucene.analysis.ro.RomanianAnalyzer;
-import v9.org.apache.lucene.analysis.ru.RussianAnalyzer;
-import v9.org.apache.lucene.analysis.standard.StandardAnalyzer;
-import v9.org.apache.lucene.analysis.sv.SwedishAnalyzer;
-import v9.org.apache.lucene.analysis.th.ThaiAnalyzer;
-import v9.org.apache.lucene.analysis.tr.TurkishAnalyzer;
-import org.junit.jupiter.api.Test;
-
-public class AnalyzerFactoryTest {
-
-    @Test
-    public void testkeyword() throws Exception {
-        assertAnalyzer("keyword", KeywordAnalyzer.class);
-    }
-
-    @Test
-    public void testsimple() throws Exception {
-        assertAnalyzer("simple", SimpleAnalyzer.class);
-    }
-
-    @Test
-    public void testwhitespace() throws Exception {
-        assertAnalyzer("whitespace", WhitespaceAnalyzer.class);
-    }
-
-    @Test
-    public void testarabic() throws Exception {
-        assertAnalyzer("arabic", ArabicAnalyzer.class);
-    }
-
-    @Test
-    public void testbulgarian() throws Exception {
-        assertAnalyzer("bulgarian", BulgarianAnalyzer.class);
-    }
-
-    @Test
-    public void testcatalan() throws Exception {
-        assertAnalyzer("catalan", CatalanAnalyzer.class);
-    }
-
-    @Test
-    public void testcjk() throws Exception {
-        assertAnalyzer("cjk", CJKAnalyzer.class);
-    }
-
-    @Test
-    public void testchinese() throws Exception {
-        assertAnalyzer("chinese", SmartChineseAnalyzer.class);
-    }
-
-    @Test
-    public void testczech() throws Exception {
-        assertAnalyzer("czech", CzechAnalyzer.class);
-    }
-
-    @Test
-    public void testdanish() throws Exception {
-        assertAnalyzer("danish", DanishAnalyzer.class);
-    }
-
-    @Test
-    public void testgerman() throws Exception {
-        assertAnalyzer("german", GermanAnalyzer.class);
-    }
-
-    @Test
-    public void testenglish() throws Exception {
-        assertAnalyzer("english", EnglishAnalyzer.class);
-    }
-
-    @Test
-    public void testspanish() throws Exception {
-        assertAnalyzer("spanish", SpanishAnalyzer.class);
-    }
-
-    @Test
-    public void testbasque() throws Exception {
-        assertAnalyzer("basque", BasqueAnalyzer.class);
-    }
-
-    @Test
-    public void testpersian() throws Exception {
-        assertAnalyzer("persian", PersianAnalyzer.class);
-    }
-
-    @Test
-    public void testfinnish() throws Exception {
-        assertAnalyzer("finnish", FinnishAnalyzer.class);
-    }
-
-    @Test
-    public void testfrench() throws Exception {
-        assertAnalyzer("french", FrenchAnalyzer.class);
-    }
-
-    @Test
-    public void testirish() throws Exception {
-        assertAnalyzer("irish", IrishAnalyzer.class);
-    }
-
-    @Test
-    public void testgalician() throws Exception {
-        assertAnalyzer("galician", GalicianAnalyzer.class);
-    }
-
-    @Test
-    public void testhindi() throws Exception {
-        assertAnalyzer("hindi", HindiAnalyzer.class);
-    }
-
-    @Test
-    public void testhungarian() throws Exception {
-        assertAnalyzer("hungarian", HungarianAnalyzer.class);
-    }
-
-    @Test
-    public void testarmenian() throws Exception {
-        assertAnalyzer("armenian", ArmenianAnalyzer.class);
-    }
-
-    @Test
-    public void testindonesian() throws Exception {
-        assertAnalyzer("indonesian", IndonesianAnalyzer.class);
-    }
-
-    @Test
-    public void testitalian() throws Exception {
-        assertAnalyzer("italian", ItalianAnalyzer.class);
-    }
-
-    @Test
-    public void testjapanese() throws Exception {
-        assertAnalyzer("japanese", JapaneseAnalyzer.class);
-    }
-
-    @Test
-    public void testlatvian() throws Exception {
-        assertAnalyzer("latvian", LatvianAnalyzer.class);
-    }
-
-    @Test
-    public void testdutch() throws Exception {
-        assertAnalyzer("dutch", DutchAnalyzer.class);
-    }
-
-    @Test
-    public void testnorwegian() throws Exception {
-        assertAnalyzer("norwegian", NorwegianAnalyzer.class);
-    }
-
-    @Test
-    public void testpolish() throws Exception {
-        assertAnalyzer("polish", PolishAnalyzer.class);
-    }
-
-    @Test
-    public void testportugese() throws Exception {
-        assertAnalyzer("portugese", PortugueseAnalyzer.class);
-    }
-
-    @Test
-    public void testromanian() throws Exception {
-        assertAnalyzer("romanian", RomanianAnalyzer.class);
-    }
-
-    @Test
-    public void testrussian() throws Exception {
-        assertAnalyzer("russian", RussianAnalyzer.class);
-    }
-
-    @Test
-    public void testclassic() throws Exception {
-        assertAnalyzer("classic", ClassicAnalyzer.class);
-    }
-
-    @Test
-    public void teststandard() throws Exception {
-        assertAnalyzer("standard", StandardAnalyzer.class);
-    }
-
-    @Test
-    public void testemail() throws Exception {
-        assertAnalyzer("email", UAX29URLEmailAnalyzer.class);
-    }
-
-    @Test
-    public void testswedish() throws Exception {
-        assertAnalyzer("swedish", SwedishAnalyzer.class);
-    }
-
-    @Test
-    public void testthai() throws Exception {
-        assertAnalyzer("thai", ThaiAnalyzer.class);
-    }
-
-    @Test
-    public void testturkish() throws Exception {
-        assertAnalyzer("turkish", TurkishAnalyzer.class);
-    }
-
-    private void assertAnalyzer(final String name, final Class<? extends 
Analyzer> clazz) throws Exception {
-        final V9AnalyzerFactory factory = new V9AnalyzerFactory();
-        assertThat(factory.newAnalyzer(name)).isInstanceOf(clazz);
-    }
-
-}
diff --git 
a/java/nouveau/server/src/test/java/org/apache/couchdb/nouveau/core/IndexManagerTest.java
 
b/java/nouveau/server/src/test/java/org/apache/couchdb/nouveau/core/IndexManagerTest.java
index b5151d8a5..60d4c739c 100644
--- 
a/java/nouveau/server/src/test/java/org/apache/couchdb/nouveau/core/IndexManagerTest.java
+++ 
b/java/nouveau/server/src/test/java/org/apache/couchdb/nouveau/core/IndexManagerTest.java
@@ -16,6 +16,7 @@ package org.apache.couchdb.nouveau.core;
 import java.nio.file.Path;
 
 import org.apache.couchdb.nouveau.api.IndexDefinition;
+
 import static org.apache.couchdb.nouveau.api.LuceneVersion.*;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
@@ -38,7 +39,6 @@ public class IndexManagerTest {
     @BeforeEach
     public void setup() throws Exception {
         manager = new IndexManager();
-        manager.setAnalyzerFactory(new V9AnalyzerFactory());
         manager.setCommitIntervalSeconds(5);
         manager.setObjectMapper(new ObjectMapper());
         manager.setRootDir(tempDir);
@@ -51,9 +51,15 @@ public class IndexManagerTest {
     }
 
     @Test
-    public void testCreate() throws Exception {
+    public void testCreate9() throws Exception {
         final IndexDefinition def = new IndexDefinition(LUCENE_9, "standard", 
null);
         manager.create("foo", def);
     }
 
+    @Test
+    public void testCreate461() throws Exception {
+        final IndexDefinition def = new IndexDefinition(LUCENE_4_6_1, 
"standard", null);
+        manager.create("foo", def);
+    }
+
 }

Reply via email to