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

<!--
   Copyright 2003-2005 The Apache Software Foundation

   Licensed 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.
  -->
<!-- $Revision$ $Date$ -->

<project>
  <pomVersion>3</pomVersion>
  <name>Math</name>
  <id>commons-math</id>
  <currentVersion>1.1-RC1</currentVersion>
  <inceptionYear>2003</inceptionYear>
  <shortDescription>Jakarta Commons Math</shortDescription>
  <description>The Math project is a library of lightweight, self-contained mathematics and statistics components addressing the most common practical problems not immediately available in the Java programming language or commons-lang.</description>
  <logo>/images/math.gif</logo>
  <url>http://jakarta.apache.org/commons/${pom.artifactId.substring(8)}/</url>
  <package>org.apache.commons.${pom.artifactId.substring(8)}</package>
  <organization>
    <name>The Apache Software Foundation</name>
    <url>http://jakarta.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/bugzilla/enter_bug.cgi?reporter=&amp;product=Commons&amp;version=unspecified&amp;component=Math&amp;rep_platform=All&amp;op_sys=All&amp;priority=Other&amp;bug_severity=normal&amp;bug_status=NEW&amp;assigned_to=&amp;cc=&amp;bug_file_loc=&amp;short_desc=%5Bpatch%5D+%22Your+subject+heading+here%22&amp;comment=Please+provide+details+here.+Its+best+to+submit+patches+that+alter+existing+file%0D%0Acontent+in+%22unified+cvs+diff%22+format.+%0D%0A%0D%0ASubmissions+that+provide+new+files+can+be+supplied+as+direct+file+attachments+or%0D%0Aarchives+in+zip+or+tar.gz+format.+please+be+kind+enough+to+identify+the+format%0D%0Aof+the+attached+archive+as+bugzill+tends+to+strip+these+characterstics+by%0D%0Aremoving+the+files+extension.&amp;maketemplate=Remember+values+as+bookmarkable+template&amp;form_name=enter_bug</issueTrackingUrl>
  <siteAddress>cvs.apache.org</siteAddress>
  <siteDirectory>/www/jakarta.apache.org/commons/${pom.artifactId.substring(8)}/</siteDirectory>
  <distributionDirectory>/www/jakarta.apache.org/builds/jakarta-commons/${pom.artifactId.substring(8)}/</distributionDirectory>
  <repository>
    <connection>scm:svn:http://svn.apache.org/repos/asf/jakarta/commons/proper/${pom.artifactId.substring(8)}/trunk</connection>
    <url>http://svn.apache.org/viewcvs.cgi/jakarta/commons/proper/math/trunk/</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.eu.apache.org/mod_mbox/jakarta-commons-dev/</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.eu.apache.org/mod_mbox/jakarta-commons-user/</archive>
    </mailingList>
  </mailingLists>
  <versions>
    <version>
      <id>1.0-RC1</id>
      <name>1.0</name>
      <tag>MATH_1_0_RC1</tag>
    </version>
    <version>
      <id>1.0-RC2</id>
      <name>1.0</name>
      <tag>MATH_1_0_RC2</tag>
    </version>
    <version>
      <id>1.0</id>
      <name>1.0</name>
      <tag>MATH_1_0</tag>
    </version>
    <version>
      <id>1.1-RC1</id>
      <name>1.1</name>
      <tag>MATH_1_1_RC1</tag>
    </version>
  </versions>
  <developers>
    <developer>
      <name>Albert Davidson Chou</name>
      <id>achou</id>
      <email>achou at apache dot org</email>
    </developer>
    <developer>
      <name>Mark Diggory</name>
      <id>mdiggory</id>
      <email>mdiggory at apache dot org</email>
    </developer>
    <developer>
      <name>Robert Burrell Donkin</name>
      <id>rdonkin</id>
      <email>rdonkin at apache dot org</email>
    </developer>
    <developer>
      <name>Tim O'Brien</name>
      <id>tobrien</id>
      <email>tobrien at apache dot org</email>
    </developer>
    <developer>
      <name>J. Pietschmann</name>
      <id>pietsch</id>
      <email>j3322ptm at yahoo dot de</email>
    </developer>
    <developer>
      <name>Phil Steitz</name>
      <id>psteitz</id>
      <email>psteitz at apache dot org</email>
    </developer>
    <developer>
      <name>Brent Worden</name>
      <id>brentworden</id>
      <email>brentworden at apache dot org</email>
    </developer>
  </developers>
  <contributors>
    <contributor>
      <name>C. Scott Ananian</name>
    </contributor>
    <contributor>
      <name>Rodrigo di Lorenzo Lopes</name>
    </contributor>
    <contributor>
      <name>Ken Geis</name>
    </contributor>
    <contributor>
      <name>Piotr Kochanski</name>
    </contributor>
    <contributor>
      <name>Fredrik Norin</name>
    </contributor>
    <contributor>
      <name>Christopher Schuck</name>
    </contributor>
    <contributor>
      <name>Kim van der Linde</name>
    </contributor>
    <contributor>
      <name>Jörg Weimar</name>
    </contributor>
  </contributors>
  <dependencies>
    <dependency>
      <id>commons-logging</id>
      <version>1.0.3</version>
    </dependency>
    <dependency>
      <id>commons-discovery</id>
      <version>0.2</version>
    </dependency>
  </dependencies>
  <build>
    <nagEmailAddress>commons-dev@jakarta.apache.org</nagEmailAddress>
    <sourceDirectory>src/java</sourceDirectory>
    <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
    <unitTest>
      <includes>
        <include>**/*Test.java</include>
      </includes>
      <excludes>
        <exclude>**/*AbstractTest.java</exclude>
      </excludes>
      <resources>
        <resource>
          <directory>${pom.build.unitTestSourceDirectory}</directory>
          <includes>
            <include>**/*.xml</include>
            <include>**/*.txt</include>
          </includes>
        </resource>
      </resources>
    </unitTest>
    <resources>
      <resource>
        <directory>${basedir}</directory>
        <includes>
          <include>NOTICE.txt</include>
        </includes>
        <targetPath>META-INF</targetPath>
      </resource>
    </resources>
  </build>
  <reports>
    <report>maven-changes-plugin</report>
    <!--
    <report>maven-changelog-plugin</report>
    <report>maven-checkstyle-plugin</report>
    <report>maven-clover-plugin</report>
    <report>maven-developer-activity-plugin</report>
    <report>maven-file-activity-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-linkcheck-plugin</report>
    -->

  </reports>
</project>
