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 2010/07/23 19:09:00 UTC
svn commit: r967165 - in /lucene/dev/branches/preflexfixes/lucene/src:
java/org/apache/lucene/index/codecs/ test/org/apache/lucene/index/
test/org/apache/lucene/util/
Author: rmuir
Date: Fri Jul 23 17:09:00 2010
New Revision: 967165
URL: http://svn.apache.org/viewvc?rev=967165&view=rev
Log:
fix the core tests to pass (with any -Dtests.codec). pull codec randomization from RIW... we should support -Dtests.codec=random instead!
Modified:
lucene/dev/branches/preflexfixes/lucene/src/java/org/apache/lucene/index/codecs/CodecProvider.java
lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/index/RandomIndexWriter.java
lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/util/LuceneTestCase.java
lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/util/LuceneTestCaseJ4.java
Modified: lucene/dev/branches/preflexfixes/lucene/src/java/org/apache/lucene/index/codecs/CodecProvider.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/preflexfixes/lucene/src/java/org/apache/lucene/index/codecs/CodecProvider.java?rev=967165&r1=967164&r2=967165&view=diff
==============================================================================
--- lucene/dev/branches/preflexfixes/lucene/src/java/org/apache/lucene/index/codecs/CodecProvider.java (original)
+++ lucene/dev/branches/preflexfixes/lucene/src/java/org/apache/lucene/index/codecs/CodecProvider.java Fri Jul 23 17:09:00 2010
@@ -61,6 +61,21 @@ public abstract class CodecProvider {
throw new IllegalArgumentException("codec '" + codec.name + "' is already registered as a different codec instance");
}
}
+
+ /** @lucene.internal */
+ public void unregister(Codec codec) {
+ if (codec.name == null) {
+ throw new IllegalArgumentException("code.name is null");
+ }
+ // nocommit
+ if (codecs.containsKey(codec.name)) {
+ Codec c = codecs.get(codec.name);
+ if (codec.getClass().isAssignableFrom(c.getClass()))
+ codecs.remove(codec.name);
+ else
+ throw new IllegalArgumentException("codec '" + codec.name + "' is being impersonated by a different codec instance!!!");
+ }
+ }
public Collection<String> getAllExtensions() {
return knownExtensions;
Modified: lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/index/RandomIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/index/RandomIndexWriter.java?rev=967165&r1=967164&r2=967165&view=diff
==============================================================================
--- lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/index/RandomIndexWriter.java (original)
+++ lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/index/RandomIndexWriter.java Fri Jul 23 17:09:00 2010
@@ -17,21 +17,14 @@ package org.apache.lucene.index;
* limitations under the License.
*/
-import java.util.Random;
import java.io.Closeable;
import java.io.IOException;
+import java.util.Random;
-import org.apache.lucene.util._TestUtil;
-import org.apache.lucene.store.Directory;
import org.apache.lucene.document.Document;
-import org.apache.lucene.index.codecs.Codec;
-import org.apache.lucene.index.codecs.CodecProvider;
-import org.apache.lucene.index.codecs.intblock.IntBlockCodec;
import org.apache.lucene.index.codecs.preflex.PreFlexCodec;
-import org.apache.lucene.index.codecs.preflexrw.PreFlexRWCodec;
-import org.apache.lucene.index.codecs.pulsing.PulsingCodec;
-import org.apache.lucene.index.codecs.sep.SepCodec;
-import org.apache.lucene.index.codecs.standard.StandardCodec;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util._TestUtil;
/** Silly class that randomizes the indexing experience. EG
* it may swap in a different merge policy/scheduler; may
@@ -69,7 +62,6 @@ public class RandomIndexWriter implement
}
c.setReaderPooling(r.nextBoolean());
- c.setCodecProvider(new RandomCodecProvider(r));
w = new IndexWriter(dir, c);
flushAt = _TestUtil.nextInt(r, 10, 1000);
}
@@ -123,27 +115,4 @@ public class RandomIndexWriter implement
public void optimize() throws IOException {
w.optimize();
}
-
- class RandomCodecProvider extends CodecProvider {
- final String codec;
-
- RandomCodecProvider(Random random) {
- register(new StandardCodec());
- register(new IntBlockCodec());
- // nocommit
- //register(new PreFlexCodec());
- register(new PreFlexRWCodec());
- register(new PulsingCodec());
- register(new SepCodec());
- // nocommit
- //codec =
- //CodecProvider.CORE_CODECS[random.nextInt(CodecProvider.CORE_CODECS.length)];
- codec = "PreFlex";
- }
-
- @Override
- public Codec getWriter(SegmentWriteState state) {
- return lookup(codec);
- }
- }
}
Modified: lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/util/LuceneTestCase.java?rev=967165&r1=967164&r2=967165&view=diff
==============================================================================
--- lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/util/LuceneTestCase.java Fri Jul 23 17:09:00 2010
@@ -75,6 +75,7 @@ public abstract class LuceneTestCase ext
private volatile Thread.UncaughtExceptionHandler savedUncaughtExceptionHandler = null;
private String savedDefaultCodec;
+ private String codec;
/** Used to track if setUp and tearDown are called correctly from subclasses */
private boolean setup;
@@ -115,7 +116,12 @@ public abstract class LuceneTestCase ext
ConcurrentMergeScheduler.setTestMode();
savedBoolMaxClauseCount = BooleanQuery.getMaxClauseCount();
savedDefaultCodec = CodecProvider.getDefaultCodec();
- CodecProvider.setDefaultCodec(_TestUtil.getTestCodec());
+ codec = _TestUtil.getTestCodec();
+ //nocommit
+ if (codec.equals("PreFlex")) {
+ CodecProvider.getDefault().register(new PreFlexRWCodec());
+ }
+ CodecProvider.setDefaultCodec(codec);
}
/**
@@ -141,6 +147,10 @@ public abstract class LuceneTestCase ext
assertTrue("ensure your setUp() calls super.setUp()!!!", setup);
setup = false;
BooleanQuery.setMaxClauseCount(savedBoolMaxClauseCount);
+ // nocommit
+ if (codec.equals("PreFlex")) {
+ CodecProvider.getDefault().unregister(new PreFlexRWCodec());
+ }
CodecProvider.setDefaultCodec(savedDefaultCodec);
try {
@@ -305,10 +315,4 @@ public abstract class LuceneTestCase ext
// static members
private static final Random seedRnd = new Random();
-
- // register preflex-rw statically.
- static {
- CodecProvider.getDefault().register(new PreFlexRWCodec());
- }
-
}
Modified: lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/util/LuceneTestCaseJ4.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/util/LuceneTestCaseJ4.java?rev=967165&r1=967164&r2=967165&view=diff
==============================================================================
--- lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/util/LuceneTestCaseJ4.java (original)
+++ lucene/dev/branches/preflexfixes/lucene/src/test/org/apache/lucene/util/LuceneTestCaseJ4.java Fri Jul 23 17:09:00 2010
@@ -134,15 +134,24 @@ public class LuceneTestCaseJ4 {
// saves default codec: we do this statically as many build indexes in @beforeClass
private static String savedDefaultCodec;
+ private static String codec;
@BeforeClass
public static void beforeClassLuceneTestCaseJ4() {
savedDefaultCodec = CodecProvider.getDefaultCodec();
- CodecProvider.setDefaultCodec(_TestUtil.getTestCodec());
+ codec = _TestUtil.getTestCodec();
+ //nocommit
+ if (codec.equals("PreFlex")) {
+ CodecProvider.getDefault().register(new PreFlexRWCodec());
+ }
+ CodecProvider.setDefaultCodec(codec);
}
@AfterClass
public static void afterClassLuceneTestCaseJ4() {
+ //nocommit
+ if (codec.equals("PreFlex"))
+ CodecProvider.getDefault().unregister(new PreFlexRWCodec());
CodecProvider.setDefaultCodec(savedDefaultCodec);
}
@@ -423,9 +432,4 @@ public class LuceneTestCaseJ4 {
private static final Random seedRnd = new Random();
private String name = "<unknown>";
-
- // register PreFlexRWCodec statically
- static {
- CodecProvider.getDefault().register(new PreFlexRWCodec());
- }
}