<?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>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-cli</artifactId>
  <name>CLI</name>
  <currentVersion>avalon-implementation-SNAPSHOT</currentVersion>
  <inceptionYear>2002</inceptionYear>
  <shortDescription>Commons CLI - Avalon Implementation</shortDescription>
  <description>
    Commons CLI provides a simple API for presenting, processing and
    validating a command line interface. This is an implementation from 
    Avalon's code base, as used in Apache JMeter.
  </description>
  <logo>/images/logo.png</logo>

  <url>http://jakarta.apache.org/commons/cli/</url>
  <package>org.apache.commons</package>

  <organization>
    <name>Apache Software Foundation</name>
    <url>http://www.apache.org</url>
    <logo>http://jakarta.apache.org/images/original-jakarta-logo.gif</logo>
  </organization>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>/LICENSE.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <gumpRepositoryId>jakarta</gumpRepositoryId>
  <issueTrackingUrl>http://issues.apache.org/jira/</issueTrackingUrl>
  <siteAddress>people.apache.org</siteAddress>
  <siteDirectory>/www/jakarta.apache.org/commons/cli/</siteDirectory>
  <distributionDirectory>/www/jakarta.apache.org/builds/jakarta-commons/cli/</distributionDirectory>

  <repository>
    <connection>scm:svn:http://svn.apache.org/repos/asf/jakarta/commons/proper/cli/branches/avalon-implementation</connection>
                   <url>http://svn.apache.org/repos/asf/jakarta/commons/proper/cli/branches/avalon-implementation</url>
  </repository>

  <mailingLists>
    <mailingList>
      <name>Commons Dev List</name>
      <subscribe>commons-dev-subscribe@jakarta.apache.org</subscribe>
      <unsubscribe>commons-dev-unsubscribe@jakarta.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=commons-dev@jakarta.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Commons User List</name>
      <subscribe>commons-user-subscribe@jakarta.apache.org</subscribe>
      <unsubscribe>commons-user-unsubscribe@jakarta.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=commons-user@jakarta.apache.org</archive>
    </mailingList>
  </mailingLists>

  <dependencies>

    <!-- used for unit tests -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <properties>
       <scope>test</scope>
       <comment>
        Required only for testing.
       </comment>
      </properties>
    </dependency>

    <!-- used for unit tests -->
    <dependency>
      <groupId>jdepend</groupId>
      <artifactId>jdepend</artifactId>
      <version>2.5</version>
      <properties>
       <scope>test</scope>
       <comment>
        Required only for testing.
       </comment>
      </properties>
    </dependency>

  </dependencies>

  <build>
    <nagEmailAddress>commons-dev@jakarta.apache.org</nagEmailAddress>
    <sourceDirectory>src/java</sourceDirectory>
    <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
    <integrationUnitTestSourceDirectory/>
    <aspectSourceDirectory/>
    <resources>
        <resource>
          <directory>src/java/org/apache/commons/cli/avalon</directory>
          <targetPath>org/apache/commons/cli/avalon</targetPath>
          <includes>
            <include>**/*.properties</include>
          </includes>
        </resource>
    </resources>

    <!-- Unit test classes -->
    <unitTest>
      <includes>
        <include>**/Test*.java</include>
        <include>**/*Test.java</include>
      </includes>
    </unitTest>
  </build>

  <reports>
    <!--report>maven-developer-activity-plugin</report-->
    <!--report>maven-file-activity-plugin</report-->
    <!--report>maven-changelog-plugin</report-->
    <!--report>maven-changes-plugin</report-->
    <report>maven-jdepend-plugin</report>
    <report>maven-checkstyle-plugin</report>
    <report>maven-javadoc-plugin</report>
    <report>maven-jdepend-plugin</report>
    <report>maven-junit-report-plugin</report>
    <report>maven-jxr-plugin</report>
    <report>maven-license-plugin</report>
    <report>maven-tasklist-plugin</report>
    <report>maven-pmd-plugin</report>
    <!--report>maven-simian-plugin</report>
    <report>maven-faq-plugin</report>
    <report>maven-jcoverage-plugin</report-->
    <!--report>maven-tasks-plugin</report-->
    <!--report>maven-findbugs-plugin</report-->
  </reports>
</project>
