<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
	<!--
	 ***************************************************************
	 * 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.
	 ***************************************************************
	-->
<plugin>
	<extension point="org.eclipse.debug.core.launchConfigurationTypes">
	    <launchConfigurationType
	        name="UIMA Analysis Engine"
	        delegate="org.apache.uima.ep_launcher.AnalysisEngineLaunchConfigurationDelegate"
	        modes="run, debug"               
	        id="org.apache.uima.ep_launcher.analysisEngine">        
	    </launchConfigurationType>
	</extension>
	
	<extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
	    <launchConfigurationTabGroup
	        type="org.apache.uima.ep_launcher.analysisEngine"
	        class="org.apache.uima.ep_launcher.ui.AnalysisEngineTabGroup"
	        id="org.apache.uima.ep_launcher.ui.launchConfigurationTabGroup.analysisEngine">
	    </launchConfigurationTabGroup>
	</extension>
</plugin>
