<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2007, 2008 Sonatype, Inc.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Public License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/legal/epl-v10.html
-->
<?eclipse version="3.0"?>
<plugin>
   <extension-point id="indexes" name="Maven Indexes" schema="schema/indexes.exsd"/>
   <extension-point id="scmHandlers" name="SCM Handlers" schema="schema/scmHandlers.exsd"/>
   <extension-point id="scmHandlersUi" name="SCM Handlers UI" schema="schema/scmHandlersUi.exsd"/>
   <extension-point id="archetypeCatalogs" name="Maven Archetypes" schema="schema/archetypes.exsd"/>
   <extension-point id="projectConfigurators" name="Project Configurators" schema="schema/projectConfigurators.exsd"/>
   <extension-point id="classpathConfiguratorFactories" name="Classpath Configurator Factories" schema="schema/classpathConfiguratorFactories.exsd"/>
   <extension-point id="m2menu" name="m2 menu items" schema="schema/m2menu.exsd"/>

   <extension point="org.eclipse.ui.intro.configExtension">
      <configExtension configId="org.eclipse.ui.intro.universalConfig"
                       content="intro/overview.xml"/>
      <configExtension configId="org.eclipse.ui.intro.universalConfig"
                       content="intro/whatsnew.xml"/>
   </extension>

   <extension point="org.eclipse.core.runtime.contentTypes">
     <content-type id="pomFile" name="Maven POM XML"
          base-type="org.eclipse.core.runtime.xml"
          priority="normal"
          default-charset="UTF-8"
          file-names="pom.xml"
          file-extensions="pom,xml">
       <describer class="org.maven.ide.eclipse.internal.content.PomFileContentDescriber"/>
     </content-type>
   </extension>

   <extension point="org.eclipse.core.resources.builders"
              id="maven2Builder"
              name="%m2.builder.name">
      <builder hasNature="true" isConfigurable="false">
         <run class="org.maven.ide.eclipse.internal.builder.MavenBuilder"/>
      </builder>
   </extension>
   <extension point="org.eclipse.core.resources.natures"
         id="maven2Nature"
         name="%m2.nature.name">
      <runtime>
         <run class="org.maven.ide.eclipse.internal.builder.MavenNature"/>
      </runtime>
      <builder id="org.maven.ide.eclipse.maven2Builder"/>
   </extension>

   <extension point="org.eclipse.ui.decorators">
     <decorator
           adaptable="true"
           icon="icons/mlabel.gif"
           id="org.maven.ide.eclipse.maven2decorator"
           label="%m2.decorator.name"
           lightweight="true"
           location="TOP_LEFT"
           state="true">
       <description>%m2.decorator.description</description>
       <enablement>
          <or>
            <objectState name="nature" value="org.maven.ide.eclipse.maven2Nature"/>
            <objectState name="name" value="pom.xml"/>
            <objectState name="label" value="Maven Dependencies"/>
          </or>
       </enablement>
     </decorator>

     <decorator id="org.maven.ide.eclipse.mavenVersionDecorator"
                adaptable="true"
                label="%m2.decorator.version.name"
                lightweight="false"
                class="org.maven.ide.eclipse.ui.internal.MavenVersionDecorator"
                state="false">
       <description>%m2.decorator.version.description</description>
       <enablement>
          <or>
            <objectState name="nature" value="org.maven.ide.eclipse.maven2Nature"/>
            <objectState name="name" value="pom.xml"/>
          </or>
       </enablement>
     </decorator>

   </extension>

  <extension point="org.eclipse.core.runtime.adapters">
    <factory adaptableType="org.eclipse.core.runtime.IAdaptable"
             class="org.maven.ide.eclipse.ui.internal.MavenAdapterFactory">
       <adapter type="org.eclipse.ui.IActionFilter"/>
    </factory>
    <factory adaptableType="org.eclipse.core.resources.IResource"
             class="org.maven.ide.eclipse.internal.project.ArtifactKeyAdapterFactory">
       <adapter type="org.maven.ide.eclipse.embedder.ArtifactKey"/>
    </factory>
  </extension>

   <!--
   <extension point="org.eclipse.ui.actionSets">
     <actionSet id="org.maven.ide.eclipse.actionSet" label="Maven" visible="true">
       <action id="org.maven.ide.eclipse.mainProjectMenu.action"
               class="org.maven.ide.eclipse.actions.MavenMenuAction"
               label="Maven"
               menubarPath="project/additions"
               style="pulldown"
               icon="icons/m2.gif">
          <enablement>
            <and>
              <objectState name="open" value="true"/>
              <objectClass name="org.eclipse.core.resources.IProject"/>
            </and>
          </enablement>
        </action>
     </actionSet>
   </extension>
   -->

   <extension point="org.eclipse.ui.popupMenus">
      <objectContribution id="org.maven.ide.eclipse.projectMenu"
                          objectClass="org.eclipse.core.resources.IProject"
                          adaptable="true">
         <action id="org.maven.ide.eclipse.projectMenu.action"
                 class="org.maven.ide.eclipse.actions.MavenMenuAction"
                 label="%m2.popup.project.label"
                 style="pulldown"
                 menubarPath="additions"
                 enablesFor="+"
                 icon="icons/m2.gif"/>
         <visibility>
           <and>
             <objectState name="open" value="true"/>
             <objectState name="nature" value="org.maven.ide.eclipse.maven2Nature"/>
           </and>
         </visibility>
      </objectContribution>

      <objectContribution id="org.maven.ide.eclipse.projectMenu"
                          objectClass="org.eclipse.core.resources.IProject"
                          adaptable="true">
         <action id="org.maven.ide.eclipse.projectMenu.action"
                 class="org.maven.ide.eclipse.actions.MavenMenuAction"
                 label="%m2.popup.project.label"
                 style="pulldown"
                 menubarPath="additions"
                 enablesFor="+"
                 icon="icons/m2.gif"/>
         <visibility>
           <and>
             <objectState name="open" value="true"/>
             <not>
               <objectState name="nature" value="org.maven.ide.eclipse.maven2Nature"/>
             </not>
           </and>
         </visibility>
      </objectContribution>

      <objectContribution id="org.maven.ide.eclipse.fileMenu"
                          objectClass="org.eclipse.core.resources.IFile"
                          adaptable="true">
         <action id="org.maven.ide.eclipse.fileMenu.action"
                 class="org.maven.ide.eclipse.actions.MavenMenuAction"
                 label="%m2.popup.project.label"
                 style="pulldown"
                 menubarPath="additions"
                 enablesFor="1"
                 icon="icons/m2.gif"/>
         <visibility>
            <objectState name="name" value="pom.xml"/>
         </visibility>
      </objectContribution>

      <objectContribution id="org.maven.ide.eclipse.workingSetMenu" adaptable="true"
             objectClass="org.eclipse.ui.IWorkingSet">
         <action id="org.maven.ide.eclipse.workingSetMenu.action"
                 class="org.maven.ide.eclipse.actions.MavenMenuAction"
                 label="%m2.popup.project.label"
                 style="pulldown"
                 menubarPath="additions"
                 enablesFor="+"
                 icon="icons/m2.gif"/>
      </objectContribution>

      <objectContribution id="org.maven.ide.eclipse.scmUrl"
          objectClass="org.maven.ide.eclipse.scm.ScmUrl"
          adaptable="true">
        <action id="org.maven.ide.eclipse.ui.checkoutAsMaven"
                label="Check out as Maven Project..."
                class="org.maven.ide.eclipse.actions.CheckoutAsMavenAction"
                menubarPath="checkoutGroup"/>
      </objectContribution>
   </extension>

   <extension point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
            id="org.maven.ide.eclipse.MavenPropertyTester"
            class="org.maven.ide.eclipse.actions.MavenPropertyTester"
            namespace="org.maven.ide.eclipse"
            properties="launchable"
            type="org.eclipse.core.runtime.IAdaptable"/>
   </extension>

   <extension point="org.eclipse.ui.commands">
      <command id="org.maven.ide.eclipse.ui.command.openPom"
               categoryId="org.eclipse.ui.category.navigate"
               name="%m2.shortcut.open.pom"/>
      <command id="org.maven.ide.eclipse.ui.command.openType"
               categoryId="org.eclipse.ui.category.navigate"
               name="%m2.shortcut.open.type"/>
   </extension>

   <extension point="org.eclipse.core.resources.markers"
         id="maven2Problem"
         name="%m2.marker.problem.name">
      <super type="org.eclipse.core.resources.problemmarker"/>
      <persistent value="false"/>
   </extension>

   <extension point="org.eclipse.ui.keywords">
      <keyword id="org.maven.ide.eclipse.maven" label="maven"/>
   </extension>

   <extension point="org.eclipse.ui.preferencePages">
      <page id="org.maven.ide.eclipse.preferences.Maven2PreferencePage"
            class="org.maven.ide.eclipse.ui.internal.preferences.MavenPreferencePage"
            name="%m2.preferences.page.name">
         <keywordReference id="org.maven.ide.eclipse.maven"/>
      </page>
      <page id="org.maven.ide.eclipse.preferences.MavenInstallationsPreferencePage"
            category="org.maven.ide.eclipse.preferences.Maven2PreferencePage"
            class="org.maven.ide.eclipse.ui.internal.preferences.MavenInstallationsPreferencePage"
            name="Installations">
         <keywordReference id="org.maven.ide.eclipse.maven"/>
      </page>
      <page id="org.maven.ide.eclipse.preferences.MavenArchetypesPreferencePage"
            category="org.maven.ide.eclipse.preferences.Maven2PreferencePage"
            class="org.maven.ide.eclipse.ui.internal.preferences.MavenArchetypesPreferencePage"
            name="Archetypes">
         <keywordReference id="org.maven.ide.eclipse.maven"/>
      </page>
   </extension>

   <extension point="org.eclipse.core.runtime.preferences">
      <initializer class="org.maven.ide.eclipse.internal.preferences.MavenPreferenceInitializer"/>
   </extension>

   <extension point="org.eclipse.ui.newWizards">
      <category id="org.maven.ide.eclipse" name="%m2.wizard.name"/>

      <wizard id="org.maven.ide.eclipse.wizards.Maven2PomWizard"
            category="org.maven.ide.eclipse"
            class="org.maven.ide.eclipse.wizards.MavenPomWizard"
            icon="icons/new_m2_pom.gif"
            name="%m2.wizard.pom.name">
         <selection class="org.eclipse.core.resources.IProject"/>
         <selection class="org.eclipse.core.resources.IResource"/>
      </wizard>

      <wizard id="org.maven.ide.eclipse.wizards.Maven2ProjectWizard"
            category="org.maven.ide.eclipse"
            class="org.maven.ide.eclipse.wizards.MavenProjectWizard"
            icon="icons/new_m2_project.gif"
            name="%m2.wizard.project.name"
            project="true">
         <description>%m2.wizard.project.description</description>
      </wizard>

      <wizard id="org.maven.ide.eclipse.wizards.Maven2ModuleWizard"
              category="org.maven.ide.eclipse"
              class="org.maven.ide.eclipse.wizards.MavenModuleWizard"
              icon="icons/new_m2_project.gif"
              name="%m2.wizard.module.name"
              project="true">
         <description>%m2.wizard.module.description</description>
      </wizard>

      <wizard id="org.maven.ide.eclipse.wizards.MavenCheckoutWizard"
              name="Checkout Maven Projects from SCM"
              class="org.maven.ide.eclipse.wizards.MavenCheckoutWizard"
              category="org.maven.ide.eclipse"
              icon="icons/import_m2_project.gif">
         <description>Check out Maven Project from SVN</description>
         <!--
         <selection class="org.tigris.subversion.subclipse.core.ISVNRemoteFolder"/>
         -->
      </wizard>
   </extension>

   <extension point="org.eclipse.ui.importWizards">
     <category id="org.eclipse.ui.Basic" name="General"/>
     <category id="org.maven.ide.eclipse" name="%m2.wizard.name"/>

     <wizard id="org.maven.ide.eclipse.wizards.Maven2ImportWizard"
             class="org.maven.ide.eclipse.wizards.MavenImportWizard"
             icon="icons/import_m2_project.gif"
             category="org.eclipse.ui.Basic"
             name="%m2.wizard.import.name">
        <description>%m2.wizard.import.description</description>
     </wizard>

     <wizard id="org.maven.ide.eclipse.wizards.MavenPomCheckoutWizard"
             class="org.maven.ide.eclipse.wizards.MavenMaterializePomWizard"
             category="org.maven.ide.eclipse"
             name="%m2.wizard.materialize.name"
             icon="icons/import_m2_project.gif">
       <description>%m2.wizard.materialize.description</description>
     </wizard>

     <wizard id="org.maven.ide.eclipse.wizards.MavenCheckoutWizard"
             class="org.maven.ide.eclipse.wizards.MavenCheckoutWizard"
             category="org.maven.ide.eclipse"
             name="Check out Maven Projects from SCM"
             icon="icons/import_m2_project.gif">
       <description>Checkout Maven Project from SCM</description>
       <!--
       <selection class="org.tigris.subversion.subclipse.core.ISVNRemoteFolder"/>
       -->
     </wizard>

     <wizard id="org.maven.ide.eclipse.wizards.MavenInstallFileWizard"
             class="org.maven.ide.eclipse.wizards.MavenInstallFileWizard"
             category="org.maven.ide.eclipse"
             icon="icons/import_jar.gif"
             name="Install or deploy an artifact to a Maven repository">
         <selection class="org.eclipse.core.resources.IFile" name="*.jar"/>
         <description>Install or Deploy an artifact (archive) into a Maven repository</description>
     </wizard>
   </extension>

   <extension point="org.eclipse.ui.console.consoleFactories">
      <consoleFactory label="Maven Console" icon="icons/m2.gif"
            class="org.maven.ide.eclipse.ui.internal.MavenConsoleFactory"/>
   </extension>

   <extension point="org.eclipse.ui.console.consolePageParticipants">
      <consolePageParticipant
            class="org.maven.ide.eclipse.ui.internal.MavenConsolePageParticipant"
            id="org.maven.ide.eclipse.launch.console.Maven2ConsolePageParticipant">
         <enablement>
            <instanceof value="org.maven.ide.eclipse.internal.console.MavenConsoleImpl"/>
         </enablement>
      </consolePageParticipant>
   </extension>

   <extension point="org.eclipse.ui.actionSets">
     <actionSet id="org.maven.ide.eclipse.ui.navigation"
                label="Maven Navigation" visible="true">
       <action id="org.maven.ide.eclipse.ui.open.pom"
               class="org.maven.ide.eclipse.actions.OpenPomAction:class"
               definitionId="org.maven.ide.eclipse.ui.command.openType"
               label="Open Type from Maven..."
               icon="icons/open_pom.gif"
               style="push"
               menubarPath="navigate/open.ext"
               tooltip="Open Type from Maven"/>
       <action id="org.maven.ide.eclipse.ui.open.pom"
               class="org.maven.ide.eclipse.actions.OpenPomAction:artifact"
               definitionId="org.maven.ide.eclipse.ui.command.openPom"
               label="Open Maven POM..."
               icon="icons/open_pom.gif"
               style="push"
               menubarPath="navigate/open.ext"
               tooltip="Open Maven POM"/>
      </actionSet>
     <actionSet
           id="org.maven.ide.eclipse.actionSet"
           label="Maven"
           visible="true">
        <menu
              id="mavenMenu"
              label="Maven"
              path="project/additions">
        </menu>
        <action
              class="org.maven.ide.eclipse.actions.RefreshMavenModelsAction"
              icon="icons/update_dependencies.gif"
              id="org.maven.ide.eclipse.actions.RefreshModels"
              label="Update All Maven Dependencies"
              menubarPath="project/additions"
              tooltip="Refresh Maven Models">
        </action>
     </actionSet>
   </extension>

   <extension point="org.eclipse.ui.views">
      <category id="org.maven.ide.eclipse.views.indexes"
                name="Maven"/>
      <view id="org.maven.ide.eclipse.views.MavenIndexesView"
            category="org.maven.ide.eclipse.views.indexes"
            class="org.maven.ide.eclipse.ui.internal.views.MavenIndexesView"
            icon="icons/maven_indexes.gif"
            name="Maven Indexes"/>
   </extension>

   <extension point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension targetID="org.eclipse.debug.ui.DebugPerspective">
         <newWizardShortcut id="org.maven.ide.eclipse.wizards.Maven2ProjectWizard"/>
         <view id="org.maven.ide.eclipse.views.MavenIndexesView" relationship="fast"/>
      </perspectiveExtension>
      <perspectiveExtension targetID="org.eclipse.ui.resourcePerspective">
         <newWizardShortcut id="org.maven.ide.eclipse.wizards.Maven2ProjectWizard"/>
         <view id="org.maven.ide.eclipse.views.MavenIndexesView" relationship="fast"/>
      </perspectiveExtension>
   </extension>

   <extension point="org.eclipse.ui.propertyPages">
      <page id="org.maven.ide.eclipse.MavenProjectPreferencePage"
            class="org.maven.ide.eclipse.ui.internal.preferences.MavenProjectPreferencePage"
            name="Maven"
            objectClass="org.eclipse.core.resources.IProject"
            adaptable="true">
         <filter name="nature" value="org.maven.ide.eclipse.maven2Nature"/>
      </page>
   </extension>

   <extension point="org.maven.ide.eclipse.projectConfigurators">
      <configurator id="org.maven.ide.eclipse.configurator.mavenEclipsePlugin"
          class="org.maven.ide.eclipse.project.configurator.MavenProjectConfigurator:org.apache.maven.plugins:maven-eclipse-plugin|eclipse:m2eclipse"
          name="maven-eclipse-plugin" priority="5"/>

      <configurator id="org.maven.ide.eclipse.configurator.mavenSysdeoTomcatPlugin"
          class="org.maven.ide.eclipse.project.configurator.MavenProjectConfigurator:org.codehaus.mojo:sysdeo-tomcat-maven-plugin|sysdeo-tomcat:m2eclipse"
          name="sysdeo-tomcat-maven-plugin" priority="50"/>

   </extension>

   <!--
   <extension point="org.eclipse.search.searchPages">
      <page id="org.maven.ide.eclipse.MavenSearchPage"
            class="org.maven.ide.eclipse.ui.internal.search.MavenSearchPage"
            enabled="true"
            label="Maven Search"/>
   </extension>
   <extension point="org.eclipse.search.searchResultViewPages">
      <viewPage id="org.maven.ide.eclipse.MavenSearchResultPage"
            class="org.maven.ide.eclipse.ui.internal.search.MavenSearchResultPage"
            searchResultClass="org.maven.ide.eclipse.ui.internal.search.MavenSearchResult"/>
   </extension>
   -->

</plugin>
