<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">

	<!--
	 ***************************************************************
	 * 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.
	 ***************************************************************
   -->
   
	<frameworkImplementation>org.apache.uima.java</frameworkImplementation>
	<primitive>true</primitive>
	<annotatorImplementationName>org.apache.uima.tutorial.ex6.UimaAcronymAnnotator</annotatorImplementationName>
	<analysisEngineMetaData>
		<name>UIMA Acronym Annotator</name>
		<description>Annotates UIMA Acronyms and provides their expanded
			form.</description>
		<version>1.0</version>
		<vendor>The Apache Software Foundation</vendor>
		
		<!-- 
		TypeSystem Definition 
		-->
		<typeSystemDescription>
			<imports>
				<import location="TutorialTypeSystem.xml"/>
			</imports>
		</typeSystemDescription>
		
		<!-- 
		Capabilities: Inputs, Outputs, and Precondition 
		-->
		<capabilities>
			<capability>
				<inputs/>
				<outputs>
					<type allAnnotatorFeatures="true">
						org.apache.uima.tutorial.UimaAcronym</type>
				</outputs>
				<languagesSupported>
					<language>en</language>
				</languagesSupported>
			</capability>
		</capabilities>
		<operationalProperties>
			<modifiesCas>true</modifiesCas>
			<multipleDeploymentAllowed>true</multipleDeploymentAllowed>
			<outputsNewCASes>false</outputsNewCASes>
		</operationalProperties>
	</analysisEngineMetaData>

	<externalResourceDependencies>
		<externalResourceDependency>
			<key>AcronymTable</key>
			<description>Table of acronyms and their expanded forms.</description>
			<interfaceName>org.apache.uima.tutorial.ex6.StringMapResource</interfaceName>
		</externalResourceDependency>
	</externalResourceDependencies>

	<resourceManagerConfiguration>
		<externalResources>
			<externalResource>
				<name>UimaAcronymTableFile</name>
				<description>A table containing UIMA acronyms and their expanded forms.</description>
				<fileResourceSpecifier>
					<fileUrl>file:org/apache/uima/tutorial/ex6/uimaAcronyms.txt</fileUrl>
				</fileResourceSpecifier>
				<implementationName>org.apache.uima.tutorial.ex6.StringMapResource_impl</implementationName>
			</externalResource>
		</externalResources>
		<externalResourceBindings>
			<externalResourceBinding>
				<key>AcronymTable</key>
				<resourceName>UimaAcronymTableFile</resourceName>
			</externalResourceBinding>
		</externalResourceBindings>
	</resourceManagerConfiguration>

</analysisEngineDescription>
