<?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/SimpleTestAggregateWithFlowControllerExceptionOnInitialization.xml"/>
      </topDescriptor>
      <analysisEngine>
        <delegates>
        
          <analysisEngine key="TestMultiplier">
	        <casMultiplier poolSize="5"/> 
          </analysisEngine>

          <remoteAnalysisEngine key="NoOp">
	                  <inputQueue endpoint="NoOpAnnotatorQueue" brokerURL="tcp://localhost:8118"/>
	                  <serializer method="xmi"/>
                      <asyncAggregateErrorConfiguration>
                            <getMetadataErrors maxRetries="0" timeout="5000" errorAction="disable" />
                            <processCasErrors maxRetries="0" timeout="5000" thresholdCount="4" thresholdAction="disable" continueOnRetryFailure="true"/>
                      </asyncAggregateErrorConfiguration>
          </remoteAnalysisEngine>


        </delegates>
      </analysisEngine>
    </service>
  </deployment>
  
</analysisEngineDeploymentDescription>
