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

   <extension-point id="testRunListeners" name="%testRunListeners.name" schema="schema/testRunListeners.exsd"/>
   <extension-point id="junitLaunchConfigs" name="%junitLaunchConfigs.name" schema="schema/junitLaunchConfigs.exsd"/>
   <extension-point id="internal_testRunTabs" name="%testRunTabs.name" schema="schema/internal_testRunTabs.exsd"/>

   <extension
         point="org.eclipse.ui.views">
      <view
            name="%View.label"
            icon="$nl$/icons/full/eview16/junit.gif"
            category="org.eclipse.jdt.ui.java"
            fastViewWidthRatio="0.40"
            class="org.eclipse.jdt.internal.junit.ui.TestRunnerViewPart"
            id="org.eclipse.jdt.junit.ResultView">
      </view>
   </extension>
   <extension
         point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension
            targetID="org.eclipse.jdt.ui.JavaPerspective">
         <view
               relative="org.eclipse.jdt.ui.PackageExplorer"
               visible="false"
               id="org.eclipse.jdt.junit.ResultView"
               relationship="stack">
         </view>
         <newWizardShortcut
               id="org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard">
         </newWizardShortcut>
      </perspectiveExtension>
      <perspectiveExtension
            targetID="org.eclipse.jdt.ui.JavaPerspective">
         <actionSet
               id="org.eclipse.jdt.junit.JUnitActionSet">
         </actionSet>
      </perspectiveExtension>
      <perspectiveExtension
            targetID="org.eclipse.jdt.ui.JavaBrowsingPerspective">
         <actionSet
               id="org.eclipse.jdt.junit.JUnitActionSet">
         </actionSet>
         <newWizardShortcut
               id="org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard">
         </newWizardShortcut>
      </perspectiveExtension>
   </extension>
   <extension
         point="org.eclipse.ui.preferencePages">
      <page
            name="%PreferencePage.label"
            category="org.eclipse.jdt.ui.preferences.JavaBasePreferencePage"
            class="org.eclipse.jdt.internal.junit.ui.JUnitPreferencePage"
            id="org.eclipse.jdt.junit.preferences">
         <keywordReference id="org.eclipse.jdt.junit.JUnit"/>
      </page>
   </extension>
   <extension
         point="org.eclipse.ui.keywords">
      <keyword
            id="org.eclipse.jdt.junit.JUnit"
            label="%preferenceKeywords.general"/>
   </extension>
   <extension
         point="org.eclipse.debug.core.launchConfigurationTypes">
      <launchConfigurationType
            name="%Launch.label"
            delegate="org.eclipse.jdt.internal.junit.launcher.JUnitLaunchConfiguration"
            modes="run, debug"
            id="org.eclipse.jdt.junit.launchconfig"
            sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
            sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer">
         <fileExtension
               default="false"
               extension="java">
         </fileExtension>
         <fileExtension
               default="false"
               extension="class">
         </fileExtension>
      </launchConfigurationType>
   </extension>
   <extension
         point="org.eclipse.debug.core.launchConfigurationComparators">
      <launchConfigurationComparator
            attribute="org.eclipse.jdt.junit.CONTAINER"
            class="org.eclipse.jdt.internal.junit.launcher.ContainerComparator"
            id="org.eclipse.jdt.junit.containerComparator">
      </launchConfigurationComparator>
   </extension>
   <extension
         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
      <launchConfigurationTypeImage
            icon="$nl$/icons/full/obj16/julaunch.gif"
            configTypeID="org.eclipse.jdt.junit.launchconfig"
            id="org.eclipse.jdt.junit.launchimage">
      </launchConfigurationTypeImage>
   </extension>
   <extension
         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
      <launchConfigurationTabGroup
            type="org.eclipse.jdt.junit.launchconfig"
            helpContextId="org.eclipse.jdt.junit.junit_tab_group"
            class="org.eclipse.jdt.internal.junit.launcher.JUnitTabGroup"
            id="org.eclipse.jdt.junit.launchConfigurationTabGroup.junit">
         <launchMode
               perspective="org.eclipse.debug.ui.DebugPerspective"
               description="%JUnitTabGroupDescription.debug"
               mode="debug">
         </launchMode>
         <launchMode
               description="%JUnitTabGroupDescription.run"
               mode="run">
         </launchMode>
      </launchConfigurationTabGroup>
   </extension>
   <extension
         point="org.eclipse.ui.newWizards">
      <category
            name="%WizardCategory.name"
            parentCategory="org.eclipse.jdt.ui.java"
            id="org.eclipse.jdt.junit">
      </category>
      <wizard
            name="%TestCaseWizard.name"
            icon="$nl$/icons/full/etool16/new_testcase.gif"
            category="org.eclipse.jdt.ui.java/org.eclipse.jdt.junit"
            id="org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard">
         <class
               class="org.eclipse.jdt.internal.junit.wizards.NewTestCaseCreationWizard">
            <parameter
                  name="javatype"
                  value="true">
            </parameter>
         </class>
