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

    
<!-- Not to be extended com.sun.tools.jdi.VirtualMachineManagerImpl or org.eclipse.jdi.internal.VirtualMachineManagerImpl -->
   <extension-point id="jdiclient" name="%virtualMachineManagerImpl"  schema="schema/jdiclient.exsd"/>
   <extension-point id="javaLogicalStructures" name="%javaLogicalStructures" schema="schema/javaLogicalStructures.exsd"/>

<!-- Extensions -->
   <extension
         point="org.eclipse.debug.core.breakpoints">
      <breakpoint
            markerType="org.eclipse.jdt.debug.javaLineBreakpointMarker"
            class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaLineBreakpoint"
            id="javaLineBreakpoint"
            name="%javaLineBreakpoint.name">
      </breakpoint>
      <breakpoint
            markerType="org.eclipse.jdt.debug.javaClassPrepareBreakpointMarker"
            class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaClassPrepareBreakpoint"
            id="javaClassPrepareBreakpoint"
            name="%javaClassLoadBreakpoint.name">
      </breakpoint>      
      <breakpoint
            markerType="org.eclipse.jdt.debug.javaPatternBreakpointMarker"
            class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaPatternBreakpoint"
            id="javaPatternBreakpoint"
            name="%javaLineBreakpoint.name">
      </breakpoint>
      <breakpoint
            markerType="org.eclipse.jdt.debug.javaTargetPatternBreakpointMarker"
            class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaTargetPatternBreakpoint"
            id="javaTargetPatternBreakpoint"
            name="%javaLineBreakpoint.name">
      </breakpoint>
      <breakpoint
            markerType="org.eclipse.jdt.debug.javaExceptionBreakpointMarker"
            class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaExceptionBreakpoint"
            id="javaExceptionBreakpoint"
            name="%javaExceptionBreakpoint.name">
      </breakpoint>
      <breakpoint
            markerType="org.eclipse.jdt.debug.javaWatchpointMarker"
            class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaWatchpoint"
            id="javaWatchpoint"
            name="%javaWatchpoint.name">
      </breakpoint>
      <breakpoint
            markerType="org.eclipse.jdt.debug.javaMethodBreakpointMarker"
            class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaMethodBreakpoint"
            id="javaMethodBreakpoint"
            name="%javaMethodBreakpoint.name">
      </breakpoint>
      <breakpoint
            markerType="org.eclipse.jdt.debug.javaMethodEntryBreakpointMarker"
            class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaMethodEntryBreakpoint"
            id="javaMethodEntryBreakpoint"
            name="%javaMethodBreakpoint.name">
      </breakpoint>
      <breakpoint
            markerType="org.eclipse.jdt.debug.javaStratumLineBreakpointMarker"
            class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaStratumLineBreakpoint"
            id="javaStratumLineBreakpointMarker"
            name="%javaLineBreakpoint.name">
      </breakpoint>
   </extension>
   <extension
         id="javaBreakpointMarker"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.debug.core.breakpointMarker">
      </super>
   </extension>
   <extension
         id="javaClassPrepareBreakpointMarker"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.jdt.debug.javaBreakpointMarker">
      </super>
      <persistent
            value="true">
      </persistent>
   </extension>   
   <extension
         id="commonJavaLineBreakpointMarker"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.jdt.debug.javaBreakpointMarker">
      </super>
      <super
            type="org.eclipse.debug.core.lineBreakpointMarker">
      </super>
      <persistent
            value="true">
      </persistent>
      <attribute
            name="org.eclipse.jdt.debug.core.typeName">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.installCount">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.hitCount">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.expired">
      </attribute>
   </extension>
   <extension
         id="javaLineBreakpointMarker"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.jdt.debug.commonJavaLineBreakpointMarker">
      </super>
      <persistent
            value="true">
      </persistent>
   </extension>
   <extension
         id="javaPatternBreakpointMarker"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.jdt.debug.commonJavaLineBreakpointMarker">
      </super>
      <persistent
            value="true">
      </persistent>
      <attribute
            name="org.eclipse.jdt.debug.core.pattern">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.sourceName">
      </attribute>
   </extension>
   <extension
         id="javaTargetPatternBreakpointMarker"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.jdt.debug.commonJavaLineBreakpointMarker">
      </super>
      <persistent
            value="true">
      </persistent>
      <attribute
            name="org.eclipse.jdt.debug.core.sourceName">
      </attribute>
   </extension>
   <extension
         id="javaExceptionBreakpointMarker"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.jdt.debug.javaBreakpointMarker">
      </super>
      <persistent
            value="true">
      </persistent>
      <attribute
            name="org.eclipse.jdt.debug.core.caught">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.uncaught">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.checked">
      </attribute>
   </extension>
   <extension
         id="javaWatchpointMarker"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.jdt.debug.javaLineBreakpointMarker">
      </super>
      <persistent
            value="true">
      </persistent>
      <attribute
            name="org.eclipse.jdt.debug.core.fieldName">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.access">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.modification">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.auto_disabled">
      </attribute>
   </extension>
   <extension
         id="javaMethodBreakpointMarker"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.jdt.debug.javaLineBreakpointMarker">
      </super>
      <persistent
            value="true">
      </persistent>
      <attribute
            name="org.eclipse.jdt.debug.core.methodName">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.methodSignature">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.entry">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.exit">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.native">
      </attribute>
   </extension>
   <extension
         id="javaMethodEntryBreakpointMarker"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.jdt.debug.javaLineBreakpointMarker">
      </super>
      <persistent
            value="true">
      </persistent>
      <attribute
            name="org.eclipse.jdt.debug.core.methodName">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.methodSignature">
      </attribute>
   </extension>
   <extension
         id="javaStratumLineBreakpointMarker"
         point="org.eclipse.core.resources.markers">
      <super
            type="org.eclipse.jdt.debug.commonJavaLineBreakpointMarker">
      </super>
      <persistent
            value="true">
      </persistent>
      <attribute
            name="org.eclipse.jdt.debug.core.stratum">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.sourceName">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.sourcePath">
      </attribute>
      <attribute
            name="org.eclipse.jdt.debug.core.pattern">
      </attribute>
   </extension>

   
   <extension point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
      		namespace="org.eclipse.jdt.debug"
            properties="isMultiStrata"
            type="org.eclipse.debug.core.model.IStackFrame"
            class="org.eclipse.jdt.internal.debug.core.JavaDebugPropertyTester"
            id="org.eclipse.jdt.debug.PropertyTester">
      </propertyTester>
      <propertyTester
            class="org.eclipse.jdt.internal.debug.core.JavaLaunchableTester"
            id="org.eclipse.jdt.debug.JavaLaunchableTester"
            namespace="org.eclipse.jdt.debug"
            properties="hasMethod, hasSuperClass, matchesJavaFileExtension, hasProjectNature, implementsInterface, hasItemOnBuildPath, hasAllItemsOnBuildPath"
            type="org.eclipse.core.runtime.IAdaptable"/>            
   </extension>
   
  	<extension point="org.eclipse.core.runtime.preferences">
		<initializer class="org.eclipse.jdt.internal.debug.core.JDIDebugPluginPreferenceInitializer"/>
	</extension>
   <extension
         point="org.eclipse.jdt.debug.javaLogicalStructures">
      <javaLogicalStructure
            subtypes="true"
            value="return entrySet().toArray();"
            type="java.util.Map"
            description="%descriptionMap"/>
      <javaLogicalStructure
            subtypes="true"
            value="return toArray();"
            type="java.util.Collection"
            description="%descriptionCollection"/>
      <javaLogicalStructure
            subtypes="true"
            type="java.util.Map$Entry"
            description="%descriptionMapEntry">
         <variable
               value="return getKey();"
               name="key"/>
         <variable
               value="return getValue();"
               name="value"/>
      </javaLogicalStructure>
      <javaLogicalStructure
            subtypes="true"
            value="return getChildren();"
            type="org.eclipse.swt.widgets.Composite"
            description="%descriptionSWTComposite"/>
   </extension>
   <extension
         point="org.eclipse.debug.core.logicalStructureProviders">
      <logicalStructureProvider
            class="org.eclipse.jdt.internal.debug.core.logicalstructures.JavaLogicalStructures"
            modelIdentifier="org.eclipse.jdt.debug"/>
   </extension>
   
</plugin>
