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

<!-- @version $Rev$ $Date$ -->
<feature
      id="org.apache.geronimo.v30.feature"
      label="Geronimo v3.0 Server Adapter"
      version="${osgi.pom.version}"
      provider-name="%providerName"
      plugin="org.apache.geronimo.st.v30.core"
      image="bigG.gif">
    
    <description url="http://geronimo.apache.org/development-tools">
      %description
    </description>
    
    <copyright url="license.html">
      %copyright
    </copyright>
    
    <license url="license.html">
      %license
    </license>
    
    <url>
        <update label="Apache Geronimo Eclipse Update Site" url="http://www.apache.org/dist/geronimo/eclipse/updates/"/>
    </url>
    
    <requires>
        <import feature="org.eclipse.jst.server_ui.feature" version="3.2.0.v201005241530"
            match="greaterOrEqual"/>
        <import feature="org.eclipse.jst.server_adapters.feature" version="3.2.0.v201005241530"
            match="greaterOrEqual"/>
        <import feature="org.eclipse.jst.enterprise_ui.feature" version="3.2.0.v201005241530"
            match="greaterOrEqual"/>
    </requires>
    
    <plugin
         id="org.apache.geronimo.st.core"
         download-size="132"
         install-size="132"
         version="${osgi.pom.version}"
         unpack="false"/>

   <plugin
         id="org.apache.geronimo.st.ui"
         download-size="164"
         install-size="164"
         version="${osgi.pom.version}"
         unpack="false"/>

   <plugin
         id="org.apache.geronimo.st.schemas"
         download-size="72"
         install-size="72"
         version="${osgi.pom.version}"
         unpack="false"/>

   <plugin
         id="org.apache.geronimo.runtime.common"
         download-size="1160"
         install-size="1160"
         version="${osgi.pom.version}"/>
        
    <plugin
         id="org.apache.geronimo.st.v21.core"
         download-size="48"
         install-size="48"
         version="${osgi.pom.version}"
         unpack="false"/>
    
    <plugin
         id="org.apache.geronimo.st.v21.ui"
         download-size="164"
         install-size="164"
         version="${osgi.pom.version}"
         unpack="false"/>

    <plugin
         id="org.apache.geronimo.runtime.v21"
         download-size="1252"
         install-size="1252"
         version="${osgi.pom.version}"/>

    <plugin
         id="org.apache.geronimo.jee.v21.jaxbmodel"
         download-size="140"
         install-size="140"
         version="${osgi.pom.version}"
         unpack="false"/>
         
    <plugin
         id="org.apache.geronimo.st.v30.core"
         download-size="20"
         install-size="20"
         version="${osgi.pom.version}"
         unpack="false"/>
         
    <plugin
         id="org.apache.geronimo.st.v30.jaxbmodel"
         download-size="20"
         install-size="20"
         version="${osgi.pom.version}"
         unpack="false"/>
         
    <plugin
         id="org.apache.geronimo.st.v30.ui"
         download-size="16"
         install-size="16"
         version="${osgi.pom.version}"
         unpack="false"/>
         
    <plugin
         id="org.apache.geronimo.runtime.v30"
         download-size="1052"
         install-size="1052"
         version="${osgi.pom.version}"/>
         
    <plugin
         id="org.apache.geronimo.st.v22.core"
         download-size="20"
         install-size="20"
         version="${osgi.pom.version}"
         unpack="false"/>
         
    <plugin
         id="org.apache.geronimo.st.v22.ui"
         download-size="16"
         install-size="16"
         version="${osgi.pom.version}"
         unpack="false"/>
         
    <plugin
         id="org.apache.geronimo.runtime.v22"
         download-size="1052"
         install-size="1052"
         version="${osgi.pom.version}"/>
         
    <plugin
         id="org.apache.geronimo.st.v20.core"
         download-size="20"
         install-size="20"
         version="${osgi.pom.version}"
         unpack="false"/>
         
    <plugin
         id="org.apache.geronimo.st.v20.ui"
         download-size="16"
         install-size="16"
         version="${osgi.pom.version}"
         unpack="false"/>
         
    <plugin
         id="org.apache.geronimo.runtime.v20"
         download-size="1052"
         install-size="1052"
         version="${osgi.pom.version}"/>
         
    <plugin
         id="org.apache.geronimo.st.v11.core"
         download-size="48"
         install-size="48"
         version="${osgi.pom.version}"
         unpack="false"/>
    
    <plugin
         id="org.apache.geronimo.st.v11.ui"
         download-size="164"
         install-size="164"
         version="${osgi.pom.version}"
         unpack="false"/>

    <plugin
         id="org.apache.geronimo.runtime.v11"
         download-size="1252"
         install-size="1252"
         version="${osgi.pom.version}"/>

    <plugin
         id="org.apache.geronimo.j2ee.v11.jaxbmodel"
         download-size="140"
         install-size="140"
         version="${osgi.pom.version}"
         unpack="false"/>
    
    <plugin
         id="org.apache.geronimo.st.v11.schemas"
         download-size="72"
         install-size="72"
         version="${osgi.pom.version}"
         unpack="false"/>

     <plugin
         id="org.apache.geronimo.jaxbmodel.common"
         download-size="31"
         install-size="31"
         version="${osgi.pom.version}"
         unpack="false"/>

     <plugin
         id="org.apache.geronimo.jee.v22.jaxbmodel"
         download-size="31"
         install-size="31"
         version="${osgi.pom.version}"
         unpack="false"/>
</feature>
