<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin
   id="org.eclipse.wst.sse.core"
   name="%pluginName"
   version="1.0.0"
   provider-name="%providerName"
   class="org.eclipse.wst.sse.core.ModelPlugin">

   <runtime>
      <library name="model.jar">
         <export name="*"/>
      </library>
   </runtime>
   <requires>
      <import plugin="org.eclipse.core.runtime.compatibility"/>
      <import plugin="org.eclipse.core.resources"/>
      
		<!-- need to re-export org.eclipse.text since our API depends on it, 
			such as IStructuredDocument extends IDocument 
		-->
      <import plugin="org.eclipse.text" export="true"/>

		<!-- need to re-export emf.common since our API depends on it, 
			such as StructuredTextUndoManager's getCommmand method returns an 
			emf.common.Command
		-->
      <import plugin="org.eclipse.emf.common" export="true"/>
      
      <import plugin="org.eclipse.wst.common.contentmodel"/>
      <import plugin="org.eclipse.core.runtime"/>
      <import plugin="org.eclipse.wst.common.encoding"/>
      <import plugin="org.eclipse.core.filebuffers"/>
      <import plugin="org.eclipse.wst.xml.uriresolver"/>
   </requires>


<!-- deprecated -->
   <extension-point id="adaptOnCreateFactory" name="%Adapt_On_Create_Factory_Extension.name"/>
   <extension-point id="documentTypes" name="%Document_Types_Extension.name"/>
   <extension-point id="embeddedTypeHandler" name="%JSP_Embedded_Content_Type_Handler_Extension.name"/>
   <extension-point id="contentTypeFactoryContribution" name="%Content_Type_Factory_Contribution_Extension.name"/>
<!-- I commented out ... clients should just use the normal platform way of registering these 
		adapterFactories. At worst, they'd need a small plugin with 'startup' specified ... but that's 
		better than us getting hit with the performance impact (of loading plugins and pre-reqs, etc.). 
		<extension-point id="uriResolverAdapterFactory" name="Resource Adapter Factory for Creating URIResolvers"/>
	-->
   <extension-point id="cssprofile" name="%CSS_Profile_Extension.name"/>
   <extension-point id="commentElementHandler" name="%Comment_Element_Handler_Extension.name"/>
<!-- this plug-in provides support for this extension point -->
   <extension-point id="modelHandler" name="%Model_Handler_Extension.name"/>
   <extension-point id="formatProcessors" name="%Format_Processors_Extension_Point.name" schema="schema/formatProcessors.exsd"/>

<!-- not for use by clients -->
   <extension-point id="builderdelegate" name="%Structured_Builder_Delegate_Extension_Point.name"/>

   <extension point="org.eclipse.core.resources.builders"
       id="structuredbuilder"
       name="%SDMB.name">
      <builder
           hasNature="false">
         <run
            class="org.eclipse.wst.sse.core.internal.builder.StructuredDocumentBuilder"
			>
         </run>
      </builder>
   </extension>
<!-- define our task marker type -->
	<extension id="task" name="%Structured_Sources_Task_Extension.name" point="org.eclipse.core.resources.markers">
    	<super type="org.eclipse.core.resources.taskmarker"/> 
    	<persistent value="true"/>
	</extension>
</plugin>
