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

<!--  (c) 2008 Varsity Gateway LLC.  All rights reserved. -->
<plugin id="com.metamatrix.modeler.core" name="%pluginName" version="5.5.4" provider-name="%providerName" class="com.metamatrix.modeler.core.ModelerCore">

   <runtime>
      <library name="modelerCore_PATCH.jar">
         <export name="*"/>
      </library>
<library name="modelerCore.jar">
         <export name="*"/>
      </library>
   </runtime>
   <requires>
      <import plugin="org.eclipse.core.runtime.compatibility"/>
      <import plugin="com.metamatrix.core" export="true"/>
      <import plugin="org.eclipse.emf.ecore.xmi" export="true"/>
      <import plugin="org.eclipse.emf.ecore" export="true"/>
      <import plugin="org.eclipse.emf.common" export="true"/>
      <import plugin="org.eclipse.emf.ecore.edit"/>
      <import plugin="org.eclipse.core.resources" export="true"/>
      <import plugin="org.eclipse.emf.edit" export="true"/>
      <import plugin="com.metamatrix.metamodels.diagram" export="true"/>
      <import plugin="javax.transaction"/>
      <import plugin="com.metamatrix.metamodels.transformation" export="true"/>
      <import plugin="com.metamatrix.metamodels.core" export="true"/>
      <import plugin="org.eclipse.xsd"/>
      <import plugin="com.metamatrix.core.xml" export="true"/>
      <import plugin="org.eclipse.emf.mapping"/>
      <import plugin="com.metamatrix.core.index"/>
   </requires>

   <extension-point id="metamodel" name="Metamodel"/>
   <extension-point id="modelValidation" name="ModelValidation"/>
   <extension-point id="resourceFactory" name="Resource Factory"/>
   <extension-point id="metamodelService" name="MetamodelService"/>
   <extension-point id="ioService" name="IOService"/>
   <extension-point id="streamReader" name="StreamReader"/>
   <extension-point id="streamWriter" name="StreamWriter"/>
   <extension-point id="associationProvider" name="AssociationProvider"/>
   <extension-point id="datatypeManager" name="DatatypeManager"/>
   <extension-point id="externalResource" name="ExternalResource"/>
   <extension-point id="externalResourceSet" name="ExternalResourceSet"/>
   <extension-point id="resourceValidator" name="Resource Validator"/>
   <extension-point id="resourceIndexer" name="Resource Indexer"/>
   <extension-point id="invocationFactoryHelper" name="InvocationFactoryHelper"/>
   <extension-point id="referenceUpdator" name="ReferenceUpdator"/>

<!-- MetamodelAspect extension points -->
   <extension-point id="umlDiagramAspect" name="UmlDiagramAspect"/>
   <extension-point id="itemProviderAspect" name="ItemProviderAspect"/>
   <extension-point id="dependencyAspect" name="DependencyAspect"/>
   <extension-point id="validationAspect" name="ValidationAspect"/>
   <extension-point id="featureConstraintAspect" name="FeatureConstraintAspect"/>
   <extension-point id="eobjectMatcherFactory" name="EObjectMatcherFactory"/>
   <extension-point id="sqlAspect" name="SqlAspect"/>
   <extension-point id="importAspect" name="ImportAspect"/>
   <extension-point id="relationshipAspect" name="RelationshipAspect"/>
   <extension-point id="modelContainerInitializer" name="ModelContainerInitializer" schema="schema/modelContainerInitializer.exsd"/>
   <extension-point id="resourceLoadOptions" name="ResourceLoadOptions"/>
   <extension-point id="newModelObjectHelper" name="%newModelObjectHelper"/>
   <extension-point id="pasteContributor" name="Paste Contributor" schema="schema/pasteContributor.exsd"/>
   <extension-point id="refactorResourceListener" name="RefactorResourceListener" schema="schema/refactorResourceListener.exsd"/>

