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/10/29 03:13:34 UTC
svn commit: r1190727 - in /lucene/dev/branches/lucene2621:
lucene/src/java/org/apache/lucene/index/codecs/lucene40/
lucene/src/java/org/apache/lucene/index/codecs/perfield/
lucene/src/test-framework/org/apache/lucene/index/
solr/core/src/java/org/apach...
Author: rmuir
Date: Sat Oct 29 01:13:34 2011
New Revision: 1190727
URL: http://svn.apache.org/viewvc?rev=1190727&view=rev
Log:
LUCENE-3490: fix TestCodecProviderSupport
Modified:
lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40Codec.java
lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/perfield/PerFieldPostingsFormat.java
lucene/dev/branches/lucene2621/lucene/src/test-framework/org/apache/lucene/index/RandomCodec.java
lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/DefaultCodecProviderFactory.java
lucene/dev/branches/lucene2621/solr/core/src/test/org/apache/solr/core/TestCodecProviderSupport.java
Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40Codec.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40Codec.java?rev=1190727&r1=1190726&r2=1190727&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40Codec.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40Codec.java Sat Oct 29 01:13:34 2011
@@ -20,7 +20,6 @@ package org.apache.lucene.index.codecs.l
import java.util.HashMap;
import java.util.Map;
-import org.apache.lucene.index.FieldInfo;
import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.index.codecs.DefaultDocValuesFormat;
import org.apache.lucene.index.codecs.DefaultFieldsFormat;
@@ -44,12 +43,12 @@ public class Lucene40Codec extends Codec
private final DocValuesFormat docValuesFormat = new DefaultDocValuesFormat();
private final PostingsFormat postingsFormat = new PerFieldPostingsFormat() {
@Override
- protected String getPostingsFormatForField(FieldInfo field) {
+ public String getPostingsFormatForField(String field) {
return Lucene40Codec.this.getPostingsFormatForField(field);
}
@Override
- protected PostingsFormat getPostingsFormat(String formatName) {
+ public PostingsFormat getPostingsFormat(String formatName) {
return Lucene40Codec.this.getPostingsFormat(formatName);
}
};
@@ -86,7 +85,7 @@ public class Lucene40Codec extends Codec
*
* The default implementation always returns "Lucene40"
*/
- public String getPostingsFormatForField(FieldInfo field) {
+ public String getPostingsFormatForField(String field) {
return "Lucene40";
}
Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/perfield/PerFieldPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/perfield/PerFieldPostingsFormat.java?rev=1190727&r1=1190726&r2=1190727&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/perfield/PerFieldPostingsFormat.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/perfield/PerFieldPostingsFormat.java Sat Oct 29 01:13:34 2011
@@ -19,33 +19,24 @@ package org.apache.lucene.index.codecs.p
import java.io.Closeable;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
-import java.util.TreeSet;
import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.FieldInfos;
import org.apache.lucene.index.FieldsEnum;
import org.apache.lucene.index.IndexFileNames;
-import org.apache.lucene.index.PerDocWriteState;
import org.apache.lucene.index.SegmentInfo;
import org.apache.lucene.index.SegmentReadState;
import org.apache.lucene.index.SegmentWriteState;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.index.codecs.DocValuesConsumer;
import org.apache.lucene.index.codecs.FieldsConsumer;
import org.apache.lucene.index.codecs.FieldsProducer;
-import org.apache.lucene.index.codecs.PerDocConsumer;
-import org.apache.lucene.index.codecs.PerDocValues;
import org.apache.lucene.index.codecs.PostingsFormat;
import org.apache.lucene.index.codecs.TermsConsumer;
-import org.apache.lucene.index.values.IndexDocValues;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.IndexInput;
@@ -121,7 +112,7 @@ public abstract class PerFieldPostingsFo
@Override
public TermsConsumer addField(FieldInfo field) throws IOException {
- final String formatName = getPostingsFormatForField(field);
+ final String formatName = getPostingsFormatForField(field.name);
FieldsConsumerAndID format = formats.get(formatName);
if (format == null) {
// First time we are seeing this format -- assign
@@ -194,7 +185,7 @@ public abstract class PerFieldPostingsFo
try {
for (FieldInfo fi : readState.fieldInfos) {
if (fi.isIndexed) {
- String formatName = getPostingsFormatForField(fi);
+ String formatName = getPostingsFormatForField(fi.name);
FieldsProducer fieldsProducer = formats.get(formatName);
// Better be defined, because it was defined
// during indexing:
@@ -315,7 +306,10 @@ public abstract class PerFieldPostingsFo
};
}
- protected abstract String getPostingsFormatForField(FieldInfo field);
+ // nocommit: do we really need to pass fieldInfo here?
+ // sucks for 'outsiders' (like tests!) that want to peep at what format
+ // is being used for a field... changed to a String for now.. but lets revisit
+ public abstract String getPostingsFormatForField(String field);
- protected abstract PostingsFormat getPostingsFormat(String formatName);
+ public abstract PostingsFormat getPostingsFormat(String formatName);
}
Modified: lucene/dev/branches/lucene2621/lucene/src/test-framework/org/apache/lucene/index/RandomCodec.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/test-framework/org/apache/lucene/index/RandomCodec.java?rev=1190727&r1=1190726&r2=1190727&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/test-framework/org/apache/lucene/index/RandomCodec.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/test-framework/org/apache/lucene/index/RandomCodec.java Sat Oct 29 01:13:34 2011
@@ -57,8 +57,7 @@ public class RandomCodec extends Lucene4
}
@Override
- public synchronized String getPostingsFormatForField(FieldInfo field) {
- String name = field.name;
+ public synchronized String getPostingsFormatForField(String name) {
PostingsFormat codec = previousMappings.get(name);
if (codec == null) {
codec = knownCodecs.get(Math.abs(perFieldSeed ^ name.hashCode()) % knownCodecs.size());
Modified: lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/DefaultCodecProviderFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/DefaultCodecProviderFactory.java?rev=1190727&r1=1190726&r2=1190727&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/DefaultCodecProviderFactory.java (original)
+++ lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/DefaultCodecProviderFactory.java Sat Oct 29 01:13:34 2011
@@ -17,7 +17,6 @@ package org.apache.solr.core;
* limitations under the License.
*/
-import org.apache.lucene.index.FieldInfo;
import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.index.codecs.CoreCodecProvider;
@@ -40,10 +39,10 @@ public class DefaultCodecProviderFactory
public Codec getDefaultCodec() {
return new Lucene40Codec() {
@Override
- public String getPostingsFormatForField(FieldInfo field) {
- final SchemaField fieldOrNull = schema.getFieldOrNull(field.name);
+ public String getPostingsFormatForField(String field) {
+ final SchemaField fieldOrNull = schema.getFieldOrNull(field);
if (fieldOrNull == null) {
- throw new IllegalArgumentException("no such field " + field.name);
+ throw new IllegalArgumentException("no such field " + field);
}
String postingsFormatName = fieldOrNull.getType().getPostingsFormat();
if (postingsFormatName != null) {
Modified: lucene/dev/branches/lucene2621/solr/core/src/test/org/apache/solr/core/TestCodecProviderSupport.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/core/src/test/org/apache/solr/core/TestCodecProviderSupport.java?rev=1190727&r1=1190726&r2=1190727&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/core/src/test/org/apache/solr/core/TestCodecProviderSupport.java (original)
+++ lucene/dev/branches/lucene2621/solr/core/src/test/org/apache/solr/core/TestCodecProviderSupport.java Sat Oct 29 01:13:34 2011
@@ -20,7 +20,7 @@ package org.apache.solr.core;
import java.util.Map;
import org.apache.lucene.index.codecs.CodecProvider;
-import org.apache.lucene.index.codecs.lucene40.Lucene40PostingsFormat;
+import org.apache.lucene.index.codecs.perfield.PerFieldPostingsFormat;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.schema.SchemaField;
import org.junit.BeforeClass;
@@ -32,40 +32,38 @@ public class TestCodecProviderSupport ex
initCore("solrconfig_codec.xml", "schema_codec.xml");
}
- public void testCodecs() {
+ public void testPostingsFormats() {
CodecProvider codecProvider = h.getCore().getCodecProvider();
Map<String, SchemaField> fields = h.getCore().getSchema().getFields();
SchemaField schemaField = fields.get("string_pulsing_f");
- assertEquals("Pulsing", codecProvider.getFieldCodec(schemaField.getName()));
+ PerFieldPostingsFormat format = (PerFieldPostingsFormat) codecProvider.getDefaultCodec().postingsFormat();
+ assertEquals("Pulsing", format.getPostingsFormatForField(schemaField.getName()));
schemaField = fields.get("string_simpletext_f");
assertEquals("SimpleText",
- codecProvider.getFieldCodec(schemaField.getName()));
+ format.getPostingsFormatForField(schemaField.getName()));
schemaField = fields.get("string_standard_f");
- assertEquals("Standard", codecProvider.getFieldCodec(schemaField.getName()));
+ assertEquals("Lucene40", format.getPostingsFormatForField(schemaField.getName()));
schemaField = fields.get("string_f");
- assertEquals("Pulsing", codecProvider.getFieldCodec(schemaField.getName()));
-
- assertTrue(codecProvider.hasFieldCodec("string_simpletext_f"));
- assertTrue(codecProvider.hasFieldCodec("string_standard_f"));
- assertTrue(codecProvider.hasFieldCodec("string_f"));
+ assertEquals("Pulsing", format.getPostingsFormatForField(schemaField.getName()));
}
public void testDynamicFields() {
CodecProvider codecProvider = h.getCore().getCodecProvider();
+ PerFieldPostingsFormat format = (PerFieldPostingsFormat) codecProvider.getDefaultCodec().postingsFormat();
- assertTrue(codecProvider.hasFieldCodec("bar_simple"));
- assertTrue(codecProvider.hasFieldCodec("bar_pulsing"));
- assertTrue(codecProvider.hasFieldCodec("bar_standard"));
-
- assertEquals("SimpleText", codecProvider.getFieldCodec("foo_simple"));
- assertEquals("Pulsing", codecProvider.getFieldCodec("foo_pulsing"));
- assertEquals("Standard", codecProvider.getFieldCodec("foo_standard"));
+ assertEquals("SimpleText", format.getPostingsFormatForField("foo_simple"));
+ assertEquals("SimpleText", format.getPostingsFormatForField("bar_simple"));
+ assertEquals("Pulsing", format.getPostingsFormatForField("foo_pulsing"));
+ assertEquals("Pulsing", format.getPostingsFormatForField("bar_pulsing"));
+ assertEquals("Lucene40", format.getPostingsFormatForField("foo_standard"));
+ assertEquals("Lucene40", format.getPostingsFormatForField("bar_standard"));
}
public void testUnknownField() {
CodecProvider codecProvider = h.getCore().getCodecProvider();
+ PerFieldPostingsFormat format = (PerFieldPostingsFormat) codecProvider.getDefaultCodec().postingsFormat();
try {
- codecProvider.getFieldCodec("notexisting");
+ format.getPostingsFormatForField("notexisting");
fail("field is not existing");
} catch (IllegalArgumentException e) {
//