You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by jo...@apache.org on 2012/07/13 09:31:20 UTC
svn commit: r1361065 -
/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/GeneratorFactory.java
Author: joern
Date: Fri Jul 13 07:31:20 2012
New Revision: 1361065
URL: http://svn.apache.org/viewvc?rev=1361065&view=rev
Log:
OPENNLP-500 Now uses ExtensionLoader to load the custom feature generator.
Modified:
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/GeneratorFactory.java
Modified: opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/GeneratorFactory.java
URL: http://svn.apache.org/viewvc/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/GeneratorFactory.java?rev=1361065&r1=1361064&r2=1361065&view=diff
==============================================================================
--- opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/GeneratorFactory.java (original)
+++ opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/GeneratorFactory.java Fri Jul 13 07:31:20 2012
@@ -30,6 +30,7 @@ import javax.xml.parsers.ParserConfigura
import opennlp.tools.dictionary.Dictionary;
import opennlp.tools.util.InvalidFormatException;
+import opennlp.tools.util.ext.ExtensionLoader;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -443,30 +444,8 @@ public class GeneratorFactory {
String featureGeneratorClassName = generatorElement.getAttribute("class");
- Class<?> featureGenClass;
- try {
- featureGenClass = Class.forName(featureGeneratorClassName);
- } catch (ClassNotFoundException e) {
- throw new NoClassDefFoundError(e.getMessage());
- }
-
- // TODO: How to inject configuration?
- // TODO: How to provide access to resources?
-
- // Special interface which defines configure method?!
- // public interface CustomFeatureGenerator {
- // void initialize(Map<String, String>, FeatureGeneratoreResourceProvider)
- // throws InvalidFormatException;
- // }
-
- AdaptiveFeatureGenerator generator = null;
- try {
- generator = (AdaptiveFeatureGenerator) featureGenClass.newInstance();
- } catch (InstantiationException e) {
- throw new InvalidFormatException("Failed to instantiate custom class!", e);
- } catch (IllegalAccessException e) {
- throw new InvalidFormatException("Failed to instantiate custom class!", e);
- }
+ AdaptiveFeatureGenerator generator = ExtensionLoader.instantiateExtension(AdaptiveFeatureGenerator.class,
+ featureGeneratorClassName);
return generator;
}