<!-- ExternalResource extension -->
   <extension id="systemPhysicalResource" name="systemPhysicalResource" point="com.metamatrix.modeler.core.externalResource">
      <resourceName>
         /System/SystemPhysical.xmi
      </resourceName>
      <resourceUrl>
         System.vdb
      </resourceUrl>
      <internalUri>
         http://www.metamatrix.com/models/SystemPhysical.xmi
      </internalUri>
      <priority> 2 </priority>
   </extension>
   <extension id="systemVirtualResource" name="systemVirtualResource" point="com.metamatrix.modeler.core.externalResource">
      <resourceName>
         /System/System.xmi
      </resourceName>
      <resourceUrl>
         System.vdb
      </resourceUrl>
      <internalUri>
         http://www.metamatrix.com/models/System.xmi
      </internalUri>
      <priority> 1 </priority>
   </extension>

<!-- Metamodel extensions -->
   <extension point="com.metamatrix.modeler.core.resourceValidator">
      <class name="com.metamatrix.modeler.internal.core.builder.XmiResourceValidator">
      </class>
   </extension>
   <extension point="com.metamatrix.modeler.core.resourceIndexer">
      <class name="com.metamatrix.modeler.internal.core.index.ModelIndexer">
      </class>
   </extension>
   <extension point="com.metamatrix.modeler.core.resourceIndexer">
      <class name="com.metamatrix.modeler.internal.core.index.ModelSearchIndexer">
      </class>
   </extension>
   <extension id="xmiStreamReader" name="XMI" point="com.metamatrix.modeler.core.streamReader">
      <class name="com.metamatrix.modeler.internal.core.reader.XmiStreamReader">
      </class>
   </extension>
   <extension id="xmiStreamWriter" name="XMI" point="com.metamatrix.modeler.core.streamWriter">
      <class name="com.metamatrix.modeler.internal.core.writer.XmiStreamWriter">
      </class>
   </extension>
   <extension id="emfInvocationFactoryHelper" name="EmfInvocationFactoryHelper" point="com.metamatrix.modeler.core.invocationFactoryHelper">
      <class name="com.metamatrix.modeler.internal.core.invocation.EmfInvocationFactoryHelper">
      </class>
   </extension>
   <extension id="standardInvocationFactoryHelper" name="StandardInvocationFactoryHelper" point="com.metamatrix.modeler.core.invocationFactoryHelper">
      <class name="com.metamatrix.modeler.internal.core.invocation.StandardInvocationFactoryHelper">
      </class>
   </extension>
   
<!-- This is added programmatically to the MetamodelRegistry
   <extension id="metamodelResourceFactory"
         point="com.metamatrix.mtk.emf.resourceFactory">
      <class name="com.metamatrix.mtk.emf.resource.metamodel.MetamodelResourceFactory"/>
      <protocol>mtkplugin</protocol>
   </extension>
   -->
   <extension id="xmiResourceFactory" point="com.metamatrix.modeler.core.resourceFactory">
      <class name="com.metamatrix.modeler.internal.core.resource.xmi.MtkXmiResourceFactory">
      </class>
      <fileExtension>
         ecore
      </fileExtension>
      <fileExtension>
         xmi
      </fileExtension>
      <fileExtension>
         xml
      </fileExtension>
   </extension>
   <extension id="vdbResourceFactory" point="com.metamatrix.modeler.core.resourceFactory">
      <class name="com.metamatrix.modeler.internal.core.resource.vdb.VdbResourceFactory">
      </class>
      <fileExtension>
         vdb
      </fileExtension>
   </extension>
<!-- This extension defines the Core Modeling Preferences -->
   <extension id="corePreferences" point="com.metamatrix.modeler.core.modelValidation">
      <preference toolTip="Check if there are multiple eObjects across available models with same uuid. ?" name="eObjectUuidUniquess" label="%eObjectUuidUniquess" default="ignore" category="Core">
      </preference>
      <preference toolTip="String functions 1-based ?" name="stringFunctionsAreOneBased" label="%stringFunctionsAreOneBased" default="warning" category="Core">
     </preference>
   </extension>
