<?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.internal.SSECorePlugin">

   <runtime>
      <library name="model.jar">
         <export name="*"/>
      </library>
   </runtime>
   <requires>
      <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"/>

<!-- 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>
