<?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.
   ***************************************************************
   -->
  <analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
  <primitive>false</primitive>
  <delegateAnalysisEngineSpecifiers>
    <delegateAnalysisEngine key="UIMAFeatureConsumer">
      <import name="UIMAFeatureConsumer"/>
    </delegateAnalysisEngine>
    <delegateAnalysisEngine key="PersonTitleAnnotator">
      <import name="PersonTitleAnnotator"/>
    </delegateAnalysisEngine>
  </delegateAnalysisEngineSpecifiers>
  <analysisEngineMetaData>
    <name>aeDescriptor</name>
    <description/>
    <version>1.0</version>
    <vendor/>
    <configurationParameters searchStrategy="language_fallback">
      <configurationParameter>
        <name>OutputDirectory</name>
        <description>output directory</description>
        <type>String</type>
        <multiValued>false</multiValued>
        <mandatory>false</mandatory>
        <overrides>
          <parameter>UIMAFeatureConsumer/OutputDirectory</parameter>
        </overrides>
      </configurationParameter>
      <configurationParameter>
        <name>ConfigurationFile</name>
        <description>configuration file</description>
        <type>String</type>
        <multiValued>false</multiValued>
        <mandatory>false</mandatory>
        <overrides>
          <parameter>UIMAFeatureConsumer/ConfigurationFile</parameter>
        </overrides>
      </configurationParameter>
      <configurationParameter>
        <name>IncludeTargetId</name>
        <description>Specifies whether the Id of target annotation object should be included in the extracted feature set</description>
        <type>Boolean</type>
        <multiValued>false</multiValued>
        <mandatory>false</mandatory>
        <overrides>
          <parameter>UIMAFeatureConsumer/IncludeTargetId</parameter>
        </overrides>
      </configurationParameter>
    </configurationParameters>
    <configurationParameterSettings>
      <nameValuePair>
        <name>OutputDirectory</name>
        <value>
          <string>tempTestOut</string>
        </value>
      </nameValuePair>
      <nameValuePair>
        <name>ConfigurationFile</name>
        <value>
          <string>src/test/resources/CFEConfig.xml</string>
        </value>
      </nameValuePair>
      <nameValuePair>
        <name>IncludeTargetId</name>
        <value>
          <boolean>false</boolean>
        </value>
      </nameValuePair>
    </configurationParameterSettings>
    <flowConstraints>
      <fixedFlow>
        <node>PersonTitleAnnotator</node>
        <node>UIMAFeatureConsumer</node>
      </fixedFlow>
    </flowConstraints>
    <fsIndexCollection/>
    <capabilities>
      <capability>
        <inputs/>
        <outputs>
          <type allAnnotatorFeatures="true">example.PersonTitle</type>
        </outputs>
        <languagesSupported>
          <language>en</language>
        </languagesSupported>
      </capability>
    </capabilities>
    <operationalProperties>
      <modifiesCas>true</modifiesCas>
      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
      <outputsNewCASes>false</outputsNewCASes>
    </operationalProperties>
  </analysisEngineMetaData>
  <resourceManagerConfiguration/>
</analysisEngineDescription>
