<?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.
 -->

<cpeDescription>
  <collectionReader>
    <collectionIterator>
      <descriptor>
        <include href="${CPM_HOME}/CollectionProcessingEngineImplTest/SingleDocCollectionReader.xml"/>
      </descriptor>
    </collectionIterator>
  </collectionReader>
  <casProcessors casPoolSize="2" processingUnitThreadCount="1">
    <casProcessor  deployment="integrated" name="TestPrimitiveTae">
      <descriptor>
        <include href="${CPM_HOME}/CollectionProcessingEngineImplTest/AggregateWrappingCasMultiplier.xml"></include>
      </descriptor>      
      <deploymentParameters/>
      <filter/>
      <errorHandling>
        <maxConsecutiveRestarts action="terminate" value="0"></maxConsecutiveRestarts>
        <errorRateThreshold action="terminate" value="0/1000"></errorRateThreshold>
        <timeout default="100000" max="100000"></timeout>
      </errorHandling>
      <checkpoint batch="1000" file=""/>
    </casProcessor>
  </casProcessors>
  <cpeConfig>
    <startAt>1</startAt>
    <numToProcess>-1</numToProcess>
    <checkpoint batch="1000" file="" time="100000s"></checkpoint>
    <timerImpl>org.apache.uima.internal.util.JavaTimer</timerImpl>
    <deployAs>immediate</deployAs>
  </cpeConfig>
</cpeDescription>
