public void testProcess() throws Exception {
try {
// test simple primitive TextAnalysisEngine (using TestAnnotator class)
// This test should work with or without a type system description
AnalysisEngineDescription primitiveDesc = new AnalysisEngineDescription_impl();
primitiveDesc.setPrimitive(true);
primitiveDesc
.setAnnotatorImplementationName("org.apache.uima.analysis_engine.impl.TestAnnotator");
primitiveDesc.getMetaData().setName("Test Primitive TAE");
// TypeSystemDescription tsd = new TypeSystemDescription_impl();
// tsd.addType("NamedEntity", "", "uima.tcas.Annotation");
// tsd.addType("DocumentStructure", "", "uima.cas.TOP");
// primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(tsd);
Capability cap = new Capability_impl();
cap.addOutputType("NamedEntity", true);
cap.addOutputType("DocumentStructure", true);
Capability[] caps = new Capability[] {cap};
primitiveDesc.getAnalysisEngineMetaData().setCapabilities(caps);
_testProcess(primitiveDesc);
primitiveDesc = new AnalysisEngineDescription_impl();
primitiveDesc.setPrimitive(true);
primitiveDesc
.setAnnotatorImplementationName("org.apache.uima.analysis_engine.impl.TestAnnotator");
primitiveDesc.getMetaData().setName("Test Primitive TAE");
TypeSystemDescription tsd = new TypeSystemDescription_impl();
tsd.addType("NamedEntity", "", "uima.tcas.Annotation");
tsd.addType("DocumentStructure", "", "uima.cas.TOP");
primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(tsd);
cap = new Capability_impl();
cap.addOutputType("NamedEntity", true);
cap.addOutputType("DocumentStructure", true);
caps = new Capability[] {cap};
primitiveDesc.getAnalysisEngineMetaData().setCapabilities(caps);
_testProcess(primitiveDesc);
// test simple aggregate TextAnalysisEngine (again using TestAnnotator class)
AnalysisEngineDescription aggDesc = new AnalysisEngineDescription_impl();
aggDesc.setPrimitive(false);
aggDesc.getMetaData().setName("Test Aggregate TAE");
aggDesc.getDelegateAnalysisEngineSpecifiersWithImports().put("Test", primitiveDesc);
FixedFlow_impl flow = new FixedFlow_impl();
flow.setFixedFlow(new String[] { "Test" });
aggDesc.getAnalysisEngineMetaData().setFlowConstraints(flow);
aggDesc.getAnalysisEngineMetaData().setCapabilities(caps);
_testProcess(aggDesc);
// test aggregate TAE containing a CAS Consumer
File outFile = JUnitExtension.getFile("CpmOutput.txt");
if(outFile != null && outFile.exists()) {
//outFile.delete() //can't be relied upon. Instead set file to zero length.
FileOutputStream fos = new FileOutputStream(outFile, false);
fos.close();
assertEquals(0,outFile.length());
}
AnalysisEngineDescription aggWithCcDesc = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(
new XMLInputSource(JUnitExtension
.getFile("TextAnalysisEngineImplTest/AggregateTaeWithCasConsumer.xml")));
_testProcess(aggWithCcDesc, new String[] {"en"});
// test that CAS Consumer ran
if (null == outFile) {
outFile = JUnitExtension.getFile("CpmOutput.txt");
}
assertTrue(outFile != null && outFile.exists());
assertTrue(outFile.length() > 0);
outFile.delete();
//test aggregate that uses ParallelStep
AnalysisEngineDescription desc = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(
new XMLInputSource(JUnitExtension.getFile("TextAnalysisEngineImplTest/AggregateForParallelStepTest.xml")));
AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(desc);
CAS cas = ae.newCAS();
cas.setDocumentText("new test");
ae.process(cas);