Index: lucene/src/test/org/apache/lucene/util/IndexConvertor.java =================================================================== --- lucene/src/test/org/apache/lucene/util/IndexConvertor.java (revision 0) +++ lucene/src/test/org/apache/lucene/util/IndexConvertor.java (revision 0) @@ -0,0 +1,84 @@ +package org.apache.lucene.util; + +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import org.apache.lucene.analysis.MockAnalyzer; +import org.apache.lucene.index.IndexReader; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.index.IndexWriterConfig; +import org.apache.lucene.index.codecs.Codec; +import org.apache.lucene.index.codecs.CodecProvider; +import org.apache.lucene.index.codecs.preflexrw.PreFlexRWCodec; +import org.apache.lucene.store.Directory; +import org.apache.lucene.store.FSDirectory; + +public class IndexConvertor { + public static void main(String args[]) throws Exception { + if (args.length < 3) { + System.err.println("usage: IndexConvertor "); + System.exit(1); + } + convert(args[0], args[1], args[2].equals("serialize")); + } + + static void convert(String inputDir, String outputDir, boolean toPreFlex) throws Exception { + Directory input = FSDirectory.open(new File(inputDir)); + Directory output = FSDirectory.open(new File(outputDir)); + + IndexReader ir = IndexReader.open(input); + IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_40, new MockAnalyzer()); + + if (toPreFlex) { + CodecProvider cp = new CodecProvider(); + CodecProvider defaults = CodecProvider.getDefault(); + + for (String coreCodec : CodecProvider.CORE_CODECS) { + Codec c = defaults.lookup(coreCodec); + cp.register(c); + } + + // unregister PreFlex codec + final Codec preFlex = cp.lookup("PreFlex"); + + if (preFlex != null) { + cp.unregister(preFlex); + } + + // replace with the impostor + cp.register(new PreFlexRWCodec()); + cp.setDefaultFieldCodec("PreFlex"); + iwc.setCodecProvider(cp); + } + + IndexWriter iw = new IndexWriter(output, iwc); + List readers = new ArrayList(); + ReaderUtil.gatherSubReaders(readers, ir); + for (IndexReader sub : readers) { + iw.addIndexes(new IndexReader[] { sub }); + } + + ir.close(); + iw.close(); + input.close(); + output.close(); + } +} Property changes on: lucene\src\test\org\apache\lucene\util\IndexConvertor.java ___________________________________________________________________ Added: svn:eol-style + native