<?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>
  <groupId>org.eclipse.gemini.blueprint</groupId>
  <artifactId>gemini-blueprint</artifactId>
  <packaging>pom</packaging>
  <version>1.0.0.M2-SNAPSHOT</version>
  <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>

  <properties>
    <!-- Spring version -->
    <spring.maven.artifact.version>3.0.4.RELEASE</spring.maven.artifact.version>
    <spring.base.version>3.0.0</spring.base.version>
    
    <!--- Gemini Blueprint packages imported version (respect the OSGi naming pattern)-->
    <gemini.blueprint.import.version>1.0.0.M2</gemini.blueprint.import.version>
    
    <!--- Gemini Blueprint packages exported version -->
    <gemini.blueprint.export.version>1.0.0.M2</gemini.blueprint.export.version>
    <gemini.blueprint.bundle.version>1.0.0.M2</gemini.blueprint.bundle.version>

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

    <spring.osgi.license.loc>..</spring.osgi.license.loc>
    
   <!-- other properties -->
   <slf4j.version>1.5.6</slf4j.version>
   
   <!-- platform versions -->
   <equinox.ver>3.6.2.R36x_v20110210</equinox.ver>
   <kf.ver>3.1.0</kf.ver>
   <felix.ver>2.0.5</felix.ver>
   
   <!-- javadoc configuration -->
   <javadoc.loc>${basedir}/docs/src/javadoc</javadoc.loc>
   
   <clover.ver>2.5.1</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>[${gemini.blueprint.import.version},${gemini.blueprint.import.version}]</gemini.blueprint.version.range.nq>
   <gemini.blueprint.version.range>"${gemini.blueprint.version.range.nq}"</gemini.blueprint.version.range>
   <logging.version.range>"[1.0,2.0)"</logging.version.range>
   <!-- jarjar -->
   <jarjar.keep></jarjar.keep>
   <jarjar.dep></jarjar.dep>
   <jarjar.dep.1>${jarjar.dep}</jarjar.dep.1>
   <jarjar.dep.1.exclude>**/*</jarjar.dep.1.exclude>
  </properties>

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

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

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

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

  <inceptionYear>2006</inceptionYear>

  <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>
    <!--
    <module>web</module>
    <module>web-extender</module>
    <module>bundle-archetype</module>
    <module>annotation</module>
    -->
    <!-- unused at the moment
    <module>release</module>
    -->
  </modules>


  <dependencyManagement>
    <dependencies>
        <!-- Spring-DM -->
        <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>
        <dependency>
          <groupId>org.eclipse.gemini.blueprint</groupId>
          <artifactId>gemini-blueprint-web</artifactId>
          <version>${project.version}</version>
        </dependency>
        <dependency>
          <groupId>org.eclipse.gemini.blueprint</groupId>
          <artifactId>spring-osgi-web-extender</artifactId>
          <version>${project.version}</version>
        </dependency>
        <dependency>
          <groupId>org.eclipse.gemini.blueprint</groupId>
          <artifactId>gemini-blueprint-annotation</artifactId>
          <version>${project.version}</version>
        </dependency>
        <!-- Spring -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>org.springframework.aop</artifactId>
          <version>${spring.maven.artifact.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.apache.commons</groupId>
              <artifactId>com.springsource.org.apache.commons.logging</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>org.springframework.beans</artifactId>
          <version>${spring.maven.artifact.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.apache.commons</groupId>
              <artifactId>com.springsource.org.apache.commons.logging</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>org.springframework.core</artifactId>
          <version>${spring.maven.artifact.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.apache.commons</groupId>
              <artifactId>com.springsource.org.apache.commons.logging</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>org.springframework.context</artifactId>
          <version>${spring.maven.artifact.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.apache.commons</groupId>
              <artifactId>com.springsource.org.apache.commons.logging</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>org.springframework.context.support</artifactId>
          <version>${spring.maven.artifact.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.apache.commons</groupId>
              <artifactId>com.springsource.org.apache.commons.logging</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>org.springframework.test</artifactId>
          <version>${spring.maven.artifact.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.apache.commons</groupId>
              <artifactId>com.springsource.org.apache.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.springframework</groupId>
          <artifactId>org.springframework.web</artifactId>
          <version>${spring.maven.artifact.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.apache.commons</groupId>
              <artifactId>com.springsource.org.apache.commons.logging</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>org.springframework.web.servlet</artifactId>
          <version>${spring.maven.artifact.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.apache.commons</groupId>
              <artifactId>com.springsource.org.apache.commons.logging</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.osgi</groupId>
          <artifactId>osgi_R4_compendium</artifactId>
          <version>1.0</version>
        </dependency>
        <dependency>
          <groupId>org.junit</groupId>
          <artifactId>com.springsource.junit</artifactId>
          <version>3.8.2</version>
        </dependency>
    </dependencies>
    
  </dependencyManagement>
  
  <!-- shared dependencies across modules -->
  <dependencies>
    <!-- junit -->
    <dependency>
      <groupId>org.junit</groupId>
      <artifactId>com.springsource.junit</artifactId>
      <version>3.8.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>easymock</groupId>
      <artifactId>easymock</artifactId>
      <version>1.2_Java1.3</version>
      <scope>test</scope>
    </dependency>
    
    <!-- commons-logging in slf4j wrapper -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>com.springsource.slf4j.org.apache.commons.logging</artifactId>
      <version>${slf4j.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>com.springsource.slf4j.api</artifactId>
      <version>${slf4j.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>com.springsource.slf4j.log4j</artifactId>
      <version>${slf4j.version}</version>
      <scope>provided</scope>
      <exclusions>
        <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.log4j</groupId>
            <artifactId>com.springsource.org.apache.log4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.log4j</groupId>
      <artifactId>com.springsource.org.apache.log4j</artifactId>
      <version>1.2.15</version>
      <scope>test</scope>
    </dependency>
    
  </dependencies>
  
  <build>
    <extensions>
      <extension>
         <groupId>org.springframework.build.aws</groupId>
         <artifactId> org.springframework.build.aws.maven</artifactId>
         <version>2.0.0.RELEASE</version>
      </extension>
    </extensions>

    <resources>
      <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
      	<targetPath>META-INF</targetPath>
        <filtering>false</filtering>
        <directory>${spring.osgi.license.loc}</directory>
        <includes>
            <include>license.txt</include>
            <include>notice.txt</include>
        </includes>
      </resource>
    </resources>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>2.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.4.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>2.0.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>2.1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>jdepend-maven-plugin</artifactId>
          <version>2.0-beta1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.3</version>
        </plugin>        
        <plugin>
          <groupId>com.atlassian.maven.plugins</groupId>
          <artifactId>maven-clover2-plugin</artifactId>
          <version>${clover.ver}</version>
        </plugin>
        <plugin>
          <groupId>com.springsource.bundlor</groupId>
          <artifactId>com.springsource.bundlor.maven</artifactId>
          <version>1.0.0.M6</version>
        </plugin>
      </plugins>
    </pluginManagement>
    
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>jarjar</id>
            <phase>package</phase>
            <goals><goal>run</goal></goals>
            <configuration>
                <tasks if="jarjar.run">
                    <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask"
                            classpathref="maven.plugin.classpath"/>
                    <property name="dep.jar" value="${jarjar.dep}"/>
                    <property name="dep.1.jar" value="${jarjar.dep.1}"/>
                    <jarjar jarfile="${project.build.directory}${file.separator}${project.build.finalName}.jar">
                        <fileset dir="${project.build.outputDirectory}"/>
                        <zipfileset src="${dep.jar}" includes="**/*.class" excludes="META-INF/**"/>
                        <zipfileset src="${dep.1.jar}" includes="${jarjar.dep.1.include}" excludes="META-INF/**,${jarjar.dep.1.exclude}"/>
                        <keep pattern="${jarjar.keep}"/>
                    </jarjar>
                </tasks>
            </configuration>
          </execution>
        </executions>
        <dependencies>
            <dependency>
             <groupId>com.tonicsystems</groupId>
             <artifactId>jarjar</artifactId>
             <version>1.0</version>
            </dependency>
        </dependencies>            
      </plugin>

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


      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <systemProperties>
            <property>
              <name>org.springframework.osgi.test.framework</name>
              <value>${osgi.test.platform}</value>
            </property>
          </systemProperties>
        </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>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptors>
             <descriptor>release/src/assembly/bin.xml</descriptor>
          </descriptors>
        </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>

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

    <!-- samples profile -->
    <profile>
      <id>samples</id>
      <activation>
        <property>
          <name>env-samples</name>
        </property>
      </activation>
      <modules>
        <module>samples</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          -->
  <!-- ======================================= -->

  <reporting>
    <plugins>
      <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>
            <group>
               <title>Samples</title>
               <packages>org.eclipse.gemini.blueprint.sample*</packages>
            </group>
          </groups>
          <excludePackageNames>*internal:*samples: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/3.8.1/</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>
      </plugin>

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

    <distributionManagement>
        <downloadUrl>http://www.springframework.org/osgi/</downloadUrl>
        <site>
            <id>static.springframework.org</id>
            <name>SpringFramework.org</name>
            <url>scp://static.springframework.org/var/www/domains/springframework.org/static/htdocs/spring-osgi/snapshot-site/</url>
        </site>
        <repository>
            <id>zodiac-milestone</id>
            <name>Zodiac Milestone Repository</name>
            <url>s3://zodiac.springsource.com/maven/bundles/milestone</url>
        </repository>    
        <snapshotRepository>
            <id>zodiac-snapshot</id>
            <name>Zodiac Snapshot Repository</name>
            <url>s3://zodiac.springsource.com/maven/bundles/snapshot</url>
        </snapshotRepository>
    </distributionManagement>


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

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

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


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

  </pluginRepositories>

  <repositories>
    <!--
    <repository>
        <id>eclipse-repository</id>
        <name>Eclipse Repository</name>
        <url>http://repo1.maven.org/eclipse/</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>i21-s3-osgi-repo</id>
        <name>i21 osgi artifacts repo</name>
        <snapshots>
         <enabled>true</enabled>
        </snapshots>
        <url>http://maven.springframework.org/osgi</url>
    </repository>
  </repositories>

</project>