<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin
   id="org.eclipse.jdt.debug"
   name="%pluginName"
   version="3.1.0"
   provider-name="%providerName"
   class="org.eclipse.jdt.internal.debug.core.JDIDebugPlugin">

   <runtime>
      <library name="jdi.jar">
         <export name="*"/>
      </library>
      <library name="jdimodel.jar">
         <export name="*"/>
      </library>
      <library name="tools.jar">
         <export name="*"/>
      </library>
   </runtime>
   <requires>
      <import plugin="org.eclipse.core.resources"/>
      <import plugin="org.eclipse.debug.core"/>
      <import plugin="org.eclipse.jdt.core"/>
      <import plugin="org.eclipse.core.runtime"/>
      <import plugin="org.eclipse.core.expressions"/>
   </requires>


<!-- 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">
      </breakpoint>
      <breakpoint
            markerType="org.eclipse.jdt.debug.javaTargetPatternBreakpointMarker"
            class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaTargetPatternBreakpoint"
            id="javaTargetPatternBreakpoint">
      </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">
      </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.debug.core.logicalStructureTypes">
      <logicalStructureType
            class="org.eclipse.jdt.internal.debug.core.logicalstructures.JavaLogicalStructures"
            modelIdentifier="org.eclipse.jdt.debug"
            id="org.eclipse.jdt.debug.javaLogicalStructures"/>           
   </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>
   </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>
   
</plugin>
