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 2018/07/02 21:48:50 UTC
svn commit: r1834904 - in
/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima:
analysis_engine/asb/impl/ collection/impl/ flow/impl/ impl/ resource/impl/
Author: schor
Date: Mon Jul 2 21:48:50 2018
New Revision: 1834904
URL: http://svn.apache.org/viewvc?rev=1834904&view=rev
Log:
[UIMA-5802] consolidate most class loading or setting extension class loader parents, include the Thread context class loader
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/ (props changed)
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/ (props changed)
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/ (props changed)
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ (props changed)
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CustomResourceFactory_impl.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java (props changed)
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java (contents, props changed)
Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Jul 2 21:48:50 2018
@@ -0,0 +1,8 @@
+/incubator/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:932400-933272
+/uima/uimaj/branches/2.6.0-json/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:1616936-1617592
+/uima/uimaj/branches/depend-on-july-9-build-tools/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:963167-964468
+/uima/uimaj/branches/depend-on-parent-pom-4/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:961329-961745
+/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:1436573-1462257
+/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:933273-944396
+/uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:1024030
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:1690273-1834879
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java Mon Jul 2 21:48:50 2018
@@ -41,6 +41,7 @@ import org.apache.uima.flow.FlowControll
import org.apache.uima.flow.FlowControllerDescription;
import org.apache.uima.flow.JCasFlow_ImplBase;
import org.apache.uima.impl.Util;
+import org.apache.uima.internal.util.Class_TCCL;
import org.apache.uima.internal.util.JmxMBeanAgent;
import org.apache.uima.resource.ConfigurableResource_ImplBase;
import org.apache.uima.resource.ResourceConfigurationException;
@@ -213,13 +214,13 @@ public class FlowControllerContainer ext
* @throws AnalysisEngineProcessException
* if the FlowController failed
*/
- public FlowContainer computeFlow(CAS aCAS) throws AnalysisEngineProcessException {
+ public FlowContainer computeFlow(final CAS aCAS) throws AnalysisEngineProcessException {
mTimer.startIt();
CAS view = null;
UimaContext prevContext = setContextHolder(); // for use by POJOs
try {
- view = Util.getStartingView(aCAS, mSofaAware, getUimaContextAdmin().getComponentInfo());
-
+ // throws if _InitialView is mapped to non-existent sofa https://issues.apache.org/jira/browse/UIMA-5097
+ view = Util.getStartingView(aCAS, mSofaAware, getUimaContextAdmin().getComponentInfo());
// now get the right interface(e.g. CAS or JCAS)
Class<? extends AbstractCas> requiredInterface = mFlowController.getRequiredCasInterface();
AbstractCas casToPass = getCasManager().getCasInterface(view, requiredInterface);
@@ -235,9 +236,9 @@ public class FlowControllerContainer ext
} catch (CASException e) {
throw new AnalysisEngineProcessException(e);
} finally {
+ aCAS.setCurrentComponentInfo(null); // https://issues.apache.org/jira/browse/UIMA-5097
if (view != null) {
- ((CASImpl)view).restoreClassLoaderUnlockCas();
- view.setCurrentComponentInfo(null);
+ ((CASImpl)view).restoreClassLoaderUnlockCas();
}
mTimer.stopIt();
getMBean().reportAnalysisTime(mTimer.getDuration());
Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Jul 2 21:48:50 2018
@@ -0,0 +1,8 @@
+/incubator/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/collection/impl:932400-933272
+/uima/uimaj/branches/2.6.0-json/uimaj-core/src/main/java/org/apache/uima/collection/impl:1616936-1617592
+/uima/uimaj/branches/depend-on-july-9-build-tools/uimaj-core/src/main/java/org/apache/uima/collection/impl:963167-964468
+/uima/uimaj/branches/depend-on-parent-pom-4/uimaj-core/src/main/java/org/apache/uima/collection/impl:961329-961745
+/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/collection/impl:1436573-1462257
+/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/collection/impl:933273-944396
+/uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/collection/impl:1024030
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl:1690273-1834893
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java Mon Jul 2 21:48:50 2018
@@ -26,6 +26,7 @@ import org.apache.uima.Constants;
import org.apache.uima.UIMAFramework;
import org.apache.uima.collection.CasConsumer;
import org.apache.uima.collection.CasConsumerDescription;
+import org.apache.uima.internal.util.Class_TCCL;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.impl.ResourceCreationSpecifier_impl;
@@ -86,9 +87,10 @@ public class CasConsumerDescription_impl
new Object[] { getSourceUrlString() });
}
// try to load user class
+ // just UIMA extension ClassLoader if available
Class<?> implClass;
try {
- implClass = aResourceManager.loadUserClass(getImplementationName());
+ implClass = Class_TCCL.forName(getImplementationName(), aResourceManager);
} catch (ClassNotFoundException e) {
throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
new Object[] { getImplementationName(), getSourceUrlString() }, e);
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java Mon Jul 2 21:48:50 2018
@@ -26,6 +26,7 @@ import org.apache.uima.Constants;
import org.apache.uima.UIMAFramework;
import org.apache.uima.collection.CasInitializer;
import org.apache.uima.collection.CasInitializerDescription;
+import org.apache.uima.internal.util.Class_TCCL;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.impl.ResourceCreationSpecifier_impl;
@@ -86,9 +87,10 @@ public class CasInitializerDescription_i
new Object[] { getSourceUrlString() });
}
// try to load user class
+ // just UIMA extension ClassLoader if available
Class<?> implClass;
try {
- implClass = aResourceManager.loadUserClass(getImplementationName());
+ implClass = Class_TCCL.forName(getImplementationName(), aResourceManager);
} catch (ClassNotFoundException e) {
throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
new Object[] { getImplementationName(), getSourceUrlString() }, e);
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java Mon Jul 2 21:48:50 2018
@@ -25,6 +25,7 @@ import org.apache.uima.Constants;
import org.apache.uima.UIMAFramework;
import org.apache.uima.collection.CollectionReader;
import org.apache.uima.collection.CollectionReaderDescription;
+import org.apache.uima.internal.util.Class_TCCL;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.impl.ResourceCreationSpecifier_impl;
@@ -79,9 +80,11 @@ public class CollectionReaderDescription
new Object[] { getSourceUrlString() });
}
// try to load user class
+
+ // use UIMA extension ClassLoader if available
Class<?> implClass;
try {
- implClass = aResourceManager.loadUserClass(getImplementationName());
+ implClass = Class_TCCL.forName(getImplementationName(), aResourceManager);
} catch (ClassNotFoundException e) {
throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
new Object[] { getImplementationName(), getSourceUrlString() }, e);
Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Jul 2 21:48:50 2018
@@ -0,0 +1,8 @@
+/incubator/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/flow/impl:932400-933272
+/uima/uimaj/branches/2.6.0-json/uimaj-core/src/main/java/org/apache/uima/flow/impl:1616936-1617592
+/uima/uimaj/branches/depend-on-july-9-build-tools/uimaj-core/src/main/java/org/apache/uima/flow/impl:963167-964468
+/uima/uimaj/branches/depend-on-parent-pom-4/uimaj-core/src/main/java/org/apache/uima/flow/impl:961329-961745
+/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/flow/impl:1436573-1462257
+/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/flow/impl:933273-944396
+/uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/flow/impl:1024030
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl:1690273-1834896
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java Mon Jul 2 21:48:50 2018
@@ -23,6 +23,7 @@ import org.apache.uima.Constants;
import org.apache.uima.UIMAFramework;
import org.apache.uima.flow.FlowController;
import org.apache.uima.flow.FlowControllerDescription;
+import org.apache.uima.internal.util.Class_TCCL;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.impl.ResourceCreationSpecifier_impl;
@@ -77,9 +78,10 @@ public class FlowControllerDescription_i
new Object[] { getSourceUrlString() });
}
// try to load user class
+ // use UIMA extension ClassLoader if available
Class<?> implClass;
try {
- implClass = aResourceManager.loadUserClass(getImplementationName());
+ implClass = Class_TCCL.forName(getImplementationName(), aResourceManager);
} catch (ClassNotFoundException e) {
throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
new Object[] { getImplementationName(), getSourceUrlString() }, e);
Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Jul 2 21:48:50 2018
@@ -0,0 +1,8 @@
+/incubator/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/impl:932400-933272
+/uima/uimaj/branches/2.6.0-json/uimaj-core/src/main/java/org/apache/uima/impl:1616936-1617592
+/uima/uimaj/branches/depend-on-july-9-build-tools/uimaj-core/src/main/java/org/apache/uima/impl:963167-964468
+/uima/uimaj/branches/depend-on-parent-pom-4/uimaj-core/src/main/java/org/apache/uima/impl:961329-961745
+/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/impl:1436573-1462257
+/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/impl:933273-944396
+/uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/impl:1024030
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl:1690273-1834897
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java Mon Jul 2 21:48:50 2018
@@ -27,11 +27,11 @@ import org.apache.uima.analysis_engine.i
import org.apache.uima.collection.CasConsumer;
import org.apache.uima.collection.CasConsumerDescription;
import org.apache.uima.collection.base_cpm.CasDataConsumer;
+import org.apache.uima.internal.util.Class_TCCL;
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;
/**
@@ -66,16 +66,15 @@ public class CasConsumerFactory_impl imp
}
// load class using UIMA Extension ClassLoader if there is one
- ClassLoader cl = null;
Class<?> implClass = null;
- ResourceManager resourceManager = null;
- if (aAdditionalParams != null) {
- resourceManager = (ResourceManager) aAdditionalParams
- .get(Resource.PARAM_RESOURCE_MANAGER);
+ try {
+ implClass = Class_TCCL.forName(className, aAdditionalParams);
+ } 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)
&& !CasDataConsumer.class.isAssignableFrom(implClass)) {
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java Mon Jul 2 21:48:50 2018
@@ -25,11 +25,11 @@ import org.apache.uima.ResourceFactory;
import org.apache.uima.collection.CasInitializer;
import org.apache.uima.collection.CasInitializerDescription;
import org.apache.uima.collection.base_cpm.CasDataInitializer;
+import org.apache.uima.internal.util.Class_TCCL;
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.
@@ -50,13 +50,9 @@ public class CasInitializerFactory_impl
String className = desc.getImplementationName();
// 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);
- }
try {
- Class<?> implClass = ResourceManager_impl.loadUserClassOrThrow(className, resourceManager, aSpecifier);
+ Class<?> implClass = Class_TCCL.forName(className, aAdditionalParams);
+
// check to see if this is a subclass of BaseCollectionReader and of aResourceClass
if (!CasInitializer.class.isAssignableFrom(implClass)
&& !CasDataInitializer.class.isAssignableFrom(implClass)) {
@@ -85,6 +81,9 @@ public class CasInitializerFactory_impl
}
// 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/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java Mon Jul 2 21:48:50 2018
@@ -26,11 +26,11 @@ import org.apache.uima.ResourceFactory;
import org.apache.uima.collection.CollectionReaderDescription;
import org.apache.uima.collection.CollectionReader_ImplBase;
import org.apache.uima.collection.base_cpm.BaseCollectionReader;
+import org.apache.uima.internal.util.Class_TCCL;
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;
/**
@@ -70,14 +70,8 @@ public class CollectionReaderFactory_imp
}
// load class using UIMA Extension ClassLoader if there is one
-
- ResourceManager resourceManager = null;
- if (aAdditionalParams != null) {
- resourceManager = (ResourceManager) aAdditionalParams.get(Resource.PARAM_RESOURCE_MANAGER);
- }
-
try {
- Class<?> implClass = ResourceManager_impl.loadUserClassOrThrow(className, resourceManager, aSpecifier);
+ Class<?> implClass = Class_TCCL.forName(className, aAdditionalParams);
// check to see if this is a subclass of BaseCollectionReader and of aResourceClass
if (!BaseCollectionReader.class.isAssignableFrom(implClass)) {
@@ -107,6 +101,11 @@ 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/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CustomResourceFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CustomResourceFactory_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CustomResourceFactory_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CustomResourceFactory_impl.java Mon Jul 2 21:48:50 2018
@@ -22,6 +22,7 @@ package org.apache.uima.impl;
import java.util.Map;
import org.apache.uima.ResourceFactory;
+import org.apache.uima.internal.util.Class_TCCL;
import org.apache.uima.resource.CustomResourceSpecifier;
import org.apache.uima.resource.Resource;
import org.apache.uima.resource.ResourceInitializationException;
@@ -43,22 +44,10 @@ public class CustomResourceFactory_impl
String className = ((CustomResourceSpecifier)aSpecifier).getResourceClassName();
//check additional params map for ResourceManager, and use the UIMA extension ClassLoader
//if one exists
- ClassLoader loader = null;
- ResourceManager resMgr = null;
- if (aAdditionalParams != null) {
- resMgr = (ResourceManager)aAdditionalParams.get(Resource.PARAM_RESOURCE_MANAGER);
- }
- if (resMgr != null) {
- loader = resMgr.getExtensionClassLoader();
- }
- if (loader == null) {
- loader = this.getClass().getClassLoader();
- }
-
//load the Resourceclass
Class<?> resourceClass;
try {
- resourceClass = Class.forName(className, true, loader);
+ resourceClass = Class_TCCL.forName(className, aAdditionalParams);
} catch (ClassNotFoundException e) {
throw new ResourceInitializationException(
ResourceInitializationException.CLASS_NOT_FOUND, new Object[] { className,
Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java
('svn:mergeinfo' removed)
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java Mon Jul 2 21:48:50 2018
@@ -35,6 +35,7 @@ import java.util.concurrent.atomic.Atomi
import org.apache.uima.UIMAFramework;
import org.apache.uima.UIMA_IllegalStateException;
import org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase;
+import org.apache.uima.internal.util.Class_TCCL;
import org.apache.uima.internal.util.UIMAClassLoader;
import org.apache.uima.resource.CasManager;
import org.apache.uima.resource.DataResource;
@@ -305,7 +306,7 @@ public class ResourceManager_impl implem
public synchronized void setExtensionClassPath(String classpath, boolean resolveResource)
throws MalformedURLException {
// create UIMA extension ClassLoader with the given classpath
- uimaCL = new UIMAClassLoader(classpath, this.getClass().getClassLoader());
+ uimaCL = new UIMAClassLoader(classpath, Class_TCCL.get_parent_cl());
if (resolveResource) {
// set UIMA extension ClassLoader also to resolve resources
@@ -849,25 +850,17 @@ public class ResourceManager_impl implem
@Override
public <N> Class<N> loadUserClass(String name) throws ClassNotFoundException {
- ClassLoader cl = getExtensionClassLoader();
- if (cl == null) {
- cl = this.getClass().getClassLoader();
- }
- return (Class<N>) Class.forName(name, true, cl);
+ return Class_TCCL.forName(name, this, true);
}
public static Class<?> loadUserClass(String name, ResourceManager rm) throws ClassNotFoundException {
- return (rm == null)
- ? Class.forName(name, true, ResourceManager_impl.class.getClassLoader())
- : rm.loadUserClass(name);
+ return Class_TCCL.forName(name, rm, true);
}
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);
+ return Class_TCCL.forName(name, rm, true);
} catch (ClassNotFoundException e) {
throw new ResourceInitializationException(
ResourceInitializationException.CLASS_NOT_FOUND, new Object[] { name,
Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jul 2 21:48:50 2018
@@ -5,4 +5,4 @@
/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java:1436573-1462257
/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java:933273-944396
/uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java:1024030
-/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java:1690273-1834526
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java:1690273-1834899