<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-SNAPSHOT</version>
  <modules>
    <module>javax.servlet</module>
    <module>tools/maven2/maven-osgi-plugin</module>
    <module>org.osgi</module>
    <module>org.apache.felix.framework</module>
    <module>org.apache.felix.shell</module>
    <module>org.apache.felix.shell.tui</module>
    <module>org.apache.felix.daemon</module>
    <module>org.apache.felix.main</module>
    <module>org.apache.felix.examples.eventlistener</module>
    <module>org.apache.felix.examples.dictionaryservice</module>
    <module>org.apache.felix.examples.frenchdictionary</module>
    <module>org.apache.felix.examples.dictionaryclient</module>
    <module>org.apache.felix.examples.dictionaryclient2</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>
      <id>apache.snapshots</id>
      <url>
        scpexe://apache.org/www/cvs.apache.org/maven-snapshot-repository
      </url>
    </snapshotRepository>
    <repository>
      <name>ASF Mirrored M2 Distributions</name>
      <id>apache.releases</id>
      <url>
        scpexe://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>

</project>
