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

<project>
  <pomVersion>3</pomVersion>
  <name>FileUpload</name>
  <id>commons-fileupload</id>
  <currentVersion>1.0-dev</currentVersion>

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

  <inceptionYear>2002</inceptionYear>
  <package>org.apache.commons.fileupload</package>
  <shortDescription>Commons File Upload</shortDescription>

  <gumpRepositoryId>jakarta</gumpRepositoryId>

  <description>
    File upload component.
  </description>
  
  <url>http://jakarta.apache.org/commons/fileupload/</url>
  <issueTrackingUrl>http://issues.apache.org/scarab/servlet/scarab/</issueTrackingUrl>
  <siteAddress>jakarta.apache.org</siteAddress>
  <siteDirectory>/www/jakarta.apache.org/commons/fileupload/</siteDirectory>
  <distributionDirectory>/www/jakarta.apache.org/builds/jakarta-commons/fileupload/</distributionDirectory>

  <repository>
    <connection>scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:jakarta-commons/fileupload/</connection>
    <url>http://cvs.apache.org/viewcvs/jakarta-commons/fileupload/</url>
  </repository>

  <mailingLists>
    <mailingList>
      <name>Commons User List</name>
      <subscribe>commons-user-subscribe@jakarta.apache.org</subscribe>
      <unsubscribe>commons-user-unsubscribe@jakarta.apache.org</unsubscribe>
      <archive>http://archives.apache.org/eyebrowse/SummarizeList?listName=commons-user@jakarta.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Commons Developer List</name>
      <subscribe>mailto:commons-dev-subscribe@jakarta.apache.org</subscribe>
      <unsubscribe>mailto:commons-dev-unsubscribe@jakarta.apache.org</unsubscribe>
      <archive>http://archives.apache.org/eyebrowse/SummarizeList?listName=commons-dev@jakarta.apache.org</archive>
    </mailingList>
  </mailingLists>
  
  <developers>
    <developer>
      <name>Martin Cooper</name>
      <id>martinc</id>
      <email>martin.cooper@tumbleweed.com</email>
      <organization>Tumbleweed Communications</organization>
    </developer>
    <developer>
      <name>dIon Gillard</name>
      <id>dion</id>
      <email>dion@apache.org</email>
      <organization>Multitask Consulting</organization>
    </developer>
    <developer>
      <name>John McNally</name>
      <id>jmcnally</id>
      <email>jmcnally@collab.net</email>
      <organization>CollabNet</organization>
    </developer>
    <developer>
      <name>Daniel Rall</name>
      <id>dlr</id>
      <email>dlr@finemaltcoding.com</email>
      <organization>CollabNet</organization>
    </developer>
    <developer>
      <name>Jason van Zyl</name>
      <id>jvanzyl</id>
      <email>jason@zenplex.com</email>
      <organization>Zenplex</organization>
    </developer>
  </developers>
  
  <dependencies>
    <dependency>
      <id>commons-beanutils</id>
      <version>1.3</version>
    </dependency>
    <dependency>
      <id>junit</id>
      <version>3.8.1</version>
    </dependency>
    <dependency>
      <id>servletapi</id>
      <version>2.3</version>
    </dependency>
  </dependencies>
  
  <build>

    <nagEmailAddress>commons-dev@jakarta.apache.org</nagEmailAddress>

    <sourceDirectory>src/java</sourceDirectory>
    <aspectSourceDirectory/>

    <unitTestSourceDirectory>src/test</unitTestSourceDirectory>

    <unitTest>
      <includes>
        <include>**/*Test.java</include>
      </includes>
    </unitTest>

    <integrationUnitTestSourceDirectory>src/rttest</integrationUnitTestSourceDirectory>
    <integrationUnitTestPatterns>
      <integrationUnitTestPattern>include = **/*Test.java</integrationUnitTestPattern>
    </integrationUnitTestPatterns>

    <jarResources>
    </jarResources>
  
    <jars/>
  
  </build>
</project>
