<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>
              <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.configadmin</artifactId>
      <version>1.2.2</version>
      <scope>test</scope>
    </dependency>
    <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>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.ipojo.handler.eventadmin</artifactId>
      <version>${ipojo.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.eventadmin</artifactId>
      <version>1.0.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.ipojo.composite</artifactId>
      <version>${ipojo.version}</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>
    </dependencies>
    </profile>
  </profiles>
</project>
