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

<project>

  <pomVersion>3</pomVersion>
  <name>JCS</name>
  <id>jcs</id>
  <currentVersion>1.2.5-dev</currentVersion>
  <organization>
    <name>Apache Software Foundation</name>
    <url>http://jakarta.apache.org/</url>
    <logo>/images/jakarta.png</logo>
  </organization>
  <inceptionYear>2002</inceptionYear>
  <package>org.apache.jcs</package>
  <logo></logo>


  <gumpRepositoryId>jakarta</gumpRepositoryId>


  <shortDescription>Cache</shortDescription>
  <description>Comprehensive Caching System</description>
  <url>http://jakarta.apache.org/turbine/jcs/</url>
  <issueTrackingUrl>http://issues.apache.org/scarab/servlet/scarab/</issueTrackingUrl>
  <siteAddress>minotaur.apache.org</siteAddress>
  <siteDirectory>/www/jakarta.apache.org/turbine/jcs/</siteDirectory>
  <distributionDirectory>/www/jakarta.apache.org/builds/jakarta-turbine-jcs/</distributionDirectory>


  <repository>
    <connection>scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:jakarta-turbine-jcs</connection>
    <developerConnection>scm:cvs:ext:${maven.username}@cvs.apache.org:/home/cvs:jakarta-turbine-jcs</developerConnection>
    <url>http://cvs.apache.org/viewcvs/jakarta-turbine-jcs/</url>
  </repository>


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


  <developers>
    <developer>
      <name>Aaron Smuts</name>
      <id>asmuts</id>
      <email>asmuts@apache.org</email>
      <organization/>
    </developer>
    <developer>
      <name>James Taylor</name>
      <id>jtaylor</id>
      <email>james@jamestaylor.org</email>
      <organization/>
    </developer>
    <developer>
      <name>Hanson Char</name>
      <id>hchar</id>
      <email>hchar@apache.org</email>
      <organization/>
    </developer>
    <developer>
      <name>Travis Savo</name>
      <id>tsavo</id>
      <email>tsavo@ifilm.com</email>
      <organization>IFilm</organization>
    </developer>
  </developers>

  <contributors>
  </contributors>


  <dependencies>
    <dependency>
      <id>commons-collections</id>
      <version>3.0</version>
    </dependency>
    <dependency>
      <id>commons-configuration</id>
      <version>20030706.202021</version>
    </dependency>
    <dependency>
      <id>commons-logging</id>
      <version>1.0.3</version>
    </dependency>
    <dependency>
      <id>commons-lang</id>
      <version>2.0</version>
    </dependency>
    <dependency>
      <id>concurrent</id>
      <version>1.0</version>
    </dependency>
    <dependency>
      <id>hsqldb</id>
      <version>1.7.1</version>
    </dependency>
    <dependency>
      <id>log4j</id>
      <version>1.2.8</version>
    </dependency>
    <dependency>
      <id>servletapi</id>
      <version>2.2</version>
    </dependency>
    <dependency>
      <id>javagroups</id>
      <jar>jgroups-all-2.2.jar</jar>
    </dependency>
    <dependency>
      <id>jisp</id>
      <version>2.5.1</version>
    </dependency>
    <dependency>
      <id>tomcat</id>
      <version>3.2.1</version>
      <jar>tomcat-util-3.2.1.jar</jar>
    </dependency>
    <dependency>
      <id>velocity</id>
      <version>1.4</version>
    </dependency>
    <dependency>
      <id>junit</id>
      <version>3.8.1</version>
    </dependency>
    <dependency>
      <id>xmlrpc</id>
      <version>1.2-b1</version>
      <url>http://xml.apache.org/xmlrpc/</url>
    </dependency>
    <dependency>
      <id>xerces:xercesImpl</id>
      <version>2.6.2</version>
      <url>http://xml.apache.org/xerces2-j/</url>
    </dependency>
    <dependency>
      <id>xml-apis</id>
      <version>2.0.2</version>
      <url>http://xml.apache.org/commons/</url>
    </dependency>
    <dependency>
      <id>struts</id>
      <version>1.1</version>
      <jar>struts-1.1.jar</jar>
    </dependency>
    <dependency>
      <id>berkeleydb</id>
      <version>1.5.0</version>
    </dependency>
  </dependencies>


  <build>
    <sourceDirectory>src/java</sourceDirectory>
    <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
    <aspectSourceDirectories></aspectSourceDirectories>
    <resources/>
    <unitTest>
      <includes>
        <include>**/TestDiskCacheNoMemory.java</include>
        <include>**/TestJCS.java</include>
        <include>**/TestSimpleLoad.java</include>
        <include>**/TestDiskCache.java</include>
        <include>**/TestDiskCacheConcurrent.java</include>
        <include>**/TestDiskCacheConcurrentForDeadLock.java</include>
        <include>**/TestTCPLateralCache.java</include>
	    <include>**/TestJCSvHashtablePerf.java</include>
        <include>**/TestEventQueueConcurrent.java</include>
        <include>**/TestSimpleEventHandling.java</include>
      </includes>
      <resources>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.ccf</include>
        </includes>
      </resources>
    </unitTest>
    <jars></jars>
  </build>


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

</project>
