<?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.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>
   <extension
         point="org.eclipse.debug.core.logicalStructureProviders">
      <logicalStructureProvider
            class="org.eclipse.jdt.internal.debug.core.logicalstructures.JavaLogicalStructures"
            modelIdentifier="org.eclipse.jdt.debug"/>
   </extension>
   
</plugin>
