<?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.
    ***************************************************************
   -->
<analysisEngineDeploymentDescription xmlns="http://uima.apache.org/resourceSpecifier">

  <name>Top Level TAE</name>
  <description></description>

  <deployment protocol="jms" provider="activemq">
    <casPool numberOfCASes="5"/>
    <service>
      <inputQueue endpoint="TopLevelTaeQueue" brokerURL="tcp://localhost:8118" prefetch="1"/>
      <topDescriptor>
        <import location="../descriptors/analysis_engine/ComplexAggregateWithInnerAggregateCM.xml"/>
      </topDescriptor>
      <analysisEngine>
        <delegates>

          <analysisEngine key="TestMultiplier">
          <casMultiplier poolSize="5"/> 
          </analysisEngine>

          <analysisEngine key="MeetingDetectorAggregate" async="true">
            <casMultiplier poolSize="25" initialFsHeapSize="20000"/> 
            <asyncAggregateErrorConfiguration>
              <getMetadataErrors maxRetries="0" timeout="60000" errorAction="terminate"/>
              <processCasErrors maxRetries="0" timeout="0" continueOnRetryFailure="false" thresholdCount="0" thresholdWindow="0" thresholdAction="terminate"/>
              <collectionProcessCompleteErrors timeout="0" additionalErrorAction="terminate"/>
            </asyncAggregateErrorConfiguration>
          </analysisEngine>

        </delegates>
      </analysisEngine>
    </service>
  </deployment>

</analysisEngineDeploymentDescription>