public static void runPipeline()

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));
        }
      }
    }
  }