<?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>
        <!-- change that to gitVersion and add a way to get git version of the build -->
        <env.svnRevision></env.svnRevision>

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

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

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

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

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

        <!-- bundlor settings -->
        <bundlor.enabled>true</bundlor.enabled>
        <!-- common version ranges -->
        <spring.version.range.nq>[${spring.base.version},4.0)</spring.version.range.nq>
        <spring.version.range>"${spring.version.range.nq}"</spring.version.range>
        <gemini.blueprint.version.range.nq>[${project.version},${project.version}]</gemini.blueprint.version.range.nq>
        <gemini.blueprint.version.range>"${gemini.blueprint.version.range.nq}"</gemini.blueprint.version.range>
        <logging.version.range>"[1.0,2.0)"</logging.version.range>
    </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:git://git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git</connection>
        <developerConnection>
            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.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>

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

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


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

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