<?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="geronimoinfo" name="Geronimo Server Info" schema="schema/geronimoinfo.exsd"/>

    <!-- 
     | 
     | Extend WTP runtimeTypes to include the 2.1 version of the "Geronimo Runtime Type"
     | 
     -->
    <extension point="org.eclipse.wst.server.core.runtimeTypes">
        <runtimeType id="org.apache.geronimo.runtime.21" version="2.1"
            name="%runtimeTypeName"
            description="%runtimeTypeDescription"
            vendor="%runtimeTypeVendor"
            class="org.apache.geronimo.st.v21.core.GeronimoRuntime">
            <moduleType types="jst.web"       versions="2.2, 2.3, 2.4, 2.5"/>
            <moduleType types="jst.ejb"       versions="1.1, 2.0, 2.1, 3.0"/>
            <moduleType types="jst.connector" versions="1.0, 1.5"/>
            <moduleType types="jst.ear"       versions="1.2, 1.3, 1.4, 5.0"/>
            <moduleType types="jst.utility"   versions="1.0"/>
            <moduleType types="jst.appclient" versions="1.2, 1.3, 1.4, 5.0"/>
        </runtimeType>
    </extension>
    

    <!-- ======================================================================================= -->
    <!--                                                                                         -->
    <!-- Extend WTP serverTypes so that the new Geronimo server type can be asociated with the   -->
    <!-- new Geronimo runtime type (defined above)                                               -->
    <!--                                                                                         -->
    <!-- ======================================================================================= -->
    <extension point="org.eclipse.wst.server.core.serverTypes">
        <serverType id="org.apache.geronimo.server.21"
            name="%serverTypeName"
            description="%serverTypeDescription"
            runtime="true"
            class="org.apache.geronimo.st.v21.core.GeronimoServer"
            initialState="stopped"
            supportsRemoteHosts="true"
            startTimeout="240000"
            stopTimeout="30000"
            startBeforePublish="true"
            runtimeTypeId="org.apache.geronimo.runtime.21"
            launchConfigId="org.apache.geronimo.st.core.launchConfigurationType"
            behaviourClass="org.apache.geronimo.st.v21.core.GeronimoServerBehaviour"
            hasConfiguration="false"
            launchModes="run,debug,profile">
        </serverType>
    </extension>
    
    
    <!-- ======================================================================================= -->
    <!--                                                                                         -->
    <!-- Map the runtime-component (defined in plugins\org.apache.geronimo.st.core\plugin.xml)   -->
    <!-- to the new Geronimo runtime type (defined above)                                        -->
    <!--                                                                                         -->
    <!-- ======================================================================================= -->
    <extension point="org.eclipse.jst.server.core.runtimeFacetMappings">
        <runtimeFacetMapping
            runtimeTypeId="org.apache.geronimo.runtime.21"
            runtime-component="org.apache.geronimo.runtime" version="2.1"/>
    </extension>
    

    <!-- 
     | 
     | Declare the 1.2 version of the "Geronimo Deployment" project-facet and the action
     | that the user can perform on the facet (i.e., install). Note that the id associated 
     | action must be unique across all plugins. 
     | 
     -->
    <extension point="org.eclipse.wst.common.project.facet.core.facets">
        <project-facet-version facet="org.apache.geronimo.facet" version="1.2">
            <action type="install" id="geronimo.plan.install.v21">
                <delegate class="org.apache.geronimo.st.v21.core.operations.GeronimoV21FacetInstallDelegate"/>
                <config-factory class="org.apache.geronimo.st.core.DeploymentPlanInstallConfig$Factory"/>
            </action>
            <constraint>
                <or>
                    <requires facet="jst.ear" version="1.2"/>
                    <requires facet="jst.ear" version="1.3"/>
                    <requires facet="jst.ear" version="1.4"/>
                    <requires facet="jst.ear" version="1.4"/>
                    <requires facet="jst.ear" version="5.0"/>
                    <requires facet="jst.appclient" version="1.2"/>
                    <requires facet="jst.appclient" version="1.3"/>
                    <requires facet="jst.appclient" version="1.4"/>
                    <requires facet="jst.appclient" version="5.0"/>
                    <requires facet="jst.connector" version="1.0"/>
                    <requires facet="jst.connector" version="1.5"/>
                    <requires facet="jst.ejb" version="1.1"/>
                    <requires facet="jst.ejb" version="2.0"/>
                    <requires facet="jst.ejb" version="2.1"/>
                    <requires facet="jst.ejb" version="3.0"/>
                    <requires facet="jst.web" version="2.2"/>
                    <requires facet="jst.web" version="2.3"/>
                    <requires facet="jst.web" version="2.4"/>
                    <requires facet="jst.web" version="2.5"/>
                    <requires facet="jst.utility" version="1.0"/>
                </or>
            </constraint>
        </project-facet-version>
    </extension>
    

    <!-- 
     |
     | Map the <runtime-component> (defined in org.apache.geronimo.st.core\plugin.xml) 
     | to a specific version of the "Geronimo Deployment" <project-facet>
     |
     -->
    <extension point="org.eclipse.wst.common.project.facet.core.defaultFacets"
        id="org.apache.geronimo.defaultFacets"
        name="Geronimo Default Facets">
        <default-facets>
            <runtime-component id="org.apache.geronimo.runtime" version="2.1"/>
            <facet id="org.apache.geronimo.facet" version="1.2"/>
        </default-facets>
    </extension>
    
   <extension
          point="org.apache.geronimo.st.v21.core.geronimoinfo">
       <provider
             class="org.apache.geronimo.st.v21.core.GeronimoV21ServerInfo"
             versions="2.1">
       </provider>
    </extension>


</plugin>
