<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>

<plugin>
   <extension-point id="wseTransportProvider" name="%XP_WSE_TRANSPORT_PROVIDER" schema="schema/wseTransportProvider.exsd"/>

    
<!-- ================================================================= -->
<!-- Extension point: Eclipse Popup Action (org.eclipse.ui.popupMenus) -->
<!-- ================================================================= -->
   <extension
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            objectClass="org.eclipse.core.resources.IFile"
            nameFilter="*.wsdl"
            id="org.eclipse.wst.ws.ui.action.WSDLFileMenu.file.wsdl">
         <action
               label="%POPUP_TEST_WSDL"
               class="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL"
               menubarPath="org.eclipse.wst.ws.ui.webservice.category.popupMenu/popupActions"
               id="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL">
         </action>
      </objectContribution>
      <objectContribution
            objectClass="org.eclipse.wst.wsdl.util.WSDLResourceImpl"
            nameFilter="*"
            id="org.eclipse.wst.ws.ui.action.WSDLFileMenu.wsdlres">
         <action
               label="%POPUP_TEST_WSDL"
               class="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL"
               menubarPath="additions"
               id="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL">
         </action>
      </objectContribution>
      <objectContribution
            objectClass="org.eclipse.wst.wsdl.Service"
            nameFilter="*"
            id="org.eclipse.wst.ws.ui.action.WSDLFileMenu.service">
         <action
               label="%POPUP_TEST_WSDL"
               class="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL"
               menubarPath="additions"
               id="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL">
         </action>
      </objectContribution>
   </extension>
   <extension
         point="org.eclipse.wst.ws.explorer.wseTransportProvider">
      <soapTransportProvider
            class="org.eclipse.wst.ws.internal.explorer.platform.wsdl.transport.SOAPTransportProvider"
            id="org.eclipse.wst.ws.explorer.soapTransportProvider"
            name="%SOAP_TRANSPORT_PROVIDER"
            namespaceURI="http://schemas.xmlsoap.org/wsdl/soap/"
            transportURI="http://schemas.xmlsoap.org/soap/http"/>
   </extension>
   <extension
         point="org.eclipse.equinox.http.registry.httpcontexts">
      <httpcontext
            id="wse">
         <resource-mapping
               path="/wsexplorer">
         </resource-mapping>
      </httpcontext>
   </extension>
   <extension
         point="org.eclipse.equinox.http.registry.resources">
      <resource
            alias="/"
            base-name="/"
            httpcontextId="wse">
      </resource>
      <serviceSelector
            filter="(other.info=org.eclipse.wst.ws.explorer)">
      </serviceSelector>
   </extension>
   <extension
         point="org.eclipse.equinox.http.registry.servlets">
      <servlet
            alias="/*.jsp"
            class="org.eclipse.equinox.jsp.jasper.registry.JSPFactory:/"
            httpcontextId="wse">
      </servlet>
      <serviceSelector
            filter="(other.info=org.eclipse.wst.ws.explorer)">
      </serviceSelector>
   </extension>
   
   <extension
         point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension
            targetID="org.eclipse.jst.j2ee.J2EEPerspective">
         <actionSet
               id="org.eclipse.wst.ws.explorer.explorer">
         </actionSet>
      </perspectiveExtension>
   </extension>
   
   
    <!-- Main Menu Actions -->

   <extension point="org.eclipse.ui.actionSets">

      <actionSet
            label="%COMMAND_LAUNCH_WS_EXPLORER"
            visible="false"
            id="org.eclipse.wst.ws.explorer.explorer">
         <menu
               label="%MENU_RUN"
               path="additions"
               id="org.eclipse.ui.run">
            <separator name="explorer">
            </separator>
         </menu>
         <action
               label="%COMMAND_LAUNCH_WS_EXPLORER"
               icon="icons/etool16/launch_ws_explorer.gif"
               tooltip="%TOOLTIP_LAUNCH_WS_EXPLORER"
               class="org.eclipse.wst.ws.internal.explorer.action.LaunchWSEAction"
               menubarPath="org.eclipse.ui.run/explorer"
               toolbarPath="additions"
               id="org.eclipse.wst.ws.internal.explorer.action.LaunchWSEAction">
        </action>
     </actionSet>

   </extension>
   
</plugin>
