<?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.RELEASE</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>4.2.5.RELEASE_1</spring.maven.artifact.version>
        <spring.base.version>4.2.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.7.5</slf4j.version>
        <logback.version>1.0.13</logback.version>
        <env.buildPlan></env.buildPlan>
        <env.buildNumber></env.buildNumber>

        <!-- compiled against osgi Revision -->
        <osgi.ver>5.0.0</osgi.ver>
        <!-- platform versions -->
        <!-- equinox - repackaged in ${basedir}/lib/equinox -->
        <equinox.ver>3.9.1.v20130814-1242</equinox.ver>
        <!-- Knopflerfish -->
        <kf.ver>7.1.2</kf.ver>
        <!-- Felix 4.4.x supports OSGi R5 -->
        <felix.ver>4.4.0</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.3)</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>
    </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>
        <url>http://git.eclipse.org/c/gemini.blueprint/org.eclipse.gemini.blueprint.git/</url>
        <connection>scm:git:git//git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git</connection>
        <developerConnection>scm:git:ssh://{user.name}@git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git</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.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.spring-aop</artifactId>
                <version>${spring.maven.artifact.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.spring-beans</artifactId>
                <version>${spring.maven.artifact.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.spring-core</artifactId>
                <version>${spring.maven.artifact.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.spring-context</artifactId>
                <version>${spring.maven.artifact.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.spring-expression</artifactId>
                <version>${spring.maven.artifact.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.spring-test</artifactId>
                <version>${spring.maven.artifact.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.aopalliance</artifactId>
                <version>1.0_6</version>
            </dependency>

            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.core</artifactId>
                <version>${osgi.ver}</version>
            </dependency>

            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.compendium</artifactId>
                <version>${osgi.ver}</version>
            </dependency>

            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>com.springsource.org.junit</artifactId>
                <version>4.9.0</version>
            </dependency>

            <dependency>
                <groupId>org.eclipse.birt.runtime</groupId>
                <artifactId>org.eclipse.osgi</artifactId>
                <version>${equinox.ver}</version>
            </dependency>

            <dependency>
                <groupId>org.knopflerfish</groupId>
                <artifactId>framework</artifactId>
                <version>${kf.ver}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.main</artifactId>
                <version>${felix.ver}</version>
                <type>jar</type>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.felix</groupId>
                        <artifactId>org.apache.felix.framework</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

        </dependencies>

    </dependencyManagement>

    <!-- shared dependencies across modules -->
    <dependencies>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>

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

        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>3.2</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>cglib</groupId>
                    <artifactId>cglib-nodep</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

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

        <dependency>
            <groupId>org.easytesting</groupId>
            <artifactId>fest-assert</artifactId>
            <version>1.4</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>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <filtering>true</filtering>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>git.properties</exclude>
                </excludes>
            </resource>
        </resources>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>pl.project13.maven</groupId>
                    <artifactId>git-commit-id-plugin</artifactId>
                    <version>2.1.5</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.6</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.3</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>2.5</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</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.8.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.16</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.16</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.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.9.1</version>
                    <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.7</source>
                        <links>
                            <link>http://download.oracle.com/javase/6/docs/api/</link>
                            <link>http://docs.spring.io/autorepo/docs/spring-framework/4.2.x/javadoc-api/</link>
                            <link>http://www2.osgi.org/javadoc/r4/</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-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.5.2</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>org.eclipse.virgo.bundlor</groupId>
                    <artifactId>org.eclipse.virgo.bundlor.maven</artifactId>
                    <version>1.1.2.RELEASE</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>3.0.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-report-plugin</artifactId>
                    <version>2.16</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>2.7</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.eclipse.virgo.bundlor</groupId>
                <artifactId>org.eclipse.virgo.bundlor.maven</artifactId>
                <executions>
                    <execution>
                        <id>bundlor</id>
                        <goals>
                            <goal>bundlor</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <properties>
                        <bundle.description>${project.description}</bundle.description>
                    </properties>
                    <manifestTemplatePath>${basedir}/template.mf</manifestTemplatePath>
                    <enabled>${bundlor.enabled}</enabled>
                    <failOnWarnings>false</failOnWarnings>
                </configuration>
                <dependencies>
                    <dependency>
                      <groupId>org.eclipse.virgo.bundlor</groupId>
                      <artifactId>org.eclipse.virgo.bundlor</artifactId>
                      <version>1.1.2.RELEASE</version>
                    </dependency>
                    <dependency>
                      <groupId>org.eclipse.virgo.bundlor</groupId>
                      <artifactId>org.eclipse.virgo.bundlor.blint</artifactId>
                      <version>1.1.2.RELEASE</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <debug>true</debug>
                    <fork>true</fork>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <archive>
                        <manifestEntries>
                            <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
                            <Bundle-Name>${project.artifactId}</Bundle-Name>
                            <Bundle-Version>${project.version}</Bundle-Version>
                            <Bundle-SymbolicName>${spring.osgi.symbolic.name}.source</Bundle-SymbolicName>
                            <Bundle-Vendor>Eclipse Foundation</Bundle-Vendor>
                            <Bundle-DocURL>http://www.eclipse.org/gemini/blueprint/</Bundle-DocURL>
                            <Bundle-License>
                                http://www.opensource.org/licenses/eclipse-1.0.php,http://www.opensource.org/licenses/apache2.0.php
                            </Bundle-License>
                            <Implementation-Title>Eclipse Gemini Blueprint</Implementation-Title>
                            <Implementation-Version>${project.version}</Implementation-Version>
                            <Implementation-Vendor>Eclipse Foundation</Implementation-Vendor>
                            <Implementation-Vendor-Id>org.eclipse.gemini.blueprint</Implementation-Vendor-Id>
                            <Gemini-Blueprint-Version>${project.version}</Gemini-Blueprint-Version>
                            <Spring-Version>${spring.maven.artifact.version}</Spring-Version>
                            <Git-Revision>${git.commit.id.describe}</Git-Revision>
                            <Eclipse-SourceBundle>${spring.osgi.symbolic.name};version="${project.version}";roots:="."
                            </Eclipse-SourceBundle>
                        </manifestEntries>
                    </archive>
                </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.7</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>
                        </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.7</targetJdk>
                            </configuration>
                        </plugin>

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

            <plugin>
                <groupId>pl.project13.maven</groupId>
                <artifactId>git-commit-id-plugin</artifactId>
                <version>2.1.5</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>revision</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <!-- that's the default value, you don't have to set it -->
                    <prefix>git</prefix>
                    <!-- that's the default value -->
                    <dateFormat>dd.MM.yyyy '@' HH:mm:ss z</dateFormat>
                    <!-- true is default here, it prints some more information during the build -->
                    <verbose>fasle</verbose>
                    <!--
                        If you'd like to tell the plugin where your .git directory is,
                        use this setting, otherwise we'll perform a search trying to
                        figure out the right directory. It's better to add it explicit IMHO.
                    -->
                    <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>

                    <!-- ALTERNATE SETUP - GENERATE FILE -->
                    <!--
                        If you want to keep git information, even in your WAR file etc,
                        use this mode, which will generate a properties file (with filled out values)
                        which you can then normally read using new Properties().load(/**/)
                    -->

                    <!--
                        this is true by default; You may want to set this to false, if the plugin should run inside a
                        <packaging>pom</packaging> project. Most projects won't need to override this property.

                        For an use-case for this kind of behaviour see: https://github.com/ktoso/maven-git-commit-id-plugin/issues/21
                    -->
                    <skipPoms>true</skipPoms>

                    <!-- this is false by default, forces the plugin to generate the git.properties file -->
                    <generateGitPropertiesFile>true</generateGitPropertiesFile>

                    <!-- The path for the to be generated properties file, it's relative to ${project.basedir} -->
                    <generateGitPropertiesFilename>src/main/resources/git.properties</generateGitPropertiesFilename>

                    <!-- true by default, controls whether the plugin will fail when no .git directory is found, when set to false the plugin will just skip execution -->
                    <!-- @since 2.0.4 -->
                    <failOnNoGitDirectory>false</failOnNoGitDirectory>

                    <!-- @since 2.1.0 -->
                    <!--
                        read up about git-describe on the in man, or it's homepage - it's a really powerful versioning helper
                        and the recommended way to use git-commit-id-plugin. The configuration bellow is optional,
                        by default describe will run "just like git-describe on the command line", even though it's a JGit reimplementation.
                    -->
                    <gitDescribe>
                        <!-- don't generate the describe property -->
                        <skip>false</skip>
                        <!--
                            if no tag was found "near" this commit, just print the commit's id instead,
                            helpful when you always expect this field to be not-empty
                        -->
                        <always>false</always>
                        <!--
                             how many chars should be displayed as the commit object id?
                             7 is git's default,
                             0 has a special meaning (see end of this README.md),
                             and 40 is the maximum value here
                        -->
                        <abbrev>7</abbrev>

                        <!-- when the build is triggered while the repo is in "dirty state", append this suffix -->
                        <dirty>-dirty</dirty>
                        <!--
                             always print using the "tag-commits_from_tag-g_commit_id-maybe_dirty" format, even if "on" a tag.
                             The distance will always be 0 if you're "on" the tag.
                        -->
                        <forceLongFormat>false</forceLongFormat>
                    </gitDescribe>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <!-- profiles for equinox, knopflerfish, 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.birt.runtime</groupId>
                    <artifactId>org.eclipse.osgi</artifactId>
                    <version>${equinox.ver}</version>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
            <properties>
                <osgi.test.platform>org.eclipse.gemini.blueprint.test.platform.EquinoxPlatform</osgi.test.platform>
            </properties>
        </profile>

        <profile>
            <id>knopflerfish</id>
            <dependencies>
                <dependency>
                    <groupId>org.knopflerfish</groupId>
                    <artifactId>framework</artifactId>
                    <version>${kf.ver}</version>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
            <properties>
                <osgi.test.platform>org.eclipse.gemini.blueprint.test.platform.KnopflerfishPlatform</osgi.test.platform>
                <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>
                    <scope>provided</scope>
                    <exclusions>
                        <exclusion>
                            <groupId>org.apache.felix</groupId>
                            <artifactId>org.apache.felix.framework</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>
                <dependency>
                    <groupId>org.osgi</groupId>
                    <artifactId>org.osgi.core</artifactId>
                    <scope>compile</scope>
                </dependency>
            </dependencies>
            <properties>
                <osgi.test.platform>org.eclipse.gemini.blueprint.test.platform.FelixPlatform</osgi.test.platform>
            </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>

        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.6</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.7</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>false</autoReleaseAfterClose>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </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>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>


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

    <pluginRepositories>
        <pluginRepository>
            <id>maven-repo</id>
            <name>maven repo</name>
            <url>http://repo1.maven.org/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>

        <pluginRepository>
            <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>
        </pluginRepository>

        <pluginRepository>
            <id>eclipse.virgo.build.bundles.release</id>
            <name>Eclipse Virgo Build</name>
            <url>http://build.eclipse.org/rt/virgo/maven/bundles/release</url>
        </pluginRepository>

    </pluginRepositories>

    <repositories>
        <repository>
            <id>maven-repo</id>
            <name>maven repo</name>
            <url>http://repo1.maven.org/maven2/</url>
        </repository>

        <repository>
            <id>knopflerfish</id>
            <name>knopflerfish repo</name>
            <url>http://www.knopflerfish.org/maven2/</url>
        </repository>

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

        <!--todo: is this still needed -->
        <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>

        <repository>
            <id>eclipse.virgo.build.bundles.release</id>
            <name>Eclipse Virgo Build</name>
            <url>http://build.eclipse.org/rt/virgo/maven/bundles/release</url>
        </repository>
    </repositories>

</project>
