code: public static void runPipeline(final CollectionReaderDescription readerDesc,
        final AnalysisEngineDescription... descs) throws UIMAException, IOException {
      // Create the components
      final CollectionReader reader = createCollectionReader(readerDesc);
  
      try {
        // Run the pipeline
        runPipeline(reader, descs);
      }
      finally {
        close(reader);
        destroy(reader);
      }
    }
docs: Run the CollectionReader and AnalysisEngines as a pipeline. After processing all CASes
  provided by the reader, the method calls {@link AnalysisEngine#collectionProcessComplete()
  collectionProcessComplete()} on the engines, {@link CollectionReader#close() close()} on the
  reader and {@link Resource#destroy() destroy()} on the reader and all engines.
  
  @param readerDesc
  The CollectionReader that loads the documents into the CAS.
  @param descs
  Primitive AnalysisEngineDescriptions that process the CAS, in order. If you have a
  mix of primitive and aggregate engines, then please create the AnalysisEngines
  yourself and call the other runPipeline method.
  @throws UIMAException
  @throws IOException