Option 1 - by foot: I guess the uimaFIT JCasIterator should continue to read CAS by CAS from the reader. However, for each CAS read by the reader, it should be able to return 0-x CASes. Currently it can only return 1 because it calls engine.process(jCas) on each engine in turn. To return 0-x,
I think, it would have create a single aggregate engine from all the engines, call engine.processAndOutputNewCASes(jCas) on that, and handle the UIMA JCasIterator that is returned by it (sorry for two classes having the same name hereā¦). The UIMA JCasIterator would need to become part of the uimaFIT JCasIterator state. Special handling needs to be introduced to make sure the hasNext() method still works, in particular for the case that a CAS produced by the reader does not result in any output CAS. Option 2 - let UIMA do the heavy lifting An alternative and much simple approach might be to create an aggregate which does not only contain the engines, but also the reader. Then you don't have to worry about the reader anymore at all. Just create a UIMA JCasIterator and poll CASes from that until it is empty. Some additional info may be found in the legacy issue 89 [1]. There are probably nasty details, but those should be roughly the general approaches. Cheers, -- Richard [1] https://code.google.com/p/uimafit/issues/detail?id=89 On 04.12.2013, at 01:16, Swirl <lriwsw...@gmail.com> wrote: > Richard Eckart de Castilho <rec@...> writes: > >> >> For further reference: >> >> https://issues.apache.org/jira/browse/UIMA-3470 > > Thanks for raising the Jira. > > I tried looking at the source codes, but I think I am not able to come up > with > a solution for this. > Do you have any pointers to get me started? > > Thanks.