<?xml version="1.0" encoding="UTF-8"?>
<!--
 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>parent</artifactId>
        <version>2.0.1</version>
        <relativePath>../../parent/pom.xml</relativePath>
    </parent>  

    <groupId>org.apache.aries.jmx</groupId>
    <artifactId>org.apache.aries.jmx.whiteboard</artifactId>
    <packaging>bundle</packaging>
    <version>1.2.0</version>
    <name>Apache Aries Whiteboard support for JMX DynamicMBean services</name>
    <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.2.0</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/tags/org.apache.aries.jmx.whiteboard-1.2.0</developerConnection>
        <url>http://svn.apache.org/viewvc/aries/tags/org.apache.aries.jmx.whiteboard-1.2.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>

        <exam.version>3.4.0</exam.version>
        <url.version>1.6.0</url.version>
    </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.1.8</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>

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <scope>test</scope>
            <version>1.10.19</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- Integration Testing with Pax Exam -->
        <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam</artifactId>
            <version>${exam.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-junit4</artifactId>
            <version>${exam.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-container-forked</artifactId>
            <version>${exam.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-link-mvn</artifactId>
            <version>${exam.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.url</groupId>
            <artifactId>pax-url-aether</artifactId>
            <version>${url.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.tinybundles</groupId>
            <artifactId>tinybundles</artifactId>
            <version>2.0.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse</groupId>
            <artifactId>org.eclipse.osgi</artifactId>
            <version>3.8.0.v20120529-1548</version>
        </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>
                    <plugin>
                        <groupId>org.apache.aries.versioning</groupId>
                        <artifactId>org.apache.aries.versioning.plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default-verify</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>version-check</goal>
                                </goals>
                            </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>
