Author: joern
Date: Fri Feb 21 15:34:25 2014
New Revision: 1570608
URL: http://svn.apache.org/r1570608
Log:
OPENNLP-631 Replaced Class.forName with ExtensionLoader
Modified:
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/entitylinker/EntityLinkerFactory.java
Modified:
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/entitylinker/EntityLinkerFactory.java
URL:
http://svn.apache.org/viewvc/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/entitylinker/EntityLinkerFactory.java?rev=1570608&r1=1570607&r2=1570608&view=diff
==============================================================================
---
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/entitylinker/EntityLinkerFactory.java
(original)
+++
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/entitylinker/EntityLinkerFactory.java
Fri Feb 21 15:34:25 2014
@@ -15,6 +15,8 @@
*/
package opennlp.tools.entitylinker;
+import opennlp.tools.util.ext.ExtensionLoader;
+
/**
* Generates an EntityLinker implementation via properties file configuration
*
@@ -32,21 +34,19 @@ public class EntityLinkerFactory {
* init(..) method, so it is an appropriate place to put
additional resources.
* @return an EntityLinker impl
*/
- public static synchronized EntityLinker getLinker(String entityType,
EntityLinkerProperties properties)throws Exception {
+ public static synchronized EntityLinker<?> getLinker(String entityType,
EntityLinkerProperties properties) throws Exception {
if (entityType == null || properties == null) {
throw new IllegalArgumentException("Null argument in
entityLinkerFactory");
}
- EntityLinker linker = null;
- try {
- String linkerImplFullName = properties.getProperty("linker." +
entityType, "");
- Class theClass = Class.forName(linkerImplFullName);
- linker = (EntityLinker) theClass.newInstance();
- System.out.println("EntityLinker factory instantiated: " +
linker.getClass().getName());
- linker.init(properties);
-
- } catch (Exception ex) {
- throw new Exception("Error in EntityLinker factory. Check the entity
linker properties file. The entry must be formatted as
linker.<type>=<fullclassname>, i.e
linker.person=org.my.company.MyPersonLinker",ex);
+
+ String linkerImplFullName = properties.getProperty("linker." + entityType,
"");
+
+ if (linkerImplFullName == null) {
+ throw new IllegalArgumentException("linker." + entityType + " property
must be set!");
}
+
+ EntityLinker<?> linker =
ExtensionLoader.instantiateExtension(EntityLinker.class, linkerImplFullName);
+ linker.init(properties);
return linker;
}
}