<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.felix</groupId>
  <artifactId>felix</artifactId>
  <packaging>pom</packaging>
  <name>Apache Felix (parent)</name>
  <version>0.8.0-SNAPSHOT</version>
  <modules>
    <module>tools/maven2/maven-osgi-plugin</module>
    <module>javax.servlet</module>
    <module>org.osgi.core</module>
    <module>org.osgi.compendium</module>
    <module>org.apache.felix.framework</module>
    <module>shell</module>
    <module>shell.tui</module>
    <module>shell.gui</module>
    <module>shell.gui.plugin</module>
    <module>bundlerepository</module>
    <module>org.apache.felix.daemon</module>
    <module>org.apache.felix.dependencymanager</module>
    <module>main</module>

    <module>examples</module>

    <module>servicebinder</module>
    <module>wireadmin</module>
    <module>upnp.extra</module>
    <module>upnp.basedriver</module>
    <module>upnp.tester</module>      
    <module>upnp.sample.tv</module>
    <module>upnp.sample.clock</module>
    <module>upnp.sample.binaryLight</module>
    <module>http.jetty</module>
    <module>scr</module>
    <module>org.apache.felix.eventadmin</module>
    <module>org.apache.felix.eventadmin.bridge.upnp</module>
    <module>org.apache.felix.eventadmin.bridge.configuration</module>
    <module>org.apache.felix.eventadmin.bridge.useradmin</module>
    <module>org.apache.felix.eventadmin.bridge.wireadmin</module>
    <module>ipojo</module>
    <module>ipojo.metadata</module>
    <module>ipojo.plugin</module>
    <module>ipojo.arch</module>
  </modules>

  <repositories>
    <!-- For snapshots (no release jars or non-apache jars)           -->
    <repository>
      <id>apache.snapshots</id>
      <name>Apache Snapshot Repository</name>
      <url>http://cvs.apache.org/maven-snapshot-repository</url>
    </repository>

    <repository>
      <id>safehaus</id>
      <name>Alternate Repository for Missing Ibiblio Artifacts</name>
      <url>http://m2.safehaus.org</url>
    </repository>
  </repositories>

  <distributionManagement>
    <snapshotRepository>
      <name>Apache Snapshots</name>
      <id>apache.snapshots</id>
      <url>
        scp://apache.org/www/cvs.apache.org/maven-snapshot-repository
      </url>
    </snapshotRepository>
    <repository>
      <name>ASF Mirrored M2 Distributions</name>
      <id>apache.distributions</id>
      <url>
        scp://minotaur.apache.org/www/www.apache.org/dist/maven-repository
      </url>
    </repository>
  </distributionManagement>

  <pluginRepositories>
    <pluginRepository>
      <id>apache.snapshots</id>
      <name>snapshot plugins</name>
      <url>
        http://cvs.apache.org/maven-snapshot-repository
      </url>
    </pluginRepository>
  </pluginRepositories>

  <!-- definitions for testing -->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>easymock</groupId>
      <artifactId>easymock</artifactId>
      <version>1.2_Java1.3</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <target>1.4</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
      </plugin>
    </plugins>
  </reporting>
</project>
