<project>
  <parent>
    <groupId>org.apache.felix</groupId>
    <artifactId>iPOJO</artifactId>
    <version>0.7.6-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <modelVersion>4.0.0</modelVersion>
  <groupId>ipojo.tests</groupId>
  <artifactId>ipojo.tests</artifactId>
  <name>Apache Felix iPOJO Tests</name>
  <packaging>pom</packaging>
  <profiles>
      <profile>
              <id>java5</id>
              <activation>
                      <jdk>1.5</jdk>
              </activation>
              <modules>
                     <module>tests.core</module>
					<module>tests.composite</module>
              </modules>
      </profile>
      <profile>
              <id>java6</id>
              <activation>
                      <jdk>1.6</jdk>
              </activation>
              <modules>
                      <module>tests.core</module>
					  <module>tests.composite</module>
              </modules>
      </profile>
</profiles>  
</project>