* @see <a href="https://issues.apache.org/jira/browse/UIMA-2891">UIMA-2891</a>
*/
@Test
public void testExtraTypeConfigsOnAggregate() throws Exception {
TypeSystemDescription typeSystem = TypeSystemDescriptionFactory.createTypeSystemDescription();
TypePriorities extraPrios = TypePrioritiesFactory.createTypePriorities(Sentence.class,
Token.class);
// This one doesn't use any auto-configuration
AnalysisEngineDescription ae = createEngineDescription(UnannotatedAnnotatorClass.class,
typeSystem, null, null, null, null, null, null);
// Try configuring priorities on the aggregate
AnalysisEngineDescription aae = createEngineDescription(asList(ae), asList("ae1"),
extraPrios, null, null);
AnalysisEngine engine = createEngine(aae);
ProcessingResourceMetaData meta = engine.getProcessingResourceMetaData();
// When the meta data from the ae and the aae are merged in the engine, then it should be a
// new instance.
assertFalse("Merged meta-data is same instance as original",
aae.getMetaData().hashCode() == meta.hashCode());
assertFalse("Merged meta-data is same instance as original",
ae.getMetaData().hashCode() == meta.hashCode());
// Check that the priorities arrived
TypePriorities expected = ((ProcessingResourceMetaData) aae.getMetaData()).getTypePriorities();
TypePriorities actual = meta.getTypePriorities();
assertArrayEquals(expected.getPriorityLists()[0].getTypes(),
actual.getPriorityLists()[0].getTypes());
}