<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
    http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<?eclipse version="3.2"?>
<plugin>
   <extension-point id="org.apache.felix.sigil.repositoryprovider" name="Bundle Repository Provider" schema="schema/org.apache.felix.sigil.repositoryprovider.exsd"/>
   <extension-point id="org.apache.felix.sigil.installbuilder" name="OSGi Install Builder" schema="schema/org.apache.felix.sigil.installbuilder.exsd"/>
   
   <extension
         point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
            class="org.apache.felix.sigil.eclipse.internal.property.SigilPropertyTester"
            id="org.apache.felix.sigil.property.SigilPropertyTester"
            namespace="org.apache.felix.sigil"
            properties="isSigilProject"
            type="org.eclipse.core.resources.IResource"/>
   </extension>
   <extension
         point="org.eclipse.core.runtime.adapters">
      <factory
            adaptableType="org.eclipse.core.resources.IFile"
            class="org.apache.felix.sigil.eclipse.internal.adapter.FileAdaptorFactory">
         <adapter type="org.apache.felix.sigil.model.eclipse.ISigilBundle"/>
      </factory>
      <factory
            adaptableType="org.eclipse.core.resources.IProject"
            class="org.apache.felix.sigil.eclipse.internal.adapter.ProjectAdaptorFactory">
         <adapter type="org.apache.felix.sigil.model.project.ISigilProjectModel"/>
      </factory>
   </extension>
   <extension
         id="org.apache.felix.sigil.sigilnature"
         name="Sigil Nature"
         point="org.eclipse.core.resources.natures">
      <runtime>
         <run class="org.apache.felix.sigil.eclipse.nature.SigilProjectNature"/>
      </runtime>
   </extension>
   <extension
   		 id="sigilBuilder"
         name="Sigil Bundle Builder"
         point="org.eclipse.core.resources.builders">
      <builder
            hasNature="false"
            isConfigurable="false">
         <run class="org.apache.felix.sigil.eclipse.internal.builders.SigilIncrementalProjectBuilder"/>
      </builder>
   </extension>
   <extension
         point="org.eclipse.core.runtime.preferences">
      <initializer
            class="org.apache.felix.sigil.eclipse.internal.preferences.SigilPreferencesInitializer">
      </initializer>
   </extension>
   <extension
         point="org.apache.felix.sigil.repositoryprovider">
      <provider
            class="org.apache.felix.sigil.eclipse.internal.repository.eclipse.WorkspaceRepositoryProvider"
            defaultLevel="-3"
            dynamic="false"
            id="org.apache.felix.sigil.core.workspaceprovider"
            alias="project"
            type="Workspace Repository">
      </provider>
      <provider
            class="org.apache.felix.sigil.common.core.repository.FileSystemRepositoryProvider"
            dynamic="true"
            id="org.apache.felix.sigil.core.file"
            alias="filesystem"
            type="File System Repository">
      </provider>
      <provider
            class="org.apache.felix.sigil.common.core.repository.SystemRepositoryProvider"
            dynamic="false"
            id="org.apache.felix.sigil.core.system"
            alias="system"
            type="System Repository">
      </provider>
   </extension>
   <extension
         id="org.apache.felix.sigil.unresolvedDependencyMarker"
         name="Unresolved Dependency"
         point="org.eclipse.core.resources.markers">
      <persistent
            value="true">
      </persistent>
      <super
            type="org.eclipse.core.resources.problemmarker">
      </super>
      <attribute
            name="element">
      </attribute>
      <attribute
            name="versionRange">
      </attribute>
   </extension>
   <extension
         id="org.apache.felix.sigil.unresolvedDependencyMarker.importPackage"
         name="Unresolved Import Package"
         point="org.eclipse.core.resources.markers">
      <persistent
            value="true">
      </persistent>
      <super
            type="org.apache.felix.sigil.unresolvedDependencyMarker">
      </super>
   </extension>
   <extension
         id="org.apache.felix.sigil.unresolvedDependencyMarker.requireBundle"
         name="Unresolve Require Bundle"
         point="org.eclipse.core.resources.markers">
      <persistent
            value="true">
      </persistent>
      <super
            type="org.apache.felix.sigil.unresolvedDependencyMarker">
      </super>
   </extension>
</plugin>
