Index: solr/contrib/clustering/build.xml
===================================================================
--- solr/contrib/clustering/build.xml (revision 1099052)
+++ solr/contrib/clustering/build.xml (working copy)
@@ -118,6 +118,7 @@
>
+
Index: solr/contrib/extraction/build.xml
===================================================================
--- solr/contrib/extraction/build.xml (revision 1099052)
+++ solr/contrib/extraction/build.xml (working copy)
@@ -115,6 +115,7 @@
>
+
Index: solr/contrib/dataimporthandler/build.xml
===================================================================
--- solr/contrib/dataimporthandler/build.xml (revision 1099052)
+++ solr/contrib/dataimporthandler/build.xml (working copy)
@@ -171,6 +171,7 @@
+
@@ -231,6 +232,7 @@
>
+
Index: solr/contrib/analysis-extras/build.xml
===================================================================
--- solr/contrib/analysis-extras/build.xml (revision 1099052)
+++ solr/contrib/analysis-extras/build.xml (working copy)
@@ -146,6 +146,7 @@
>
+
Index: solr/contrib/uima/build.xml
===================================================================
--- solr/contrib/uima/build.xml (revision 1099052)
+++ solr/contrib/uima/build.xml (working copy)
@@ -114,6 +114,7 @@
>
+
Index: solr/common-build.xml
===================================================================
--- solr/common-build.xml (revision 1099052)
+++ solr/common-build.xml (working copy)
@@ -61,6 +61,7 @@
+
Index: solr/build.xml
===================================================================
--- solr/build.xml (revision 1099052)
+++ solr/build.xml (working copy)
@@ -450,6 +450,7 @@
>
+
Index: lucene/common-build.xml
===================================================================
--- lucene/common-build.xml (revision 1099052)
+++ lucene/common-build.xml (working copy)
@@ -73,6 +73,7 @@
+
@@ -499,6 +500,8 @@
+
+
Index: lucene/src/java/org/apache/lucene/index/codecs/CodecProvider.java
===================================================================
--- lucene/src/java/org/apache/lucene/index/codecs/CodecProvider.java (revision 1099052)
+++ lucene/src/java/org/apache/lucene/index/codecs/CodecProvider.java (working copy)
@@ -71,6 +71,11 @@
}
}
}
+
+ /** @lucene.internal */
+ public synchronized Set listAll() {
+ return codecs.keySet();
+ }
public Collection getAllExtensions() {
return knownExtensions;
Index: lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java
===================================================================
--- lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java (revision 1099052)
+++ lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java (working copy)
@@ -137,6 +137,8 @@
// tests)
/** Gets the codec to run tests with. */
public static final String TEST_CODEC = System.getProperty("tests.codec", "randomPerField");
+ /** Gets the codecprovider to run tests with */
+ public static final String TEST_CODECPROVIDER = System.getProperty("tests.codecprovider", "random");
/** Gets the locale to run tests with */
public static final String TEST_LOCALE = System.getProperty("tests.locale", "random");
/** Gets the timezone to run tests with */
@@ -329,15 +331,38 @@
tempDirs.clear();
stores = Collections.synchronizedMap(new IdentityHashMap());
savedCodecProvider = CodecProvider.getDefault();
- if ("randomPerField".equals(TEST_CODEC)) {
- if (random.nextInt(4) == 0) { // preflex-only setup
- codec = installTestCodecs("PreFlex", CodecProvider.getDefault());
- } else { // per-field setup
- CodecProvider.setDefault(new RandomCodecProvider(random));
+ if ("random".equals(TEST_CODECPROVIDER)) {
+ if ("randomPerField".equals(TEST_CODEC)) {
+ if (random.nextInt(4) == 0) { // preflex-only setup
+ codec = installTestCodecs("PreFlex", CodecProvider.getDefault());
+ } else { // per-field setup
+ CodecProvider.setDefault(new RandomCodecProvider(random));
+ codec = installTestCodecs(TEST_CODEC, CodecProvider.getDefault());
+ }
+ } else { // ordinary setup
codec = installTestCodecs(TEST_CODEC, CodecProvider.getDefault());
}
- } else { // ordinary setup
- codec = installTestCodecs(TEST_CODEC, CodecProvider.getDefault());
+ } else {
+ // someone specified their own codecprovider by class
+ try {
+ Class extends CodecProvider> cpClazz = Class.forName(TEST_CODECPROVIDER).asSubclass(CodecProvider.class);
+ CodecProvider cp = cpClazz.newInstance();
+ String codecName;
+ if (TEST_CODEC.startsWith("random")) { // TODO: somehow do random per-field?!
+ Set codecSet = cp.listAll();
+ String availableCodecs[] = codecSet.toArray(new String[codecSet.size()]);
+ codecName = availableCodecs[random.nextInt(availableCodecs.length)];
+ } else {
+ codecName = TEST_CODEC;
+ }
+
+ codec = cp.lookup(codecName);
+ cp.setDefaultFieldCodec(codecName);
+ CodecProvider.setDefault(cp);
+ } catch (Exception e) {
+ System.err.println("Could not instantiate CodecProvider: " + TEST_CODECPROVIDER);
+ throw new RuntimeException(e);
+ }
}
savedLocale = Locale.getDefault();
locale = TEST_LOCALE.equals("random") ? randomLocale(random) : localeForName(TEST_LOCALE);
@@ -360,16 +385,13 @@
String codecDescription;
CodecProvider cp = CodecProvider.getDefault();
- if ("randomPerField".equals(TEST_CODEC)) {
- if (cp instanceof RandomCodecProvider)
- codecDescription = cp.toString();
- else
- codecDescription = "PreFlex";
+ if ("randomPerField".equals(TEST_CODEC) && cp instanceof RandomCodecProvider) {
+ codecDescription = cp.toString();
} else {
codecDescription = codec.toString();
}
- if (CodecProvider.getDefault() == savedCodecProvider)
+ if ("random".equals(TEST_CODECPROVIDER) && CodecProvider.getDefault() == savedCodecProvider)
removeTestCodecs(codec, CodecProvider.getDefault());
CodecProvider.setDefault(savedCodecProvider);
Locale.setDefault(savedLocale);