<!-- see bug 48164 for wrong pde compiler warnings -->
         <description>
            %TestWizard.description
         </description>
      </wizard>
      <wizard
            name="%TestSuiteWizard.name"
            icon="$nl$/icons/full/etool16/new_testsuite.gif"
            category="org.eclipse.jdt.ui.java/org.eclipse.jdt.junit"
            class="org.eclipse.jdt.internal.junit.wizards.NewTestSuiteCreationWizard"
            id="org.eclipse.jdt.junit.wizards.NewTestSuiteCreationWizard">
         <description>
            %SuiteWizard.description
         </description>
      </wizard>
   </extension>
   <extension
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            objectClass="org.eclipse.jdt.core.ICompilationUnit"
            nameFilter="*Tests.java"
            id="org.eclipse.jdt.junit.wizards.UpdateTestSuite">
         <action
               label="%UpdateSuiteAction.label"
               class="org.eclipse.jdt.internal.junit.wizards.UpdateTestSuite"
               tooltip="%UpdateSuiteAction.tooltip"
               enablesFor="1"
               id="updateTestSuite">
         </action>
      </objectContribution>
   </extension>
   <extension
         point="org.eclipse.ui.actionSets">
      <actionSet
            label="%JUnitActionSet.label"
            visible="false"
            id="org.eclipse.jdt.junit.JUnitActionSet">
         <menu
               label="%searchMenu.label"
               path="navigate"
               id="org.eclipse.search.menu">
            <groupMarker
                  name="internalDialogGroup">
            </groupMarker>
<!-- not to be used by clients  -->
            <groupMarker
                  name="dialogGroup">
            </groupMarker>
