<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         point="org.eclipse.jdt.core.compilationParticipant">
      <compilationParticipant
            class="org.eclipse.pde.ds.internal.annotations.DSAnnotationCompilationParticipant"
            createsProblems="true"
            id="org.eclipse.pde.ds.annotations.DSAnnotationCompilationParticipant"
            requiredSourceLevel="1.5">
         <managedMarker
               markerType="org.eclipse.pde.ds.annotations.problem">
         </managedMarker>
      </compilationParticipant>
   </extension>
   <extension
         point="org.eclipse.ui.keywords">
      <keyword
            id="org.eclipse.pde.ds.annotations"
            label="%keyword.label">
      </keyword>
   </extension>
   <extension
         point="org.eclipse.ui.propertyPages">
      <page
            category="org.eclipse.pde.internal.ui.properties.pluginDevelopmentPage"
            class="org.eclipse.pde.ds.internal.annotations.DSAnnotationPropertyPage"
            id="org.eclipse.pde.ds.annotations"
            name="%property.page.name">
         <enabledWhen>
            <adapt
                  type="org.eclipse.core.resources.IProject">
               <test
                     property="org.eclipse.core.resources.projectNature"
                     value="org.eclipse.pde.PluginNature">
               </test>
            </adapt>
         </enabledWhen>
         <keywordReference
               id="org.eclipse.pde.ds.annotations">
         </keywordReference>
      </page>
   </extension>
   <extension
         point="org.eclipse.ui.preferencePages">
      <page
            category="org.eclipse.pde.ui.MainPreferencePage"
            class="org.eclipse.pde.ds.internal.annotations.DSAnnotationPropertyPage"
            id="org.eclipse.pde.ds.annotations"
            name="%preference.page.name">
         <keywordReference
               id="org.eclipse.pde.ds.annotations">
         </keywordReference>
      </page>
   </extension>
   <extension
         id="problem"
         name="%problem.marker.name"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.jdt.core.problem">
      </super>
      <persistent
            value="true">
      </persistent>
   </extension>
   <extension
         point="org.eclipse.core.contenttype.contentTypes">
      <content-type
            base-type="org.eclipse.pde.ds.core.content-type"
            id="org.eclipse.pde.ds.annotations.content-type-v12"
            name="%content-type-v12.name">
         <describer
               class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber2">
            <parameter
                  name="element"
                  value="{http://www.osgi.org/xmlns/scr/v1.2.0}component">
            </parameter>
         </describer>
      </content-type>
      <content-type
            base-type="org.eclipse.pde.ds.core.content-type"
            id="org.eclipse.pde.ds.annotations.content-type-v13"
            name="%content-type-v13.name">
         <describer
               class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber2">
            <parameter
                  name="element"
                  value="{http://www.osgi.org/xmlns/scr/v1.3.0}component">
            </parameter>
         </describer>
      </content-type>
   </extension>
   <extension
         point="org.eclipse.ltk.core.refactoring.renameParticipants">
      <renameParticipant
            class="org.eclipse.pde.ds.internal.annotations.ComponentRenameParticipant"
            id="org.eclipse.pde.ds.annotations.ComponentRenameParticipant"
            name="%renameParticipant.name">
         <enablement>
           <with variable="affectedNatures">
             <iterate
                   ifEmpty="false"
                   operator="or">
                <equals
                      value="org.eclipse.jdt.core.javanature">
                </equals>
             </iterate>
             <iterate
                   ifEmpty="false"
                   operator="or">
                <equals
                      value="org.eclipse.pde.PluginNature">
                </equals>
             </iterate>
           </with>
           <with variable="element">
             <or>
                <instanceof
                      value="org.eclipse.jdt.core.IType">
                </instanceof>
                <instanceof
                      value="org.eclipse.jdt.core.IPackageFragment">
                </instanceof>
             </or>
 	         <test property="org.eclipse.jdt.core.hasTypeOnClasspath" value="org.osgi.service.component.annotations.Component"/>
 	         <test property="org.eclipse.pde.ds.annotations.containsComponentWithImplicitName" value="true"/>
            </with>
         </enablement>
      </renameParticipant>
   </extension>
   <extension
         point="org.eclipse.ltk.core.refactoring.moveParticipants">
      <moveParticipant
            class="org.eclipse.pde.ds.internal.annotations.ComponentMoveParticipant"
            id="org.eclipse.pde.ds.annotations.ComponentMoveParticipant"
            name="%moveParticipant.name">
         <enablement>
           <with variable="affectedNatures">
             <iterate
                   ifEmpty="false"
                   operator="or">
                <equals
                      value="org.eclipse.jdt.core.javanature">
                </equals>
             </iterate>
             <iterate
                   ifEmpty="false"
                   operator="or">
                <equals
                      value="org.eclipse.pde.PluginNature">
                </equals>
             </iterate>
           </with>
           <with variable="element">
             <instanceof
                   value="org.eclipse.jdt.core.IType">
             </instanceof>
 	         <test property="org.eclipse.jdt.core.hasTypeOnClasspath" value="org.osgi.service.component.annotations.Component"/>
 	         <test property="org.eclipse.pde.ds.annotations.containsComponentWithImplicitName" value="true"/>
            </with>
         </enablement>
      </moveParticipant>
   </extension>
   <extension
         point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
            class="org.eclipse.pde.ds.internal.annotations.ComponentPropertyTester"
            id="org.eclipse.pde.ds.annotations.ComponentPropertyTester"
            namespace="org.eclipse.pde.ds.annotations"
            properties="containsComponentWithImplicitName"
            type="org.eclipse.jdt.core.IParent">
      </propertyTester>
   </extension>
   <extension
         point="org.eclipse.core.runtime.preferences">
      <initializer
            class="org.eclipse.pde.ds.internal.annotations.PreferenceInitializer">
      </initializer>
   </extension>
   <extension
         point="org.eclipse.pde.core.pluginClasspathContributors">
      <contributor
            class="org.eclipse.pde.ds.internal.annotations.DSAnnotationClasspathContributor">
      </contributor>
   </extension>
   <extension
         id="buildpath_problem"
         name="%buildpathProblem.marker.name"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.core.resources.problemmarker">
      </super>
      <persistent
            value="true">
      </persistent>
   </extension>
   <extension
         point="org.eclipse.ui.ide.markerResolution">
      <markerResolutionGenerator
            class="org.eclipse.pde.ds.internal.annotations.BuildPathMarkerResolutionGenerator"
            markerType="org.eclipse.pde.ds.annotations.buildpath_problem">
      </markerResolutionGenerator>
   </extension>

</plugin>
