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) {
       //