Hm, I think this could also be addressed via the UimaContextHolder that was
discussed elsewhere. uimaFIT could check if there is an active context
and re-use its resource manager instead of creating a new one.

What do you think?

Cheers,

-- Richard

> On 18.08.2016, at 23:16, Marshall Schor <[email protected]> wrote:
> 
> Some other things to consider:
> 
> The way Ruta is using uimaFIT in the failing case results in multiple analysis
> engines created with different resource managers, but the CAS from one is (I
> think - didn't check this...) sent through the AE of another.
> 
> When multiple AEs are used this way with a common CAS, then the type system,
> type priorities and indexes definition associated with this common CAS are 
> used.
> So it makes sense to share these parts of the Resource Manager.
> 
> And, if the intent is to have JCas cover classes produced by one of the AEs
> usable by the other AEs, then there should not be extra UIMA Class loaders, 
> and
> class loader switching.  This is because one of the things that class loader
> switching does is to swap in/ out different JCasHashMaps.  These are maps that
> associated already created JCas instances with specific Cas Feature 
> Structures. 
> This could be important, if the JCas instance was carrying along extra
> information (not in the CAS) that you wanted shared with other
> class-loading-contexts (e.g., an "outer" AE, or an "application").
> 
> -Marshall

Reply via email to