[ 
https://issues.apache.org/jira/browse/UIMA-5802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16527264#comment-16527264
 ] 

Richard Eckart de Castilho commented on UIMA-5802:
--------------------------------------------------

I think forcing the user to explicitly create classloaders, resource managers, 
etc. significantly complicates the use of the API. In my opinion, if the user 
is using UIMA in an situation where a context classloader was set up either by 
the runtime environment (e.g. Jython), then it should be used by default - 
using the context classloader if it exists should be the simple case. That 
means, the the context classloader becomes the "default parent" as opposed to 
the boot classloader or whathever classloader it is that created the 
UIMAClassloader..
If a context classloader is available and the user does not want to use it, 
then it is still possible to manually create classloaders and resource managers 
and to force the use of a different classloader as the parent.
So in any of these situations, there should not be multiple parent classloaders 
for a given classloader.

> UIMA Class Loader to incorporate Thread context class loader
> ------------------------------------------------------------
>
>                 Key: UIMA-5802
>                 URL: https://issues.apache.org/jira/browse/UIMA-5802
>             Project: UIMA
>          Issue Type: Improvement
>          Components: Core Java Framework
>    Affects Versions: 2.10.2SDK, 3.0.0SDK
>            Reporter: Marshall Schor
>            Assignee: Marshall Schor
>            Priority: Minor
>             Fix For: 3.0.1SDK, 2.10.3SDK
>
>
> A long-outstanding request from uimaFIT is to incorporate the Thread's 
> context class loader in the uima class loader's lookup scheme. see UIMA-5054
> Doing this would allow uimaFIT to no longer create individual class loaders 
> for each AnalysisEngine its factory produces.  This would alleviate UIMA-5801.
> Current logic:
>  # see if already loaded by this loader, if so return with that
>  # try loading it, if succeed, return with that
>  # delegate to the parent.
> Fix logic: same except for a step between 2 and 3:
>       2a. delegate to the Thread context class loader (if available), if 
> succeed, return with that
> Besides doing this for loading classes, it would also be done for getting 
> resources.
> Does anyone see any issues with this approach?
> {quote}It seems this is unneeded; if the thread context class loader is 
> wanted in the chain, it should be the parent.  The suggested approach seems 
> to address a non-issue where 2 parent chains are wanted.
> There are other approaches to prevent multiple class loaders ( and even 
> maybe, multiple ResourceManagers) from being created, which might be a better 
> solution for UIMA-5801.  See comments for this and UIMA-5801.
> {quote}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to