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;
     }