<project>
    <parent>
        <groupId>org.apache.felix</groupId>
        <artifactId>felix</artifactId>
        <version>0.9.0-incubator-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>bundle</packaging>
    <name>Apache Felix Declarative Services</name>
    <description>
        Implementation of the Declarative Services specification 1.0
    </description>
    <artifactId>org.apache.felix.scr</artifactId>
    <dependencies>
        <dependency>
            <groupId>${pom.groupId}</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>${pom.version}</version>
        </dependency>
        <dependency>
            <groupId>${pom.groupId}</groupId>
            <artifactId>org.osgi.compendium</artifactId>
            <version>${pom.version}</version>
        </dependency>
        <dependency>
            <groupId>net.sf.kxml</groupId>
            <artifactId>kxml2</artifactId>
            <version>2.2.2</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.bundleplugin</artifactId>
		        <version>0.9.0-incubator-SNAPSHOT</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-SymbolicName>
                            ${artifactId}
                        </Bundle-SymbolicName>
                        <Bundle-Vendor>
                            Apache Software Foundation
                        </Bundle-Vendor>
                        <Bundle-Activator>
                            org.apache.felix.scr.Activator
                        </Bundle-Activator>
                        <Export-Package>
                            org.osgi.service.cm, org.osgi.service.component
                        </Export-Package>
                        <Private-Package>
                            org.apache.felix.scr.*, org.kxml2.io,
                            org.osgi.util.tracker,
                            org.xmlpull.v1
                        </Private-Package>
                        <DynamicImport-Package>
                            org.osgi.service.log
                        </DynamicImport-Package>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
