<?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="${DefaultBrokerURL}" prefetch="1"/>
      <topDescriptor>
        <import location="../descriptors/analysis_engine/ComplexAggregateCMWithInnerAggregateCM.xml"/>
      </topDescriptor>
      <analysisEngine>
        <delegates>
        
          <analysisEngine key="TestMultiplier">
	        <casMultiplier poolSize="5"/> 
          </analysisEngine>

          <analysisEngine key="MeetingDetectorAggregate" async="false">
            <casMultiplier poolSize="1" 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>