<!-- This extension defines the Modeling Project Nature -->
   <extension id="modelNature" name="%modelNatureName" point="org.eclipse.core.resources.natures">
      <runtime>
         <run class="com.metamatrix.modeler.internal.core.workspace.ModelProjectImpl">
         </run>
      </runtime>
      <builder id="com.metamatrix.modeler.core.modelBuilder">
      </builder>
   </extension>
<!-- Hidden Project Nature -->
   <extension id="hiddenProjectNature" name="%hiddenNatureName" point="org.eclipse.core.resources.natures">
     <runtime>
         <run class="com.metamatrix.modeler.internal.core.workspace.HiddenProjectNature">
         </run>
      </runtime>
   </extension>
<!-- EObject Matcher extensions -->
   <extension id="proxyMatcherFactory" point="com.metamatrix.modeler.core.eobjectMatcherFactory">
      <class name="com.metamatrix.modeler.core.compare.UuidMatcherFactory">
      </class>
   </extension>
   <extension id="coreMatcherFactory" point="com.metamatrix.modeler.core.eobjectMatcherFactory">
      <class name="com.metamatrix.modeler.core.compare.CoreMatcherFactory">
      </class>
   </extension>
   <extension id="ecoreMatcherFactory" point="com.metamatrix.modeler.core.eobjectMatcherFactory">
      <class name="com.metamatrix.modeler.core.compare.EcoreMatcherFactory">
      </class>
   </extension>
   <extension id="diagramMatcherFactory" point="com.metamatrix.modeler.core.eobjectMatcherFactory">
      <class name="com.metamatrix.modeler.core.compare.diagram.DiagramMatcherFactory">
      </class>
   </extension>
<!-- Model builder extension -->
   <extension id="modelBuilder" name="%modelBuilderName" point="org.eclipse.core.resources.builders">
      <builder hasNature="true">
         <run class="com.metamatrix.modeler.internal.core.builder.ModelBuilder">
         </run>
      </builder>
   </extension>
<!-- MetamodelAspect extensions -->
   <extension id="annotationSqlAspect" point="com.metamatrix.modeler.core.sqlAspect">
      <metamodelExtensionID>
         core
      </metamodelExtensionID>
      <factoryClass name="com.metamatrix.modeler.core.metamodel.core.aspects.sql.CoreSqlAspectFactoryImpl">
      </factoryClass>
   </extension>
   <extension id="extensionUmlAspect" point="com.metamatrix.modeler.core.umlDiagramAspect">
      <metamodelExtensionID>
         extension
      </metamodelExtensionID>
      <factoryClass name="com.metamatrix.modeler.core.metamodel.core.aspects.uml.ExtensionUmlAspectFactoryImpl">
      </factoryClass>
   </extension>
   <extension id="annotationValidationAspect" point="com.metamatrix.modeler.core.validationAspect">
      <metamodelExtensionID>
         core
      </metamodelExtensionID>
      <factoryClass name="com.metamatrix.modeler.core.metamodel.core.aspects.validation.CoreValidationAspectFactoryImpl">
      </factoryClass>
   </extension>
   <extension id="annotationImportAspect" point="com.metamatrix.modeler.core.importAspect">
      <metamodelExtensionID>
         core
      </metamodelExtensionID>
      <factoryClass name="com.metamatrix.modeler.core.metamodel.core.aspects.imports.CoreImportAspectFactoryImpl">
      </factoryClass>
   </extension>
      <extension id="extensionValidationAspect" point="com.metamatrix.modeler.core.validationAspect">
      <metamodelExtensionID>
         extension
      </metamodelExtensionID>
      <factoryClass name="com.metamatrix.modeler.core.metamodel.core.aspects.validation.ExtensionValidationAspectFactoryImpl">
      </factoryClass>
   </extension>
<!-- ResourceUpdator extensions -->
   <extension id="modelImportReferenceUpdator" point="com.metamatrix.modeler.core.referenceUpdator">
      <class name="com.metamatrix.modeler.internal.core.refactor.ModelImportReferenceUpdator">
      </class>
   </extension>   
</plugin>
