<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
-->
<!--                                                               
    Descriptor for testing the editing and copying of an aggregate.
    
    Note: Blank lines outside comments in this first section are not preserved
    
    Note: The indent-amount is now 3 so the testManyDelagates JUnit test almost works with Saxon!
-->
<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">

   <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
   <primitive>false</primitive>

   <!-- Test that order of declarations is preserved when re-written  -->
   <delegateAnalysisEngineSpecifiers>
      <delegateAnalysisEngine key="D">
         <import location="TestPrimitiveTae2.xml"/>
      </delegateAnalysisEngine>
      <delegateAnalysisEngine key="C">
         <import location="TestPrimitiveTae2.xml"/>
      </delegateAnalysisEngine>
      <delegateAnalysisEngine key="B">
         <import location="TestPrimitiveTae2.xml"/>
      </delegateAnalysisEngine>
      <delegateAnalysisEngine key="A">
         <import location="TestPrimitiveTae2.xml"/>
      </delegateAnalysisEngine>
      <delegateAnalysisEngine key="F">
         <import location="TestPrimitiveTae2.xml"/>
      </delegateAnalysisEngine>
      <delegateAnalysisEngine key="E">
         <import location="TestPrimitiveTae2.xml"/>
      </delegateAnalysisEngine>
   </delegateAnalysisEngineSpecifiers>
   <!-- The above declaration order should be preserved when the UIMA APIs are used to parse and -->
   <!-- serialize back to disk  -->
   <analysisEngineMetaData>
      <name>AggregateWithManyDelegates</name>
      <version>1.0</version>
      <configurationParameters searchStrategy="language_fallback">
         <configurationParameter>              <!-- First parameter -->
            <name>StringParam</name>
            <description>This is a string parameter</description>
            <type>String</type>
            <multiValued>false</multiValued>
            <mandatory>false</mandatory>
            <overrides>
               <parameter>A/StringParam</parameter>
               <parameter>B/StringParam</parameter>
            </overrides>
         </configurationParameter>
         <configurationParameter>
            <name>IntArrayParam</name>
            <description>Array of integers</description>
            <type>Integer</type>
            <multiValued>true</multiValued>
            <mandatory>false</mandatory>
            <overrides>
               <parameter>A/IntArrayParam</parameter>
            </overrides>
         </configurationParameter>
         <configurationParameter>
            <name>IntArrayParam1</name>
            <description>Array of integers</description>
            <type>Integer</type>
            <multiValued>true</multiValued>
            <mandatory>false</mandatory>
            <overrides>
               <parameter>B/IntArrayParam</parameter>
            </overrides>
         </configurationParameter>
      </configurationParameters>

      <!-- Start of parameter settings -->

      <configurationParameterSettings>
         <nameValuePair>
            <name>StringParam</name>
            <value>
               <string>this is a string</string>
            </value>
         </nameValuePair>
         <nameValuePair>
            <name>IntArrayParam</name>
            <value>
               <array>           <!-- an array of 2 integers -->
                  <integer>1</integer>
                  <integer>2</integer>
               </array>
            </value>
         </nameValuePair>
         <nameValuePair>
            <name>IntArrayParam1</name>
            <value>
               <array>
                  <integer>3</integer>
                  <integer>4</integer>
               </array>
            </value>
         </nameValuePair>
      </configurationParameterSettings>
      <flowConstraints>
         <fixedFlow>
            <node>A</node>
            <node>B</node>
            <node>C</node>
            <node>D</node>
            <node>E</node>
            <node>F</node>
         </fixedFlow>
      </flowConstraints>
      <fsIndexCollection/>
      <capabilities>
         <capability>
            <inputs/>
            <outputs/>
            <languagesSupported/>
         </capability>
      </capabilities>
      <operationalProperties>
         <modifiesCas>true</modifiesCas>
         <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
         <outputsNewCASes>false</outputsNewCASes>
      </operationalProperties>
   </analysisEngineMetaData>
   <resourceManagerConfiguration/>
</analysisEngineDescription>
