You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2016/10/13 15:56:35 UTC
svn commit: r1764719 - in
/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima:
impl/ resource/impl/
Author: schor
Date: Thu Oct 13 15:56:35 2016
New Revision: 1764719
URL: http://svn.apache.org/viewvc?rev=1764719&view=rev
Log:
[UIMA-5038] consolidation of repeated code snips for doing class loading in resources, into single methods.
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.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/impl/CasConsumerFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java?rev=1764719&r1=1764718&r2=1764719&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java Thu Oct 13 15:56:35 2016
@@ -31,6 +31,7 @@ import org.apache.uima.resource.Resource
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.ResourceSpecifier;
+import org.apache.uima.resource.impl.ResourceManager_impl;
import org.apache.uima.uimacpp.UimacppAnalysisComponent;
/**
@@ -72,19 +73,8 @@ public class CasConsumerFactory_impl imp
resourceManager = (ResourceManager) aAdditionalParams
.get(Resource.PARAM_RESOURCE_MANAGER);
}
- if (resourceManager != null) {
- cl = resourceManager.getExtensionClassLoader();
- }
- if (cl == null) {
- cl = this.getClass().getClassLoader();
- }
- try {
- implClass = Class.forName(className, true, cl);
- } catch (ClassNotFoundException e) {
- throw new ResourceInitializationException(
- ResourceInitializationException.CLASS_NOT_FOUND, new Object[] { className,
- aSpecifier.getSourceUrlString() }, e);
- }
+
+ implClass = ResourceManager_impl.loadUserClassOrThrow(className, resourceManager, aSpecifier);
// check to see if this is a subclass of Cas[Data]Consumer and of aResourceClass
if (!CasConsumer.class.isAssignableFrom(implClass)
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java?rev=1764719&r1=1764718&r2=1764719&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java Thu Oct 13 15:56:35 2016
@@ -29,6 +29,7 @@ import org.apache.uima.resource.Resource
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.ResourceSpecifier;
+import org.apache.uima.resource.impl.ResourceManager_impl;
/**
* Specialized Resource Factory for producing CasInitializers.
@@ -54,16 +55,8 @@ public class CasInitializerFactory_impl
if (aAdditionalParams != null) {
resourceManager = (ResourceManager) aAdditionalParams.get(Resource.PARAM_RESOURCE_MANAGER);
}
- if (resourceManager != null) {
- cl = resourceManager.getExtensionClassLoader();
- }
- if (cl == null) {
- cl = this.getClass().getClassLoader();
- }
-
try {
- Class<?> implClass = Class.forName(className, true, cl);
-
+ Class<?> implClass = ResourceManager_impl.loadUserClassOrThrow(className, resourceManager, aSpecifier);
// check to see if this is a subclass of BaseCollectionReader and of aResourceClass
if (!CasInitializer.class.isAssignableFrom(implClass)
&& !CasDataInitializer.class.isAssignableFrom(implClass)) {
@@ -90,11 +83,8 @@ public class CasInitializerFactory_impl
ResourceInitializationException.ERROR_INITIALIZING_FROM_DESCRIPTOR, new Object[] {
className, aSpecifier.getSourceUrlString() });
}
- }
+
// if an exception occurs, log it but do not throw it... yet
- catch (ClassNotFoundException e) {
- throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
- new Object[] { className, aSpecifier.getSourceUrlString() }, e);
} catch (IllegalAccessException e) {
throw new ResourceInitializationException(
ResourceInitializationException.COULD_NOT_INSTANTIATE, new Object[] { className,
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java?rev=1764719&r1=1764718&r2=1764719&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java Thu Oct 13 15:56:35 2016
@@ -30,6 +30,7 @@ import org.apache.uima.resource.Resource
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.ResourceSpecifier;
+import org.apache.uima.resource.impl.ResourceManager_impl;
import org.apache.uima.resource.metadata.ProcessingResourceMetaData;
/**
@@ -69,20 +70,14 @@ public class CollectionReaderFactory_imp
}
// load class using UIMA Extension ClassLoader if there is one
- ClassLoader cl = null;
+
ResourceManager resourceManager = null;
if (aAdditionalParams != null) {
resourceManager = (ResourceManager) aAdditionalParams.get(Resource.PARAM_RESOURCE_MANAGER);
}
- if (resourceManager != null) {
- cl = resourceManager.getExtensionClassLoader();
- }
- if (cl == null) {
- cl = this.getClass().getClassLoader();
- }
-
+
try {
- Class<?> implClass = Class.forName(className, true, cl);
+ Class<?> implClass = ResourceManager_impl.loadUserClassOrThrow(className, resourceManager, aSpecifier);
// check to see if this is a subclass of BaseCollectionReader and of aResourceClass
if (!BaseCollectionReader.class.isAssignableFrom(implClass)) {
@@ -112,11 +107,6 @@ public class CollectionReaderFactory_imp
ResourceInitializationException.ERROR_INITIALIZING_FROM_DESCRIPTOR, new Object[] {
className, aSpecifier.getSourceUrlString() });
}
- }
- // if an exception occurs, log it but do not throw it... yet
- catch (ClassNotFoundException e) {
- throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
- new Object[] { className, aSpecifier.getSourceUrlString() }, e);
} catch (IllegalAccessException e) {
throw new ResourceInitializationException(
ResourceInitializationException.COULD_NOT_INSTANTIATE, new Object[] { className,
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java?rev=1764719&r1=1764718&r2=1764719&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java Thu Oct 13 15:56:35 2016
@@ -121,6 +121,7 @@ public class ResourceSpecifierFactory_im
}
/**
+ * only used for uima framework things, setting up the mappings between intfc and impl for the framework parts
* @see org.apache.uima.ResourceSpecifierFactory#addMapping(String, String)
*/
public void addMapping(String aInterfaceName, String aClassName) throws ClassNotFoundException {
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=1764719&r1=1764718&r2=1764719&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 Oct 13 15:56:35 2016
@@ -46,6 +46,7 @@ import org.apache.uima.resource.Resource
import org.apache.uima.resource.ResourceAccessException;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.ResourceManager;
+import org.apache.uima.resource.ResourceSpecifier;
import org.apache.uima.resource.SharedResourceObject;
import org.apache.uima.resource.metadata.ExternalResourceBinding;
import org.apache.uima.resource.metadata.ResourceManagerConfiguration;
@@ -712,5 +713,25 @@ public class ResourceManager_impl implem
}
return Class.forName(name, true, cl);
}
+
+ public static Class<?> loadUserClass(String name, ResourceManager rm) throws ClassNotFoundException {
+ return (rm == null)
+ ? Class.forName(name, true, ResourceManager_impl.class.getClassLoader())
+ : rm.loadUserClass(name);
+ }
+
+ public static Class<?> loadUserClassOrThrow(String name, ResourceManager rm, ResourceSpecifier aSpecifier)
+ throws ResourceInitializationException {
+ try {
+ return (rm == null)
+ ? Class.forName(name, true, ResourceManager_impl.class.getClassLoader())
+ : rm.loadUserClass(name);
+ } catch (ClassNotFoundException e) {
+ throw new ResourceInitializationException(
+ ResourceInitializationException.CLASS_NOT_FOUND, new Object[] { name,
+ aSpecifier.getSourceUrlString() }, e);
+ }
+ }
+
}