Author: schor
Date: Thu Aug 18 15:47:03 2016
New Revision: 1756822
URL: http://svn.apache.org/viewvc?rev=1756822&view=rev
Log:
[UIMA-4674] refactor to use common way to loadUserClass
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PrimitiveAnalysisEngine_impl.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java
URL:
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java?rev=1756822&r1=1756821&r2=1756822&view=diff
==============================================================================
---
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java
(original)
+++
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java
Thu Aug 18 15:47:03 2016
@@ -278,16 +278,7 @@ public class FlowControllerContainer ext
// load FlowController class
Class<?> flowControllerClass = null;
try {
- // get UIMA extension ClassLoader if available
- ClassLoader cl =
getUimaContextAdmin().getResourceManager().getExtensionClassLoader();
-
- if (cl != null) {
- // use UIMA extension ClassLoader to load the class
- flowControllerClass = cl.loadClass(flowControllerClassName);
- } else {
- // use application ClassLoader to load the class
- flowControllerClass = Class.forName(flowControllerClassName);
- }
+ flowControllerClass= loadUserClass(flowControllerClassName);
} catch (ClassNotFoundException e) {
throw new
ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
new Object[] { flowControllerClassName,
aDescriptor.getSourceUrlString() }, e);
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PrimitiveAnalysisEngine_impl.java
URL:
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PrimitiveAnalysisEngine_impl.java?rev=1756822&r1=1756821&r2=1756822&view=diff
==============================================================================
---
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PrimitiveAnalysisEngine_impl.java
(original)
+++
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PrimitiveAnalysisEngine_impl.java
Thu Aug 18 15:47:03 2016
@@ -205,16 +205,7 @@ public class PrimitiveAnalysisEngine_imp
// load annotator class
Class<?> annotatorClass = null;
try {
- // get UIMA extension ClassLoader if available
- final ClassLoader cl =
getUimaContextAdmin().getResourceManager().getExtensionClassLoader();
-
- if (cl != null) {
- // use UIMA extension ClassLoader to load the class
- annotatorClass = cl.loadClass(annotatorClassName);
- } else {
- // use application ClassLoader to load the class
- annotatorClass = Class.forName(annotatorClassName);
- }
+ annotatorClass = loadUserClass(annotatorClassName);
} catch (ClassNotFoundException e) {
throw new ResourceInitializationException(
ResourceInitializationException.ANNOTATOR_CLASS_NOT_FOUND, new
Object[] {
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java
URL:
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java?rev=1756822&r1=1756821&r2=1756822&view=diff
==============================================================================
---
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java
(original)
+++
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java
Thu Aug 18 15:47:03 2016
@@ -86,15 +86,9 @@ public class CasConsumerDescription_impl
new Object[] { getSourceUrlString() });
}
// try to load user class
- // ust UIMA extension ClassLoader if available
Class<?> implClass;
- ClassLoader cl = aResourceManager.getExtensionClassLoader();
try {
- if (cl != null) {
- implClass = cl.loadClass(getImplementationName());
- } else {
- implClass = Class.forName(getImplementationName());
- }
+ implClass = aResourceManager.loadUserClass(getImplementationName());
} catch (ClassNotFoundException e) {
throw new
ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
new Object[] { getImplementationName(), getSourceUrlString() },
e);
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java
URL:
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java?rev=1756822&r1=1756821&r2=1756822&view=diff
==============================================================================
---
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java
(original)
+++
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java
Thu Aug 18 15:47:03 2016
@@ -86,15 +86,9 @@ public class CasInitializerDescription_i
new Object[] { getSourceUrlString() });
}
// try to load user class
- // ust UIMA extension ClassLoader if available
Class<?> implClass;
- ClassLoader cl = aResourceManager.getExtensionClassLoader();
try {
- if (cl != null) {
- implClass = cl.loadClass(getImplementationName());
- } else {
- implClass = Class.forName(getImplementationName());
- }
+ implClass = aResourceManager.loadUserClass(getImplementationName());
} catch (ClassNotFoundException e) {
throw new
ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
new Object[] { getImplementationName(), getSourceUrlString() },
e);
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java
URL:
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java?rev=1756822&r1=1756821&r2=1756822&view=diff
==============================================================================
---
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java
(original)
+++
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java
Thu Aug 18 15:47:03 2016
@@ -79,15 +79,9 @@ public class CollectionReaderDescription
new Object[] { getSourceUrlString() });
}
// try to load user class
- // ust UIMA extension ClassLoader if available
Class<?> implClass;
- ClassLoader cl = aResourceManager.getExtensionClassLoader();
try {
- if (cl != null) {
- implClass = cl.loadClass(getImplementationName());
- } else {
- implClass = Class.forName(getImplementationName());
- }
+ implClass = aResourceManager.loadUserClass(getImplementationName());
} catch (ClassNotFoundException e) {
throw new
ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
new Object[] { getImplementationName(), getSourceUrlString() },
e);
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java
URL:
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java?rev=1756822&r1=1756821&r2=1756822&view=diff
==============================================================================
---
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java
(original)
+++
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java
Thu Aug 18 15:47:03 2016
@@ -77,15 +77,9 @@ public class FlowControllerDescription_i
new Object[] { getSourceUrlString() });
}
// try to load user class
- // ust UIMA extension ClassLoader if available
Class<?> implClass;
- ClassLoader cl = aResourceManager.getExtensionClassLoader();
try {
- if (cl != null) {
- implClass = cl.loadClass(getImplementationName());
- } else {
- implClass = Class.forName(getImplementationName());
- }
+ implClass = aResourceManager.loadUserClass(getImplementationName());
} catch (ClassNotFoundException e) {
throw new
ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
new Object[] { getImplementationName(), getSourceUrlString() },
e);
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java
URL:
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java?rev=1756822&r1=1756821&r2=1756822&view=diff
==============================================================================
---
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java
(original)
+++
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java
Thu Aug 18 15:47:03 2016
@@ -312,4 +312,13 @@ public interface ResourceManager {
* @return A map from absolute URL to the XMLizable object that was parsed
from that URL
*/
public Map<String,XMLizable> getImportCache();
+
+ /**
+ * Loads a user class using either the UIMA extension class loader (if
specified) or
+ * the loader the UIMA framework is running in.
+ * @param name the class to load
+ * @return the class
+ * @throws ClassNotFoundException -
+ */
+ public Class<?> loadUserClass(String name) throws ClassNotFoundException;
}
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java
URL:
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java?rev=1756822&r1=1756821&r2=1756822&view=diff
==============================================================================
---
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java
(original)
+++
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java
Thu Aug 18 15:47:03 2016
@@ -285,4 +285,13 @@ public abstract class Resource_ImplBase
public CasManager getCasManager() {
return getResourceManager().getCasManager();
}
+
+ public Class<?> loadUserClass(String name) throws ClassNotFoundException {
+ return getResourceManager().loadUserClass(name);
+// ClassLoader cl =
getUimaContextAdmin().getResourceManager().getExtensionClassLoader();
+// if (null == cl) {
+// cl = this.getClass().getClassLoader();
+// }
+// return Class.forName(name, true, cl);
+ }
}
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
URL:
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java?rev=1756822&r1=1756821&r2=1756822&view=diff
==============================================================================
---
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
(original)
+++
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
Thu Aug 18 15:47:03 2016
@@ -535,19 +535,9 @@ public class ResourceManager_impl implem
} else {
// make sure resource exists and implements the correct interface
try {
- if (aDependencies[i].getInterfaceName() != null
- && aDependencies[i].getInterfaceName().length() > 0) {
- // get UIMA extension ClassLoader if available
- ClassLoader cl = getExtensionClassLoader();
- Class<?> theInterface = null;
-
- if (cl != null) {
- // use UIMA extension ClassLoader to load the class
- theInterface = cl.loadClass(aDependencies[i].getInterfaceName());
- } else {
- // use application ClassLoader to load the class
- theInterface =
Class.forName(aDependencies[i].getInterfaceName());
- }
+ String name = aDependencies[i].getInterfaceName();
+ if (name != null && name.length() > 0) {
+ Class<?> theInterface = loadUserClass(name);
Class<? extends Resource> resourceClass = getResourceClass(qname);
if (!theInterface.isAssignableFrom(resourceClass)) {
@@ -589,16 +579,7 @@ public class ResourceManager_impl implem
Class<?> implClass = null;
if (implementationName != null && implementationName.length() > 0) {
try {
- // get UIMA extension ClassLoader if available
- ClassLoader cl = getExtensionClassLoader();
-
- if (cl != null) {
- // use UIMA extension ClassLoader to load the class
- implClass = cl.loadClass(implementationName);
- } else {
- // use application ClassLoader to load the class
- implClass = Class.forName(implementationName);
- }
+ implClass = loadUserClass(implementationName);
} catch (ClassNotFoundException e) {
throw new
ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
new Object[] { implementationName,
aResourceDescription.getSourceUrlString() }, e);
@@ -713,4 +694,12 @@ public class ResourceManager_impl implem
return importCache;
}
+ public Class<?> loadUserClass(String name) throws ClassNotFoundException {
+ ClassLoader cl = getExtensionClassLoader();
+ if (cl == null) {
+ cl = this.getClass().getClassLoader();
+ }
+ return Class.forName(name, true, cl);
+ }
+
}