<!-- to be used by clients      -->
            <separator
                  name="contextMenuActionsGroup">
            </separator>
            <separator
                  name="internalOccurrencesGroup">
            </separator>
         </menu>
		<action
               definitionId="org.eclipse.jdt.junit.gotoTest"
               label="%GotoTestAction.label"
               helpContextId="org.eclipse.jdt.junit.goto_referenced_test_action_context"
               class="org.eclipse.jdt.internal.junit.ui.GotoReferencedTestAction"
               tooltip="%GotoTestAction.tooltip"
               menubarPath="org.eclipse.search.menu/internalOccurrencesGroup"
               id="junit.actions.GotoTestAction">
         </action>
      </actionSet>
   </extension>
      <extension
         point="org.eclipse.ui.actionSetPartAssociations">
      <actionSetPartAssociation
            targetID="org.eclipse.jdt.junit.JUnitActionSet">
         <part
               id="org.eclipse.jdt.ui.PackageExplorer">
         </part>
         <part
               id="org.eclipse.jdt.ui.TypeHierarchy">
         </part>
         <part
               id="org.eclipse.jdt.ui.CompilationUnitEditor">
         </part>
         <part
               id="org.eclipse.jdt.ui.ClassFileEditor">
         </part>
         <part
               id="org.eclipse.jdt.ui.ProjectsView">
         </part>
         <part
               id="org.eclipse.jdt.ui.PackagesView">
         </part>
         <part
               id="org.eclipse.jdt.ui.TypesView">
         </part>
         <part
               id="org.eclipse.jdt.ui.MembersView">
         </part>
         <part
               id="org.eclipse.search.SearchResultView">
         </part>
      </actionSetPartAssociation>
   </extension>
   <extension
         id="junit_task"
         name="%Task.name"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.core.resources.taskmarker">
      </super>
      <persistent
            value="true">
      </persistent>
   </extension>
   <extension
         point="org.eclipse.debug.ui.launchShortcuts">
      <shortcut
            label="%JUnitShortcut.label"
            icon="$nl$/icons/full/obj16/julaunch.gif"
            helpContextId="org.eclipse.jdt.junit.launch_shortcut"
            class="org.eclipse.jdt.internal.junit.launcher.JUnitLaunchShortcut"
            modes="run, debug"
            id="org.eclipse.jdt.junit.junitShortcut">
         <contextualLaunch>
            <enablement>
               <with
                     variable="selection">
                  <count
                        value="1">
                  </count>
               		<iterate>
                 		<or>
                   			<test property="org.eclipse.debug.ui.matchesPattern" value="*.java"/>
                   			<test property="org.eclipse.debug.ui.matchesPattern" value="*.class"/>
                   			<adapt type="org.eclipse.jdt.core.IJavaElement"/>
                 		</or>
                 		<test property="org.eclipse.jdt.junit.isTest"/>
               		</iterate>
               </with>
            </enablement>
         </contextualLaunch>
         <perspective
               id="org.eclipse.jdt.ui.JavaPerspective">
         </perspective>
         <perspective
               id="org.eclipse.jdt.ui.JavaHierarchyPerspective">
         </perspective>
         <perspective
               id="org.eclipse.jdt.ui.JavaBrowsingPerspective">
         </perspective>
         <perspective
               id="org.eclipse.debug.ui.DebugPerspective">
         </perspective>
      </shortcut>
   </extension>
   <extension
         point="org.eclipse.jdt.core.classpathVariableInitializer">
      <classpathVariableInitializer
            variable="JUNIT_HOME"
            class="org.eclipse.jdt.internal.junit.ui.JUnitHomeInitializer">
      </classpathVariableInitializer>
      <classpathVariableInitializer
            variable="JUNIT_SRC_HOME"
            class="org.eclipse.jdt.internal.junit.ui.JUnitHomeInitializer">
      </classpathVariableInitializer>
   </extension>
   <extension
         point="org.eclipse.jdt.ui.quickFixProcessors">
      <quickFixProcessor
            name="%junitQuickFixProcessor"
            class="org.eclipse.jdt.internal.junit.ui.JUnitQuickFixProcessor"
            id="org.eclipse.jdt.junit.JUnitQuickFixProcessor">
      </quickFixProcessor>
   </extension>
   <extension
         point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
            properties="isTest"
            namespace="org.eclipse.jdt.junit"
            type="org.eclipse.core.runtime.IAdaptable"
            class="org.eclipse.jdt.internal.junit.ui.JavaTypeExtender"
            id="org.eclipse.jdt.junit.ITypeExtender">
      </propertyTester>
   </extension>
   <extension
         point="org.eclipse.ltk.core.refactoring.renameParticipants">
      <renameParticipant
            name="%RenameTypeParticipant.name"
            class="org.eclipse.jdt.internal.junit.refactoring.TypeRenameParticipant"
            id="org.eclipse.jdt.junit.renameTypeParticipant">
         <enablement>
            <with
                  variable="affectedNatures">
               <iterate operator="or">
                  <equals
                        value="org.eclipse.jdt.core.javanature">
                  </equals>
               </iterate>
            </with>
            <with
                  variable="element">
               <instanceof
                     value="org.eclipse.jdt.core.IType">
               </instanceof>
               <test
                     property="org.eclipse.jdt.junit.isTest">
               </test>
            </with>
         </enablement>
      </renameParticipant>
      <renameParticipant
            class="org.eclipse.jdt.internal.junit.refactoring.ProjectRenameParticipant"
            name="%junitRenameParticipant"
            id="org.eclipse.jdt.junit.renameTypeParticipant">
         <enablement>
           <with variable="affectedNatures">
             <iterate operator="or">
               <equals value="org.eclipse.jdt.core.javanature"/>
             </iterate>
           </with>
           <with variable="element">
   	         <instanceof value="org.eclipse.jdt.core.IJavaProject"/>
           </with>
         </enablement>
      </renameParticipant>
      
   </extension>
   <extension
         point="org.eclipse.jdt.junit.junitLaunchConfigs">
      <launchConfigType
            configTypeID="org.eclipse.jdt.junit.launchconfig">
      </launchConfigType>
   </extension>
   <extension
         point="org.eclipse.jdt.junit.internal_testRunTabs">
      <testRunTab class="org.eclipse.jdt.internal.junit.ui.FailureTab"/>
      <testRunTab class="org.eclipse.jdt.internal.junit.ui.TestHierarchyTab"/>
   </extension>

   <extension
         point="org.eclipse.ui.commands">
      <command
         name="%GotoTestCommand.name"
         description="%GotoTestCommand.description"
         categoryId="org.eclipse.search.ui.category.search"
         id="org.eclipse.jdt.junit.gotoTest">
      </command>
      <command
            name="%ViewCommand.junitView.name"
            description="%ViewCommand.junitView.description"
            categoryId="org.eclipse.ui.category.views"
            id="org.eclipse.jdt.junit.ResultView">
      </command>
      
      <command
            name="%JUnitShortcut.description.run"
            description="%JUnitShortcut.description.run"
            categoryId="org.eclipse.debug.ui.category.run"
            id="org.eclipse.jdt.junit.junitShortcut.run">
      </command>
      <command
            name="%JUnitShortcut.description.debug"
            description="%JUnitShortcut.description.debug"
            categoryId="org.eclipse.debug.ui.category.run"
            id="org.eclipse.jdt.junit.junitShortcut.debug">
      </command>
   </extension>
   
   <extension
         point="org.eclipse.ui.bindings">
      <key
            sequence="M3+M2+D T"
            commandId="org.eclipse.jdt.junit.junitShortcut.debug"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
	  <!-- COMMAND+ALT+Q is "Hide/Show Dock" on carbon, so don't overwrite it -->
      <key
            sequence="M3+M2+X T"
            commandId="org.eclipse.jdt.junit.junitShortcut.run"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
   </extension>
   
   <extension
         point="org.eclipse.core.runtime.preferences">
      <initializer class="org.eclipse.jdt.internal.junit.ui.JunitPreferenceInitializer"/>
   </extension>
   
</plugin>
