<?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="TestMultiplier">
			<import location="../../multiplier/SimpleCasGeneratorProducing1000Cases.xml" />
		</delegateAnalysisEngine>

		<delegateAnalysisEngine key="RoomNumber">
			<import location="../ex2/RoomNumberAnnotator.xml" />
		</delegateAnalysisEngine>

		<delegateAnalysisEngine key="DateTime">
			<import location="../ex3/TutorialDateTime.xml" />
		</delegateAnalysisEngine>

		<delegateAnalysisEngine key="Meeting">
			<import location="MeetingAnnotator.xml" />
		</delegateAnalysisEngine>

		<delegateAnalysisEngine key="NoOp">
			<import location="../../analysis_engine/NoOpAnnotatorExpecting1000Cases.xml" />
		</delegateAnalysisEngine>

	</delegateAnalysisEngineSpecifiers>
	
    <flowController key="FlowController">
       <import location="../../flow/AdvancedFixedFlowController.xml" /> 
    </flowController>
	
 	<analysisEngineMetaData>
		<name>Meeting Detector TAE</name>
		<description>Detects Room Numbers, Times, and Dates in text, and annotates the
			combination of all three as a meeting.</description>

	    <configurationParameters>
	       <configurationParameter>
        	  <name>Flow</name>
        	  <description> Specifies the flow. This is an array of strings where each string is either a single Analysis
           		Engine key or a comma-separated list of Analysis Engine keys that should be executed in parallel.
          	  </description>
        	  <type>String</type>
              <multiValued>true</multiValued>
              <mandatory>true</mandatory>
              <overrides>
                 <parameter>FlowController/Flow</parameter>
              </overrides>
        </configurationParameter>
	    
	      <configurationParameter>
	        <name>AllowContinueOnFailure</name>
	        <description>Specifies for which AnalysisEngines the Flow should continue when an exception occurs.</description>
	        <type>String</type>
	        <multiValued>true</multiValued>
	        <mandatory>false</mandatory>
	        <overrides>
	          <parameter>FlowController/AllowContinueOnFailure</parameter>
	        </overrides>
	      </configurationParameter>

	      <configurationParameter>
	        <name>ExceptionsToIgnore</name>
	        <description>Specifies which exceptions to ignore.</description>
	        <type>String</type>
	        <multiValued>true</multiValued>
	        <mandatory>false</mandatory>
	        <overrides>
	          <parameter>FlowController/ExceptionsToIgnore</parameter>
	        </overrides>
	      </configurationParameter>

	    </configurationParameters>
	    
	    <configurationParameterSettings>
          <!-- This specifies the flow -->
          <nameValuePair>
           <name>Flow</name>
            <value>
               <array>
                 <string>TestMultiplier</string>
                 <string>RoomNumber</string>
                 <string>DateTime</string>
                 <string>Meeting</string>
                 <string>NoOp</string>
               </array>
            </value>
          </nameValuePair>
	    
	      <nameValuePair>
	        <name>AllowContinueOnFailure</name>
	        <value>
	          <array>
	            <string>RoomNumber</string>
	          </array>
	        </value>
	      </nameValuePair>

	      <nameValuePair>
	        <name>ExceptionsToIgnore</name>
	        <value>
	          <array>
	            <string>org.apache.uima.aae.error.MessageTimeoutException</string>
	            <string>org.apache.uima.aae.error.ForcedMessageTimeoutException</string>
	          </array>
	        </value>
	      </nameValuePair>

	    </configurationParameterSettings>

		
		<flowConstraints>
			<fixedFlow>
				<node>TestMultiplier</node>
				<node>RoomNumber</node>
				<node>DateTime</node>
				<node>Meeting</node>
				<node>NoOp</node>
			</fixedFlow>
		</flowConstraints>

		
		<capabilities>
			<capability>
				<inputs/>
				<outputs>
					<type allAnnotatorFeatures="true">
						org.apache.uima.tutorial.Meeting</type>
					<type allAnnotatorFeatures="true">
						org.apache.uima.tutorial.RoomNumber</type>
					<type allAnnotatorFeatures="true">
						org.apache.uima.tutorial.DateAnnot</type>
					<type allAnnotatorFeatures="true">
						org.apache.uima.tutorial.TimeAnnot</type>
				</outputs>
				<languagesSupported>
					<language>en</language>
				</languagesSupported>
			</capability>
		</capabilities>
		<operationalProperties>
			<modifiesCas>true</modifiesCas>
			<multipleDeploymentAllowed>true</multipleDeploymentAllowed>
			<outputsNewCASes>false</outputsNewCASes>
		</operationalProperties>
	</analysisEngineMetaData>
</analysisEngineDescription>
