in uimafit-cpe/src/main/java/org/apache/uima/fit/cpe/CpePipeline.java [108:147]
public static void runPipeline(final int parallelism,
final CollectionReaderDescription readerDesc, final AnalysisEngineDescription... descs)
throws SAXException, CpeDescriptorException, IOException, ResourceInitializationException,
InvalidXMLException, AnalysisEngineProcessException {
AnalysisEngineDescription topLevelAnalysisEngine;
if (descs.length == 1 && !mayContainCasMultiplier(descs[0])) {
topLevelAnalysisEngine = descs[0];
} else {
topLevelAnalysisEngine = createEngineDescription(descs);
topLevelAnalysisEngine.getMetaData().setName("Top-level CPE Aggregate");
}
CpeBuilder builder = new CpeBuilder();
builder.setReader(readerDesc);
builder.setAnalysisEngine(topLevelAnalysisEngine);
builder.setMaxProcessingUnitThreadCount(parallelism);
StatusCallbackListenerImpl status = new StatusCallbackListenerImpl();
CollectionProcessingEngine engine = builder.createCpe(status);
engine.process();
while (status.isProcessing) {
synchronized (status) {
try {
status.wait();
} catch (InterruptedException e) {
// Do nothing
}
if (status.exceptions.size() > 0) {
if (engine.isProcessing()) {
engine.kill();
}
throw new AnalysisEngineProcessException(status.exceptions.get(0));
}
}
}
}