<?xml version="1.0" encoding="ISO-8859-1"?>

<project>
    <groupId>directory</groupId>
    <artifactId>apacheds</artifactId>
    <currentVersion>0.9.3-SNAPSHOT</currentVersion>
    <name>Apache Directory Project</name>
    <url>http://directory.apache.org</url>
    <logo>http://directory.apache.org/images/apache-directory-logo.png</logo>

    <inceptionYear>2003</inceptionYear>
    
    <issueTrackingUrl>http://issues.apache.org/jira/browse/DIREVE</issueTrackingUrl>

    <siteAddress>minotaur.apache.org</siteAddress>
    <siteDirectory>
      /www/directory.apache.org/subprojects/apacheds
    </siteDirectory>
    <distributionDirectory>
      /www/cvs.apache.org/dist/directory
    </distributionDirectory>

    <gumpRepositoryId>directory</gumpRepositoryId>

    <repository>
      <connection>
        scm:svn:http://svn.apache.org/repos/asf/directory:apacheds/trunk/${module.path}
      </connection>

      <url>
        http://svn.apache.org/viewcvs.cgi/directory/apacheds/trunk/${module.path}/?root=Apache-SVN
      </url>
      
      <developerConnection>
        https://svn.apache.org/repos/asf/directory/apacheds/trunk/${module.path}
      </developerConnection>
    </repository>
  
    <description>
      The Apache Directory Server (ApacheDS) is an embeddable LDAPv3 directory 
      server with other protocol plugins such as kerberos.  It is designed to 
      be completely pluggable in every aspect including backends and frontend 
      handlers making making it an ideal experimentation platform for LDAP 
      protocol testing, and for use in building other tools like like meta 
      directories, and virtual directories.  ApacheDS aims to introduces 
      stored procedures, triggers, views, and queues to the world of LDAP.
    </description>

    <mailingLists>
      <mailingList>
        <name>Apache Directory Developement - use [ApacheDS] prefix</name>
        <subscribe>
          dev-subscribe@directory.apache.org
        </subscribe>
        <unsubscribe>
          dev-unsubscribe@directory.apache.org
        </unsubscribe>
        <archive>
          http://issues.apache.org/eyebrowse/SummarizeList?listId=181
        </archive>
      </mailingList>
    </mailingLists>
    
    <licenses>
      <license>
        <name>Apache 2.0 License</name>
        <url>http://www.apache.org/licenses/LICENSE-2.0</url>
        <distribution>repo</distribution>
      </license>
    </licenses>

    <dependencies>
      <dependency>
        <artifactId>maven-site-plugin</artifactId>
        <groupId>maven</groupId>
        <version>1.6.1</version>
        <type>plugin</type>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <url>http://junit.org</url>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>nlog4j</artifactId>
        <version>1.2.17</version>
        <url>http://slf4j.org/nlog4j</url>
      </dependency>
    </dependencies>        
  
    <build>
      <nagEmailAddress>dev@directory.apache.org</nagEmailAddress>
      <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
      <unitTestSourceDirectory>${basedir}/src/test</unitTestSourceDirectory>

      <unitTest>
        <includes>
          <include>**/*Test*</include>
        </includes>
              
        <!-- 
          Need to skip abstract test cases which do not have tests or the build
          fails.
        -->
        <excludes>
          <exclude>**/Abstract*Test*</exclude>
        </excludes>
        
        <resources>
          <resource>
            <directory>${basedir}/src/test/resources</directory>
            <includes> 
              <include>**/*</include>
            </includes>
          </resource>
        </resources>
      </unitTest>
    
    <resources>
      <resource>
        <directory>${basedir}/src/main/resources</directory>
        <includes>
          <include>**/*</include>
        </includes>
      </resource>
              
      <resource>
        <directory>${basedir}</directory>
        <targetPath>META-INF</targetPath>
        <includes>
          <include>LICENSE.txt</include>
          <include>NOTICE.txt</include>
        </includes>
      </resource>
    </resources>
  </build>

  <developers>
    <developer>
      <name>Alex Karasulu</name>
      <id>akarasulu</id>
      <email>akarasulu at apache.org</email>
      <roles>
        <role>Founder</role>
        <role>Architect</role>
        <role>Lead Developer</role>
      </roles>
    </developer>
    <developer>
      <name>Enrique Rodriguez</name>
      <id>erodriguez</id>
      <email>erodriguez at apache.org</email>
      <roles>
        <role>Developer</role>
      </roles>
    </developer>
  </developers>
    
  <!-- 
   No need to keep plugins here since we do not generate reports for the parent
   - only the children have reports that are on valid code.  For some reason 
   though site generation seems to want to generate reports even though they 
   are not used in the site.  So I put this single report in here to prevent 
   it from generating several default reports which take more time.
   -->
  <reports>
    <report>maven-license-plugin</report>
  </reports>
</project>


