You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2011/11/04 16:43:43 UTC
svn commit: r1197603 [4/5] - in /lucene/dev/trunk: ./ dev-tools/eclipse/
dev-tools/idea/.idea/ dev-tools/idea/lucene/ dev-tools/idea/lucene/contrib/
dev-tools/idea/lucene/contrib/misc/ lucene/ lucene/contrib/
lucene/contrib/memory/src/test/org/apache/l...
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/TestExternalCodecs.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/TestExternalCodecs.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/TestExternalCodecs.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/TestExternalCodecs.java Fri Nov 4 15:43:35 2011
@@ -17,502 +17,40 @@ package org.apache.lucene;
* limitations under the License.
*/
-import org.apache.lucene.util.*;
-import org.apache.lucene.util.Bits;
-import org.apache.lucene.index.*;
-import org.apache.lucene.document.*;
-import org.apache.lucene.search.*;
+import java.io.*;
+import java.util.*;
+
import org.apache.lucene.analysis.*;
+import org.apache.lucene.document.*;
+import org.apache.lucene.index.*;
import org.apache.lucene.index.codecs.*;
+import org.apache.lucene.index.codecs.lucene40.Lucene40Codec;
+import org.apache.lucene.index.codecs.perfield.PerFieldPostingsFormat;
+import org.apache.lucene.search.*;
import org.apache.lucene.store.*;
-import java.util.*;
-import java.io.*;
+import org.apache.lucene.util.*;
+import org.apache.lucene.util.Bits;
/* Intentionally outside of oal.index to verify fully
external codecs work fine */
public class TestExternalCodecs extends LuceneTestCase {
- // For fun, test that we can override how terms are
- // sorted, and basic things still work -- this comparator
- // sorts in reversed unicode code point order:
- private static final Comparator<BytesRef> reverseUnicodeComparator = new Comparator<BytesRef>() {
- public int compare(BytesRef t1, BytesRef t2) {
- byte[] b1 = t1.bytes;
- byte[] b2 = t2.bytes;
- int b1Stop;
- int b1Upto = t1.offset;
- int b2Upto = t2.offset;
- if (t1.length < t2.length) {
- b1Stop = t1.offset + t1.length;
- } else {
- b1Stop = t1.offset + t2.length;
- }
- while(b1Upto < b1Stop) {
- final int bb1 = b1[b1Upto++] & 0xff;
- final int bb2 = b2[b2Upto++] & 0xff;
- if (bb1 != bb2) {
- //System.out.println("cmp 1=" + t1 + " 2=" + t2 + " return " + (bb2-bb1));
- return bb2 - bb1;
- }
- }
-
- // One is prefix of another, or they are equal
- return t2.length-t1.length;
- }
-
- @Override
- public boolean equals(Object other) {
- return this == other;
- }
- };
-
- // TODO
- // - good improvement would be to write through to disk,
- // and then load into ram from disk
- public static class RAMOnlyCodec extends Codec {
+ private static final class CustomPerFieldCodec extends Lucene40Codec {
- public RAMOnlyCodec() {
- super("RamOnly");
- }
- // Postings state:
- static class RAMPostings extends FieldsProducer {
- final Map<String,RAMField> fieldToTerms = new TreeMap<String,RAMField>();
-
- @Override
- public Terms terms(String field) {
- return fieldToTerms.get(field);
- }
-
- @Override
- public FieldsEnum iterator() {
- return new RAMFieldsEnum(this);
- }
-
- @Override
- public void close() {
- }
- }
-
- static class RAMField extends Terms {
- final String field;
- final SortedMap<String,RAMTerm> termToDocs = new TreeMap<String,RAMTerm>();
- long sumTotalTermFreq;
- long sumDocFreq;
- int docCount;
-
- RAMField(String field) {
- this.field = field;
- }
-
- @Override
- public long getUniqueTermCount() {
- return termToDocs.size();
- }
-
- @Override
- public long getSumTotalTermFreq() {
- return sumTotalTermFreq;
- }
-
- @Override
- public long getSumDocFreq() throws IOException {
- return sumDocFreq;
- }
-
- @Override
- public int getDocCount() throws IOException {
- return docCount;
- }
-
- @Override
- public TermsEnum iterator() {
- return new RAMTermsEnum(RAMOnlyCodec.RAMField.this);
- }
-
- @Override
- public Comparator<BytesRef> getComparator() {
- return reverseUnicodeComparator;
- }
- }
-
- static class RAMTerm {
- final String term;
- long totalTermFreq;
- final List<RAMDoc> docs = new ArrayList<RAMDoc>();
- public RAMTerm(String term) {
- this.term = term;
- }
- }
-
- static class RAMDoc {
- final int docID;
- final int[] positions;
- byte[][] payloads;
-
- public RAMDoc(int docID, int freq) {
- this.docID = docID;
- positions = new int[freq];
- }
- }
-
- // Classes for writing to the postings state
- private static class RAMFieldsConsumer extends FieldsConsumer {
-
- private final RAMPostings postings;
- private final RAMTermsConsumer termsConsumer = new RAMTermsConsumer();
-
- public RAMFieldsConsumer(RAMPostings postings) {
- this.postings = postings;
- }
-
- @Override
- public TermsConsumer addField(FieldInfo field) {
- RAMField ramField = new RAMField(field.name);
- postings.fieldToTerms.put(field.name, ramField);
- termsConsumer.reset(ramField);
- return termsConsumer;
- }
-
- @Override
- public void close() {
- // TODO: finalize stuff
- }
- }
-
- private static class RAMTermsConsumer extends TermsConsumer {
- private RAMField field;
- private final RAMPostingsWriterImpl postingsWriter = new RAMPostingsWriterImpl();
- RAMTerm current;
-
- void reset(RAMField field) {
- this.field = field;
- }
-
- @Override
- public PostingsConsumer startTerm(BytesRef text) {
- final String term = text.utf8ToString();
- current = new RAMTerm(term);
- postingsWriter.reset(current);
- return postingsWriter;
- }
-
-
- @Override
- public Comparator<BytesRef> getComparator() {
- return BytesRef.getUTF8SortedAsUnicodeComparator();
- }
-
- @Override
- public void finishTerm(BytesRef text, TermStats stats) {
- assert stats.docFreq > 0;
- assert stats.docFreq == current.docs.size();
- current.totalTermFreq = stats.totalTermFreq;
- field.termToDocs.put(current.term, current);
- }
-
- @Override
- public void finish(long sumTotalTermFreq, long sumDocFreq, int docCount) {
- field.sumTotalTermFreq = sumTotalTermFreq;
- field.sumDocFreq = sumDocFreq;
- field.docCount = docCount;
- }
- }
-
- public static class RAMPostingsWriterImpl extends PostingsConsumer {
- private RAMTerm term;
- private RAMDoc current;
- private int posUpto = 0;
-
- public void reset(RAMTerm term) {
- this.term = term;
- }
-
- @Override
- public void startDoc(int docID, int freq) {
- current = new RAMDoc(docID, freq);
- term.docs.add(current);
- posUpto = 0;
- }
-
- @Override
- public void addPosition(int position, BytesRef payload) {
- current.positions[posUpto] = position;
- if (payload != null && payload.length > 0) {
- if (current.payloads == null) {
- current.payloads = new byte[current.positions.length][];
- }
- byte[] bytes = current.payloads[posUpto] = new byte[payload.length];
- System.arraycopy(payload.bytes, payload.offset, bytes, 0, payload.length);
- }
- posUpto++;
- }
-
- @Override
- public void finishDoc() {
- assert posUpto == current.positions.length;
- }
- }
-
- // Classes for reading from the postings state
- static class RAMFieldsEnum extends FieldsEnum {
- private final RAMPostings postings;
- private final Iterator<String> it;
- private String current;
-
- public RAMFieldsEnum(RAMPostings postings) {
- this.postings = postings;
- this.it = postings.fieldToTerms.keySet().iterator();
- }
-
- @Override
- public String next() {
- if (it.hasNext()) {
- current = it.next();
- } else {
- current = null;
- }
- return current;
- }
-
- @Override
- public TermsEnum terms() {
- return new RAMTermsEnum(postings.fieldToTerms.get(current));
- }
- }
-
- static class RAMTermsEnum extends TermsEnum {
- Iterator<String> it;
- String current;
- private final RAMField ramField;
-
- public RAMTermsEnum(RAMField field) {
- this.ramField = field;
- }
-
- @Override
- public Comparator<BytesRef> getComparator() {
- return BytesRef.getUTF8SortedAsUnicodeComparator();
- }
-
- @Override
- public BytesRef next() {
- if (it == null) {
- if (current == null) {
- it = ramField.termToDocs.keySet().iterator();
- } else {
- it = ramField.termToDocs.tailMap(current).keySet().iterator();
- }
- }
- if (it.hasNext()) {
- current = it.next();
- return new BytesRef(current);
- } else {
- return null;
- }
- }
-
- @Override
- public SeekStatus seekCeil(BytesRef term, boolean useCache) {
- current = term.utf8ToString();
- it = null;
- if (ramField.termToDocs.containsKey(current)) {
- return SeekStatus.FOUND;
- } else {
- if (current.compareTo(ramField.termToDocs.lastKey()) > 0) {
- return SeekStatus.END;
- } else {
- return SeekStatus.NOT_FOUND;
- }
- }
- }
-
- @Override
- public void seekExact(long ord) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public long ord() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public BytesRef term() {
- // TODO: reuse BytesRef
- return new BytesRef(current);
- }
-
- @Override
- public int docFreq() {
- return ramField.termToDocs.get(current).docs.size();
- }
-
- @Override
- public long totalTermFreq() {
- return ramField.termToDocs.get(current).totalTermFreq;
- }
-
- @Override
- public DocsEnum docs(Bits liveDocs, DocsEnum reuse) {
- return new RAMDocsEnum(ramField.termToDocs.get(current), liveDocs);
- }
-
- @Override
- public DocsAndPositionsEnum docsAndPositions(Bits liveDocs, DocsAndPositionsEnum reuse) {
- return new RAMDocsAndPositionsEnum(ramField.termToDocs.get(current), liveDocs);
- }
- }
-
- private static class RAMDocsEnum extends DocsEnum {
- private final RAMTerm ramTerm;
- private final Bits liveDocs;
- private RAMDoc current;
- int upto = -1;
- int posUpto = 0;
-
- public RAMDocsEnum(RAMTerm ramTerm, Bits liveDocs) {
- this.ramTerm = ramTerm;
- this.liveDocs = liveDocs;
- }
-
- @Override
- public int advance(int targetDocID) {
- do {
- nextDoc();
- } while (upto < ramTerm.docs.size() && current.docID < targetDocID);
- return NO_MORE_DOCS;
- }
-
- // TODO: override bulk read, for better perf
- @Override
- public int nextDoc() {
- while(true) {
- upto++;
- if (upto < ramTerm.docs.size()) {
- current = ramTerm.docs.get(upto);
- if (liveDocs == null || liveDocs.get(current.docID)) {
- posUpto = 0;
- return current.docID;
- }
- } else {
- return NO_MORE_DOCS;
- }
- }
- }
-
- @Override
- public int freq() {
- return current.positions.length;
- }
-
- @Override
- public int docID() {
- return current.docID;
- }
- }
-
- private static class RAMDocsAndPositionsEnum extends DocsAndPositionsEnum {
- private final RAMTerm ramTerm;
- private final Bits liveDocs;
- private RAMDoc current;
- int upto = -1;
- int posUpto = 0;
-
- public RAMDocsAndPositionsEnum(RAMTerm ramTerm, Bits liveDocs) {
- this.ramTerm = ramTerm;
- this.liveDocs = liveDocs;
- }
-
- @Override
- public int advance(int targetDocID) {
- do {
- nextDoc();
- } while (upto < ramTerm.docs.size() && current.docID < targetDocID);
- return NO_MORE_DOCS;
- }
-
- // TODO: override bulk read, for better perf
- @Override
- public int nextDoc() {
- while(true) {
- upto++;
- if (upto < ramTerm.docs.size()) {
- current = ramTerm.docs.get(upto);
- if (liveDocs == null || liveDocs.get(current.docID)) {
- posUpto = 0;
- return current.docID;
- }
- } else {
- return NO_MORE_DOCS;
- }
- }
- }
-
- @Override
- public int freq() {
- return current.positions.length;
- }
-
- @Override
- public int docID() {
- return current.docID;
- }
-
- @Override
- public int nextPosition() {
- return current.positions[posUpto++];
- }
-
- @Override
- public boolean hasPayload() {
- return current.payloads != null && current.payloads[posUpto-1] != null;
- }
-
- @Override
- public BytesRef getPayload() {
- return new BytesRef(current.payloads[posUpto-1]);
- }
- }
-
- // Holds all indexes created
- private final Map<String,RAMPostings> state = new HashMap<String,RAMPostings>();
+ private final PostingsFormat ramFormat = PostingsFormat.forName("RAMOnly");
+ private final PostingsFormat defaultFormat = PostingsFormat.forName("Lucene40");
+ private final PostingsFormat pulsingFormat = PostingsFormat.forName("Pulsing40");
@Override
- public FieldsConsumer fieldsConsumer(SegmentWriteState writeState) {
- RAMPostings postings = new RAMPostings();
- RAMFieldsConsumer consumer = new RAMFieldsConsumer(postings);
- synchronized(state) {
- state.put(writeState.segmentName, postings);
+ public PostingsFormat getPostingsFormatForField(String field) {
+ if (field.equals("field2") || field.equals("id")) {
+ return pulsingFormat;
+ } else if (field.equals("field1")) {
+ return defaultFormat;
+ } else {
+ return ramFormat;
}
- return consumer;
- }
-
- @Override
- public FieldsProducer fieldsProducer(SegmentReadState readState)
- throws IOException {
-
- synchronized(state) {
- return state.get(readState.segmentInfo.name);
- }
- }
-
- @Override
- public PerDocConsumer docsConsumer(PerDocWriteState state) throws IOException {
- return null;
- }
-
- @Override
- public PerDocValues docsProducer(SegmentReadState state) throws IOException {
- return null;
- }
-
- @Override
- public void getExtensions(Set<String> extensions) {
- }
-
- @Override
- public void files(Directory dir, SegmentInfo segmentInfo, int codecId, Set<String> files) {
}
}
@@ -520,9 +58,6 @@ public class TestExternalCodecs extends
// whose term sort is backwards unicode code point, and
// storing "field1" as a custom entirely-in-RAM codec
public void testPerFieldCodec() throws Exception {
- CodecProvider provider = new CoreCodecProvider();
- provider.register(new RAMOnlyCodec());
- provider.setDefaultFieldCodec("RamOnly");
final int NUM_DOCS = atLeast(173);
MockDirectoryWrapper dir = newDirectory();
@@ -530,7 +65,7 @@ public class TestExternalCodecs extends
IndexWriter w = new IndexWriter(
dir,
newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
- setCodecProvider(provider).
+ setCodec(new CustomPerFieldCodec()).
setMergePolicy(newLogMergePolicy(3))
);
w.setInfoStream(VERBOSE ? System.out : null);
@@ -539,11 +74,9 @@ public class TestExternalCodecs extends
doc.add(newField("field1", "this field uses the standard codec as the test", TextField.TYPE_UNSTORED));
// uses pulsing codec:
Field field2 = newField("field2", "this field uses the pulsing codec as the test", TextField.TYPE_UNSTORED);
- provider.setFieldCodec(field2.name(), "Pulsing");
doc.add(field2);
Field idField = newField("id", "", StringField.TYPE_UNSTORED);
- provider.setFieldCodec(idField.name(), "Pulsing");
doc.add(idField);
for(int i=0;i<NUM_DOCS;i++) {
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/Test2BPostings.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/Test2BPostings.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/Test2BPostings.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/Test2BPostings.java Fri Nov 4 15:43:35 2011
@@ -27,23 +27,20 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.FieldInfo.IndexOptions;
-import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util._TestUtil;
+import org.apache.lucene.util.LuceneTestCase.UseNoMemoryExpensiveCodec;
/**
* Test indexes ~82M docs with 26 terms each, so you get > Integer.MAX_VALUE terms/docs pairs
* @lucene.experimental
*/
+@UseNoMemoryExpensiveCodec
public class Test2BPostings extends LuceneTestCase {
@Nightly
public void test() throws Exception {
-
- assumeFalse("This test cannot run with Memory codec", CodecProvider.getDefault().getFieldCodec("field").equals("Memory"));
- assumeFalse("This test is super-slow and very disk-space-consuming with SimpleText codec", CodecProvider.getDefault().getFieldCodec("field").equals("SimpleText"));
-
MockDirectoryWrapper dir = newFSDirectory(_TestUtil.getTempDir("2BPostings"));
dir.setThrottling(MockDirectoryWrapper.Throttling.NEVER);
dir.setCheckIndexOnClose(false); // don't double-checkindex
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/Test2BTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/Test2BTerms.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/Test2BTerms.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/Test2BTerms.java Fri Nov 4 15:43:35 2011
@@ -24,7 +24,8 @@ import org.apache.lucene.analysis.*;
import org.apache.lucene.analysis.tokenattributes.*;
import org.apache.lucene.document.*;
import org.apache.lucene.index.FieldInfo.IndexOptions;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
@@ -142,7 +143,7 @@ public class Test2BTerms extends LuceneT
@Ignore("Takes ~4 hours to run on a fast machine!! And requires that you don't use PreFlex codec.")
public void test2BTerms() throws IOException {
- if ("PreFlex".equals(CodecProvider.getDefault().getDefaultFieldCodec())) {
+ if ("Lucene3x".equals(Codec.getDefault().getName())) {
throw new RuntimeException("thist test cannot run with PreFlex codec");
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java Fri Nov 4 15:43:35 2011
@@ -17,9 +17,10 @@ package org.apache.lucene.index;
* limitations under the License.
*/
-import java.io.IOException;
import java.io.FileNotFoundException;
+import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import org.apache.lucene.analysis.MockAnalyzer;
@@ -29,11 +30,22 @@ import org.apache.lucene.document.FieldT
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.index.codecs.CodecProvider;
-import org.apache.lucene.index.codecs.mocksep.MockSepCodec;
-import org.apache.lucene.index.codecs.pulsing.PulsingCodec;
-import org.apache.lucene.index.codecs.simpletext.SimpleTextCodec;
-import org.apache.lucene.index.codecs.standard.StandardCodec;
+import org.apache.lucene.index.codecs.Codec;
+import org.apache.lucene.index.codecs.DefaultDocValuesFormat;
+import org.apache.lucene.index.codecs.DefaultFieldsFormat;
+import org.apache.lucene.index.codecs.DefaultSegmentInfosFormat;
+import org.apache.lucene.index.codecs.DocValuesFormat;
+import org.apache.lucene.index.codecs.FieldsFormat;
+import org.apache.lucene.index.codecs.PostingsFormat;
+import org.apache.lucene.index.codecs.SegmentInfosFormat;
+import org.apache.lucene.index.codecs.lucene40.Lucene40Codec;
+import org.apache.lucene.index.codecs.lucene40.Lucene40PostingsBaseFormat;
+import org.apache.lucene.index.codecs.lucene40.Lucene40PostingsFormat;
+import org.apache.lucene.index.codecs.mocksep.MockSepPostingsFormat;
+import org.apache.lucene.index.codecs.perfield.PerFieldPostingsFormat;
+import org.apache.lucene.index.codecs.pulsing.Pulsing40PostingsFormat;
+import org.apache.lucene.index.codecs.pulsing.PulsingPostingsFormat;
+import org.apache.lucene.index.codecs.simpletext.SimpleTextPostingsFormat;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.PhraseQuery;
import org.apache.lucene.store.AlreadyClosedException;
@@ -975,30 +987,29 @@ public class TestAddIndexes extends Luce
}
}
- public void testSimpleCaseCustomCodecProvider() throws IOException {
+ public void testSimpleCaseCustomCodec() throws IOException {
// main directory
Directory dir = newDirectory();
// two auxiliary directories
Directory aux = newDirectory();
Directory aux2 = newDirectory();
- CodecProvider provider = new MockCodecProvider();
+ Codec codec = new CustomPerFieldCodec();
IndexWriter writer = null;
writer = newWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT,
- new MockAnalyzer(random)).setOpenMode(OpenMode.CREATE).setCodecProvider(
- provider));
+ new MockAnalyzer(random)).setOpenMode(OpenMode.CREATE).setCodec(codec));
// add 100 documents
addDocs3(writer, 100);
assertEquals(100, writer.maxDoc());
writer.commit();
writer.close();
- _TestUtil.checkIndex(dir, provider);
+ _TestUtil.checkIndex(dir);
writer = newWriter(
aux,
newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
setOpenMode(OpenMode.CREATE).
- setCodecProvider(provider).
+ setCodec(codec).
setMaxBufferedDocs(10).
setMergePolicy(newLogMergePolicy(false))
);
@@ -1012,7 +1023,7 @@ public class TestAddIndexes extends Luce
aux2,
newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
setOpenMode(OpenMode.CREATE).
- setCodecProvider(provider)
+ setCodec(codec)
);
// add 40 documents in compound files
addDocs2(writer, 50);
@@ -1025,7 +1036,7 @@ public class TestAddIndexes extends Luce
dir,
newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
setOpenMode(OpenMode.APPEND).
- setCodecProvider(provider)
+ setCodec(codec)
);
assertEquals(100, writer.maxDoc());
writer.addIndexes(aux, aux2);
@@ -1037,19 +1048,24 @@ public class TestAddIndexes extends Luce
aux2.close();
}
- public static class MockCodecProvider extends CodecProvider {
- public MockCodecProvider() {
- StandardCodec standardCodec = new StandardCodec();
- SimpleTextCodec simpleTextCodec = new SimpleTextCodec();
- MockSepCodec mockSepCodec = new MockSepCodec();
- register(standardCodec);
- register(mockSepCodec);
- register(simpleTextCodec);
- setFieldCodec("id", simpleTextCodec.name);
- setFieldCodec("content", mockSepCodec.name);
+ private static final class CustomPerFieldCodec extends Lucene40Codec {
+ private final PostingsFormat simpleTextFormat = PostingsFormat.forName("SimpleText");
+ private final PostingsFormat defaultFormat = PostingsFormat.forName("Lucene40");
+ private final PostingsFormat mockSepFormat = PostingsFormat.forName("MockSep");
+
+ @Override
+ public PostingsFormat getPostingsFormatForField(String field) {
+ if (field.equals("id")) {
+ return simpleTextFormat;
+ } else if (field.equals("content")) {
+ return mockSepFormat;
+ } else {
+ return defaultFormat;
+ }
}
}
+
// LUCENE-2790: tests that the non CFS files were deleted by addIndexes
public void testNonCFSLeftovers() throws Exception {
Directory[] dirs = new Directory[2];
@@ -1066,16 +1082,19 @@ public class TestAddIndexes extends Luce
IndexReader[] readers = new IndexReader[] { IndexReader.open(dirs[0]), IndexReader.open(dirs[1]) };
- Directory dir = new RAMDirectory();
+ Directory dir = new MockDirectoryWrapper(random, new RAMDirectory());
IndexWriterConfig conf = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy());
LogMergePolicy lmp = (LogMergePolicy) conf.getMergePolicy();
lmp.setUseCompoundFile(true);
lmp.setNoCFSRatio(1.0); // Force creation of CFS
IndexWriter w3 = new IndexWriter(dir, conf);
+ w3.setInfoStream(VERBOSE ? System.out : null);
w3.addIndexes(readers);
w3.close();
- // we should now see segments_X, segments.gen,_Y.cfs,_Y.cfe, _Z.fnx
- assertEquals("Only one compound segment should exist", 5, dir.listAll().length);
+ // we should now see segments_X,
+ // segments.gen,_Y.cfs,_Y.cfe, _Z.fnx
+ assertEquals("Only one compound segment should exist, but got: " + Arrays.toString(dir.listAll()), 5, dir.listAll().length);
+ dir.close();
}
// LUCENE-3126: tests that if a non-CFS segment is copied, it is converted to
@@ -1136,18 +1155,45 @@ public class TestAddIndexes extends Luce
src.close();
target.close();
}
+
+ private static class UnRegisteredCodec extends Codec {
+ public UnRegisteredCodec() {
+ super("NotRegistered");
+ }
+
+ @Override
+ public PostingsFormat postingsFormat() {
+ return PostingsFormat.forName("Lucene40");
+ }
+
+ @Override
+ public DocValuesFormat docValuesFormat() {
+ return new DefaultDocValuesFormat();
+ }
+
+ @Override
+ public FieldsFormat fieldsFormat() {
+ return new DefaultFieldsFormat();
+ }
+
+ @Override
+ public SegmentInfosFormat segmentInfosFormat() {
+ return new DefaultSegmentInfosFormat();
+ }
+ }
/*
* simple test that ensures we getting expected exceptions
*/
public void testAddIndexMissingCodec() throws IOException {
- Directory toAdd = newDirectory();
+ MockDirectoryWrapper toAdd = newDirectory();
+ // Disable checkIndex, else we get an exception because
+ // of the unregistered codec:
+ toAdd.setCheckIndexOnClose(false);
{
IndexWriterConfig conf = newIndexWriterConfig(TEST_VERSION_CURRENT,
new MockAnalyzer(random));
- CodecProvider provider = new CodecProvider();
- provider.register(new StandardCodec());
- conf.setCodecProvider(provider);
+ conf.setCodec(new UnRegisteredCodec());
IndexWriter w = new IndexWriter(toAdd, conf);
Document doc = new Document();
FieldType customType = new FieldType();
@@ -1156,13 +1202,12 @@ public class TestAddIndexes extends Luce
w.addDocument(doc);
w.close();
}
+
{
Directory dir = newDirectory();
IndexWriterConfig conf = newIndexWriterConfig(TEST_VERSION_CURRENT,
new MockAnalyzer(random));
- CodecProvider provider = new CodecProvider();
- provider.register(new PulsingCodec(1 + random.nextInt(20)));
- conf.setCodecProvider(provider);
+ conf.setCodec(_TestUtil.alwaysPostingsFormat(new Pulsing40PostingsFormat(1 + random.nextInt(20))));
IndexWriter w = new IndexWriter(dir, conf);
try {
w.addIndexes(toAdd);
@@ -1177,27 +1222,11 @@ public class TestAddIndexes extends Luce
dir.close();
}
- {
- Directory dir = newDirectory();
- IndexWriterConfig conf = newIndexWriterConfig(TEST_VERSION_CURRENT,
- new MockAnalyzer(random));
- CodecProvider provider = new CodecProvider();
- provider.register(new PulsingCodec(1 + random.nextInt(20)));
- conf.setCodecProvider(provider);
- IndexWriter w = new IndexWriter(dir, conf);
+ try {
IndexReader indexReader = IndexReader.open(toAdd);
- try {
- w.addIndexes(indexReader);
- fail("no such codec");
- } catch (IllegalArgumentException ex) {
- // expected
- }
- indexReader.close();
- w.close();
- IndexReader open = IndexReader.open(dir);
- assertEquals(0, open.numDocs());
- open.close();
- dir.close();
+ fail("no such codec");
+ } catch (IllegalArgumentException ex) {
+ // expected
}
toAdd.close();
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java Fri Nov 4 15:43:35 2011
@@ -568,7 +568,7 @@ public class TestBackwardsCompatibility
"_0_1.s" + contentFieldIndex,
"segments_2",
"segments.gen",
- "1.fnx"};
+ "_1.fnx"};
String[] actual = dir.listAll();
Arrays.sort(expected);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBinaryTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBinaryTerms.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBinaryTerms.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBinaryTerms.java Fri Nov 4 15:43:35 2011
@@ -23,7 +23,7 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
@@ -37,7 +37,7 @@ import org.apache.lucene.util.LuceneTest
public class TestBinaryTerms extends LuceneTestCase {
public void testBinary() throws IOException {
assumeFalse("PreFlex codec cannot work with binary terms!",
- "PreFlex".equals(CodecProvider.getDefault().getDefaultFieldCodec()));
+ Codec.getDefault().getName().equals("Lucene3x"));
Directory dir = newDirectory();
RandomIndexWriter iw = new RandomIndexWriter(random, dir);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCodecs.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCodecs.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCodecs.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCodecs.java Fri Nov 4 15:43:35 2011
@@ -26,14 +26,15 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.index.FieldInfo.IndexOptions;
import org.apache.lucene.document.FieldType;
import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.index.codecs.FieldsConsumer;
import org.apache.lucene.index.codecs.FieldsProducer;
import org.apache.lucene.index.codecs.PostingsConsumer;
import org.apache.lucene.index.codecs.TermStats;
import org.apache.lucene.index.codecs.TermsConsumer;
-import org.apache.lucene.index.codecs.mocksep.MockSepCodec;
-import org.apache.lucene.index.codecs.preflex.PreFlexCodec;
+import org.apache.lucene.index.codecs.lucene3x.Lucene3xCodec;
+import org.apache.lucene.index.codecs.lucene3x.Lucene3xPostingsFormat;
+import org.apache.lucene.index.codecs.mocksep.MockSepPostingsFormat;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PhraseQuery;
@@ -64,6 +65,7 @@ import org.junit.BeforeClass;
// goes to 1 before next one known to exist
// - skipTo(term)
// - skipTo(doc)
+
public class TestCodecs extends LuceneTestCase {
private static String[] fieldNames = new String[] {"one", "two", "three", "four"};
@@ -255,9 +257,10 @@ public class TestCodecs extends LuceneTe
final Directory dir = newDirectory();
FieldInfos clonedFieldInfos = (FieldInfos) fieldInfos.clone();
this.write(fieldInfos, dir, fields, true);
- final SegmentInfo si = new SegmentInfo(SEGMENT, 10000, dir, false, clonedFieldInfos.buildSegmentCodecs(false), clonedFieldInfos);
+ Codec codec = Codec.getDefault();
+ final SegmentInfo si = new SegmentInfo(SEGMENT, 10000, dir, false, codec, clonedFieldInfos);
- final FieldsProducer reader = si.getSegmentCodecs().codec().fieldsProducer(new SegmentReadState(dir, si, fieldInfos, newIOContext(random), IndexReader.DEFAULT_TERMS_INDEX_DIVISOR));
+ final FieldsProducer reader = codec.postingsFormat().fieldsProducer(new SegmentReadState(dir, si, fieldInfos, newIOContext(random), IndexReader.DEFAULT_TERMS_INDEX_DIVISOR));
final FieldsEnum fieldsEnum = reader.iterator();
assertNotNull(fieldsEnum.next());
@@ -307,12 +310,13 @@ public class TestCodecs extends LuceneTe
FieldInfos clonedFieldInfos = (FieldInfos) fieldInfos.clone();
this.write(fieldInfos, dir, fields, false);
- final SegmentInfo si = new SegmentInfo(SEGMENT, 10000, dir, false, clonedFieldInfos.buildSegmentCodecs(false), clonedFieldInfos);
+ Codec codec = Codec.getDefault();
+ final SegmentInfo si = new SegmentInfo(SEGMENT, 10000, dir, false, codec, clonedFieldInfos);
if (VERBOSE) {
System.out.println("TEST: now read postings");
}
- final FieldsProducer terms = si.getSegmentCodecs().codec().fieldsProducer(new SegmentReadState(dir, si, fieldInfos, newIOContext(random), IndexReader.DEFAULT_TERMS_INDEX_DIVISOR));
+ final FieldsProducer terms = codec.postingsFormat().fieldsProducer(new SegmentReadState(dir, si, fieldInfos, newIOContext(random), IndexReader.DEFAULT_TERMS_INDEX_DIVISOR));
final Verify[] threads = new Verify[NUM_TEST_THREADS-1];
for(int i=0;i<NUM_TEST_THREADS-1;i++) {
@@ -336,7 +340,7 @@ public class TestCodecs extends LuceneTe
final Directory dir = newDirectory();
final IndexWriterConfig config = newIndexWriterConfig(Version.LUCENE_31,
new MockAnalyzer(random));
- config.setCodecProvider(new MockSepCodecs());
+ config.setCodec(_TestUtil.alwaysPostingsFormat(new MockSepPostingsFormat()));
final IndexWriter writer = new IndexWriter(dir, config);
try {
@@ -391,15 +395,6 @@ public class TestCodecs extends LuceneTe
}
}
- public static class MockSepCodecs extends CodecProvider {
-
- protected MockSepCodecs() {
- this.register(new MockSepCodec());
- this.setDefaultFieldCodec("MockSep");
- }
-
- }
-
private class Verify extends Thread {
final Fields termsDict;
final FieldData[] fields;
@@ -458,8 +453,7 @@ public class TestCodecs extends LuceneTe
for(int iter=0;iter<NUM_TEST_ITER;iter++) {
final FieldData field = fields[TestCodecs.random.nextInt(fields.length)];
final TermsEnum termsEnum = termsDict.terms(field.fieldInfo.name).iterator();
- assertTrue(field.fieldInfo.getCodecId() != FieldInfo.UNASSIGNED_CODEC_ID);
- if (si.getSegmentCodecs().codecs[field.fieldInfo.getCodecId()] instanceof PreFlexCodec) {
+ if (si.getCodec() instanceof Lucene3xCodec) {
// code below expects unicode sort order
continue;
}
@@ -614,14 +608,13 @@ public class TestCodecs extends LuceneTe
private void write(final FieldInfos fieldInfos, final Directory dir, final FieldData[] fields, boolean allowPreFlex) throws Throwable {
final int termIndexInterval = _TestUtil.nextInt(random, 13, 27);
- final SegmentCodecs codecInfo = fieldInfos.buildSegmentCodecs(false);
- final SegmentWriteState state = new SegmentWriteState(null, dir, SEGMENT, fieldInfos, 10000, termIndexInterval, codecInfo, null, newIOContext(random));
+ final Codec codec = Codec.getDefault();
+ final SegmentWriteState state = new SegmentWriteState(null, dir, SEGMENT, fieldInfos, 10000, termIndexInterval, codec, null, newIOContext(random));
- final FieldsConsumer consumer = state.segmentCodecs.codec().fieldsConsumer(state);
+ final FieldsConsumer consumer = codec.postingsFormat().fieldsConsumer(state);
Arrays.sort(fields);
for (final FieldData field : fields) {
- assertTrue(field.fieldInfo.getCodecId() != FieldInfo.UNASSIGNED_CODEC_ID);
- if (!allowPreFlex && codecInfo.codecs[field.fieldInfo.getCodecId()] instanceof PreFlexCodec) {
+ if (!allowPreFlex && codec instanceof Lucene3xCodec) {
// code below expects unicode sort order
continue;
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCompoundFile.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCompoundFile.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCompoundFile.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCompoundFile.java Fri Nov 4 15:43:35 2011
@@ -637,9 +637,9 @@ public class TestCompoundFile extends Lu
CompoundFileDirectory csw = new CompoundFileDirectory(newDir, "d.cfs", newIOContext(random), true);
int size = 5 + random.nextInt(128);
for (int j = 0; j < 2; j++) {
- IndexOutput os = csw.createOutput("seg" + j + "_foo.txt", newIOContext(random));
+ IndexOutput os = csw.createOutput("seg_" + j + "_foo.txt", newIOContext(random));
for (int i = 0; i < size; i++) {
- os.writeInt(i);
+ os.writeInt(i*j);
}
os.close();
String[] listAll = newDir.listAll();
@@ -654,10 +654,10 @@ public class TestCompoundFile extends Lu
csw.close();
CompoundFileDirectory csr = new CompoundFileDirectory(newDir, "d.cfs", newIOContext(random), false);
for (int j = 0; j < 2; j++) {
- IndexInput openInput = csr.openInput("seg" + j + "_foo.txt", newIOContext(random));
+ IndexInput openInput = csr.openInput("seg_" + j + "_foo.txt", newIOContext(random));
assertEquals(size * 4, openInput.length());
for (int i = 0; i < size; i++) {
- assertEquals(i, openInput.readInt());
+ assertEquals(i*j, openInput.readInt());
}
openInput.close();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java Fri Nov 4 15:43:35 2011
@@ -178,7 +178,7 @@ public class TestConsistentFieldNumbers
FieldInfos fis1 = sis.info(0).getFieldInfos();
assertEquals("f1", fis1.fieldInfo(0).name);
assertEquals("f2", fis1.fieldInfo(1).name);
- assertTrue(dir.fileExists("1.fnx"));
+ assertTrue(dir.fileExists("_1.fnx"));
}
@@ -202,8 +202,8 @@ public class TestConsistentFieldNumbers
assertEquals("f1", fis2.fieldInfo(0).name);
assertNull(fis2.fieldInfo(1));
assertEquals("f3", fis2.fieldInfo(2).name);
- assertFalse(dir.fileExists("1.fnx"));
- assertTrue(dir.fileExists("2.fnx"));
+ assertFalse(dir.fileExists("_1.fnx"));
+ assertTrue(dir.fileExists("_2.fnx"));
}
{
@@ -231,9 +231,9 @@ public class TestConsistentFieldNumbers
assertEquals("f1", fis3.fieldInfo(0).name);
assertEquals("f2", fis3.fieldInfo(1).name);
assertEquals("f3", fis3.fieldInfo(2).name);
- assertFalse(dir.fileExists("1.fnx"));
- assertTrue(dir.fileExists("2.fnx"));
- assertFalse(dir.fileExists("3.fnx"));
+ assertFalse(dir.fileExists("_1.fnx"));
+ assertTrue(dir.fileExists("_2.fnx"));
+ assertFalse(dir.fileExists("_3.fnx"));
}
{
@@ -262,9 +262,9 @@ public class TestConsistentFieldNumbers
assertEquals("f1", fis1.fieldInfo(0).name);
assertEquals("f2", fis1.fieldInfo(1).name);
assertEquals("f3", fis1.fieldInfo(2).name);
- assertFalse(dir.fileExists("1.fnx"));
- assertTrue(dir.fileExists("2.fnx"));
- assertFalse(dir.fileExists("3.fnx"));
+ assertFalse(dir.fileExists("_1.fnx"));
+ assertTrue(dir.fileExists("_2.fnx"));
+ assertFalse(dir.fileExists("_3.fnx"));
dir.close();
}
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java Fri Nov 4 15:43:35 2011
@@ -108,7 +108,7 @@ public class TestDirectoryReader extends
if (reader instanceof MultiReader)
// MultiReader does not "own" the directory so it does
// not write the changes to sis on commit:
- sis.commit(dir);
+ sis.commit(dir, sis.codecFormat());
sis.read(dir);
reader = openReader();
@@ -121,7 +121,7 @@ public class TestDirectoryReader extends
if (reader instanceof MultiReader)
// MultiReader does not "own" the directory so it does
// not write the changes to sis on commit:
- sis.commit(dir);
+ sis.commit(dir, sis.codecFormat());
sis.read(dir);
reader = openReader();
assertEquals( 1, reader.numDocs() );
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDoc.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDoc.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDoc.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDoc.java Fri Nov 4 15:43:35 2011
@@ -33,6 +33,7 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.document.Document;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.IOContext;
@@ -197,7 +198,7 @@ public class TestDoc extends LuceneTestC
SegmentReader r1 = SegmentReader.get(true, si1, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, context);
SegmentReader r2 = SegmentReader.get(true, si2, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, context);
- SegmentMerger merger = new SegmentMerger(si1.dir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL, merged, null, null, new FieldInfos(), context);
+ SegmentMerger merger = new SegmentMerger(si1.dir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL, merged, null, null, new FieldInfos(), Codec.getDefault(), context);
merger.add(r1);
merger.add(r2);
@@ -206,7 +207,7 @@ public class TestDoc extends LuceneTestC
r2.close();
final FieldInfos fieldInfos = merger.fieldInfos();
final SegmentInfo info = new SegmentInfo(merged, si1.docCount + si2.docCount, si1.dir,
- false, merger.getSegmentCodecs(), fieldInfos);
+ false, merger.getCodec(), fieldInfos);
if (useCompoundFile) {
Collection<String> filesToDelete = merger.createCompoundFile(merged + ".cfs", info, newIOContext(random));
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocCount.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocCount.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocCount.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocCount.java Fri Nov 4 15:43:35 2011
@@ -19,7 +19,7 @@ package org.apache.lucene.index;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.StringField;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.FixedBitSet;
@@ -32,7 +32,7 @@ import org.apache.lucene.util._TestUtil;
public class TestDocCount extends LuceneTestCase {
public void testSimple() throws Exception {
assumeFalse("PreFlex codec does not support docCount statistic!",
- "PreFlex".equals(CodecProvider.getDefault().getDefaultFieldCodec()));
+ "Lucene3x".equals(Codec.getDefault().getName()));
Directory dir = newDirectory();
RandomIndexWriter iw = new RandomIndexWriter(random, dir);
int numDocs = atLeast(100);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocTermOrds.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocTermOrds.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocTermOrds.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocTermOrds.java Fri Nov 4 15:43:35 2011
@@ -34,21 +34,17 @@ import org.apache.lucene.index.DocTermOr
import org.apache.lucene.index.codecs.BlockTermsReader;
import org.apache.lucene.index.codecs.BlockTermsWriter;
import org.apache.lucene.index.codecs.Codec;
-import org.apache.lucene.index.codecs.CoreCodecProvider;
-import org.apache.lucene.index.codecs.DefaultDocValuesProducer;
+import org.apache.lucene.index.codecs.PostingsFormat;
import org.apache.lucene.index.codecs.FieldsConsumer;
import org.apache.lucene.index.codecs.FieldsProducer;
import org.apache.lucene.index.codecs.FixedGapTermsIndexReader;
import org.apache.lucene.index.codecs.FixedGapTermsIndexWriter;
-import org.apache.lucene.index.codecs.PerDocConsumer;
-import org.apache.lucene.index.codecs.DefaultDocValuesConsumer;
-import org.apache.lucene.index.codecs.PerDocValues;
import org.apache.lucene.index.codecs.PostingsReaderBase;
import org.apache.lucene.index.codecs.PostingsWriterBase;
import org.apache.lucene.index.codecs.TermsIndexReaderBase;
import org.apache.lucene.index.codecs.TermsIndexWriterBase;
-import org.apache.lucene.index.codecs.standard.StandardPostingsReader;
-import org.apache.lucene.index.codecs.standard.StandardPostingsWriter;
+import org.apache.lucene.index.codecs.lucene40.Lucene40PostingsReader;
+import org.apache.lucene.index.codecs.lucene40.Lucene40PostingsWriter;
import org.apache.lucene.search.FieldCache;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.MockDirectoryWrapper;
@@ -106,130 +102,6 @@ public class TestDocTermOrds extends Luc
dir.close();
}
- private static class StandardCodecWithOrds extends Codec {
-
- public StandardCodecWithOrds() {
- super("StandardOrds");
- }
-
- @Override
- public FieldsConsumer fieldsConsumer(SegmentWriteState state) throws IOException {
- PostingsWriterBase docs = new StandardPostingsWriter(state);
-
- // TODO: should we make the terms index more easily
- // pluggable? Ie so that this codec would record which
- // index impl was used, and switch on loading?
- // Or... you must make a new Codec for this?
- TermsIndexWriterBase indexWriter;
- boolean success = false;
- try {
- indexWriter = new FixedGapTermsIndexWriter(state);
- success = true;
- } finally {
- if (!success) {
- docs.close();
- }
- }
-
- success = false;
- try {
- FieldsConsumer ret = new BlockTermsWriter(indexWriter, state, docs);
- success = true;
- return ret;
- } finally {
- if (!success) {
- try {
- docs.close();
- } finally {
- indexWriter.close();
- }
- }
- }
- }
-
- public final static int TERMS_CACHE_SIZE = 1024;
-
- @Override
- public FieldsProducer fieldsProducer(SegmentReadState state) throws IOException {
- PostingsReaderBase postings = new StandardPostingsReader(state.dir, state.segmentInfo, state.context, state.codecId);
- TermsIndexReaderBase indexReader;
-
- boolean success = false;
- try {
- indexReader = new FixedGapTermsIndexReader(state.dir,
- state.fieldInfos,
- state.segmentInfo.name,
- state.termsIndexDivisor,
- BytesRef.getUTF8SortedAsUnicodeComparator(),
- state.codecId, state.context);
- success = true;
- } finally {
- if (!success) {
- postings.close();
- }
- }
-
- success = false;
- try {
- FieldsProducer ret = new BlockTermsReader(indexReader,
- state.dir,
- state.fieldInfos,
- state.segmentInfo.name,
- postings,
- state.context,
- TERMS_CACHE_SIZE,
- state.codecId);
- success = true;
- return ret;
- } finally {
- if (!success) {
- try {
- postings.close();
- } finally {
- indexReader.close();
- }
- }
- }
- }
-
- /** Extension of freq postings file */
- static final String FREQ_EXTENSION = "frq";
-
- /** Extension of prox postings file */
- static final String PROX_EXTENSION = "prx";
-
- @Override
- public void files(Directory dir, SegmentInfo segmentInfo, int id, Set<String> files) throws IOException {
- StandardPostingsReader.files(dir, segmentInfo, id, files);
- BlockTermsReader.files(dir, segmentInfo, id, files);
- FixedGapTermsIndexReader.files(dir, segmentInfo, id, files);
- DefaultDocValuesConsumer.files(dir, segmentInfo, id, files);
- }
-
- @Override
- public void getExtensions(Set<String> extensions) {
- getStandardExtensions(extensions);
- DefaultDocValuesConsumer.getExtensions(extensions);
- }
-
- public static void getStandardExtensions(Set<String> extensions) {
- extensions.add(FREQ_EXTENSION);
- extensions.add(PROX_EXTENSION);
- BlockTermsReader.getExtensions(extensions);
- FixedGapTermsIndexReader.getIndexExtensions(extensions);
- }
-
- @Override
- public PerDocConsumer docsConsumer(PerDocWriteState state) throws IOException {
- return new DefaultDocValuesConsumer(state);
- }
-
- @Override
- public PerDocValues docsProducer(SegmentReadState state) throws IOException {
- return new DefaultDocValuesProducer(state);
- }
- }
-
public void testRandom() throws Exception {
MockDirectoryWrapper dir = newDirectory();
@@ -252,13 +124,8 @@ public class TestDocTermOrds extends Luc
// Sometimes swap in codec that impls ord():
if (random.nextInt(10) == 7) {
// Make sure terms index has ords:
- CoreCodecProvider cp = new CoreCodecProvider();
- cp.register(new StandardCodecWithOrds());
- cp.setDefaultFieldCodec("StandardOrds");
-
- // So checkIndex on close works
- dir.setCodecProvider(cp);
- conf.setCodecProvider(cp);
+ Codec codec = _TestUtil.alwaysPostingsFormat(PostingsFormat.forName("Lucene40WithOrds"));
+ conf.setCodec(codec);
}
final RandomIndexWriter w = new RandomIndexWriter(random, dir, conf);
@@ -354,14 +221,8 @@ public class TestDocTermOrds extends Luc
// Sometimes swap in codec that impls ord():
if (random.nextInt(10) == 7) {
- // Make sure terms index has ords:
- CoreCodecProvider cp = new CoreCodecProvider();
- cp.register(new StandardCodecWithOrds());
- cp.setDefaultFieldCodec("StandardOrds");
-
- // So checkIndex on close works
- dir.setCodecProvider(cp);
- conf.setCodecProvider(cp);
+ Codec codec = _TestUtil.alwaysPostingsFormat(PostingsFormat.forName("Lucene40WithOrds"));
+ conf.setCodec(codec);
}
final RandomIndexWriter w = new RandomIndexWriter(random, dir, conf);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFlex.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFlex.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFlex.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFlex.java Fri Nov 4 15:43:35 2011
@@ -20,6 +20,7 @@ package org.apache.lucene.index;
import org.apache.lucene.store.*;
import org.apache.lucene.analysis.*;
import org.apache.lucene.document.*;
+import org.apache.lucene.index.codecs.lucene40.Lucene40PostingsFormat;
import org.apache.lucene.util.*;
public class TestFlex extends LuceneTestCase {
@@ -64,7 +65,7 @@ public class TestFlex extends LuceneTest
public void testTermOrd() throws Exception {
Directory d = newDirectory();
IndexWriter w = new IndexWriter(d, newIndexWriterConfig(TEST_VERSION_CURRENT,
- new MockAnalyzer(random)).setCodecProvider(_TestUtil.alwaysCodec("Standard")));
+ new MockAnalyzer(random)).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())));
Document doc = new Document();
doc.add(newField("f", "a b c", TextField.TYPE_UNSTORED));
w.addDocument(doc);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestForTooMuchCloning.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestForTooMuchCloning.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestForTooMuchCloning.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestForTooMuchCloning.java Fri Nov 4 15:43:35 2011
@@ -22,7 +22,6 @@ import java.util.*;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermRangeQuery;
import org.apache.lucene.search.TopDocs;
@@ -36,6 +35,9 @@ public class TestForTooMuchCloning exten
// Make sure we don't clone IndexInputs too frequently
// during merging:
public void test() throws Exception {
+ // NOTE: if we see a fail on this test with "NestedPulsing" its because its
+ // reuse isnt perfect (but reasonable). see TestPulsingReuse.testNestedPulsing
+ // for more details
final MockDirectoryWrapper dir = newDirectory();
final TieredMergePolicy tmp = new TieredMergePolicy();
tmp.setMaxMergeAtOnce(2);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestGlobalFieldNumbers.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestGlobalFieldNumbers.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestGlobalFieldNumbers.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestGlobalFieldNumbers.java Fri Nov 4 15:43:35 2011
@@ -58,25 +58,25 @@ public class TestGlobalFieldNumbers exte
}
writer.commit();
Collection<String> files = writer.getIndexFileNames();
- files.remove("1.fnx");
+ files.remove("_1.fnx");
for (String string : files) {
assertFalse(string.endsWith(".fnx"));
}
- assertFNXFiles(dir, "1.fnx");
+ assertFNXFiles(dir, "_1.fnx");
d = new Document();
d.add(new Field("f1", "d2 first field", TextField.TYPE_STORED));
d.add(new BinaryField("f3", new byte[] { 1, 2, 3 }));
writer.addDocument(d);
writer.commit();
files = writer.getIndexFileNames();
- files.remove("2.fnx");
+ files.remove("_2.fnx");
for (String string : files) {
assertFalse(string.endsWith(".fnx"));
}
- assertFNXFiles(dir, "2.fnx");
+ assertFNXFiles(dir, "_2.fnx");
writer.close();
- assertFNXFiles(dir, "2.fnx");
+ assertFNXFiles(dir, "_2.fnx");
}
{
@@ -89,12 +89,12 @@ public class TestGlobalFieldNumbers exte
writer.addDocument(d);
writer.close();
Collection<String> files = writer.getIndexFileNames();
- files.remove("2.fnx");
+ files.remove("_2.fnx");
for (String string : files) {
assertFalse(string.endsWith(".fnx"));
}
- assertFNXFiles(dir, "2.fnx");
+ assertFNXFiles(dir, "_2.fnx");
}
IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
@@ -102,7 +102,7 @@ public class TestGlobalFieldNumbers exte
writer.optimize();
assertFalse(" field numbers got mixed up", writer.anyNonBulkMerges);
writer.close();
- assertFNXFiles(dir, "2.fnx");
+ assertFNXFiles(dir, "_2.fnx");
dir.close();
}
@@ -121,29 +121,29 @@ public class TestGlobalFieldNumbers exte
d.add(new Field("f2", "d1 second field", TextField.TYPE_STORED));
writer.addDocument(d);
writer.commit();
- assertFNXFiles(dir, "1.fnx");
+ assertFNXFiles(dir, "_1.fnx");
d = new Document();
d.add(new Field("f1", "d2 first field", TextField.TYPE_STORED));
d.add(new BinaryField("f3", new byte[] { 1, 2, 3 }));
writer.addDocument(d);
writer.commit();
- assertFNXFiles(dir, "2.fnx");
+ assertFNXFiles(dir, "_2.fnx");
writer.close();
- assertFNXFiles(dir, "2.fnx");
+ assertFNXFiles(dir, "_2.fnx");
}
IndexReader reader = IndexReader.open(dir, false);
reader.deleteDocument(0);
reader.commit();
reader.close();
// make sure this reader can not modify the field map
- assertFNXFiles(dir, "2.fnx");
+ assertFNXFiles(dir, "_2.fnx");
IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
TEST_VERSION_CURRENT, new MockAnalyzer(random)));
writer.optimize();
assertFalse(" field numbers got mixed up", writer.anyNonBulkMerges);
writer.close();
- assertFNXFiles(dir, "2.fnx");
+ assertFNXFiles(dir, "_2.fnx");
dir.close();
}
@@ -162,7 +162,7 @@ public class TestGlobalFieldNumbers exte
d.add(new Field("f2", "d1 second field", TextField.TYPE_STORED));
writer.addDocument(d);
writer.commit();
- assertFNXFiles(dir, "1.fnx");
+ assertFNXFiles(dir, "_1.fnx");
d = new Document();
d.add(new Field("f1", "d2 first field", TextField.TYPE_STORED));
d.add(new BinaryField("f3", new byte[] { 1, 2, 3 }));
@@ -170,9 +170,9 @@ public class TestGlobalFieldNumbers exte
writer.commit();
writer.commit();
writer.commit();
- assertFNXFiles(dir, "1.fnx", "2.fnx");
+ assertFNXFiles(dir, "_1.fnx", "_2.fnx");
writer.close();
- assertFNXFiles(dir, "1.fnx", "2.fnx");
+ assertFNXFiles(dir, "_1.fnx", "_2.fnx");
}
{
@@ -184,14 +184,14 @@ public class TestGlobalFieldNumbers exte
d.add(new BinaryField("f3", new byte[] { 1, 2, 3, 4, 5 }));
writer.addDocument(d);
writer.close();
- assertFNXFiles(dir, "2.fnx");
+ assertFNXFiles(dir, "_2.fnx");
}
IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
TEST_VERSION_CURRENT, new MockAnalyzer(random)));
writer.optimize();
assertFalse(" field numbers got mixed up", writer.anyNonBulkMerges);
writer.close();
- assertFNXFiles(dir, "2.fnx");
+ assertFNXFiles(dir, "_2.fnx");
dir.close();
}
}
@@ -208,14 +208,14 @@ public class TestGlobalFieldNumbers exte
d.add(new Field("f2", "d1 second field", TextField.TYPE_STORED));
writer.addDocument(d);
writer.commit();
- assertFNXFiles(dir, "1.fnx");
+ assertFNXFiles(dir, "_1.fnx");
d = new Document();
d.add(new Field("f1", "d2 first field", TextField.TYPE_STORED));
d.add(new BinaryField("f3", new byte[] { 1, 2, 3 }));
writer.addDocument(d);
- assertFNXFiles(dir, "1.fnx");
+ assertFNXFiles(dir, "_1.fnx");
writer.close();
- assertFNXFiles(dir, "1.fnx", "2.fnx");
+ assertFNXFiles(dir, "_1.fnx", "_2.fnx");
// open first commit
List<IndexCommit> listCommits = IndexReader.listCommits(dir);
assertEquals(2, listCommits.size());
@@ -229,18 +229,18 @@ public class TestGlobalFieldNumbers exte
writer.addDocument(d);
writer.commit();
// now we have 3 files since f3 is not present in the first commit
- assertFNXFiles(dir, "1.fnx", "2.fnx", "3.fnx");
+ assertFNXFiles(dir, "_1.fnx", "_2.fnx", "_3.fnx");
writer.close();
- assertFNXFiles(dir, "1.fnx", "2.fnx", "3.fnx");
+ assertFNXFiles(dir, "_1.fnx", "_2.fnx", "_3.fnx");
writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT,
new MockAnalyzer(random)));
writer.commit();
listCommits = IndexReader.listCommits(dir);
assertEquals(1, listCommits.size());
- assertFNXFiles(dir, "3.fnx");
+ assertFNXFiles(dir, "_3.fnx");
writer.close();
- assertFNXFiles(dir, "3.fnx");
+ assertFNXFiles(dir, "_3.fnx");
dir.close();
}
}
@@ -494,7 +494,7 @@ public class TestGlobalFieldNumbers exte
assertEquals(1, segmentInfos.getGlobalFieldMapVersion());
assertEquals(1, segmentInfos.getLastGlobalFieldMapVersion());
files = writer.getIndexFileNames();
- assertTrue(files.remove("1.fnx"));
+ assertTrue(files.remove("_1.fnx"));
for (String string : files) {
assertFalse(string.endsWith(".fnx"));
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java Fri Nov 4 15:43:35 2011
@@ -39,7 +39,7 @@ import org.apache.lucene.document.FieldT
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexReader.FieldOption;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.lucene40.Lucene40PostingsFormat;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.FieldCache;
@@ -88,6 +88,7 @@ public class TestIndexReader extends Luc
writer = new IndexWriter(d, newIndexWriterConfig(TEST_VERSION_CURRENT,
new MockAnalyzer(random)).setOpenMode(
OpenMode.APPEND).setMaxBufferedDocs(2));
+ writer.setInfoStream(VERBOSE ? System.out : null);
for(int i=0;i<7;i++)
addDocumentWithFields(writer);
writer.close();
@@ -947,7 +948,7 @@ public class TestIndexReader extends Luc
writer.close();
SegmentInfos sis = new SegmentInfos();
- sis.read(d, CodecProvider.getDefault());
+ sis.read(d);
IndexReader r = IndexReader.open(d, false);
IndexCommit c = r.getIndexCommit();
@@ -1231,7 +1232,7 @@ public class TestIndexReader extends Luc
// LUCENE-1609: don't load terms index
public void testNoTermsIndex() throws Throwable {
Directory dir = newDirectory();
- IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodecProvider(_TestUtil.alwaysCodec("Standard")));
+ IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())));
Document doc = new Document();
doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE_UNSTORED));
doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE_UNSTORED));
@@ -1251,7 +1252,7 @@ public class TestIndexReader extends Luc
writer = new IndexWriter(
dir,
newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
- setCodecProvider(_TestUtil.alwaysCodec("Standard")).
+ setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())).
setMergePolicy(newLogMergePolicy(10))
);
writer.addDocument(doc);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java Fri Nov 4 15:43:35 2011
@@ -52,12 +52,17 @@ import org.apache.lucene.search.TopDocs;
import org.apache.lucene.search.spans.SpanTermQuery;
import org.apache.lucene.store.AlreadyClosedException;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.IndexOutput;
import org.apache.lucene.store.Lock;
import org.apache.lucene.store.LockFactory;
+import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.store.MockDirectoryWrapper;
+import org.apache.lucene.store.NativeFSLockFactory;
import org.apache.lucene.store.NoLockFactory;
import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.store.SimpleFSDirectory;
+import org.apache.lucene.store.SimpleFSLockFactory;
import org.apache.lucene.store.SingleInstanceLockFactory;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
@@ -1937,4 +1942,22 @@ public class TestIndexWriter extends Luc
assert(version3 > version2);
d.close();
}
+
+ public void testWhetherDeleteAllDeletesWriteLock() throws Exception {
+ Directory d = newFSDirectory(_TestUtil.getTempDir("TestIndexWriter.testWhetherDeleteAllDeletesWriteLock"));
+ // Must use SimpleFSLockFactory... NativeFSLockFactory
+ // somehow "knows" a lock is held against write.lock
+ // even if you remove that file:
+ d.setLockFactory(new SimpleFSLockFactory());
+ RandomIndexWriter w1 = new RandomIndexWriter(random, d);
+ w1.deleteAll();
+ try {
+ new RandomIndexWriter(random, d);
+ fail("should not be able to create another writer");
+ } catch (LockObtainFailedException lofe) {
+ // expected
+ }
+ w1.close();
+ d.close();
+ }
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java Fri Nov 4 15:43:35 2011
@@ -28,7 +28,6 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Field;
import org.apache.lucene.document.StringField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
@@ -169,8 +168,10 @@ public class TestIndexWriterCommit exten
// them, the merged result can easily be larger than the
// sum because the merged FST may use array encoding for
// some arcs (which uses more space):
- assumeFalse("This test cannot run with Memory codec", CodecProvider.getDefault().getFieldCodec("id").equals("Memory"));
- assumeFalse("This test cannot run with Memory codec", CodecProvider.getDefault().getFieldCodec("content").equals("Memory"));
+
+ final String idFormat = _TestUtil.getPostingsFormat("id");
+ final String contentFormat = _TestUtil.getPostingsFormat("content");
+ assumeFalse("This test cannot run with Memory codec", idFormat.equals("Memory") || contentFormat.equals("Memory"));
MockDirectoryWrapper dir = newDirectory();
Analyzer analyzer;
if (random.nextBoolean()) {
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java Fri Nov 4 15:43:35 2011
@@ -26,6 +26,7 @@ import java.util.Set;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.index.DocumentsWriterPerThread.IndexingChain;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.similarities.DefaultSimilarityProvider;
import org.apache.lucene.util.LuceneTestCase;
@@ -71,6 +72,7 @@ public class TestIndexWriterConfig exten
assertEquals(ThreadAffinityDocumentsWriterThreadPool.class, conf.getIndexerThreadPool().getClass());
assertEquals(FlushByRamOrCountsPolicy.class, conf.getFlushPolicy().getClass());
assertEquals(IndexWriterConfig.DEFAULT_RAM_PER_THREAD_HARD_LIMIT_MB, conf.getRAMPerThreadHardLimitMB());
+ assertEquals(Codec.getDefault(), conf.getCodec());
// Sanity check - validate that all getters are covered.
Set<String> getters = new HashSet<String>();
getters.add("getAnalyzer");
@@ -88,7 +90,6 @@ public class TestIndexWriterConfig exten
getters.add("getMaxBufferedDocs");
getters.add("getIndexingChain");
getters.add("getMergedSegmentWarmer");
- getters.add("getCodecProvider");
getters.add("getMergePolicy");
getters.add("getMaxThreadStates");
getters.add("getReaderPooling");
@@ -96,6 +97,7 @@ public class TestIndexWriterConfig exten
getters.add("getReaderTermsIndexDivisor");
getters.add("getFlushPolicy");
getters.add("getRAMPerThreadHardLimitMB");
+ getters.add("getCodec");
for (Method m : IndexWriterConfig.class.getDeclaredMethods()) {
if (m.getDeclaringClass() == IndexWriterConfig.class && m.getName().startsWith("get")) {
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java Fri Nov 4 15:43:35 2011
@@ -31,7 +31,6 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.FieldType;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
@@ -897,8 +896,9 @@ public class TestIndexWriterDelete exten
}
public void testIndexingThenDeleting() throws Exception {
- assumeFalse("This test cannot run with Memory codec", CodecProvider.getDefault().getFieldCodec("field").equals("Memory"));
- assumeFalse("This test cannot run with SimpleText codec", CodecProvider.getDefault().getFieldCodec("field").equals("SimpleText"));
+ final String fieldFormat = _TestUtil.getPostingsFormat("field");
+ assumeFalse("This test cannot run with Memory codec", fieldFormat.equals("Memory"));
+ assumeFalse("This test cannot run with SimpleText codec", fieldFormat.equals("SimpleText"));
final Random r = random;
Directory dir = newDirectory();
// note this test explicitly disables payloads
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Fri Nov 4 15:43:35 2011
@@ -23,6 +23,7 @@ import java.io.PrintStream;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
@@ -927,10 +928,10 @@ public class TestIndexWriterExceptions e
} catch (RuntimeException re) {
// Expected
}
- assertTrue(dir.fileExists("1.fnx"));
+ assertTrue(dir.fileExists("_1.fnx"));
assertTrue(failure.failOnCommit && failure.failOnDeleteFile);
w.rollback();
- assertFalse(dir.fileExists("1.fnx"));
+ assertFalse(dir.fileExists("_1.fnx"));
assertEquals(0, dir.listAll().length);
dir.close();
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java Fri Nov 4 15:43:35 2011
@@ -24,7 +24,7 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.FieldType;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
@@ -154,8 +154,10 @@ public class TestIndexWriterOnDiskFull e
// them, the merged result can easily be larger than the
// sum because the merged FST may use array encoding for
// some arcs (which uses more space):
- assumeFalse("This test cannot run with Memory codec", CodecProvider.getDefault().getFieldCodec("id").equals("Memory"));
- assumeFalse("This test cannot run with Memory codec", CodecProvider.getDefault().getFieldCodec("content").equals("Memory"));
+
+ final String idFormat = _TestUtil.getPostingsFormat("id");
+ final String contentFormat = _TestUtil.getPostingsFormat("content");
+ assumeFalse("This test cannot run with Memory codec", idFormat.equals("Memory") || contentFormat.equals("Memory"));
int START_COUNT = 57;
int NUM_DIR = TEST_NIGHTLY ? 50 : 5;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java Fri Nov 4 15:43:35 2011
@@ -30,6 +30,7 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Field;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
@@ -988,15 +989,16 @@ public class TestIndexWriterReader exten
public void testNoTermsIndex() throws Exception {
// Some Codecs don't honor the ReaderTermsIndexDivisor, so skip the test if
// they're picked.
- HashSet<String> illegalCodecs = new HashSet<String>();
- illegalCodecs.add("PreFlex");
- illegalCodecs.add("SimpleText");
- illegalCodecs.add("Memory");
+ assumeFalse("PreFlex codec does not support ReaderTermsIndexDivisor!",
+ "Lucene3x".equals(Codec.getDefault().getName()));
IndexWriterConfig conf = newIndexWriterConfig(TEST_VERSION_CURRENT,
new MockAnalyzer(random)).setReaderTermsIndexDivisor(-1);
+
// Don't proceed if picked Codec is in the list of illegal ones.
- if (illegalCodecs.contains(conf.getCodecProvider().getFieldCodec("f"))) return;
+ final String format = _TestUtil.getPostingsFormat("f");
+ assumeFalse("Format: " + format + " does not support ReaderTermsIndexDivisor!",
+ (format.equals("SimpleText") || format.equals("Memory")));
Directory dir = newDirectory();
IndexWriter w = new IndexWriter(dir, conf);
@@ -1006,7 +1008,7 @@ public class TestIndexWriterReader exten
IndexReader r = IndexReader.open(w, true).getSequentialSubReaders()[0];
try {
r.termDocsEnum(null, "f", new BytesRef("val"));
- fail("should have failed to seek since terms index was not loaded. Codec used " + conf.getCodecProvider().getFieldCodec("f"));
+ fail("should have failed to seek since terms index was not loaded.");
} catch (IllegalStateException e) {
// expected - we didn't load the term index
} finally {
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java Fri Nov 4 15:43:35 2011
@@ -23,7 +23,6 @@ import java.io.Reader;
import org.apache.lucene.analysis.*;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PhraseQuery;
import org.apache.lucene.search.ScoreDoc;
@@ -34,6 +33,7 @@ import org.apache.lucene.store.MockDirec
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util._TestUtil;
/**
* Tests lazy skipping on the proximity file.
@@ -131,8 +131,10 @@ public class TestLazyProxSkipping extend
}
public void testLazySkipping() throws IOException {
- assumeFalse("This test cannot run with SimpleText codec", CodecProvider.getDefault().getFieldCodec(this.field).equals("SimpleText"));
- assumeFalse("This test cannot run with Memory codec", CodecProvider.getDefault().getFieldCodec(this.field).equals("Memory"));
+ final String fieldFormat = _TestUtil.getPostingsFormat(this.field);
+ assumeFalse("This test cannot run with Memory codec", fieldFormat.equals("Memory"));
+ assumeFalse("This test cannot run with SimpleText codec", fieldFormat.equals("SimpleText"));
+
// test whether only the minimum amount of seeks()
// are performed
performTest(5);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLongPostings.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLongPostings.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLongPostings.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLongPostings.java Fri Nov 4 15:43:35 2011
@@ -29,7 +29,6 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
import org.apache.lucene.index.FieldInfo.IndexOptions;
import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java Fri Nov 4 15:43:35 2011
@@ -25,6 +25,7 @@ import org.apache.lucene.analysis.*;
import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.TextField;
+import org.apache.lucene.index.codecs.lucene40.Lucene40PostingsFormat;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.IndexInput;
@@ -68,7 +69,7 @@ public class TestMultiLevelSkipList exte
public void testSimpleSkip() throws IOException {
Directory dir = new CountingRAMDirectory(new RAMDirectory());
- IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new PayloadAnalyzer()).setCodecProvider(_TestUtil.alwaysCodec("Standard")).setMergePolicy(newLogMergePolicy()));
+ IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new PayloadAnalyzer()).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())).setMergePolicy(newLogMergePolicy()));
Term term = new Term("test", "a");
for (int i = 0; i < 5000; i++) {
Document d1 = new Document();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestReaderClosed.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestReaderClosed.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestReaderClosed.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestReaderClosed.java Fri Nov 4 15:43:35 2011
@@ -22,7 +22,6 @@ import org.apache.lucene.analysis.MockTo
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.StringField;
-import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermRangeQuery;
import org.apache.lucene.store.AlreadyClosedException;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestRollingUpdates.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestRollingUpdates.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestRollingUpdates.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestRollingUpdates.java Fri Nov 4 15:43:35 2011
@@ -19,7 +19,8 @@ package org.apache.lucene.index;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.*;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
+import org.apache.lucene.index.codecs.memory.MemoryPostingsFormat;
import org.apache.lucene.store.*;
import org.apache.lucene.util.*;
import org.junit.Test;
@@ -35,13 +36,12 @@ public class TestRollingUpdates extends
dir.setCheckIndexOnClose(false); // we use a custom codec provider
final LineFileDocs docs = new LineFileDocs(random);
- CodecProvider provider = CodecProvider.getDefault();
//provider.register(new MemoryCodec());
- if ( (!"PreFlex".equals(provider.getDefaultFieldCodec())) && random.nextBoolean()) {
- provider.setFieldCodec("docid", "Memory");
+ if ( (!"Lucene3x".equals(Codec.getDefault().getName())) && random.nextBoolean()) {
+ Codec.setDefault(_TestUtil.alwaysPostingsFormat(new MemoryPostingsFormat()));
}
- final IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodecProvider(provider));
+ final IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)));
w.setInfoStream(VERBOSE ? System.out : null);
final int SIZE = atLeast(TEST_NIGHTLY ? 100 : 20);
int id = 0;