<?xml version="1.0" encoding="ISO-8859-1"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.directory</groupId>
  <version>1.0.6-SNAPSHOT</version>
  <artifactId>build</artifactId>
  <name>Apache Directory Build</name>
  <inceptionYear>2004</inceptionYear>
  <packaging>pom</packaging>
  <modules>
    <module>apacheds</module>
    <module>shared</module>
    <module>daemon</module>
  </modules>
  <dependencies>
   <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <repositories>
    <!-- For snapshots (no release jars or non-apache jars) -->
    <repository>
      <id>apache.snapshots</id>
      <name>Apache Snapshot Repository</name>
      <url>http://people.apache.org/maven-snapshot-repository</url>
    </repository>
    
    <!-- Temp repo for 3rd party jars that are not in ibiblio.org yet.-->
    <!-- Artifacts in repo should be requested for ibiblio upload &   -->
    <!-- removed from this repository - this repo will disappear.     -->
    <repository>
      <id>safehaus</id>
      <name>Alternate Repository for Missing Ibiblio Artifacts</name>
      <url>http://m2.safehaus.org</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>snapshots</id>
      <name>snapshot plugins</name>
      <url>http://snapshots.repository.codehaus.org</url>
    </pluginRepository>
    <pluginRepository>
      <id>apache.snapshots</id>
      <name>Apache Snapshot Plugins</name>
      <url>http://people.apache.org/repo/m2-snapshot-repository</url>
    </pluginRepository>
  </pluginRepositories>

  <distributionManagement>
    <snapshotRepository>
      <id>apache.snapshots</id>
      <url>
        scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository
      </url>
    </snapshotRepository>
    <repository>
      <name>ASF Mirrored M2 Distributions</name>
      <id>apache.snapshots</id>
      <url>
        scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository
      </url>
    </repository>

  </distributionManagement>

  <licenses>
    <license>
      <name>Apache Software License 2.0</name>
      <url>http://directory.apache.org/license.html</url>
    </license>
  </licenses>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>2.3</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.3-SNAPSHOT</version>
        <configuration>
          <argLine>-Xmx1024m</argLine>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.0.1</version>
        <configuration>
          <source>1.4</source>
          <target>1.4</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/directory/apacheds/trunk-with-dependencies</connection>
    <developerConnection>scm:svn:http://svn.apache.org/repos/asf/directory/apacheds/trunk-with-dependencies</developerConnection>
  </scm>
</project>
