<?xml version="1.0" encoding="UTF-8"?>
<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>

    <prerequisites>
        <maven>3.0.3</maven>
    </prerequisites>

    <groupId>org.eclipse.gemini.blueprint</groupId>
    <artifactId>gemini-blueprint</artifactId>
    <!-- Note: When updating the version, ensure it is a valid OSGi version -->
    <version>2.0.0.M02</version>
    <packaging>pom</packaging>
    <name>Gemini Blueprint</name>
    <url>http://www.eclipse.org/gemini/blueprint/</url>
    <description>
        Eclipse Gemini Blueprint project makes it easy to build Java applications that run in an OSGi framework. By
        using Gemini Blueprint, applications benefit from using a
        better separation of modules, the ability to dynamically add, remove, and update modules in a running system,
        the ability to deploy multiple versions of a module
        simultaneously (and have clients automatically bind to the appropriate one), and a dynamic service model.
    </description>
    <inceptionYear>2006</inceptionYear>

    <properties>
        <!-- Source file encoding -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- Spring version -->
        <spring.maven.artifact.version>3.1.1.RELEASE</spring.maven.artifact.version>
        <spring.base.version>3.0.0</spring.base.version>

        <symName.prefix>org.eclipse.gemini.blueprint</symName.prefix>
        <spring.osgi.symbolic.name>${project.groupId}.${project.artifactId}</spring.osgi.symbolic.name>

        <spring.osgi.license.loc>..</spring.osgi.license.loc>

        <!-- other properties -->
        <slf4j.version>1.6.4</slf4j.version>
        <env.buildPlan></env.buildPlan>
        <env.buildNumber></env.buildNumber>
        <env.svnRevision></env.svnRevision>

        <!-- platform versions -->
        <equinox.ver>3.6.2.R36x_v20110210</equinox.ver>
        <kf.ver>5.3.3</kf.ver>    <!-- Knopflerfish 3.5 -->
        <felix.ver>2.0.5</felix.ver>

        <!-- javadoc configuration -->
        <javadoc.loc>${basedir}/docs/src/javadoc</javadoc.loc>

        <clover.ver>3.1.4</clover.ver>
        <clover.argLine></clover.argLine>
        <clover.skip>false</clover.skip>

        <findbugs.skip>false</findbugs.skip>

        <!-- security options for integration testing -->
        <security.argLine></security.argLine>
        <policy.url>..${file.separator}policy.all</policy.url>

        <!-- bundlor settings -->
        <bundlor.enabled>true</bundlor.enabled>
        <!-- common version ranges -->
        <spring.version.range.nq>[${spring.base.version},4.0)</spring.version.range.nq>
        <spring.version.range>"${spring.version.range.nq}"</spring.version.range>
        <gemini.blueprint.version.range.nq>[${project.version},${project.version}]</gemini.blueprint.version.range.nq>
        <gemini.blueprint.version.range>"${gemini.blueprint.version.range.nq}"</gemini.blueprint.version.range>
        <logging.version.range>"[1.0,2.0)"</logging.version.range>
        <!-- jarjar -->
        <jarjar.keep></jarjar.keep>
        <jarjar.dep></jarjar.dep>
        <jarjar.dep.1>${jarjar.dep}</jarjar.dep.1>
        <jarjar.dep.1.exclude>**/*</jarjar.dep.1.exclude>
    </properties>

    <!-- ============================================= -->
    <!-- Basic configuration: JIRA, SCM, CI, devs etc. -->
    <!-- ============================================= -->

    <issueManagement>
        <system>Bugzilla</system>
        <url>http://bugs.eclipse.org/bugs/buglist.cgi?product=Gemini.Blueprint</url>
    </issueManagement>

    <ciManagement>
        <system>bamboo</system>
        <url>http://build.springframework.org/browse/OSGI-TRUNK</url>
        <notifiers>
            <notifier>
                <type>mail</type>
                <configuration>
                    <address>adrian.colyer@SpringSource.com</address>
                </configuration>
            </notifier>
            <notifier>
                <type>mail</type>
                <configuration>
                    <address>costin.leau@SpringSource.com</address>
                </configuration>
            </notifier>
        </notifiers>
    </ciManagement>

    <scm>
        <connection>scm:svn:http://dev.eclipse.org/svnroot/rt/org.eclipse.gemini.blueprint/trunk</connection>
        <developerConnection>scm:svn:https://dev.eclipse.org/svnroot/rt/org.eclipse.gemini.blueprint/trunk</developerConnection>
    </scm>

    <developers>
        <developer>
            <id>adrian-colyer</id>
            <name>Adrian Colyer</name>
            <email>adrian.colyer at SpringSource.com</email>
            <organization>SpringSource, division of VMware</organization>
            <organizationUrl>http://www.SpringSource.com</organizationUrl>
            <roles>
                <role>Developer</role>
            </roles>
            <timezone>0</timezone>
        </developer>
        <developer>
            <id>jconstantine</id>
            <name>Hal Hildebrand</name>
            <email>hal.hildebrand at oracle.com</email>
            <organization>Oracle</organization>
            <organizationUrl>http://www.oracle.com</organizationUrl>
            <roles>
                <role>Developer</role>
            </roles>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <id>costin_leau</id>
            <name>Costin Leau</name>
            <email>costin.leau at SpringSource.com</email>
            <organization>SpringSource, division of VMware</organization>
            <organizationUrl>http://www.SpringSource.com</organizationUrl>
            <roles>
                <role>Project Admin</role>
                <role>Developer</role>
            </roles>
            <timezone>+2</timezone>
        </developer>
        <developer>
            <id>andypiper</id>
            <name>Andy Piper</name>
            <email>andy at oracle.com</email>
            <organization>Oracle</organization>
            <organizationUrl>http://www.oracle.com</organizationUrl>
            <roles>
                <role>Developer</role>
            </roles>
            <timezone>0</timezone>
        </developer>

    </developers>

    <licenses>
        <license>
            <name>Eclipse Public License, Version 1.0</name>
            <url>http://www.eclipse.org/legal/epl-v10.html</url>
        </license>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0</url>
        </license>
    </licenses>

    <!-- =================================================== -->
    <!-- Project Modules, Dependencies, Plugins and Profiles -->
    <!-- =================================================== -->

    <!-- modules for Spring-OSGi -->
    <modules>
        <module>mock</module>
        <module>io</module>
        <module>core</module>
        <module>extender</module>
        <module>test-support</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <!-- Gemini Blueprint -->
            <dependency>
                <groupId>org.eclipse.gemini.blueprint</groupId>
                <artifactId>gemini-blueprint-mock</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.gemini.blueprint</groupId>
                <artifactId>gemini-blueprint-io</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.gemini.blueprint</groupId>
                <artifactId>gemini-blueprint-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.gemini.blueprint</groupId>
                <artifactId>gemini-blueprint-extender</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.gemini.blueprint</groupId>
                <artifactId>gemini-blueprint-test</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- Spring -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>${spring.maven.artifact.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>aopalliance</groupId>
                        <artifactId>aopalliance</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.maven.artifact.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.maven.artifact.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.maven.artifact.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>${spring.maven.artifact.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.maven.artifact.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.aopalliance</groupId>
                <artifactId>com.springsource.org.aopalliance</artifactId>
                <version>1.0.0</version>
            </dependency>

            <dependency>
                <groupId>org.osgi</groupId>
               	<artifactId>org.osgi.compendium</artifactId>
               	<version>4.2.0</version>
            </dependency>

        </dependencies>

    </dependencyManagement>

    <!-- shared dependencies across modules -->
    <dependencies>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>4.2.0</version>
        </dependency>

        <!-- junit -->
        <dependency>
            <groupId>org.junit</groupId>
            <artifactId>com.springsource.org.junit</artifactId>
            <version>4.9.0</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>1.2_Java1.3</version>
            <scope>test</scope>
        </dependency>

        <!-- commons-logging in slf4j wrapper -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.log4j</groupId>
            <artifactId>com.springsource.org.apache.log4j</artifactId>
            <version>1.2.16</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <build>
        <extensions>
            <extension>
                <groupId>org.springframework.build.aws</groupId>
                <artifactId>org.springframework.build.aws.maven</artifactId>
                <version>2.0.0.RELEASE</version>
            </extension>
        </extensions>

        <resources>
            <resource>
                <filtering>true</filtering>
                <directory>src/main/resources</directory>
            </resource>
        </resources>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.5</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.3.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.3</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>2.4.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-plugin-plugin</artifactId>
                    <version>2.9</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.7</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.12</version>
                    <dependencies>
                        <!-- force surefire to use new junit 4.7+ runner, it would normally auto detect this -->
                        <!-- but since we're not using the official junit dependency it is unable to do so.-->
                        <!-- - this makes things like @Ignore work. -->
                        <dependency>
                            <groupId>org.apache.maven.surefire</groupId>
                            <artifactId>surefire-junit47</artifactId>
                            <version>2.12</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.8.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jxr-plugin</artifactId>
                    <version>2.3</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jdepend-maven-plugin</artifactId>
                    <version>2.0-beta-2</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>2.4.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.7</version>
                </plugin>
                <plugin>
                    <groupId>com.atlassian.maven.plugins</groupId>
                    <artifactId>maven-clover2-plugin</artifactId>
                    <version>${clover.ver}</version>
                </plugin>
                <plugin>
                    <groupId>com.springsource.bundlor</groupId>
                    <artifactId>com.springsource.bundlor.maven</artifactId>
                    <!--<version>1.0.0.RELEASE</version>-->
                    <version>1.0.0.M6</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>2.7.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-report-plugin</artifactId>
                    <version>2.12</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>jarjar</id>
                        <phase>package</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target if="jarjar.run">
                                <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask"
                                         classpathref="maven.plugin.classpath"/>
                                <property name="dep.jar" value="${jarjar.dep}"/>
                                <property name="dep.1.jar" value="${jarjar.dep.1}"/>
                                <jarjar jarfile="${project.build.directory}${file.separator}${project.build.finalName}.jar">
                                    <fileset dir="${project.build.outputDirectory}"/>
                                    <zipfileset src="${dep.jar}" includes="**/*.class" excludes="META-INF/**"/>
                                    <zipfileset src="${dep.1.jar}" includes="${jarjar.dep.1.include}"
                                                excludes="META-INF/**,${jarjar.dep.1.exclude}"/>
                                    <keep pattern="${jarjar.keep}"/>
                                </jarjar>
                            </target>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>com.google.jarjar</groupId>
                        <artifactId>com.springsource.com.tonicsystems.jarjar</artifactId>
                        <version>1.0.0</version>
                    </dependency>
                </dependencies>
            </plugin>

            <plugin>
                <groupId>com.springsource.bundlor</groupId>
                <artifactId>com.springsource.bundlor.maven</artifactId>
                <executions>
                    <execution>
                        <id>bundlor</id>
                        <goals>
                            <goal>transform</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
           <manifestTemplatePath>${basedir}/template.mf</manifestTemplatePath>
           <manifestHeaders><![CDATA[Bundle-Name: ${project.artifactId}
Bundle-Version: ${project.version}
Bundle-SymbolicName: ${spring.osgi.symbolic.name}
Bundle-Vendor: Eclipse Foundation
Bundle-DocURL: http://www.eclipse.org/gemini/blueprint/
Bundle-Description: ${project.description}
Bundle-License: http://www.opensource.org/licenses/eclipse-1.0.php, http://www.opensource.org/licenses/apache2.0.php
Bundle-ManifestVersion: 2
Implementation-Title: Eclipse Gemini Blueprint
Implementation-Version: ${project.version}
Implementation-Vendor: Eclipse Foundation
Implementation-Vendor-Id: org.eclipse.gemini.blueprint
Gemini-Blueprint-Version: ${project.version}
Spring-Version: ${spring.maven.artifact.version}
Build-Jdk: ${java.version}
Build-Plan: ${env.buildPlan}
Build-Number: ${env.buildNumber}
SVN-Revision: ${env.svnRevision}
Unversioned-Imports: *
Excluded-Imports: com_cenqua_clover*
Ignored-Existing-Headers:
 Ant-Version,
 Archiver-Version,
 Unversioned-Imports,
 Tool,
 Ignore-Package,
 Private-Package,
 Created-By,
 Bnd-LastModified,
 Import-Package,
 Export-Package
]]></manifestHeaders>

                    <packagings>
                        <packaging>jar</packaging>
                    </packagings>

                    <enabled>${bundlor.enabled}</enabled>
                    <failOnWarnings>false</failOnWarnings>
                    <removeNullHeaders>true</removeNullHeaders>
                </configuration>
            </plugin>

            <!--<plugin>-->
                <!--<groupId>com.springsource.bundlor</groupId>-->
                <!--<artifactId>com.springsource.bundlor.maven</artifactId>-->
                <!--<executions>-->
                    <!--<execution>-->
                        <!--<id>bundlor</id>-->
                        <!--<goals>-->
                            <!--<goal>bundlor</goal>-->
                        <!--</goals>-->
                    <!--</execution>-->
                <!--</executions>-->
                <!--<configuration>-->
                    <!--<manifestTemplate><![CDATA[Bundle-Name: ${project.artifactId}-->
<!--Bundle-Version: ${project.version}-->
<!--Bundle-SymbolicName: ${spring.osgi.symbolic.name}-->
<!--Bundle-Vendor: Eclipse Foundation-->
<!--Bundle-DocURL: http://www.eclipse.org/gemini/blueprint/-->
<!--Bundle-Description: ${project.description}-->
<!--Bundle-License: http://www.opensource.org/licenses/eclipse-1.0.php, http://www.opensource.org/licenses/apache2.0.php-->
<!--Bundle-ManifestVersion: 2-->
<!--Implementation-Title: Eclipse Gemini Blueprint-->
<!--Implementation-Version: ${project.version}-->
<!--Implementation-Vendor: Eclipse Foundation-->
<!--Implementation-Vendor-Id: org.eclipse.gemini.blueprint-->
<!--Gemini-Blueprint-Version: ${project.version}-->
<!--Spring-Version: ${spring.maven.artifact.version}-->
<!--Build-Jdk: ${java.version}-->
<!--Build-Plan: ${env.buildPlan}-->
<!--Build-Number: ${env.buildNumber}-->
<!--SVN-Revision: ${env.svnRevision}-->
<!--Unversioned-Imports: *-->
<!--Excluded-Imports: com_cenqua_clover*-->
<!--Ignored-Existing-Headers:-->
 <!--Ant-Version,-->
 <!--Archiver-Version,-->
 <!--Unversioned-Imports,-->
 <!--Tool,-->
 <!--Ignore-Package,-->
 <!--Private-Package,-->
 <!--Created-By,-->
 <!--Bnd-LastModified,-->
 <!--Import-Package,-->
 <!--Export-Package-->
<!--]]></manifestTemplate>-->

                    <!--&lt;!&ndash; Apparently this (<packagings/>) is valid config for the bundlor plugin, even through the plugin-->
                         <!--descriptor disagrees &ndash;&gt;-->
                    <!--<packagings>-->
                        <!--<packaging>jar</packaging>-->
                    <!--</packagings>-->

                    <!--<enabled>${bundlor.enabled}</enabled>-->
                    <!--<failOnWarnings>false</failOnWarnings>-->
                    <!--<removeNullHeaders>true</removeNullHeaders>-->
                <!--</configuration>-->
            <!--</plugin>-->

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                    <debug>true</debug>
                    <fork>true</fork>
                </configuration>
            </plugin>

            <!-- clover plug-in -->
            <plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>maven-clover2-plugin</artifactId>
                <configuration>
                    <licenseLocation>${env.clover.licenseLocation}</licenseLocation>
                    <generatePdf>false</generatePdf>
                    <generateXml>true</generateXml>
                    <generateHtml>true</generateHtml>
                    <generateHistorical>false</generateHistorical>
                    <!-- saving history is problematic since each module would override
                    the previous unless a different folder is used for the root
                    <historyDir>${basedir}/clover/history</historyDir>
                    -->
                    <jdk>1.5</jdk>
                    <includesTestSourceRoots>false</includesTestSourceRoots>
                    <skip>${clover.skip}</skip>

                    <!-- exclusions -->
                    <excludes>
                        <!-- integration tests -->
                        <exclude>org/eclipse/gemini/blueprint/iandt/**</exclude>
                        <exclude>org/eclipse/gemini/blueprint/test/parsing/**</exclude>
                        <!-- addressed in 1.2 -->
                        <exclude>org/eclipse/gemini/blueprint/compendium/internal/**</exclude>
                    </excludes>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <configuration>
                    <reportPlugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-jxr-plugin</artifactId>
                            <configuration>
                                <aggregate>true</aggregate>
                            </configuration>
                        </plugin>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-surefire-report-plugin</artifactId>
                            <configuration>
                                <aggregate>true</aggregate>
                            </configuration>
                        </plugin>

                        <!-- =============== -->
                        <!--     Javadocs    -->
                        <!-- =============== -->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-javadoc-plugin</artifactId>
                            <configuration>
                                <aggregate>true</aggregate>
                                <stylesheetfile>${javadoc.loc}/javadoc.css</stylesheetfile>
                                <overview>${javadoc.loc}/overview.html</overview>
                                <groups>
                                    <group>
                                        <title>OSGi Blueprint Service</title>
                                        <packages>org.osgi.service.blueprint*</packages>
                                    </group>
                                    <group>
                                        <title>Eclipse Gemini Blueprint Core</title>
                                        <packages>org.eclipse.gemini.blueprint*</packages>
                                    </group>
                                    <group>
                                        <title>Eclipse Gemini Blueprint Extender</title>
                                        <packages>org.eclipse.gemini.blueprint.extender*</packages>
                                    </group>
                                    <group>
                                        <title>Eclipse Gemini Blueprint IO</title>
                                        <packages>org.eclipse.gemini.blueprint.io*</packages>
                                    </group>
                                    <group>
                                        <title>Eclipse Gemini Blueprint Integration Testing Framework</title>
                                        <packages>org.eclipse.gemini.blueprint.test*</packages>
                                    </group>
                                    <group>
                                        <title>Eclipse Gemini Blueprint Mock</title>
                                        <packages>org.eclipse.gemini.blueprint.mock*</packages>
                                    </group>
                                </groups>
                                <excludePackageNames>
                                    *internal:org.eclipse.gemini.blueprint.config:org.eclipse.gemini.blueprint.compendium.config:org.eclipse.gemini.blueprint.blueprint.config:org.eclipse.gemini.blueprint.blueprint.compendium.cm.config:org.eclipse.gemini.blueprint.iandt*
                                </excludePackageNames>

                                <breakiterator>true</breakiterator>
                                <quiet>true</quiet>
                                <verbose>false</verbose>
                                <show>protected</show>
                                <source>1.5</source>
                                <links>
                                    <link>http://download.oracle.com/javase/1.5.0/docs/api/</link>
                                    <link>http://static.springsource.org/spring/docs/3.0.x/javadoc-api/</link>
                                    <link>http://www2.osgi.org/javadoc/r4/</link>
                                    <link>http://asm.objectweb.org/asm223/javadoc/user</link>
                                    <link>http://cglib.sourceforge.net/apidocs</link>
                                    <link>http://logging.apache.org/log4j/docs/api/</link>
                                    <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
                                    <link>http://junit.org/junit/javadoc/4.9.0/</link>
                                    <link>http://aopalliance.sourceforge.net/doc/</link>
                                </links>
                            </configuration>
                        </plugin>

                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-project-info-reports-plugin</artifactId>
                        </plugin>

                        <!-- ============== -->
                        <!--     FindBugs   -->
                        <!-- ============== -->
                        <plugin>
                            <groupId>org.codehaus.mojo</groupId>
                            <artifactId>findbugs-maven-plugin</artifactId>
                            <configuration>
                                <!--
                                <xmlOutput>true</xmlOutput>
                                <xmlOutputDirectory>target</xmlOutputDirectory>
                                -->
                                <threshold>Normal</threshold>
                                <effort>Default</effort>
                                <!--
                                <debug>true</debug>
                                <relaxed>true</relaxed>
                                -->
                                <skip>${findbugs.skip}</skip>
                            </configuration>
                        </plugin>

                        <!-- =========== -->
                        <!--     PMD     -->
                        <!-- =========== -->

                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-pmd-plugin</artifactId>
                            <configuration>
                                <targetJdk>1.5</targetJdk>
                            </configuration>
                        </plugin>

                        <!-- ============== -->
                        <!--     jDepend    -->
                        <!-- ============== -->
                        <plugin>
                            <groupId>org.codehaus.mojo</groupId>
                            <artifactId>jdepend-maven-plugin</artifactId>
                        </plugin>
                    </reportPlugins>
                </configuration>
            </plugin>

        </plugins>
    </build>

    <!-- profiles for equinox, knoplerfish, and felix                 -->
    <!-- to use these profiles invoke maven with -Pprofile-name, e.g. -->
    <!-- mvn -Pfelix test                                             -->
    <profiles>
        <profile>
            <id>equinox</id>
            <dependencies>
                <dependency>
                    <groupId>org.eclipse.osgi</groupId>
                    <artifactId>org.eclipse.osgi</artifactId>
                    <version>${equinox.ver}</version>
                    <type>jar</type>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
            <properties>
                <osgi.test.platform>org.eclipse.gemini.blueprint.test.platform.EquinoxPlatform</osgi.test.platform>
                <log4j.ignoreTCL>true</log4j.ignoreTCL>
            </properties>
        </profile>

        <profile>
            <id>knopflerfish</id>
            <dependencies>
                <dependency>
                    <groupId>org.knopflerfish</groupId>
                    <artifactId>framework</artifactId>
                    <version>${kf.ver}</version>
                    <type>jar</type>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
            <properties>
                <osgi.test.platform>org.eclipse.gemini.blueprint.test.platform.KnopflerfishPlatform</osgi.test.platform>
                <log4j.ignoreTCL>true</log4j.ignoreTCL>
                <org.knopflerfish.osgi.setcontextclassloader>true</org.knopflerfish.osgi.setcontextclassloader>
            </properties>
        </profile>

        <profile>
            <id>felix</id>
            <dependencies>
                <dependency>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>org.apache.felix.main</artifactId>
                    <version>${felix.ver}</version>
                    <type>jar</type>
                    <scope>provided</scope>
                    <!-- required to prevent felix to pull in stuff -->
                    <exclusions>
                        <exclusion>
                            <groupId>org.apache.felix</groupId>
                            <artifactId>org.apache.felix.framework</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>org.apache.felix</groupId>
                            <artifactId>org.apache.felix.shell</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>org.apache.felix</groupId>
                            <artifactId>org.apache.felix.shell.tui</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>org.apache.felix</groupId>
                            <artifactId>org.apache.felix.bundlerepository</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>
                <!-- include the OSGi jar to allow PermissionAdmin API to be used -->
                <dependency>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>org.osgi.core</artifactId>
                    <version>1.0.1</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <properties>
                <osgi.test.platform>org.eclipse.gemini.blueprint.test.platform.FelixPlatform</osgi.test.platform>
                <log4j.ignoreTCL>true</log4j.ignoreTCL>
            </properties>
        </profile>

        <!-- integration testing profile -->
        <profile>
            <id>it</id>
            <activation>
                <property>
                    <name>env-test</name>
                </property>
            </activation>
            <modules>
                <module>integration-tests</module>
            </modules>
        </profile>

        <!-- Java 2 security enabled profile -->
        <profile>
            <id>security</id>
            <properties>
                <security.argLine>-Djava.security.manager -Djava.security.policy=${policy.url}</security.argLine>
            </properties>
        </profile>

        <!-- clover profile -->
        <profile>
            <id>clover</id>
            <properties>
                <clover.enabled>true</clover.enabled>
                <spring.decorate.osgi.import>!com_cenqua_clover*,${spring.osgi.import}</spring.decorate.osgi.import>
                <clover.argLine>
                    -Xbootclasspath/a:"${settings.localRepository}${file.separator}com${file.separator}cenqua${file.separator}clover${file.separator}clover${file.separator}${clover.ver}${file.separator}clover-${clover.ver}.jar
                    -Dansi.color"
                </clover.argLine>
            </properties>

            <dependencies>
                <dependency>
                    <groupId>com.cenqua.clover</groupId>
                    <artifactId>clover</artifactId>
                    <version>${clover.ver}</version>
                    <type>jar</type>
                    <scope>provided</scope>
                </dependency>
            </dependencies>

        </profile>
    </profiles>


    <!-- ======================================= -->
    <!--          Website and reporting          -->
    <!-- ======================================= -->

    <distributionManagement>
        <downloadUrl>http://www.eclipse.org/gemini/blueprint/download/</downloadUrl>
        <site>
            <id>gemini.blueprint.home</id>
            <name>www.eclipse.org/gemini/blueprint</name>
            <url>http://www.eclipse.org/gemini/blueprint/</url>
        </site>
        <!-- TODO: Need to participate in Gemini maven repo 
        <repository>
            <id>zodiac-milestone</id>
            <name>Zodiac Milestone Repository</name>
            <url>s3://zodiac.springsource.com/maven/bundles/milestone</url>
        </repository>
        <snapshotRepository>
            <id>zodiac-snapshot</id>
            <name>Zodiac Snapshot Repository</name>
            <url>s3://zodiac.springsource.com/maven/bundles/snapshot</url>
        </snapshotRepository> -->
    </distributionManagement>


    <!-- ================================================ -->
    <!--            Repository Configuration              -->
    <!-- ================================================ -->

    <pluginRepositories>
        <pluginRepository>
            <id>maven-repo</id>
            <name>maven repo</name>
            <url>http://repo1.maven.org/maven2/</url>
        </pluginRepository>
        <!-- clover repository -->
        <pluginRepository>
            <id>atlassian-m2-repository</id>
            <name>Atlassian Maven 2.x Repository</name>
            <url>http://repository.atlassian.com/maven2</url>
        </pluginRepository>

        <pluginRepository>
            <id>com.springsource.repository.bundles.release</id>
            <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
            <url>http://repository.springsource.com/maven/bundles/release/</url>
        </pluginRepository>

        <pluginRepository>
            <id>com.springsource.repository.bundles.milestone</id>
            <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Milestones</name>
            <url>http://repository.springsource.com/maven/bundles/milestone</url>
        </pluginRepository>

        <pluginRepository>
            <id>com.springsource.repository.bundles.snapshot</id>
            <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Snapshots</name>
            <url>http://repository.springsource.com/maven/bundles/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>

    </pluginRepositories>

    <repositories>
        <repository>
            <id>com.springsource.repository.bundles.release</id>
            <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
            <url>http://repository.springsource.com/maven/bundles/release/</url>
        </repository>
        <repository>
            <id>com.springsource.repository.bundles.external</id>
            <name>SpringSource Enterprise Bundle Repository - External Bundle Release</name>
            <url>http://repository.springsource.com/maven/bundles/external</url>
        </repository>
        <repository>
            <id>com.springsource.repository.bundles.milestone</id>
            <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Milestones</name>
            <url>http://repository.springsource.com/maven/bundles/milestone</url>
        </repository>
        <repository>
            <id>com.springsource.repository.bundles.snapshot</id>
            <name>SpringSource Enterprise Bundle Repository - Snapshots</name>
            <url>http://repository.springsource.com/maven/bundles/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

        <repository>
            <id>spring-release</id>
            <name>Spring Portfolio Release Repository</name>
            <url>http://maven.springframework.org/release</url>
        </repository>
        <repository>
            <id>spring-external</id>
            <name>Spring Portfolio External Repository</name>
            <url>http://maven.springframework.org/external</url>
        </repository>
        <repository>
            <id>spring-milestone</id>
            <name>Spring Portfolio Milestone Repository</name>
            <url>http://maven.springframework.org/milestone</url>
        </repository>
        <repository>
            <id>spring-ext</id>
            <name>Spring External Dependencies Repository</name>
            <url>http://springframework.svn.sourceforge.net/svnroot/springframework/repos/repo-ext/</url>
        </repository>
        <!-- used when building against Spring snapshots -->
        <repository>
            <id>spring-snapshot</id>
            <name>Spring Portfolio Milestone Repository</name>
            <url>http://maven.springframework.org/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

        <repository>
            <id>knopflerfish-repo</id>
            <name>Official Knopflerfish Repository</name>
            <url>http://www.knopflerfish.org/maven2/</url>
        </repository>

        <repository>
            <id>i21-s3-osgi-repo</id>
            <name>i21 osgi artifacts repo</name>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <url>http://maven.springframework.org/osgi</url>
        </repository>
    </repositories>

</project>