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

<!-- $Rev$ $Date$ -->

<plugin>
    <extension-point id="sourcePathComputerMapping" name="Geronimo Deployment Plan Loader" schema="schema/sourcePathComputerMapping.exsd"/>

    <extension point="org.eclipse.debug.core.launchConfigurationTypes">
        <launchConfigurationType
            id="org.apache.geronimo.st.core.launchConfigurationType"
            name="%geronimoLaunchConfigurationType"
            delegate="org.apache.geronimo.st.core.GeronimoLaunchConfigurationDelegate"
            modes="run, debug, profile"
            sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
            sourcePathComputerId="org.apache.geronimo.st.core.sourcePathComputer"/>
    </extension>
    
    <extension point="org.eclipse.debug.core.sourcePathComputers">
        <sourcePathComputer
            id="org.apache.geronimo.st.core.sourcePathComputer"
            class="org.apache.geronimo.st.core.GeronimoSourcePathComputerDelegate"/>
    </extension>
      
      
    <!-- 
     |                                                                                           
     | This extension point provides a way for a server to support the "Run on Server" scenario. 
     | The id specifies a unique identifier for this extension point, and the class specifies the 
     | fully qualified name of the Java class that extends LaunchableAdapterDelegate. 
     |                                                                                           
     --> 
    <extension point="org.eclipse.wst.server.core.launchableAdapters">
        <launchableAdapter
            class="org.apache.geronimo.st.core.GeronimoLaunchableAdapterDelegate"
            id="org.eclipse.jst.server.geronimo.web"/>
    </extension>


    <!-- 
     |                                                                                           
     | Define the runtime component version(s) and the facets supported by each 
     | Geronimo runtime component                                                                       
     |                                                                                           
     --> 
    <extension point="org.eclipse.wst.common.project.facet.core.runtimes">
        <runtime-component-type id="org.apache.geronimo.runtime"/>
        <runtime-component-version type="org.apache.geronimo.runtime" version="1.1"/>
        <runtime-component-version type="org.apache.geronimo.runtime" version="2.0"/>
        <runtime-component-version type="org.apache.geronimo.runtime" version="2.1"/>
        <runtime-component-version type="org.apache.geronimo.runtime" version="2.2"/>

        <!-- GERONIMODEVTOOLS-331 -->
        <adapter>
            <runtime-component id="org.apache.geronimo.runtime"/>
            <factory
                class="org.eclipse.jst.server.core.internal.RuntimeClasspathProvider$Factory"/>
            <type
                class="org.eclipse.jst.common.project.facet.core.IClasspathProvider"/>
        </adapter>

        <supported>
            <runtime-component id="org.apache.geronimo.runtime" version="1.1"/>
            <facet id="org.apache.geronimo.facet" version="1.1"/>
            <facet id="jst.web" version="2.2,2.3,2.4"/>
            <facet id="jst.ejb" version="1.1,2.0,2.1"/>
            <facet id="jst.ear" version="1.2,1.3,1.4"/>
            <facet id="jst.connector" version="1.0,1.5"/>
            <facet id="jst.appclient" version="1.2,1.3,1.4"/>
            <facet id="jst.utility" version="1.0"/>
        </supported>

        <supported>
            <runtime-component id="org.apache.geronimo.runtime" version="2.0"/>
            <facet id="org.apache.geronimo.facet" version="1.2"/>
            <facet id="jst.web"         version="2.2,2.3,2.4,2.5"/>
            <facet id="jst.ejb"         version="1.1,2.0,2.1,3.0"/>
            <facet id="jst.ear"         version="1.2,1.3,1.4,5.0"/>
            <facet id="jst.connector"   version="1.0,1.5"/>
            <facet id="jst.appclient"   version="1.2,1.3,1.4,5.0"/>
            <facet id="jst.utility"     version="1.0"/>
        </supported>

        <supported>
            <runtime-component id="org.apache.geronimo.runtime" version="2.1"/>
            <facet id="org.apache.geronimo.facet" version="1.2"/>
            <facet id="jst.web"         version="2.2,2.3,2.4,2.5"/>
            <facet id="jst.ejb"         version="1.1,2.0,2.1,3.0"/>
            <facet id="jst.ear"         version="1.2,1.3,1.4,5.0"/>
            <facet id="jst.connector"   version="1.0,1.5"/>
            <facet id="jst.appclient"   version="1.2,1.3,1.4,5.0"/>
            <facet id="jst.utility"     version="1.0"/>
        </supported>

        <supported>
            <runtime-component id="org.apache.geronimo.runtime" version="2.2"/>
            <facet id="org.apache.geronimo.facet" version="1.2"/>
            <facet id="jst.web"         version="2.2,2.3,2.4,2.5"/>
            <facet id="jst.ejb"         version="1.1,2.0,2.1,3.0"/>
            <facet id="jst.ear"         version="1.2,1.3,1.4,5.0"/>
            <facet id="jst.connector"   version="1.0,1.5"/>
            <facet id="jst.appclient"   version="1.2,1.3,1.4,5.0"/>
            <facet id="jst.utility"     version="1.0"/>
        </supported>
    </extension>
    
    
    <!-- ======================================================================================= -->
    <!--                                                                                         -->
    <!-- The Geronimo implementation of the WTP runtimeClasspathProvider will be used to         -->
    <!-- provide the libraries required for the development of a Web project targeted for the    -->
    <!-- Geronimo runtime                                                                        -->
    <!--                                                                                         -->
    <!-- ======================================================================================= -->
    <extension point="org.eclipse.jst.server.core.runtimeClasspathProviders">
        <runtimeClasspathProvider id="org.apache.geronimo.runtimeClasspathProvider"
            runtimeTypeIds="org.apache.geronimo.runtime.11,
                            org.apache.geronimo.runtime.20,
                            org.apache.geronimo.runtime.21,
                            org.apache.geronimo.runtime.22"
            class="org.apache.geronimo.st.core.GeronimoServerRuntimeTargetHandler"/>
    </extension>
    
    
    <!-- ======================================================================================= -->
    <!--                                                                                         -->
    <!-- Declare the "Geronimo Deployment" <project-facet> to be displayed in the                -->
    <!-- "Project Facets" wizard when deploying a project to the Geronimo Target Runtime. This   -->
    <!-- facet will be further refined in the various version declarations (see the              -->
    <!-- <project-facet-verion> declarations that refer to this specific facet with the          -->
    <!-- facet="org.apache.geronimo.facet" element).                                             -->
    <!--                                                                                         -->
    <!-- ======================================================================================= -->
    <extension point="org.eclipse.wst.common.project.facet.core.facets">
        <project-facet id="org.apache.geronimo.facet">
            <label>%geronimo-facet-label</label>
            <description>%geronimo-facet-description</description>
        </project-facet>
    </extension>


    <extension id="GeronimoOpExtensions" name="GeronimoOpExtensions" point="org.eclipse.wst.common.frameworks.OperationExtension">
        <operationExtension
            id="org.eclipse.jst.j2ee.internal.web.archive.operations.WebComponentImportOperation"
            postOperationClass="org.apache.geronimo.st.core.operations.ImportDeploymentPlanOperation">
        </operationExtension>
        <operationExtension
            id="org.eclipse.jst.j2ee.internal.ejb.archiveoperations.EJBComponentImportOperation"
            postOperationClass="org.apache.geronimo.st.core.operations.ImportDeploymentPlanOperation">
        </operationExtension>
        <operationExtension
            id="org.eclipse.jst.j2ee.internal.archive.operations.EARComponentImportOperation"
            postOperationClass="org.apache.geronimo.st.core.operations.ImportDeploymentPlanOperation">
        </operationExtension>
        <operationExtension
            id="org.eclipse.jst.j2ee.internal.jca.operations.ConnectorComponentImportOperation"
            postOperationClass="org.apache.geronimo.st.core.operations.ImportDeploymentPlanOperation">
        </operationExtension>
    </extension>
    
    <extension
       point="org.eclipse.hyades.trace.ui.launchConfigMechanismAssociator">
       <association            
           launchConfigID = "org.apache.geronimo.st.core.launchConfigurationType">
   
           <mechanism mechanismID = "org.eclipse.tptp.trace.ui.jvmpiMechanism"> 
               <configuration
                   launchDelegate = "org.eclipse.tptp.trace.ui.internal.launcher.deleg.application.PIAttachLauncherDelegate"
                   configurationId = "org.eclipse.tptp.trace.ui.jvmpiConfiguration"
                   associatedAgent = "org.eclipse.tptp.trace.ui.jvmpiAgent"        
                   filter = "org.eclipse.tptp.platform.profile.server.core.internal.PICollectorFiltration">                
               </configuration>            
           </mechanism>        
           
           <mechanism mechanismID = "org.eclipse.tptp.trace.jvmti.jvmtiMechanism"> 
               <configuration
                   launchDelegate = "org.eclipse.tptp.platform.jvmti.client.internal.launcher.TIAttachLauncherDelegate"
                   configurationId = "org.eclipse.tptp.trace.jvmti.tiConfiguration"
                   associatedAgent = "org.eclipse.tptp.platform.jvmti.TIAgent"
                   filter = "org.eclipse.tptp.platform.profile.server.core.internal.TICollectorFiltration">                            
               </configuration>            
           </mechanism>    
       </association>
   </extension>
   
</plugin>
