<!--
    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.
-->
<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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.aries</groupId>
        <artifactId>java5-parent</artifactId>
        <version>1.0.0</version>
        <relativePath />
    </parent>

    <groupId>org.apache.aries.jmx</groupId>
    <artifactId>org.apache.aries.jmx.whiteboard</artifactId>
    <packaging>bundle</packaging>
    <name>Apache Aries JMX Whiteboard</name>
    <version>1.0.0</version>
    <description>
        This bundle implements whiteboard pattern support for DynamicMBean
        services registered with the OSGi service registry. Each DynamicMBean
        service is registered with (and unregistered from) all MBeanServer
        services registered in the OSGi service registry.
    </description>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/aries/tags/org.apache.aries.jmx.whiteboard-1.0.0</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/tags/org.apache.aries.jmx.whiteboard-1.0.0</developerConnection>
        <url>http://svn.apache.org/viewvc/aries/tags/org.apache.aries.jmx.whiteboard-1.0.0</url>
    </scm>


    <!-- A Note on Testing ================= This project contains two kinds 
        of tests: regular unit tests running in the test phase and integration tests 
        based on PAX Exam running in the integration-test phase. Basically the complete 
        project is build using Java 1.3 source and target compatibility (as inherited 
        from the parent pom). The exception are the unit tests in the "integration" 
        packages. These have to be compiled with Java 5 source and target compatibility 
        because the employ annotations and generics. For running the integration 
        tests from the console using Maven nothing special has to be done as the 
        tests run automatically. To run the tests in your IDE, the project has to 
        be built to the "package" phase with the profile "ide" enabled: $ mvn -Pide 
        clean package This creates the scr.jar file in the target folder, which is 
        used by the integration tests when run from the IDE. Alternatively the "project.bundle.file" 
        system property may be set to the bundle JAR in the IDE launcher. -->
    <properties>
        <bundle.build.name>
            ${basedir}/target
        </bundle.build.name>
        <bundle.file.name>
            ${bundle.build.name}/${project.build.finalName}.jar
        </bundle.file.name>

        <aries.osgi.activator>
            org.apache.aries.jmx.whiteboard.Activator
        </aries.osgi.activator>
        <aries.osgi.export.pkg>
        </aries.osgi.export.pkg>
        <aries.osgi.private.pkg>
            org.apache.aries.jmx.whiteboard,
            org.apache.aries.jmx.util.shared
        </aries.osgi.private.pkg>
        <aries.osgi.import.service>
            javax.management.MBeanServer
        </aries.osgi.import.service>
    </properties>

    <build>
        <plugins>
            <!-- Exclude Integration tests in (default) unit tests and conversely 
                enable integration tests for integration testing only. Helper classes are 
                completely excluded from testing. -->
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <executions>
                    <execution>
                        <id>surefire-it</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <systemProperties>
                                <property>
                                    <name>project.bundle.file</name>
                                    <value>${bundle.file.name}</value>
                                </property>
                            </systemProperties>
                            <excludes>
                                <exclude>**/whiteboard/*</exclude>
                            </excludes>
                            <includes>
                                <include>**/integration/*</include>
                            </includes>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <excludes>
                        <exclude>**/integration/**</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>org.apache.aries.jmx</groupId>
            <artifactId>org.apache.aries.jmx.core</artifactId>
            <version>1.0.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- OSGi Libraries -->
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.compendium</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- Integration Testing with Pax Exam -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-container-default</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.swissbox</groupId>
            <artifactId>pax-swissbox-tinybundles</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <profiles>
        <!-- copy the package such that IDEs may easily use it without setting 
            the system property -->
        <profile>
            <id>ide</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.3</version>
                        <executions>
                            <execution>
                                <id>cm-file-create</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <tasks>
                                        <copy file="${project.build.directory}/${project.build.finalName}.jar" tofile="${project.build.directory}/jmx-whiteboard.jar" />
                                    </tasks>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <!-- repositories for Pax Exam and BND tool -->
    <repositories>
        <repository>
            <id>ops4j</id>
            <name>ops4j</name>
            <url>http://repository.ops4j.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>aqute</id>
            <name>aqute</name>
            <url>http://www.aqute.biz/repo</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>
