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 2013/04/06 13:08:21 UTC
svn commit: r1465224 [9/9] - in /lucene/dev/branches/branch_4x: ./ lucene/
lucene/analysis/
lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/
lucene/analysis/common/src/java/org/apache/lucene/analysis/bg/
lucene/analysis/common/src/java/or...
Modified: lucene/dev/branches/branch_4x/lucene/analysis/phonetic/src/test/org/apache/lucene/analysis/phonetic/TestPhoneticFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/phonetic/src/test/org/apache/lucene/analysis/phonetic/TestPhoneticFilterFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/phonetic/src/test/org/apache/lucene/analysis/phonetic/TestPhoneticFilterFactory.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/phonetic/src/test/org/apache/lucene/analysis/phonetic/TestPhoneticFilterFactory.java Sat Apr 6 11:08:17 2013
@@ -29,102 +29,107 @@ import org.apache.lucene.analysis.MockTo
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.util.ClasspathResourceLoader;
-import org.apache.lucene.util.LuceneTestCase.Slow;
-
-/**
- *
- */
-@Slow
public class TestPhoneticFilterFactory extends BaseTokenStreamTestCase {
- private static final int REPEATS = 100000;
-
/**
* Case: default
*/
- public void testFactory() throws IOException {
- Map<String,String> args = new HashMap<String, String>();
-
- PhoneticFilterFactory ff = new PhoneticFilterFactory();
-
- args.put( PhoneticFilterFactory.ENCODER, "Metaphone" );
- ff.init( args );
- ff.inform(new ClasspathResourceLoader(ff.getClass()));
- assertTrue( ff.getEncoder() instanceof Metaphone );
- assertTrue( ff.inject ); // default
-
- args.put( PhoneticFilterFactory.INJECT, "false" );
- ff.init( args );
- ff.inform(new ClasspathResourceLoader(ff.getClass()));
- assertFalse( ff.inject );
-
- args.put( PhoneticFilterFactory.MAX_CODE_LENGTH, "2");
- ff.init(args);
- ff.inform(new ClasspathResourceLoader(ff.getClass()));
- assertEquals(2, ((Metaphone) ff.getEncoder()).getMaxCodeLen());
+ public void testFactoryDefaults() throws IOException {
+ Map<String,String> args = new HashMap<String,String>();
+ args.put(PhoneticFilterFactory.ENCODER, "Metaphone");
+ PhoneticFilterFactory factory = new PhoneticFilterFactory(args);
+ factory.inform(new ClasspathResourceLoader(factory.getClass()));
+ assertTrue(factory.getEncoder() instanceof Metaphone);
+ assertTrue(factory.inject); // default
+ }
+
+ public void testInjectFalse() throws IOException {
+ Map<String,String> args = new HashMap<String,String>();
+ args.put(PhoneticFilterFactory.ENCODER, "Metaphone");
+ args.put(PhoneticFilterFactory.INJECT, "false");
+ PhoneticFilterFactory factory = new PhoneticFilterFactory(args);
+ factory.inform(new ClasspathResourceLoader(factory.getClass()));
+ assertFalse(factory.inject);
+ }
+
+ public void testMaxCodeLength() throws IOException {
+ Map<String,String> args = new HashMap<String,String>();
+ args.put(PhoneticFilterFactory.ENCODER, "Metaphone");
+ args.put(PhoneticFilterFactory.MAX_CODE_LENGTH, "2");
+ PhoneticFilterFactory factory = new PhoneticFilterFactory(args);
+ factory.inform(new ClasspathResourceLoader(factory.getClass()));
+ assertEquals(2, ((Metaphone) factory.getEncoder()).getMaxCodeLen());
}
/**
* Case: Failures and Exceptions
*/
- public void testFactoryCaseFailure() throws IOException {
- Map<String,String> args = new HashMap<String, String>();
-
- PhoneticFilterFactory ff = new PhoneticFilterFactory();
- ClasspathResourceLoader loader = new ClasspathResourceLoader(ff.getClass());
-
+ public void testMissingEncoder() throws IOException {
try {
- ff.init( args );
- ff.inform( loader );
- fail( "missing encoder parameter" );
+ new PhoneticFilterFactory(new HashMap<String,String>());
+ fail();
+ } catch (IllegalArgumentException expected) {
+ assertTrue(expected.getMessage().contains("Missing required parameter"));
}
- catch( Exception ex ) {}
- args.put( PhoneticFilterFactory.ENCODER, "XXX" );
+ }
+
+ public void testUnknownEncoder() throws IOException {
try {
- ff.init( args );
- ff.inform( loader );
- fail( "unknown encoder parameter" );
+ Map<String,String> args = new HashMap<String,String>();
+ args.put("encoder", "XXX");
+ PhoneticFilterFactory factory = new PhoneticFilterFactory(args);
+ factory.inform(new ClasspathResourceLoader(factory.getClass()));
+ fail();
+ } catch (IllegalArgumentException expected) {
+ assertTrue(expected.getMessage().contains("Error loading encoder"));
}
- catch( Exception ex ) {}
- args.put( PhoneticFilterFactory.ENCODER, "org.apache.commons.codec.language.NonExistence" );
+ }
+
+ public void testUnknownEncoderReflection() throws IOException {
try {
- ff.init( args );
- ff.inform( loader );
- fail( "unknown encoder parameter" );
+ Map<String,String> args = new HashMap<String,String>();
+ args.put("encoder", "org.apache.commons.codec.language.NonExistence");
+ PhoneticFilterFactory factory = new PhoneticFilterFactory(args);
+ factory.inform(new ClasspathResourceLoader(factory.getClass()));
+ fail();
+ } catch (IllegalArgumentException expected) {
+ assertTrue(expected.getMessage().contains("Error loading encoder"));
}
- catch( Exception ex ) {}
}
/**
* Case: Reflection
*/
- public void testFactoryCaseReflection() throws IOException {
+ public void testFactoryReflection() throws IOException {
Map<String,String> args = new HashMap<String, String>();
-
- PhoneticFilterFactory ff = new PhoneticFilterFactory();
- ClasspathResourceLoader loader = new ClasspathResourceLoader(ff.getClass());
-
- args.put( PhoneticFilterFactory.ENCODER, "org.apache.commons.codec.language.Metaphone" );
- ff.init( args );
- ff.inform( loader );
- assertTrue( ff.getEncoder() instanceof Metaphone );
- assertTrue( ff.inject ); // default
+ args.put(PhoneticFilterFactory.ENCODER, "org.apache.commons.codec.language.Metaphone");
+ PhoneticFilterFactory factory = new PhoneticFilterFactory(args);
+ factory.inform(new ClasspathResourceLoader(factory.getClass()));
+ assertTrue(factory.getEncoder() instanceof Metaphone);
+ assertTrue(factory.inject); // default
+ }
- // we use "Caverphone2" as it is registered in the REGISTRY as Caverphone,
- // so this effectively tests reflection without package name
- args.put( PhoneticFilterFactory.ENCODER, "Caverphone2" );
- ff.init( args );
- ff.inform( loader );
- assertTrue( ff.getEncoder() instanceof Caverphone2 );
- assertTrue( ff.inject ); // default
-
- // cross check with registry
- args.put( PhoneticFilterFactory.ENCODER, "Caverphone" );
- ff.init( args );
- ff.inform( loader );
- assertTrue( ff.getEncoder() instanceof Caverphone2 );
- assertTrue( ff.inject ); // default
+ /**
+ * we use "Caverphone2" as it is registered in the REGISTRY as Caverphone,
+ * so this effectively tests reflection without package name
+ */
+ public void testFactoryReflectionCaverphone2() throws IOException {
+ Map<String,String> args = new HashMap<String, String>();
+ args.put(PhoneticFilterFactory.ENCODER, "Caverphone2");
+ PhoneticFilterFactory factory = new PhoneticFilterFactory(args);
+ factory.inform(new ClasspathResourceLoader(factory.getClass()));
+ assertTrue(factory.getEncoder() instanceof Caverphone2);
+ assertTrue(factory.inject); // default
+ }
+
+ public void testFactoryReflectionCaverphone() throws IOException {
+ Map<String,String> args = new HashMap<String, String>();
+ args.put(PhoneticFilterFactory.ENCODER, "Caverphone");
+ PhoneticFilterFactory factory = new PhoneticFilterFactory(args);
+ factory.inform(new ClasspathResourceLoader(factory.getClass()));
+ assertTrue(factory.getEncoder() instanceof Caverphone2);
+ assertTrue(factory.inject); // default
}
public void testAlgorithms() throws Exception {
@@ -161,37 +166,28 @@ public class TestPhoneticFilterFactory e
new String[] { "67", "862", "67", "862" });
}
+ /** Test that bogus arguments result in exception */
+ public void testBogusArguments() throws Exception {
+ try {
+ new PhoneticFilterFactory(new HashMap<String,String>() {{
+ put("encoder", "Metaphone");
+ put("bogusArg", "bogusValue");
+ }});
+ fail();
+ } catch (IllegalArgumentException expected) {
+ assertTrue(expected.getMessage().contains("Unknown parameters"));
+ }
+ }
+
static void assertAlgorithm(String algName, String inject, String input,
String[] expected) throws Exception {
Tokenizer tokenizer = new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false);
Map<String,String> args = new HashMap<String,String>();
args.put("encoder", algName);
args.put("inject", inject);
- PhoneticFilterFactory factory = new PhoneticFilterFactory();
- factory.init(args);
+ PhoneticFilterFactory factory = new PhoneticFilterFactory(args);
factory.inform(new ClasspathResourceLoader(factory.getClass()));
TokenStream stream = factory.create(tokenizer);
assertTokenStreamContents(stream, expected);
}
-
- public void testSpeed() throws Exception {
- checkSpeedEncoding("Metaphone", "easgasg", "ESKS");
- checkSpeedEncoding("DoubleMetaphone", "easgasg", "ASKS");
- checkSpeedEncoding("Soundex", "easgasg", "E220");
- checkSpeedEncoding("RefinedSoundex", "easgasg", "E034034");
- checkSpeedEncoding("Caverphone", "Carlene", "KLN1111111");
- checkSpeedEncoding("ColognePhonetic", "Schmitt", "862");
- }
-
- private void checkSpeedEncoding(String encoder, String toBeEncoded, String estimated) throws Exception {
- long start = System.currentTimeMillis();
- for ( int i=0; i<REPEATS; i++) {
- assertAlgorithm(encoder, "false", toBeEncoded,
- new String[] { estimated });
- }
- long duration = System.currentTimeMillis()-start;
- if (VERBOSE)
- System.out.println(encoder + " encodings per msec: "+(REPEATS/duration));
- }
-
}
Modified: lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseSentenceTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseSentenceTokenizerFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseSentenceTokenizerFactory.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseSentenceTokenizerFactory.java Sat Apr 6 11:08:17 2013
@@ -18,6 +18,7 @@ package org.apache.lucene.analysis.cn.sm
*/
import java.io.Reader;
+import java.util.Map;
import org.apache.lucene.analysis.util.TokenizerFactory;
import org.apache.lucene.util.AttributeSource.AttributeFactory;
@@ -27,6 +28,15 @@ import org.apache.lucene.util.AttributeS
* @lucene.experimental
*/
public class SmartChineseSentenceTokenizerFactory extends TokenizerFactory {
+
+ /** Creates a new SmartChineseSentenceTokenizerFactory */
+ public SmartChineseSentenceTokenizerFactory(Map<String,String> args) {
+ super(args);
+ if (!args.isEmpty()) {
+ throw new IllegalArgumentException("Unknown parameters: " + args);
+ }
+ }
+
@Override
public SentenceTokenizer create(AttributeFactory factory, Reader input) {
return new SentenceTokenizer(factory, input);
Modified: lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseWordTokenFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseWordTokenFilterFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseWordTokenFilterFactory.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseWordTokenFilterFactory.java Sat Apr 6 11:08:17 2013
@@ -17,6 +17,8 @@ package org.apache.lucene.analysis.cn.sm
* limitations under the License.
*/
+import java.util.Map;
+
import org.apache.lucene.analysis.TokenFilter;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.cn.smart.WordTokenFilter;
@@ -32,6 +34,15 @@ import org.apache.lucene.analysis.util.T
* @lucene.experimental
*/
public class SmartChineseWordTokenFilterFactory extends TokenFilterFactory {
+
+ /** Creates a new SmartChineseWordTokenFilterFactory */
+ public SmartChineseWordTokenFilterFactory(Map<String,String> args) {
+ super(args);
+ if (!args.isEmpty()) {
+ throw new IllegalArgumentException("Unknown parameters: " + args);
+ }
+ }
+
@Override
public TokenFilter create(TokenStream input) {
return new WordTokenFilter(input);
Modified: lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/test/org/apache/lucene/analysis/cn/smart/TestSmartChineseFactories.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/test/org/apache/lucene/analysis/cn/smart/TestSmartChineseFactories.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/test/org/apache/lucene/analysis/cn/smart/TestSmartChineseFactories.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/smartcn/src/test/org/apache/lucene/analysis/cn/smart/TestSmartChineseFactories.java Sat Apr 6 11:08:17 2013
@@ -17,12 +17,13 @@ package org.apache.lucene.analysis.cn.sm
* limitations under the License.
*/
+import java.io.Reader;
import java.io.StringReader;
+import java.util.HashMap;
import org.apache.lucene.analysis.BaseTokenStreamTestCase;
+import org.apache.lucene.analysis.MockTokenizer;
import org.apache.lucene.analysis.TokenStream;
-import org.apache.lucene.analysis.Tokenizer;
-import org.apache.lucene.analysis.core.WhitespaceTokenizer;
/**
* Tests for {@link SmartChineseSentenceTokenizerFactory} and
@@ -31,28 +32,49 @@ import org.apache.lucene.analysis.core.W
public class TestSmartChineseFactories extends BaseTokenStreamTestCase {
/** Test showing the behavior with whitespace */
public void testSimple() throws Exception {
- String sentence = "æè´ä¹°äºéå
·åæè£
ã";
- WhitespaceTokenizer ws = new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader(sentence));
- SmartChineseWordTokenFilterFactory factory = new SmartChineseWordTokenFilterFactory();
- TokenStream ts = factory.create(ws);
+ Reader reader = new StringReader("æè´ä¹°äºéå
·åæè£
ã");
+ TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
+ SmartChineseWordTokenFilterFactory factory = new SmartChineseWordTokenFilterFactory(new HashMap<String,String>());
+ stream = factory.create(stream);
// TODO: fix smart chinese to not emit punctuation tokens
// at the moment: you have to clean up with WDF, or use the stoplist, etc
- assertTokenStreamContents(ts,
+ assertTokenStreamContents(stream,
new String[] { "æ", "è´ä¹°", "äº", "éå
·", "å", "æè£
", "," });
}
/** Test showing the behavior with whitespace */
public void testTokenizer() throws Exception {
- String sentence = "æè´ä¹°äºéå
·åæè£
ãæè´ä¹°äºéå
·åæè£
ã";
- SmartChineseSentenceTokenizerFactory tokenizerFactory = new SmartChineseSentenceTokenizerFactory();
- Tokenizer tokenizer = tokenizerFactory.create(new StringReader(sentence));
- SmartChineseWordTokenFilterFactory factory = new SmartChineseWordTokenFilterFactory();
- TokenStream ts = factory.create(tokenizer);
+ Reader reader = new StringReader("æè´ä¹°äºéå
·åæè£
ãæè´ä¹°äºéå
·åæè£
ã");
+ SmartChineseSentenceTokenizerFactory tokenizerFactory = new SmartChineseSentenceTokenizerFactory(new HashMap<String,String>());
+ TokenStream stream = tokenizerFactory.create(reader);
+ SmartChineseWordTokenFilterFactory factory = new SmartChineseWordTokenFilterFactory(new HashMap<String,String>());
+ stream = factory.create(stream);
// TODO: fix smart chinese to not emit punctuation tokens
// at the moment: you have to clean up with WDF, or use the stoplist, etc
- assertTokenStreamContents(ts,
+ assertTokenStreamContents(stream,
new String[] { "æ", "è´ä¹°", "äº", "éå
·", "å", "æè£
", ",",
"æ", "è´ä¹°", "äº", "éå
·", "å", "æè£
", ","
});
}
+
+ /** Test that bogus arguments result in exception */
+ public void testBogusArguments() throws Exception {
+ try {
+ new SmartChineseSentenceTokenizerFactory(new HashMap<String,String>() {{
+ put("bogusArg", "bogusValue");
+ }});
+ fail();
+ } catch (IllegalArgumentException expected) {
+ assertTrue(expected.getMessage().contains("Unknown parameters"));
+ }
+
+ try {
+ new SmartChineseWordTokenFilterFactory(new HashMap<String,String>() {{
+ put("bogusArg", "bogusValue");
+ }});
+ fail();
+ } catch (IllegalArgumentException expected) {
+ assertTrue(expected.getMessage().contains("Unknown parameters"));
+ }
+ }
}
Modified: lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java Sat Apr 6 11:08:17 2013
@@ -17,11 +17,12 @@ package org.apache.lucene.analysis.stemp
* limitations under the License.
*/
+import java.util.Map;
+
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.pl.PolishAnalyzer;
import org.apache.lucene.analysis.stempel.StempelFilter;
import org.apache.lucene.analysis.stempel.StempelStemmer;
-import org.apache.lucene.analysis.util.AbstractAnalysisFactory; // javadocs
import org.apache.lucene.analysis.util.TokenFilterFactory;
/**
@@ -29,8 +30,13 @@ import org.apache.lucene.analysis.util.T
*/
public class StempelPolishStemFilterFactory extends TokenFilterFactory {
- /** Sole constructor. See {@link AbstractAnalysisFactory} for initialization lifecycle. */
- public StempelPolishStemFilterFactory() {}
+ /** Creates a new StempelPolishStemFilterFactory */
+ public StempelPolishStemFilterFactory(Map<String,String> args) {
+ super(args);
+ if (!args.isEmpty()) {
+ throw new IllegalArgumentException("Unknown parameters: " + args);
+ }
+ }
@Override
public TokenStream create(TokenStream input) {
Modified: lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/test/org/apache/lucene/analysis/stempel/TestStempelPolishStemFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/test/org/apache/lucene/analysis/stempel/TestStempelPolishStemFilterFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/test/org/apache/lucene/analysis/stempel/TestStempelPolishStemFilterFactory.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/test/org/apache/lucene/analysis/stempel/TestStempelPolishStemFilterFactory.java Sat Apr 6 11:08:17 2013
@@ -17,21 +17,36 @@ package org.apache.lucene.analysis.stemp
* limitations under the License.
*/
+import java.io.Reader;
import java.io.StringReader;
+import java.util.HashMap;
import org.apache.lucene.analysis.BaseTokenStreamTestCase;
+import org.apache.lucene.analysis.MockTokenizer;
import org.apache.lucene.analysis.TokenStream;
-import org.apache.lucene.analysis.core.WhitespaceTokenizer;
/**
* Tests for {@link StempelPolishStemFilterFactory}
*/
public class TestStempelPolishStemFilterFactory extends BaseTokenStreamTestCase {
public void testBasics() throws Exception {
- StringReader document = new StringReader("studenta studenci");
- StempelPolishStemFilterFactory factory = new StempelPolishStemFilterFactory();
- TokenStream ts = factory.create(new WhitespaceTokenizer(TEST_VERSION_CURRENT, document));
- assertTokenStreamContents(ts,
+ Reader reader = new StringReader("studenta studenci");
+ StempelPolishStemFilterFactory factory = new StempelPolishStemFilterFactory(new HashMap<String,String>());
+ TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
+ stream = factory.create(stream);
+ assertTokenStreamContents(stream,
new String[] { "student", "student" });
}
+
+ /** Test that bogus arguments result in exception */
+ public void testBogusArguments() throws Exception {
+ try {
+ new StempelPolishStemFilterFactory(new HashMap<String,String>() {{
+ put("bogusArg", "bogusValue");
+ }});
+ fail();
+ } catch (IllegalArgumentException expected) {
+ assertTrue(expected.getMessage().contains("Unknown parameters"));
+ }
+ }
}
Modified: lucene/dev/branches/branch_4x/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMAAnnotationsTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMAAnnotationsTokenizerFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMAAnnotationsTokenizerFactory.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMAAnnotationsTokenizerFactory.java Sat Apr 6 11:08:17 2013
@@ -31,12 +31,11 @@ public class UIMAAnnotationsTokenizerFac
private String descriptorPath;
private String tokenType;
- private Map<String, Object> configurationParameters;
+ private final Map<String,Object> configurationParameters = new HashMap<String,Object>();
- @Override
- public void init(Map<String, String> args) {
- super.init(args);
- configurationParameters = new HashMap<String, Object>();
+ /** Creates a new UIMAAnnotationsTokenizerFactory */
+ public UIMAAnnotationsTokenizerFactory(Map<String, String> args) {
+ super(args);
for (String k : args.keySet()) {
if (k.equals("tokenType")) {
tokenType = args.get("tokenType");
@@ -49,7 +48,6 @@ public class UIMAAnnotationsTokenizerFac
if (descriptorPath == null || tokenType == null ) {
throw new IllegalArgumentException("descriptorPath and tokenType are mandatory");
}
-
}
@Override
Modified: lucene/dev/branches/branch_4x/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMATypeAwareAnnotationsTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMATypeAwareAnnotationsTokenizerFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMATypeAwareAnnotationsTokenizerFactory.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMATypeAwareAnnotationsTokenizerFactory.java Sat Apr 6 11:08:17 2013
@@ -32,12 +32,11 @@ public class UIMATypeAwareAnnotationsTok
private String descriptorPath;
private String tokenType;
private String featurePath;
- private Map<String, Object> configurationParameters;
+ private final Map<String,Object> configurationParameters = new HashMap<String,Object>();
- @Override
- public void init(Map<String, String> args) {
- super.init(args);
- configurationParameters = new HashMap<String, Object>();
+ /** Creates a new UIMATypeAwareAnnotationsTokenizerFactory */
+ public UIMATypeAwareAnnotationsTokenizerFactory(Map<String, String> args) {
+ super(args);
for (String k : args.keySet()) {
if (k.equals("featurePath")) {
featurePath = args.get("featurePath");
Modified: lucene/dev/branches/branch_4x/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AnalyzerFactoryTask.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AnalyzerFactoryTask.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AnalyzerFactoryTask.java (original)
+++ lucene/dev/branches/branch_4x/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AnalyzerFactoryTask.java Sat Apr 6 11:08:17 2013
@@ -287,13 +287,6 @@ public class AnalyzerFactoryTask extends
*/
private void createAnalysisPipelineComponent
(StreamTokenizer stok, Class<? extends AbstractAnalysisFactory> clazz) {
- final AbstractAnalysisFactory instance;
- try {
- instance = clazz.newInstance();
- } catch (Exception e) {
- throw new RuntimeException("Line #" + lineno(stok) + ": ", e);
- }
- Version luceneMatchVersion = null;
Map<String,String> argMap = new HashMap<String,String>();
boolean parenthetical = false;
try {
@@ -347,16 +340,7 @@ public class AnalyzerFactoryTask extends
case '"':
case '\'':
case StreamTokenizer.TT_WORD: {
- if (argName.equalsIgnoreCase("luceneMatchVersion")) {
- try {
- luceneMatchVersion = Version.parseLeniently(argValue);
- } catch (IllegalArgumentException e) {
- throw new RuntimeException
- ("Line #" + lineno(stok) + ": Unrecognized luceneMatchVersion '" + argValue + "'", e);
- }
- } else {
- argMap.put(argName, argValue);
- }
+ argMap.put(argName, argValue);
break;
}
case StreamTokenizer.TT_EOF: {
@@ -370,10 +354,15 @@ public class AnalyzerFactoryTask extends
}
}
}
-
- instance.setLuceneMatchVersion
- (null == luceneMatchVersion ? Version.LUCENE_CURRENT : luceneMatchVersion);
- instance.init(argMap);
+ if (!argMap.containsKey("luceneMatchVersion")) {
+ argMap.put("luceneMatchVersion", Version.LUCENE_CURRENT.toString());
+ }
+ final AbstractAnalysisFactory instance;
+ try {
+ instance = clazz.getConstructor(Map.class).newInstance(argMap);
+ } catch (Exception e) {
+ throw new RuntimeException("Line #" + lineno(stok) + ": ", e);
+ }
if (instance instanceof ResourceLoaderAware) {
File baseDir = new File(getRunData().getConfig().get("work.dir", "work")).getAbsoluteFile();
if ( ! baseDir.isDirectory()) {
Modified: lucene/dev/branches/branch_4x/solr/contrib/extraction/src/test-files/extraction/solr/collection1/conf/schema.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/extraction/src/test-files/extraction/solr/collection1/conf/schema.xml?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/extraction/src/test-files/extraction/solr/collection1/conf/schema.xml (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/extraction/src/test-files/extraction/solr/collection1/conf/schema.xml Sat Apr 6 11:08:17 2013
@@ -285,7 +285,7 @@
<fieldtype name="syn" class="solr.TextField">
<analyzer>
<tokenizer class="solr.MockTokenizerFactory"/>
- <filter name="syn" class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
+ <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
</analyzer>
</fieldtype>
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilterFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilterFactory.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilterFactory.java Sat Apr 6 11:08:17 2013
@@ -19,6 +19,7 @@ package org.apache.solr.analysis;
*/
import java.io.Reader;
+import java.util.Map;
import org.apache.lucene.analysis.charfilter.HTMLStripCharFilterFactory;
import org.apache.lucene.analysis.util.CharFilterFactory;
@@ -54,6 +55,14 @@ import org.apache.lucene.analysis.util.C
@Deprecated
public class LegacyHTMLStripCharFilterFactory extends CharFilterFactory {
+ /** Creates a new LegacyHTMLStripCharFilterFactory */
+ public LegacyHTMLStripCharFilterFactory(Map<String,String> args) {
+ super(args);
+ if (!args.isEmpty()) {
+ throw new IllegalArgumentException("Unknown parameters: " + args);
+ }
+ }
+
@Override
public LegacyHTMLStripCharFilter create(Reader input) {
return new LegacyHTMLStripCharFilter(input);
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java Sat Apr 6 11:08:17 2013
@@ -71,14 +71,17 @@ public class ReversedWildcardFilterFacto
private int minTrailing;
private float maxFractionAsterisk;
- @Override
- public void init(Map<String, String> args) {
- super.init(args);
- withOriginal = getBoolean("withOriginal", true);
- maxPosAsterisk = getInt("maxPosAsterisk", 2);
- maxPosQuestion = getInt("maxPosQuestion", 1);
- minTrailing = getInt("minTrailing", 2);
- maxFractionAsterisk = getFloat("maxFractionAsterisk", 0.0f);
+ /** Creates a new ReversedWildcardFilterFactory */
+ public ReversedWildcardFilterFactory(Map<String,String> args) {
+ super(args);
+ withOriginal = getBoolean(args, "withOriginal", true);
+ maxPosAsterisk = getInt(args, "maxPosAsterisk", 2);
+ maxPosQuestion = getInt(args, "maxPosQuestion", 1);
+ minTrailing = getInt(args, "minTrailing", 2);
+ maxFractionAsterisk = getFloat(args, "maxFractionAsterisk", 0.0f);
+ if (!args.isEmpty()) {
+ throw new IllegalArgumentException("Unknown parameters: " + args);
+ }
}
@@ -134,8 +137,8 @@ public class ReversedWildcardFilterFacto
return markerChar;
}
- protected float getFloat(String name, float defValue) {
- String val = args.get(name);
+ protected final float getFloat(Map<String,String> args, String name, float defValue) {
+ String val = args.remove(name);
if (val == null) {
return defValue;
} else {
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/TrieTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/TrieTokenizerFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/TrieTokenizerFactory.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/TrieTokenizerFactory.java Sat Apr 6 11:08:17 2013
@@ -31,6 +31,7 @@ import static org.apache.solr.schema.Tri
import java.io.IOException;
import java.io.Reader;
+import java.util.HashMap;
import java.util.Iterator;
/**
@@ -50,6 +51,7 @@ public class TrieTokenizerFactory extend
protected final TrieTypes type;
public TrieTokenizerFactory(TrieTypes type, int precisionStep) {
+ super(new HashMap<String,String>());
this.type = type;
this.precisionStep = precisionStep;
}
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java Sat Apr 6 11:08:17 2013
@@ -390,7 +390,12 @@ public class SolrResourceLoader implemen
// Using this pattern, legacy analysis components from previous Solr versions are identified and delegated to SPI loader:
private static final Pattern legacyAnalysisPattern =
Pattern.compile("((\\Q"+base+".analysis.\\E)|(\\Q"+project+".\\E))([\\p{L}_$][\\p{L}\\p{N}_$]+?)(TokenFilter|Filter|Tokenizer|CharFilter)Factory");
-
+
+ @Override
+ public <T> Class<? extends T> findClass(String cname, Class<T> expectedType) {
+ return findClass(cname, expectedType, empty);
+ }
+
/**
* This method loads a class either with it's FQN or a short-name (solr.class-simplename or class-simplename).
* It tries to load the class with the name that is given first and if it fails, it tries all the known
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java Sat Apr 6 11:08:17 2013
@@ -476,7 +476,7 @@ public class LukeRequestHandler extends
Map<String, Object> tok = new HashMap<String, Object>();
String className = cfiltfac.getClass().getName();
tok.put("className", className);
- tok.put("args", cfiltfac.getArgs());
+ tok.put("args", cfiltfac.getOriginalArgs());
cfilters.add(className.substring(className.lastIndexOf('.')+1), tok);
}
if (cfilters.size() > 0) {
@@ -486,7 +486,7 @@ public class LukeRequestHandler extends
SimpleOrderedMap<Object> tokenizer = new SimpleOrderedMap<Object>();
TokenizerFactory tfac = tchain.getTokenizerFactory();
tokenizer.add("className", tfac.getClass().getName());
- tokenizer.add("args", tfac.getArgs());
+ tokenizer.add("args", tfac.getOriginalArgs());
aninfo.add("tokenizer", tokenizer);
TokenFilterFactory[] filtfacs = tchain.getTokenFilterFactories();
@@ -495,7 +495,7 @@ public class LukeRequestHandler extends
Map<String, Object> tok = new HashMap<String, Object>();
String className = filtfac.getClass().getName();
tok.put("className", className);
- tok.put("args", filtfac.getArgs());
+ tok.put("args", filtfac.getOriginalArgs());
filters.add(className.substring(className.lastIndexOf('.')+1), tok);
}
if (filters.size() > 0) {
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java Sat Apr 6 11:08:17 2013
@@ -183,12 +183,7 @@ public final class FieldTypePluginLoader
}
private static class MultiTermChainBuilder {
- static final KeywordTokenizerFactory keyFactory;
-
- static {
- keyFactory = new KeywordTokenizerFactory();
- keyFactory.init(new HashMap<String,String>());
- }
+ static final KeywordTokenizerFactory keyFactory = new KeywordTokenizerFactory(new HashMap<String,String>());
ArrayList<CharFilterFactory> charFilters = null;
ArrayList<TokenFilterFactory> filters = new ArrayList<TokenFilterFactory>(2);
@@ -305,14 +300,16 @@ public final class FieldTypePluginLoader
("[schema.xml] analyzer/charFilter", CharFilterFactory.class, false, false) {
@Override
+ protected CharFilterFactory create(SolrResourceLoader loader, String name, String className, Node node) throws Exception {
+ final Map<String,String> params = DOMUtil.toMapExcept(node.getAttributes(),"class");
+ String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
+ params.put(LUCENE_MATCH_VERSION_PARAM, parseConfiguredVersion(configuredVersion, CharFilterFactory.class.getSimpleName()).toString());
+ return loader.newInstance(className, CharFilterFactory.class, getDefaultPackages(), new Class[] { Map.class }, new Object[] { params });
+ }
+
+ @Override
protected void init(CharFilterFactory plugin, Node node) throws Exception {
if( plugin != null ) {
- final Map<String,String> params = DOMUtil.toMapExcept(node.getAttributes(),"class");
-
- String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
- plugin.setLuceneMatchVersion(parseConfiguredVersion(configuredVersion, plugin.getClass().getSimpleName()));
-
- plugin.init( params );
charFilters.add( plugin );
}
}
@@ -335,18 +332,21 @@ public final class FieldTypePluginLoader
AbstractPluginLoader<TokenizerFactory> tokenizerLoader =
new AbstractPluginLoader<TokenizerFactory>
("[schema.xml] analyzer/tokenizer", TokenizerFactory.class, false, false) {
+
+ @Override
+ protected TokenizerFactory create(SolrResourceLoader loader, String name, String className, Node node) throws Exception {
+ final Map<String,String> params = DOMUtil.toMapExcept(node.getAttributes(),"class");
+ String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
+ params.put(LUCENE_MATCH_VERSION_PARAM, parseConfiguredVersion(configuredVersion, TokenizerFactory.class.getSimpleName()).toString());
+ return loader.newInstance(className, TokenizerFactory.class, getDefaultPackages(), new Class[] { Map.class }, new Object[] { params });
+ }
+
@Override
protected void init(TokenizerFactory plugin, Node node) throws Exception {
if( !tokenizers.isEmpty() ) {
throw new SolrException( SolrException.ErrorCode.SERVER_ERROR,
"The schema defines multiple tokenizers for: "+node );
}
- final Map<String,String> params = DOMUtil.toMapExcept(node.getAttributes(),"class");
-
- String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
- plugin.setLuceneMatchVersion(parseConfiguredVersion(configuredVersion, plugin.getClass().getSimpleName()));
-
- plugin.init( params );
tokenizers.add( plugin );
}
@@ -372,14 +372,16 @@ public final class FieldTypePluginLoader
new AbstractPluginLoader<TokenFilterFactory>("[schema.xml] analyzer/filter", TokenFilterFactory.class, false, false)
{
@Override
+ protected TokenFilterFactory create(SolrResourceLoader loader, String name, String className, Node node) throws Exception {
+ final Map<String,String> params = DOMUtil.toMapExcept(node.getAttributes(),"class");
+ String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
+ params.put(LUCENE_MATCH_VERSION_PARAM, parseConfiguredVersion(configuredVersion, TokenFilterFactory.class.getSimpleName()).toString());
+ return loader.newInstance(className, TokenFilterFactory.class, getDefaultPackages(), new Class[] { Map.class }, new Object[] { params });
+ }
+
+ @Override
protected void init(TokenFilterFactory plugin, Node node) throws Exception {
if( plugin != null ) {
- final Map<String,String> params = DOMUtil.toMapExcept(node.getAttributes(),"class");
-
- String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
- plugin.setLuceneMatchVersion(parseConfiguredVersion(configuredVersion, plugin.getClass().getSimpleName()));
-
- plugin.init( params );
filters.add( plugin );
}
}
Modified: lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-copyfield-test.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-copyfield-test.xml?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-copyfield-test.xml (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-copyfield-test.xml Sat Apr 6 11:08:17 2013
@@ -277,7 +277,7 @@
<fieldtype name="syn" class="solr.TextField">
<analyzer>
<tokenizer class="solr.MockTokenizerFactory"/>
- <filter name="syn" class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
+ <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
</analyzer>
</fieldtype>
Modified: lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-required-fields.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-required-fields.xml?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-required-fields.xml (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-required-fields.xml Sat Apr 6 11:08:17 2013
@@ -268,7 +268,7 @@
<fieldtype name="syn" class="solr.TextField">
<analyzer>
<tokenizer class="solr.MockTokenizerFactory"/>
- <filter name="syn" class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
+ <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
</analyzer>
</fieldtype>
Modified: lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-rest.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-rest.xml?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-rest.xml (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema-rest.xml Sat Apr 6 11:08:17 2013
@@ -355,7 +355,7 @@
<fieldtype name="syn" class="solr.TextField">
<analyzer>
<tokenizer class="solr.MockTokenizerFactory"/>
- <filter name="syn" class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
+ <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
</analyzer>
</fieldtype>
Modified: lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema.xml?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema.xml (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema.xml Sat Apr 6 11:08:17 2013
@@ -204,7 +204,7 @@
<fieldtype name="lowerpunctfilt" class="solr.TextField">
<analyzer>
<tokenizer class="solr.MockTokenizerFactory"/>
- <filter name="syn" class="solr.SynonymFilterFactory" synonyms="synonyms.txt" expand="true"/>
+ <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" expand="true"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="1" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
@@ -355,7 +355,7 @@
<fieldtype name="syn" class="solr.TextField">
<analyzer>
<tokenizer class="solr.MockTokenizerFactory"/>
- <filter name="syn" class="solr.SynonymFilterFactory" synonyms="old_synonyms.txt"/>
+ <filter class="solr.SynonymFilterFactory" synonyms="old_synonyms.txt"/>
</analyzer>
</fieldtype>
Modified: lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema12.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema12.xml?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema12.xml (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema12.xml Sat Apr 6 11:08:17 2013
@@ -357,7 +357,7 @@
<fieldtype name="syn" class="solr.TextField">
<analyzer>
<tokenizer class="solr.MockTokenizerFactory"/>
- <filter name="syn" class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
+ <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
</analyzer>
</fieldtype>
Modified: lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema15.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema15.xml?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema15.xml (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schema15.xml Sat Apr 6 11:08:17 2013
@@ -356,7 +356,7 @@
<fieldtype name="syn" class="solr.TextField">
<analyzer>
<tokenizer class="solr.MockTokenizerFactory"/>
- <filter name="syn" class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
+ <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
</analyzer>
</fieldtype>
Modified: lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml Sat Apr 6 11:08:17 2013
@@ -357,7 +357,7 @@
<fieldtype name="syn" class="solr.TextField">
<analyzer>
<tokenizer class="solr.MockTokenizerFactory"/>
- <filter name="syn" class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
+ <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
</analyzer>
</fieldtype>
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java Sat Apr 6 11:08:17 2013
@@ -45,7 +45,6 @@ import static org.apache.lucene.analysis
public class TestReversedWildcardFilterFactory extends SolrTestCaseJ4 {
Map<String,String> args = new HashMap<String, String>();
- ReversedWildcardFilterFactory factory = new ReversedWildcardFilterFactory();
IndexSchema schema;
@BeforeClass
@@ -66,7 +65,7 @@ public class TestReversedWildcardFilterF
public void testReversedTokens() throws IOException {
String text = "simple text";
args.put("withOriginal", "true");
- factory.init(args);
+ ReversedWildcardFilterFactory factory = new ReversedWildcardFilterFactory(args);
TokenStream input = factory.create(new MockTokenizer(new StringReader(text), MockTokenizer.WHITESPACE, false));
assertTokenStreamContents(input,
new String[] { "\u0001elpmis", "simple", "\u0001txet", "text" },
@@ -74,7 +73,7 @@ public class TestReversedWildcardFilterF
// now without original tokens
args.put("withOriginal", "false");
- factory.init(args);
+ factory = new ReversedWildcardFilterFactory(args);
input = factory.create(new MockTokenizer(new StringReader(text), MockTokenizer.WHITESPACE, false));
assertTokenStreamContents(input,
new String[] { "\u0001elpmis", "\u0001txet" },
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/analysis/TestWordDelimiterFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/analysis/TestWordDelimiterFilterFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/analysis/TestWordDelimiterFilterFactory.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/analysis/TestWordDelimiterFilterFactory.java Sat Apr 6 11:08:17 2013
@@ -198,7 +198,6 @@ public class TestWordDelimiterFilterFact
@Test
public void testCustomTypes() throws Exception {
String testText = "I borrowed $5,400.00 at 25% interest-rate";
- WordDelimiterFilterFactory factoryDefault = new WordDelimiterFilterFactory();
ResourceLoader loader = new SolrResourceLoader("solr/collection1");
Map<String,String> args = new HashMap<String,String>();
args.put("generateWordParts", "1");
@@ -209,7 +208,7 @@ public class TestWordDelimiterFilterFact
args.put("splitOnCaseChange", "1");
/* default behavior */
- factoryDefault.init(args);
+ WordDelimiterFilterFactory factoryDefault = new WordDelimiterFilterFactory(args);
factoryDefault.inform(loader);
TokenStream ts = factoryDefault.create(
@@ -224,10 +223,16 @@ public class TestWordDelimiterFilterFact
/* custom behavior */
- WordDelimiterFilterFactory factoryCustom = new WordDelimiterFilterFactory();
+ args = new HashMap<String,String>();
// use a custom type mapping
+ args.put("generateWordParts", "1");
+ args.put("generateNumberParts", "1");
+ args.put("catenateWords", "1");
+ args.put("catenateNumbers", "1");
+ args.put("catenateAll", "0");
+ args.put("splitOnCaseChange", "1");
args.put("types", "wdftypes.txt");
- factoryCustom.init(args);
+ WordDelimiterFilterFactory factoryCustom = new WordDelimiterFilterFactory(args);
factoryCustom.inform(loader);
ts = factoryCustom.create(
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/AbstractBadConfigTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/AbstractBadConfigTestBase.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/AbstractBadConfigTestBase.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/AbstractBadConfigTestBase.java Sat Apr 6 11:08:17 2013
@@ -56,14 +56,10 @@ public abstract class AbstractBadConfigT
initCore( solrconfigFile, schemaFile, solrHome );
}
} catch (Exception e) {
- // short circuit out if we found what we expected
- if (-1 != e.getMessage().indexOf(errString)) return;
- // Test the cause too in case the expected error is wrapped by the TestHarness
- // (NOTE: we don't go all the way down. Either errString should be changed,
- // or some error wrapping should use a better message or both)
- if (null != e.getCause() &&
- null != e.getCause().getMessage() &&
- -1 != e.getCause().getMessage().indexOf(errString)) return;
+ for (Throwable t = e; t != null; t = t.getCause()) {
+ // short circuit out if we found what we expected
+ if (t.getMessage() != null && -1 != t.getMessage().indexOf(errString)) return;
+ }
// otherwise, rethrow it, possibly completley unrelated
throw new SolrException
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java Sat Apr 6 11:08:17 2013
@@ -33,6 +33,7 @@ import java.io.File;
import java.io.InputStream;
import java.nio.charset.CharacterCodingException;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.List;
public class ResourceLoaderTest extends LuceneTestCase
@@ -53,8 +54,8 @@ public class ResourceLoaderTest extends
Class clazz = ResourceLoaderAware.class;
// Check ResourceLoaderAware valid objects
- loader.assertAwareCompatibility( clazz, new NGramFilterFactory() );
- loader.assertAwareCompatibility( clazz, new KeywordTokenizerFactory() );
+ loader.assertAwareCompatibility( clazz, new NGramFilterFactory(new HashMap<String,String>()) );
+ loader.assertAwareCompatibility( clazz, new KeywordTokenizerFactory(new HashMap<String,String>()) );
// Make sure it throws an error for invalid objects
Object[] invalid = new Object[] {
@@ -80,9 +81,9 @@ public class ResourceLoaderTest extends
// Make sure it throws an error for invalid objects
invalid = new Object[] {
- new NGramFilterFactory(),
+ new NGramFilterFactory(new HashMap<String,String>()),
"hello", new Float( 12.3f ),
- new KeywordTokenizerFactory()
+ new KeywordTokenizerFactory(new HashMap<String,String>())
};
for( Object obj : invalid ) {
try {
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/schema/BadIndexSchemaTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/schema/BadIndexSchemaTest.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/schema/BadIndexSchemaTest.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/schema/BadIndexSchemaTest.java Sat Apr 6 11:08:17 2013
@@ -114,5 +114,9 @@ public class BadIndexSchemaTest extends
public void testBogusParameters() throws Exception {
doTest("bad-schema-bogus-field-parameters.xml", "Invalid field property");
}
+
+ public void testBogusAnalysisParameters() throws Exception {
+ doTest("bad-schema-bogus-analysis-parameters.xml", "Unknown parameters");
+ }
}
Modified: lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/MockCharFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/MockCharFilterFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/MockCharFilterFactory.java (original)
+++ lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/MockCharFilterFactory.java Sat Apr 6 11:08:17 2013
@@ -27,16 +27,15 @@ import org.apache.lucene.analysis.util.C
* Factory for {@link MockCharFilter} for testing purposes.
*/
public class MockCharFilterFactory extends CharFilterFactory {
- int remainder;
+ final int remainder;
- @Override
- public void init(Map<String,String> args) {
- super.init(args);
- String sval = args.get("remainder");
- if (sval == null) {
- throw new IllegalArgumentException("remainder is mandatory");
+ /** Creates a new MockCharFilterFactory */
+ public MockCharFilterFactory(Map<String,String> args) {
+ super(args);
+ remainder = getInt(args, "remainder", 0, false);
+ if (!args.isEmpty()) {
+ throw new IllegalArgumentException("Unknown parameters: " + args);
}
- remainder = Integer.parseInt(sval);
}
@Override
Modified: lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/MockTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/MockTokenizerFactory.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/MockTokenizerFactory.java (original)
+++ lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/MockTokenizerFactory.java Sat Apr 6 11:08:17 2013
@@ -29,13 +29,13 @@ import org.apache.lucene.util.automaton.
* Factory for {@link MockTokenizer} for testing purposes.
*/
public class MockTokenizerFactory extends TokenizerFactory {
- CharacterRunAutomaton pattern;
- boolean enableChecks;
+ final CharacterRunAutomaton pattern;
+ final boolean enableChecks;
- @Override
- public void init(Map<String,String> args) {
- super.init(args);
- String patternArg = args.get("pattern");
+ /** Creates a new MockTokenizerFactory */
+ public MockTokenizerFactory(Map<String,String> args) {
+ super(args);
+ String patternArg = args.remove("pattern");
if (patternArg == null) {
patternArg = "whitespace";
}
@@ -50,7 +50,10 @@ public class MockTokenizerFactory extend
throw new RuntimeException("invalid pattern!");
}
- enableChecks = getBoolean("enableChecks", true);
+ enableChecks = getBoolean(args, "enableChecks", true);
+ if (!args.isEmpty()) {
+ throw new IllegalArgumentException("Unknown parameters: " + args);
+ }
}
@Override
Modified: lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/StringMockSolrResourceLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/StringMockSolrResourceLoader.java?rev=1465224&r1=1465223&r2=1465224&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/StringMockSolrResourceLoader.java (original)
+++ lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/analysis/StringMockSolrResourceLoader.java Sat Apr 6 11:08:17 2013
@@ -20,8 +20,6 @@ package org.apache.solr.analysis;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.Arrays;
-import java.util.List;
import org.apache.lucene.analysis.util.ResourceLoader;
@@ -33,8 +31,22 @@ class StringMockSolrResourceLoader imple
}
@Override
+ public <T> Class<? extends T> findClass(String cname, Class<T> expectedType) {
+ try {
+ return Class.forName(cname).asSubclass(expectedType);
+ } catch (Exception e) {
+ throw new RuntimeException("Cannot load class: " + cname, e);
+ }
+ }
+
+ @Override
public <T> T newInstance(String cname, Class<T> expectedType) {
- return null;
+ Class<? extends T> clazz = findClass(cname, expectedType);
+ try {
+ return clazz.newInstance();
+ } catch (Exception e) {
+ throw new RuntimeException("Cannot create instance: " + cname, e);
+ }
}
@Override