<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>ipojo.tests</groupId>
  <artifactId>org.apache.felix.ipojo.integration-tests</artifactId>
  <name>iPOJO Integration Tests</name>
  <version>1.5.0-SNAPSHOT</version>

  <properties>
     <ipojo.version>1.5.0-SNAPSHOT</ipojo.version>
    </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-junit4osgi-plugin
        </artifactId>
        <version>1.1.0-SNAPSHOT</version>
        <executions>
          <execution>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <hideOutputs>true</hideOutputs>
              <logService>false</logService>
              <configuration>
              <org.osgi.http.port>8083</org.osgi.http.port>
              </configuration>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin
        </artifactId>
        <version>2.4.3</version>
        <configuration>
          <showSucess>true</showSucess>
          <reportsDirectories>
            <param>target/junit4osgi-reports</param>
          </reportsDirectories>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </reporting>

  <dependencies>
   <!-- Manipulation -->
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.manipulation.metadata
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.manipulation</artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.manipulation.primitives
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.manipulation.creation
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.manipulation.java5
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>

    <!--  Core -->
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.annotations</artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.bad.configurations
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.configuration
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.external.handlers
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.factories</artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.lifecycle.callback
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.lifecycle.controller
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.ps</artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.lifecycle.controller
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.service.dependency
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.service.dependency.bindingpolicy
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.service.dependency.comparator
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.service.dependency.filter
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <artifactId>tests.core.ps.strategy</artifactId>
      <groupId>ipojo.tests</groupId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>


       <!-- Composite -->
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.composite </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.composite.service.import-export
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.composite.service.instance
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.composite.service.providing
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>

  <!--  External handlers -->

    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.eventadmin.handler
      </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.temporal </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.whiteboard </artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
  <!--  Utility bundles -->

    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.ipojo.handler.whiteboard</artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.ipojo.handler.temporal</artifactId>
      <version>1.7.0-SNAPSHOT</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.ipojo.handler.eventadmin</artifactId>
      <version>1.7.0-SNAPSHOT</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.eventadmin</artifactId>
      <version>1.2.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.ipojo.composite</artifactId>
      <version>1.6.0</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
    <id>configadmin</id>
    <dependencies>
    <dependency>
      <groupId>ipojo.tests</groupId>
      <artifactId>tests.core.configadmin</artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
     <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.configadmin</artifactId>
      <version>1.2.4</version>
      <scope>test</scope>
    </dependency>
    </dependencies>
    </profile>
  </profiles>
</project>
