You don't need a new Flow Controller ... just override the ActionAfterCasMultiplier as is done in the example descriptor Segment_Annotate_Merge_AE.xml<file:///C:/Program%20Files/IBM/apache-uima-as/examples/descriptors/cas_multiplier/Segment_Annotate_Merge_AE.xml>
Unfortunately section 7.4 of the Tutorial says that Cas Multipliers are not supported by the CPE .. it was designed to support AAEs that return only the input CAS. It can run AAEs with CMs but the generated CASes cannot be returned and must be dropped ... e.g. after their contents have been consumed and saved externally. With some effort you could let the input CAS continue in the flow following the split CASes and so be the last CAS to enter your merge component where it could be filled with the accumulated results and so be the only CAS returned to the CPE. You'd have to make your intermediate annotators ignore it and pass it through unprocessed. Your final merge component would not be a CM as it would not generate any new CASes, and your aggregate would have outputsNewCASes="false" so that the intermediate CASes would be dropped at the end of the flow. Another possibility is to move your Cas Consumer into the aggregate so it sees all of the split CASes, replacing the merge component. There are other alternatives to the CPE ... putting your Collection Reader at the start of your aggregate, using a custom flow controller with UIMA-AS, or using the processAndOutputNewCASes api to handle an aggregate CM. - Burn
