<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 Compendium Bundle</name>
  <description>OSGi Service Platform Release 4 Compendium Interfaces and Classes.</description>
  <artifactId>org.osgi.compendium</artifactId>
  <packaging>bundle</packaging>
  <dependencies>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.osgi.core</artifactId>
      <version>${pom.version}</version>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>javax.servlet</artifactId>
      <version>${pom.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.osgi.foundation</artifactId>
      <version>${pom.version}</version>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Export-Package>org.osgi.service.cm,org.osgi.service.component,org.osgi.service.device,org.osgi.service.event,org.osgi.service.http,org.osgi.service.io,org.osgi.service.log,org.osgi.service.metatype,org.osgi.service.prefs,org.osgi.service.provisioning,org.osgi.service.upnp,org.osgi.service.useradmin,org.osgi.service.wireadmin,org.osgi.util.measurement,org.osgi.util.position,org.osgi.util.tracker,org.osgi.util.xml</Export-Package>
<!--            <Export-Package>!org.osgi.framework,!org.osgi.service.condpermadmin,!org.osgi.service.packageadmin,!org.osgi.service.permissionadmin,!org.osgi.service.startlevel,!org.osgi.service.url,org.osgi.*</Export-Package> -->
            <Import-Package>javax.microedition.io;resolution:=optional,org.osgi.framework,!org.osgi.*,*</Import-Package>
            <Dynamic-ImportPackage>*</Dynamic-ImportPackage>
            <Bundle-Version>4</Bundle-Version>
            <Bundle-Vendor>OSGi Alliance</Bundle-Vendor>
            <Bundle-Copyright>Copyright (c) OSGi Alliance (2000, 2005). All Rights Reserved.</Bundle-Copyright>
            <Bundle-Category>osgi</Bundle-Category>
            <Bundle-DocURL>http://www.osgi.org/</Bundle-DocURL>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
