<?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.BUILD-SNAPSHOT</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.1.14</kf.ver>    &lt;!&ndash; Knopflerfish 3.2 &ndash;&gt;-->
        <kf.ver>5.2.4</kf.ver>    <!-- Knopflerfish 3.4 -->
        <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>