<?xml version="1.0"?><project>
  <parent>
    <artifactId>gemini-blueprint-integration-test-bundles</artifactId>
    <groupId>org.eclipse.gemini.blueprint.iandt</groupId>
    <version>1.0.0.RC1</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.eclipse.gemini.blueprint.iandt</groupId>
  <artifactId>trivial.tests</artifactId>
  <packaging>jar</packaging>
  <name>Gemini Blueprint Test Bundle: Simple test that uses trivial bundle</name>
  <description>Contains a single test case that exercises function in 
   org.springframework.osgi.trivial bundle. Used as a basic proof of 
   concept for the test harness support.</description>
  <url>http://www.eclipse.org/gemini/blueprint/</url>
  <dependencies>

    <dependency>
      <groupId>org.eclipse.gemini.blueprint.iandt</groupId>
      <artifactId>trivial</artifactId>
      <version>${project.parent.version}</version>
      <scope>provided</scope>
    </dependency>
  
    <!-- JUnit is required at build time not just test time -->
    <dependency>
	  <groupId>org.junit</groupId>
	  <artifactId>com.springsource.junit</artifactId>
      <scope>provided</scope>
    </dependency>
  </dependencies>

</project>