<?xml version="1.0" encoding="UTF-8"?>

<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
  http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>4</version>
  </parent>

  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.directory.project</groupId>
  <artifactId>project</artifactId>
  <packaging>pom</packaging>
  <name>Apache Directory Project</name>
  <version>12-SNAPSHOT</version>

  <ciManagement>
    <system>continuum</system>
    <url>http://vm094.oxylos.org/continuum/</url>
    <notifiers>
      <notifier>
        <type>mail</type>
        <sendOnError>true</sendOnError>
        <sendOnFailure>true</sendOnFailure>
        <sendOnSuccess>true</sendOnSuccess>
        <sendOnWarning>false</sendOnWarning>
        <configuration>
          <address>notifications@directory.apache.org</address>
        </configuration>
      </notifier>
    </notifiers>
  </ciManagement>

  <inceptionYear>2003</inceptionYear>

  <mailingLists>
    <mailingList>
      <name>The Directory Developers List</name>
      <subscribe>dev-subscribe@directory.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@directory.apache.org</unsubscribe>
      <post>dev@directory.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/directory-dev</archive>
      <otherArchives>
        <otherArchive>http://www.archivum.info/dev@directory.apache.org/</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>The Directory Users List</name>
      <subscribe>users-subscribe@directory.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@directory.apache.org</unsubscribe>
      <post>users@directory.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/directory-users</archive>
    </mailingList>
    <mailingList>
      <name>The Directory Commits (SVN) List</name>
      <subscribe>commits-subscribe@directory.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@directory.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/directory-commits</archive>
      <otherArchives>
        <otherArchive>http://www.archivum.info/commits@directory.apache.org/</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>The Directory Notifications (CI) List</name>
      <subscribe>notifications-subscribe@directory.apache.org</subscribe>
      <unsubscribe>notifications-unsubscribe@directory.apache.org</unsubscribe>
    </mailingList>
  </mailingLists>

  <developers>
    <developer>
      <id>adc</id>
    </developer>
    <developer>
      <id>akarasulu</id>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
    </developer>
    <developer>
      <id>bayard</id>
    </developer>
    <developer>
      <id>bloritsch</id>
    </developer>
    <developer>
      <id>brett</id>
    </developer>
    <developer>
      <id>ckoppelt</id>
    </developer>
    <developer>
      <id>elecharny</id>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
    </developer>
    <developer>
      <id>erodriguez</id>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
    </developer>
    <developer>
      <id>ersiner</id>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
    </developer>
    <developer>
      <id>felixk</id>
      <name>Felix Knecht</name>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
      <organization>ASF</organization>
      <organizationUrl>http://www.apache.org/</organizationUrl>
      <roles>
        <role>Committer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>jmachols</id>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
    </developer>
    <developer>
      <id>niklas</id>
    </developer>
    <developer>
      <id>noel</id>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
    </developer>
    <developer>
      <id>pamarcelot</id>
    </developer>
    <developer>
      <id>psteitz</id>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
    </developer>
    <developer>
      <id>szoerner</id>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
    </developer>
    <developer>
      <id>tbennett</id>
    </developer>
    <developer>
      <id>trustin</id>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
    </developer>
    <developer>
      <id>vtence</id>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
    </developer>
    <developer>
      <id>wesmckean</id>
      <url>http://directory.apache.org/community%26resources/the-team.html</url>
    </developer>
  </developers>

  <contributors>
    <contributor>
      <name>Nick Faiz</name>
    </contributor>
  </contributors>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/directory/project/trunk</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/directory/project/trunk</developerConnection>
    <url>http://svn.apache.org/viewvc/directory/project/trunk</url>
  </scm>

  <build>
    <!-- =======================  WARNING ========================== -->
    <!-- Only put pluginManagement info in this pom for plugins      -->
    <!-- shared among shared, apacheds, and daemon subprojects       -->
    <!-- dependencyManagement is likely to change too quickly to be  -->
    <!-- useful in this pom                                          -->
    <!-- =======================  WARNING ========================== -->
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>2.0.2</version>
          <configuration>
            <source>1.5</source>
            <target>1.5</target>
            <optimize>true</optimize>
            <showDeprecations>true</showDeprecations>
            <encoding>ISO-8859-1</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>2.4</version>
          <configuration>
            <downloadSources>true</downloadSources>
            <downloadJavadocs>true</downloadJavadocs>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>2.0.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>2.0.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>1.0-alpha-4</version>
          <executions>
            <execution>
              <goals>
                <goal>sign</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.0-beta-7</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>1.0</version>
          <executions>
            <execution>
              <goals>
                <goal>process</goal>
              </goals>
              <configuration>
                <properties>
                  <projectName>${projectName}</projectName>
                </properties>
                <resourceBundles>
                  <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                </resourceBundles>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.4.2</version>
          <configuration>
            <argLine>-Xmx1024m</argLine>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-stage-plugin</artifactId>
          <version>1.0-alpha-1</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>rat-maven-plugin</artifactId>
          <version>1.0-alpha-3</version>
          <configuration>
            <excludeSubProjects>false</excludeSubProjects>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.geronimo.genesis.plugins</groupId>
          <artifactId>tools-maven-plugin</artifactId>
          <version>1.4</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>rat-maven-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.geronimo.genesis.plugins</groupId>
        <artifactId>tools-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>verify-legal-files</id>
            <phase>verify</phase>
            <goals>
              <goal>verify-legal-files</goal>
            </goals>
            <configuration>
              <!-- Fail the build if no legal files were found -->
              <strict>true</strict>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-remote-resources-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-stage-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

  <profiles>

    <profile>
      <id>release</id>

      <build>
        <plugins>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <configuration>
              <useReleaseProfile>false</useReleaseProfile>
              <goals>deploy</goals>
              <arguments>-Prelease</arguments>
            </configuration>
          </plugin>

          <!-- We want a source jar -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <!-- We want to sign the artifact, the POM, and all attached artifacts -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <inherited>true</inherited>
            <configuration>
              <passphrase>${gpg.passphrase}</passphrase>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <!-- In the future... -->
          <!-- We want to deploy the artifact to a staging location for perusal -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <inherited>true</inherited>
            <configuration>
              <!-- uncomment to enable "staged" release process -->
              <!--<altDeploymentRepository>${deploy.altRepository}</altDeploymentRepository>-->
              <updateReleaseInfo>true</updateReleaseInfo>
            </configuration>
          </plugin>

          <!-- We want the JavaDoc JAR published with the release -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <inherited>true</inherited>
            <configuration>
              <source>1.5</source>
            </configuration>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>full</id>

      <build>
        <plugins>

          <!-- We want a source jar -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <!-- We want the JavaDoc JAR published with the release -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <inherited>true</inherited>
            <configuration>
              <source>1.5</source>
            </configuration>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>

  <pluginRepositories>
    <pluginRepository>
      <id>apache.directory.plugins</id>
      <name>Plugin repository for the Apache Directory Studio plugin</name>
      <url>http://vm094.oxylos.org/mirror-maven2/</url>
    </pluginRepository>
  </pluginRepositories>

  <reporting>
    <excludeDefaults>true</excludeDefaults>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <report>project-team</report>
              <report>mailing-list</report>
              <report>license</report>
              <report>dependencies</report>
              <report>issue-tracking</report>
              <report>index</report>
              <report>scm</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>

  <distributionManagement>
    <snapshotRepository>
      <id>apache.directory.snapshot.repo</id>
      <name>Snapshot repository for the Apache Directory project</name>
      <uniqueVersion>false</uniqueVersion>
      <url>scpexe://vm094.oxylos.org/var/www/html/mirror-maven2</url>
    </snapshotRepository>
  </distributionManagement>

</project>
