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

<project>
  <pomVersion>3</pomVersion>
  <id>struts-contrib-master</id>
  <name>Struts Contrib Master Maven POM</name>
  <currentVersion>1.0</currentVersion>

  <organization>
    <name>The Apache Software Foundation</name>
    <url>http://www.apache.org</url>
    <inceptionYear>2000</inceptionYear>
      <logo>http://jakarta.apache.org/images/jakarta-logo.gif</logo>
  </organization>
  <logo>http://jakarta.apache.org/struts/images/struts.gif</logo>
  <inceptionYear>2000</inceptionYear>
  <package>org.apache.struts</package>
  <gumpRepositoryId>jakarta</gumpRepositoryId>

  <url>http://jakarta.apache.org/struts/contrib/${pom.artifactId.substring(8)}/index.html</url>
  <issueTrackingUrl>http://issues.apache.org/</issueTrackingUrl>
  
  <siteAddress>jakarta.apache.org/struts</siteAddress>
  <siteDirectory>/www/jakarta.apache.org/struts/contrib/${pom.artifactId.substring(8)}/</siteDirectory>
  <distributionDirectory>/www/jakarta.apache.org/builds/jakarta-commons-sandbox/${pom.artifactId.substring(8)}/</distributionDirectory>

<!--  FIX ME
  <repository>
    <connection>scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:jakarta-struts/contrib/${pom.artifactId.substring(8)}</connection>
    <url>http://cvs.apache.org/viewcvs/jakarta-struts/contrib/${pom.artifactId.substring(8)}/</url>
  </repository>
-->
    <mailingLists>
      <mailingList>
        <name>Struts User List</name>
        <subscribe>
          struts-user-subscribe@jakarta.apache.org
        </subscribe>
        <unsubscribe>
          struts-user-unsubscribe@jakarta.apache.org
        </unsubscribe>
        <archive>
          http://mail-archives.apache.org/eyebrowse/SummarizeList?listId=42
        </archive>
      </mailingList>
      <mailingList>
        <name>Struts Developer List</name>
        <subscribe>
          struts-dev-subscribe@jakarta.apache.org
        </subscribe>
        <unsubscribe>
          struts-dev-unsubscribe@jakarta.apache.org
        </unsubscribe>
        <archive>
          http://mail-archives.apache.org/eyebrowse/SummarizeList?listId=41
        </archive>
      </mailingList>
    </mailingLists>

    <dependencies>
      <dependency>
        <id>commons-beanutils</id>
        <version>1.6.1</version>
        <url>http://jakarta.apache.org/commons/beanutils.html</url>
        <properties><war.bundle>true</war.bundle></properties>
      </dependency>

      <dependency>
        <id>commons-collections</id>
        <version>2.1</version>
        <url>http://jakarta.apache.org/commons/collections.html</url>
        <properties><war.bundle>true</war.bundle></properties>
      </dependency>

      <dependency>
        <id>commons-digester</id>
        <version>1.5</version>
        <url>http://jakarta.apache.org/commons/digester.html</url>
        <properties><war.bundle>true</war.bundle></properties>
      </dependency>

      <dependency>
        <id>commons-fileupload</id>
        <version>1.0</version>
        <url>http://jakarta.apache.org/commons/fileupload.html</url>
        <properties><war.bundle>true</war.bundle></properties>
      </dependency>

      <dependency>
        <id>commons-logging</id>
        <version>1.0.3</version>
        <url>http://jakarta.apache.org/commons/logging.html</url>
        <properties><war.bundle>true</war.bundle></properties>
      </dependency>

      <!--
      <dependency>
        <id>commons-validator</id>
        <version>SNAPSHOT</version>
        <url>http://jakarta.apache.org/commons/validator.html</url>
      </dependency>
      -->

      <dependency>
        <id>commons-validator</id>
        <version>1.1.1-dev</version>
        <url>http://jakarta.apache.org/commons/validator.html</url>
        <properties><war.bundle>true</war.bundle></properties>
      </dependency>

      <dependency>
        <id>oro</id>
        <version>2.0.7</version>
        <url>http://jakarta.apache.org/oro/</url>
        <properties><war.bundle>true</war.bundle></properties>
      </dependency>

      <dependency>
        <id>xml-apis</id>
        <version>2.0.2</version>
        <url>http://xml.apache.org/commons/</url>
        <properties><war.bundle>true</war.bundle></properties>
      </dependency>

      <dependency>
        <groupId>antlr</groupId>
        <artifactId>antlr</artifactId>
        <version>2.7.2</version>
        <properties><war.bundle>true</war.bundle></properties>
      </dependency>

      <dependency>
        <id>servletapi</id>
        <version>2.2</version>
      </dependency>

      <dependency>
        <id>jakarta-struts</id>
        <version>1.2-dev</version>
        <url>http://jakarta.apache.org/struts/index.html</url>
        <properties><war.bundle>true</war.bundle></properties>
      </dependency>

      <!-- for unit tests -->
      <dependency>
        <id>junit</id>
        <version>3.8.1</version>
        <url>http://www.junit.org</url>
      </dependency>

      <dependency>
        <id>commons-lang</id>
        <version>2.0</version>
        <url>http://jakarta.apache.org/commons/lang.html</url>
      </dependency>

      <dependency>
        <groupId>cactus</groupId>
        <artifactId>cactus</artifactId>
        <version>12-1.4.1</version>
        <url>http://jakarta.apache.org/cactus</url>
      </dependency>
      <dependency>
        <groupId>cactus</groupId>
        <artifactId>cactus-ant</artifactId>
        <version>1.4.1</version>
        <url>http://jakarta.apache.org/cactus</url>
      </dependency>

      <!-- for tld generation -->
      <dependency>
          <groupId>xalan</groupId>
          <artifactId>xalan</artifactId>
          <version>2.5.1</version>
          <url>http://xml.apache.org/xalan</url>
      </dependency>
    </dependencies>

  <build>
    <nagEmailAddress>struts-dev@jakarta.apache.org</nagEmailAddress>
    <sourceDirectory>src/java</sourceDirectory>
    <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
    <integrationUnitTestSourceDirectory/>
    <aspectSourceDirectory/>

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

    <!-- Integration unit test classes -->
    <integrationUnitTestPatterns></integrationUnitTestPatterns>
    
    <resources>
      <includes>
        <include>**/*.properties</include>
      </includes>
    </resources>
    
    <jars></jars>

  </build>

</project>
