<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>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>eventadmin</module>
    <module>eventadmin.bridge.upnp</module>
    <module>eventadmin.bridge.configuration</module>
    <module>eventadmin.bridge.useradmin</module>
    <module>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>
