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

    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Geronimo Server - Extend WTP wizardFragments to include the Geronimo runtime and server types (defined in     ##
     ##                   the corresponding core plugin) when defining either a new Geronimo runtime                  ##
     ##                   (e.g., via Window->Preferences->Server->Installed Runtimes->Add) or a new Geronimo server   ##  
     ##                   (e.g., via File->New->Other->Server)                                                        ##
     ##                                                                                                               ##
     ###################################################################################################################
     -->
    <extension point="org.eclipse.wst.server.ui.wizardFragments">
        <fragment id="org.apache.geronimo.runtime.wizardFragment"
            typeIds="org.apache.geronimo.runtime.30"
            class="org.apache.geronimo.st.v30.ui.internal.GeronimoRuntimeWizardFragment"/>
        <fragment id="org.apache.geronimo.server.wizardFragment"
            typeIds="org.apache.geronimo.server.30"
            class="org.apache.geronimo.st.v30.ui.internal.GeronimoServerWizardFragment"/>
    </extension>



    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Geronimo Server - Define the icon for the Geronimo runtime and server types                                   ##
     ##                                                                                                               ##
     ###################################################################################################################
     -->
    <extension point="org.eclipse.wst.server.ui.serverImages">
        <image id="org.apache.geronimo.runtime.image" 
            icon="icons/obj16/littleG.gif"
            typeIds="org.apache.geronimo.runtime.30"/>
        <image id="org.apache.geronimo.server.image" 
            icon="icons/obj16/littleG.gif"
            typeIds="org.apache.geronimo.server.30"/>
    </extension>



    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Project Facets - Map the action defined for the "Geronimo Java EE Deployment" project-facet to a specific     ##
     ##                  wizard class. The action must have been defined in the corresponding core plugin.            ## 
     ##                                                                                                               ##
     ###################################################################################################################
     -->
    <extension point="org.eclipse.wst.common.project.facet.ui.wizardPages">
        <wizard-pages action="geronimo.plan.install.v30">
            <page class="org.apache.geronimo.st.v30.ui.wizards.facets.GeronimoJEEFacetInstallWizardPage"/>
        </wizard-pages>
    </extension>



    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Project Facets - Define the icon for the Geronimo Java EE and OSGi facets. The runtime component must have    ##
     ##                  been defined in the corresponding core plugin.                                               ##
     ##                                                                                                               ##
     ###################################################################################################################
     -->
    <extension point="org.eclipse.wst.common.project.facet.ui.images">
        <image runtime-component-type="org.apache.geronimo.runtime"
            path="icons/obj16/littleG.gif"/>
        <image facet="org.apache.geronimo.facet"
            path="icons/obj16/littleG.gif"/>
    </extension>



    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Geronimo Server - Define the server editor pages (i.e., pages that display when user double-clicks on the     ##
     ##                   server in the Java EE perspecitive) and sections and map them to specific classes           ##                                                
     ##                                                                                                               ##
     ###################################################################################################################
     -->
    <extension point="org.eclipse.wst.server.ui.editorPages">
        <page id="org.eclipse.wst.server.editor.plugins" order="10"
              name="%serverEditorPluginPage"
              typeIds="org.apache.geronimo.server.30"
              insertionIds="org.eclipse.wst.server.editor.plugins"
              class="org.apache.geronimo.st.v30.ui.pages.ServerPluginPage"/>
    </extension>
    
    <extension point="org.eclipse.wst.server.ui.editorPageSections">
        <section id="org.apache.server.geronimo.plugins" order="10"
            insertionId="org.eclipse.wst.server.editor.plugins"
            typeIds="org.apache.geronimo.server.30"
            class="org.apache.geronimo.st.v30.ui.sections.ServerPluginSection">
        </section>
    </extension>
    
    <extension point="org.eclipse.wst.server.ui.editorPageSections">
        <section id="org.apache.server.geronimo.security" order="20"
            insertionId="org.eclipse.wst.server.editor.overview.left"
            typeIds="org.apache.geronimo.server.30"
            class="org.apache.geronimo.st.v30.ui.sections.ServerEditorSecuritySection">
        </section>
    </extension>
    
    <extension point="org.eclipse.wst.server.ui.editorPageSections">
        <section id="org.apache.server.geronimo.karafShell" order="21"
            insertionId="org.eclipse.wst.server.editor.overview.left"
            typeIds="org.apache.geronimo.server.30"
            class="org.apache.geronimo.st.v30.ui.sections.ServerEditorKarafShellSection">
        </section>
    </extension>
    
    <extension point="org.eclipse.wst.server.ui.editorPageSections">
        <section id="org.apache.server.geronimo.publishAdvanced" order="10"
            insertionId="org.eclipse.wst.server.editor.overview.right"
            typeIds="org.apache.geronimo.server.30"
            class="org.apache.geronimo.st.v30.ui.sections.ServerEditorPublishAdvancedSection">
        </section>
    </extension>
    
    <extension point="org.eclipse.wst.server.ui.editorPageSections">
        <section id="org.apache.server.geronimo.port" order="10"
            insertionId="org.eclipse.wst.server.editor.overview.left"
            typeIds="org.apache.geronimo.server.30"
            class="org.apache.geronimo.st.v30.ui.sections.ServerEditorPortsSection">
        </section>
    </extension>
    
    <extension point="org.eclipse.wst.server.ui.editorPageSections">
        <section id="org.apache.server.geronimo.cleanOSGiBundleCache" order="20"
            insertionId="org.eclipse.wst.server.editor.overview.right"
            typeIds="org.apache.geronimo.server.30"
            class="org.apache.geronimo.st.v30.ui.sections.ServerEditorCleanOSGiBundleCacheSection">
        </section>
    </extension>
    
    <!--
      Add the edite default OSGI bundle start level section
    -->
    <extension point="org.eclipse.wst.server.ui.editorPageSections">
        <section id="org.apache.server.geronimo.setDefaultOSGIBundleStartLevelSection" order="21"
            insertionId="org.eclipse.wst.server.editor.overview.right"
            typeIds="org.apache.geronimo.server.30"
            class="org.apache.geronimo.st.v30.ui.sections.ServerEditorSetOSGIBundleStartLevelSection">
        </section>
    </extension>
    
    <extension point="org.eclipse.wst.server.ui.editorPageSections">
        <section id="org.apache.server.geronimo.loglevel" order="23"
            insertionId="org.eclipse.wst.server.editor.overview.right"
            typeIds="org.apache.geronimo.server.30"
            class="org.apache.geronimo.st.v30.ui.sections.ServerEditorLogLevelSection">
        </section>
    </extension>
    
    <extension point="org.eclipse.wst.server.ui.editorPageSections">
        <section id="org.apache.server.geronimo.security" order="30"
            insertionId="org.eclipse.wst.server.editor.overview.right"
            typeIds="org.apache.geronimo.server.30"
            class="org.apache.geronimo.st.v30.ui.sections.ServerEditorStartupSection">
        </section>
    </extension>
    
    <extension point="org.eclipse.wst.server.ui.editorPageSections">
        <section id="org.apache.server.geronimo.testenv" order="30"
            insertionId="org.eclipse.wst.server.editor.overview.left"
            typeIds="org.apache.geronimo.server.30"
            class="org.apache.geronimo.st.v30.ui.sections.ServerEditorTestEnvSection">
        </section>
    </extension>
    


    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Launch Configuration Properties - Displays when the users selects "Open launch configuration" from the        ##
     ##                                   the ServerEditorTestEnvSection defined above                                ##
     ##                                                                                                               ##
     ###################################################################################################################
     -->
    <extension point="org.eclipse.debug.ui.launchConfigurationTypeImages">
        <launchConfigurationTypeImage
            id="org.apache.geronimo.st.v30.ui.launchConfigurationTypeImage"
            configTypeID="org.apache.geronimo.st.v30.core.launchConfigurationType"
            icon="icons/obj16/littleG.gif">
        </launchConfigurationTypeImage>
    </extension>
    
    <extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
        <launchConfigurationTabGroup
            id="org.apache.geronimo.st.v30.ui.launchConfigurationTabGroup"
            type="org.apache.geronimo.st.v30.core.launchConfigurationType"
            class="org.apache.geronimo.st.v30.ui.internal.GeronimoLaunchConfigurationTabGroup">
        </launchConfigurationTabGroup>
    </extension>



    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Popup Menu - Define the schemas for the LaunchGeronimoConsoleAction and LaunchGeronimoSupportAction menu      ##
     ##              actions for the popup menu when right clicking on the server in the Server View                  ##
     ##                                                                                                               ##
     ###################################################################################################################
     -->
    <extension-point id="actionURLs" name="Action ID and URL" schema="schema/actionURLs.exsd"/>

    <extension point="org.apache.geronimo.st.v30.ui.actionURLs">
        <server_prefix>org.apache.geronimo.</server_prefix>
        <action_URL class="org.apache.geronimo.st.v30.ui.actions.LaunchGeronimoSupportAction"
                    URL="http://geronimo.apache.org/" />
    </extension>

    <extension point="org.eclipse.ui.popupMenus">
        <objectContribution
                adaptable="true"
                id="org.apache.geronimo.ui.serveractions.30"
                objectClass="org.eclipse.wst.server.core.IServer">
            <enablement>
                <test forcePluginActivation="true"
                    property="org.eclipse.wst.server.ui.serverType"
                    value="org.apache.geronimo.server.3*" />
            </enablement>
            <action id="org.apache.geronimo.ui.launchSupport.30"
                label="%PopupMenus.launchSupport" icon="icons/obj16/littleG.gif"
                class="org.apache.geronimo.st.v30.ui.actions.LaunchGeronimoSupportAction"
                enablesFor="1">
            </action>
        </objectContribution>
    </extension>

    <extension point="org.eclipse.ui.popupMenus">
        <objectContribution
                adaptable="true"
                id="org.apache.geronimo.ui.serveractions.30"
                objectClass="org.eclipse.wst.server.core.IServer">
            <enablement>
                <test forcePluginActivation="true"
                    property="org.eclipse.wst.server.ui.serverType"
                    value="org.apache.geronimo.server.3*" />
            </enablement>
            <action id="org.apache.geronimo.ui.launchconsole.30"
                label="%PopupMenus.launchconsole" icon="icons/obj16/littleG.gif"
                class="org.apache.geronimo.st.v30.ui.actions.LaunchGeronimoConsoleAction"
                enablesFor="1">
            </action>
        </objectContribution>
    </extension>
    
    <extension point="org.eclipse.ui.popupMenus">
        <objectContribution
                adaptable="true"
                id="org.apache.geronimo.ui.serveractions.30"
                objectClass="org.eclipse.wst.server.core.IServer">
            <enablement>
                <test forcePluginActivation="true"
                    property="org.eclipse.wst.server.ui.serverType"
                    value="org.apache.geronimo.server.3*" />
            </enablement>
            <action id="org.apache.geronimo.ui.launchconsole.30"
                label="%PopupMenus.launchShell" icon="icons/obj16/littleG.gif"
                class="org.apache.geronimo.st.v30.ui.actions.LaunchGeronimoShellAction"
                enablesFor="1">
            </action>
        </objectContribution>
    </extension>
    
    <extension point="org.apache.geronimo.st.ui.loader">
           <loader class="org.apache.geronimo.st.v30.ui.editors.GeronimoFormContentLoader" version="3.0"/>
    </extension>
    
    
    
    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Blueprint XML Editor - Define the XML form editor class for the blueprint.xml file                            ##
     ##                                                                                                               ##
     ## TODO(s) - Create JAXB model from blueprint.xsd Schema                                                         ##
     ##         - Implement org.apache.geronimo.st.v30.ui.editors.BlueprintFormEditor and replace the default XML     ##
     ##           editor being used below. When that is done, the org.eclipse.wst.xml.ui bundle can be removed from   ##    
     ##           the Required-Bundle list in the manifest.mf for this plugin.                                        ## 
     ##                                                                                                               ##
     ###################################################################################################################
     -->
     <!--
    <extension point="org.eclipse.ui.editors">
        <editor class="org.apache.geronimo.st.v30.ui.editors.BlueprintFormEditor"
            default="true" 
            filenames="blueprint.xml"
            icon="icons/obj16/littleOSGi.gif"
            id="org.apache.geronimo.v30.ui.editors.BlueprintFormEditor" 
            name="%BlueprintEditorName">
        </editor>
    </extension>
    -->


    
    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Refactoring - Invoked when the user changes a project name, so that the artifact ID in the deployment plan    ##
     ##               changes automatically                                                                           ##
     ##                                                                                                               ##
     ###################################################################################################################
     -->



    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Downloads Menu - Create a commands category for the various download commands                                 ##
     ##                                                                                                               ##
     ###################################################################################################################
     -->
    <extension point="org.eclipse.ui.commands">
        <category 
              description="Isolate all the various GEP downloads into a single menu"
              id="org.apache.geronimo.st.v30.ui.commands.category"
              name="Downloads">
        </category>
        <command
              categoryId="org.apache.geronimo.st.v30.ui.commands.category"
              description="Download OSGi application development tools"
              id="org.apache.geronimo.st.v30.ui.commands.downloadOSGi"
              name="Download OSGi Application Development Tools">
        </command>
        <command
              categoryId="org.apache.geronimo.st.v30.ui.commands.category"
              description="Download Geronimo Servers"
              id="org.apache.geronimo.st.v30.ui.commands.downloadGeronimo"
              name="Download Geronimo Servers">
        </command>
    </extension>
    
    
    
    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Downloads Menu - Create a Downloads menu for the download commands defined above                              ##
     ##                                                                                                               ##
     ###################################################################################################################
     -->
    <extension point="org.eclipse.ui.menus">
        <menuContribution
              locationURI="menu:org.eclipse.ui.main.menu?after=additions">
            <menu
                  icon="icons/obj16/littleG.gif"
                  id="org.apache.geronimo.st.v30.ui.downloadsMenu"
                  label="Downloads"
                  mnemonic="D">
                <command
                      commandId="org.apache.geronimo.st.v30.ui.commands.downloadOSGi"
                      icon="icons/obj16/littleOSGi.gif"
                      id="org.apache.geronimo.st.v30.ui.menus.downloadOSGi"
                      mnemonic="O"
                      style="push">
                </command>
                <separator
                      name="org.apache.geronimo.st.v30.ui.separator"
                      visible="true">
                </separator>
                <command
                      commandId="org.apache.geronimo.st.v30.ui.commands.downloadGeronimo"
                      icon="icons/obj16/littleG.gif"
                      id="org.apache.geronimo.st.v30.ui.menus.downloadGeronimo"
                      mnemonic="G"
                      style="push">
                </command>
            </menu>
        </menuContribution>
    </extension>



    <!-- 
     ###################################################################################################################
     ##                                                                                                               ##
     ## Downloads Menu - Create the handlers for the commands defined above                                           ##
     ##                                                                                                               ##
     ###################################################################################################################
     -->
    <extension point="org.eclipse.ui.handlers">
        <handler
              class="org.apache.geronimo.st.v30.ui.handlers.DownloadOSGi"
              commandId="org.apache.geronimo.st.v30.ui.commands.downloadOSGi">
        </handler>
        <handler
              class="org.apache.geronimo.st.v30.ui.handlers.DownloadGeronimo"
              commandId="org.apache.geronimo.st.v30.ui.commands.downloadGeronimo">
        </handler>
    </extension>

    <extension point="org.eclipse.ui.startup">
        <startup class="org.apache.geronimo.st.v30.ui.Startup"/>
    </extension>    
    	
    <!-- the karaf shell view -->
    <extension
         point="org.eclipse.ui.views">
      <category
            name="%geronimo.views.category.name"
            id="GeronimoViews">
      </category>
      <view
            allowMultiple="true"
            class="org.apache.geronimo.st.v30.ui.view.KarafShellSSHTerminalView"
            icon="icons/obj16/littleG.gif"
            category="GeronimoViews"
            name="%karafShellTerminal"
            id="org.apache.geronimo.st.v30.ui.view.KarafShellSSHTerminalView">
      </view>
    </extension>
    <extension
         point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension
            targetID="%karafShellTerminal">
         <viewShortcut id="org.apache.geronimo.st.v30.ui.view.KarafShellSSHTerminalView"/>
         <view id="org.apache.geronimo.st.v30.ui.view.KarafShellSSHTerminalView"
            relationship="stack">
         </view> 
      </perspectiveExtension>
    </extension>  

    <!--
        The pop up menu of changing the bundle's startup level
    -->    
    <extension point="org.eclipse.core.expressions.propertyTesters">
       <propertyTester
          id="org.apache.geronimo.st.v30.ui.propertyTester"
          namespace="org.apache.geronimo.st.v30.ui"
          properties="isOSGiBundle"
          type="org.eclipse.wst.server.ui.IServerModule"
          class="org.apache.geronimo.st.v30.ui.propertyTesters.OSGiBundlePropertyTester">
       </propertyTester>
       <propertyTester
          id="org.apache.geronimo.st.v30.ui.propertyTester"
          namespace="org.apache.geronimo.st.v30.ui"
          properties="serverState"
          type="org.eclipse.wst.server.ui.IServerModule"
          class="org.apache.geronimo.st.v30.ui.propertyTesters.OSGiBundlePropertyTester">
       </propertyTester>
    </extension>
   
    <extension point="org.eclipse.ui.popupMenus">
      <objectContribution
        id="org.apache.geronimo.st.v30.ui.change.osgi.bundle.startlevel"
        objectClass="org.eclipse.wst.server.ui.IServerModule">
        <action
          id="org.apache.geronimo.st.v30.ui.change.osgi.bundle.startlevel.action"
          label="%changeBundleStartLevel"
          enablesFor="1"
          class="org.apache.geronimo.st.v30.ui.actions.ChangeBundleStartLevelAction">
        </action>
        <enablement>            
            <and>
                <test property="org.apache.geronimo.st.v30.ui.isOSGiBundle" value="true"/>
                <!-- the args is one of the values in {STATE_UNKNOWN(0), STATE_STARTING(1), STATE_STARTED(2), STATE_STOPPING(3), STATE_STOPPED(4),
                NOTICE: only support value = "true" -->
                <test property="org.apache.geronimo.st.v30.ui.serverState" args="2" value="true"/>
            </and>
        </enablement>
      </objectContribution>	  
    </extension>
        
</plugin>
