<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <!--

        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.
    -->

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.karaf</groupId>
        <artifactId>karaf</artifactId>
        <version>2.1.5</version>
    </parent>

    <groupId>org.apache.karaf</groupId>
    <artifactId>org.apache.karaf.main</artifactId>
    <packaging>bundle</packaging>
    <version>2.1.5</version>
    <name>Apache Karaf :: Main</name>

    <properties>
        <appendedResourcesDirectory>${basedir}/../etc/appended-resources</appendedResourcesDirectory>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.eclipse</groupId>
            <artifactId>osgi</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.framework</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <configuration>
                    <instructions>
                        <_donotcopy>(CVS|.svn|config.properties)</_donotcopy>
                        <Main-Class>org.apache.karaf.main.Main</Main-Class>
                        <Bundle-Name>Apache Karaf</Bundle-Name>
                        <Bundle-Description>OSGi R4 framework.</Bundle-Description>
                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                        <Export-Package>org.apache.karaf.main.spi.*;version=${project.version}</Export-Package>
                        <!--
                        <Private-Package>
                            org.apache.felix.*;-split-package:=merge-first,
                            org.eclipse.*;-split-package:=merge-first,
                            org.osgi.*;-split-package:=merge-first,
                            META-INF;-split-package:=merge-first
                        </Private-Package>
                        <Import-Package>!*</Import-Package>
                        -->
                        <Private-Package>
                            org.apache.karaf.main*,
                            org.osgi.*
                        </Private-Package>
                    </instructions>
                    <unpackBundle>true</unpackBundle>
                </configuration>
            </plugin>
            <!--
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <artifactSet>
                                <includes>
                                    <include>org.eclipse:osgi</include>
                                    <include>org.apache.felix:org.apache.felix.framework</include>
                                    <include>${project.groupId}:${project.artifactId}</include>
                                </includes>
                            </artifactSet>
                            <filters>
                                <filter>
                                    <artifact>org.eclipse:osgi</artifact>
                                    <includes>
                                        <include>org/osgi/**</include>
                                        <include>org/eclipse/**</include>
                                        <include>hookconfigurators.properties</include>
                                    </includes>
                                </filter>
                                <filter>
                                    <artifact>org.apache.felix:org.apache.felix.framework</artifact>
                                    <includes>
                                        <include>org/apache/felix/**</include>
                                    </includes>
                                </filter>
                            </filters>
                            <createSourcesJar>${createSourcesJar}</createSourcesJar>
                            <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
                            <createDependencyReducedPom>true</createDependencyReducedPom>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        -->
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

    <profiles>
        <profile>
            <id>deploy</id>
            <properties>
                <createSourcesJar>true</createSourcesJar>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>unpack-sources</id>
                                <phase>generate-sources</phase>
                                <goals>
                                    <goal>unpack</goal>
                                </goals>
                                <configuration>
                                    <artifactItems>
                                        <artifactItem>
                                            <groupId>org.eclipse</groupId>
                                            <artifactId>osgi</artifactId>
                                            <classifier>sources</classifier>
                                        </artifactItem>
                                        <artifactItem>
                                            <groupId>org.apache.felix</groupId>
                                            <artifactId>org.osgi.core</artifactId>
                                            <classifier>sources</classifier>
                                        </artifactItem>
                                        <artifactItem>
                                            <groupId>org.apache.felix</groupId>
                                            <artifactId>org.apache.felix.framework</artifactId>
                                            <classifier>sources</classifier>
                                        </artifactItem>
                                    </artifactItems>
                                    <outputDirectory>${project.build.directory}/sources</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <phase>process-classes</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>package</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <minmemory>128m</minmemory>
                            <maxmemory>512m</maxmemory>
                            <sourcepath>${project.build.directory}/sources</sourcepath>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
