<project>
  <parent>
    <groupId>org.apache.felix</groupId>
    <artifactId>felix</artifactId>
    <version>0.8.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <name>OSGi R4 Core Bundle</name>
  <artifactId>org.osgi.core</artifactId>
  <packaging>osgi-bundle</packaging>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix.plugins</groupId>
        <artifactId>maven-osgi-plugin</artifactId>
        <version>${pom.version}</version>
        <extensions>true</extensions>
        <configuration>
          <osgiManifest>
            <bundleName>osgi.core</bundleName>
            <bundleVendor>OSGi Alliance</bundleVendor>
            <bundleVersion>4</bundleVersion>
            <bundleSymbolicName>osgi.core</bundleSymbolicName>
            <bundleDescription>OSGi Service Platform Release 4 Core Interfaces and Classes.</bundleDescription>
            <bundleCopyright>Copyright (c) OSGi Alliance (2000, 2005). All Rights Reserved.</bundleCopyright>
            <bundleCategory>osgi</bundleCategory>
            <bundleDocUrl>http://www.osgi.org/</bundleDocUrl>
            <exportPackage>org.osgi.framework; specification-version="1.3", org.osgi.service.condpermadmin; specification-version="1.0", org.osgi.service.packageadmin; specification-version="1.2", org.osgi.service.permissionadmin; specification-version="1.2", org.osgi.service.startlevel; specification-version="1.0", org.osgi.service.url; specification-version="1.0"</exportPackage>
            <!--<dynamicImportPackage>*</dynamicImportPackage>-->
          </osgiManifest>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
