String aggregateDescXml = writer.getBuffer().toString();
// System.out.println(aggregateDescXml);
// parse objects from XML
InputStream is = new ByteArrayInputStream(primitiveDescXml.getBytes(encoding));
AnalysisEngineDescription newPrimitiveDesc = (AnalysisEngineDescription) UIMAFramework
.getXMLParser().parse(new XMLInputSource(is, null));
is = new ByteArrayInputStream(aggregateDescXml.getBytes(encoding));
AnalysisEngineDescription newAggregateDesc = (AnalysisEngineDescription) UIMAFramework
.getXMLParser().parse(new XMLInputSource(is, null));
Assert.assertEquals(primitiveDesc, newPrimitiveDesc);
Assert.assertEquals(aggregateDesc, newAggregateDesc);
// test a complex descriptor
XMLInputSource in = new XMLInputSource(JUnitExtension
.getFile("AnnotatorContextTest/AnnotatorWithGroupsAndNonGroupParams.xml"));
AnalysisEngineDescription desc = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(in);
OperationalProperties opProps = desc.getAnalysisEngineMetaData().getOperationalProperties();
assertNotNull(opProps);
assertEquals(true, opProps.getModifiesCas());
assertEquals(true, opProps.isMultipleDeploymentAllowed());
writer = new StringWriter();
desc.toXML(writer);
String descXml = writer.getBuffer().toString();
is = new ByteArrayInputStream(descXml.getBytes(encoding));
AnalysisEngineDescription newDesc = (AnalysisEngineDescription) UIMAFramework.getXMLParser()
.parse(new XMLInputSource(is, null));
Assert.assertEquals(desc, newDesc);
// test a descriptor that includes a CasConsumer
in = new XMLInputSource(JUnitExtension