<?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>

	<pomVersion>3</pomVersion>
	<name>JCS</name>
	<id>jcs</id>
	<currentVersion>1.3.1.0-RC</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/jcs/</url>
	<issueTrackingUrl>
		http://issues.apache.org/jira/browse/JCS
	</issueTrackingUrl>
	<siteAddress>people.apache.org</siteAddress>
	<siteDirectory>/www/jakarta.apache.org/jcs/</siteDirectory>
    <distributionSite>www.apache.org</distributionSite>
    <distributionDirectory>
        /www/www.apache.org/dist/java-repository
    </distributionDirectory>

	<repository>
		<connection>
			scm:svn:http://svn.apache.org/repos/asf/jakarta/jcs/trunk/
		</connection>
		<developerConnection>
			scm:svn:https://svn.apache.org/repos/asf/jakarta/jcs/trunk/
		</developerConnection>
		<url>http://svn.apache.org/viewcvs.cgi/jakarta/jcs/trunk/</url>
	</repository>

	<mailingLists>
		<mailingList>
			<name>JCS User List</name>
			<subscribe>
				jcs-users-subscribe@jakarta.apache.org
			</subscribe>
			<unsubscribe>
				jcs-users-unsubscribe@jakarta.apache.org
			</unsubscribe>
			<archive>
				http://mail-archives.apache.org/mod_mbox/jakarta-jcs-users/
			</archive>
		</mailingList>
		<mailingList>
			<name>JCS Developer List</name>
			<subscribe>jcs-dev-subscribe@jakarta.apache.org</subscribe>
			<unsubscribe>
				jcs-dev-unsubscribe@jakarta.apache.org
			</unsubscribe>
			<archive>
				http://mail-archives.apache.org/mod_mbox/jakarta-jcs-dev/
			</archive>
		</mailingList>
		<mailingList>
			<name>OLD User list</name>
			<subscribe></subscribe>
			<unsubscribe></unsubscribe>
			<archive>
				http://mail-archives.apache.org/mod_mbox/jakarta-turbine-jcs-user/
			</archive>
		</mailingList>
		<mailingList>
			<name>OLD Developer list</name>
			<subscribe></subscribe>
			<unsubscribe></unsubscribe>
			<archive>
				http://mail-archives.apache.org/mod_mbox/jakarta-turbine-jcs-dev/
			</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>
		<contributor>
			<name>Scott Eade</name>
			<email>seade@backstagetech.com.au</email>
		</contributor>
		<contributor>
			<name>Michael Stevens</name>
			<email>mstevens@etla.org</email>
		</contributor>
		<contributor>
			<name>Thomas Vandahl</name>
			<email>tv@apache.org</email>
		</contributor>
	</contributors>

	<dependencies>

		<!--  For comparative performance tests only -->
		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2</version>
			<url>http://jakarta.apache.org/commons/collections/</url>
			<type>jar</type>
		</dependency>

		<dependency>
			<groupId>commons-configuration</groupId>
			<artifactId>commons-configuration</artifactId>
			<version>1.4</version>
			<url>http://jakarta.apache.org/commons/configuration/</url>
			<type>jar</type>
		</dependency>

		<!--  REQUIRED FOR JCS CORE -->
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1</version>
			<url>http://jakarta.apache.org/commons/logging/</url>
			<type>jar</type>
		</dependency>

		<!--  REQUIRED FOR JCS CORE -->
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.1</version>
			<url>http://jakarta.apache.org/commons/lang/</url>
			<type>jar</type>
		</dependency>

		<!--  JDBC DISK CACHE -->
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.2.2</version>
			<url>http://jakarta.apache.org/commons</url>
			<type>jar</type>
		</dependency>

		<!--  JDBC DISK CACHE -->
		<dependency>
			<groupId>commons-pool</groupId>
			<artifactId>commons-pool</artifactId>
			<version>1.3</version>
			<url>http://jakarta.apache.org/commons</url>
			<type>jar</type>
		</dependency>

		<!--  REQUIRED FOR JCS CORE -->
		<dependency>
			<groupId>concurrent</groupId>
			<artifactId>concurrent</artifactId>
			<!-- Using old release for now while JDK 1.3 is supported. -->
			<version>1.0</version>
			<url>
				http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
			</url>
			<type>jar</type>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>3.0.10</version>
			<url></url>
			<type>jar</type>
		</dependency>

		<dependency>
			<groupId>hsqldb</groupId>
			<artifactId>hsqldb</artifactId>
			<version>1.7.3.3</version>
			<!-- <version>1.8.0.7</version> -->
			<url>http://hsqldb.sourceforge.net/</url>
			<type>jar</type>
		</dependency>

		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.12</version>
			<url>http://logging.apache.org/log4j/</url>
			<type>jar</type>
		</dependency>

		<dependency>
			<groupId>servletapi</groupId>
			<artifactId>servletapi</artifactId>
			<version>2.3</version>
			<url>http://java.sun.com/products/servlet/</url>
			<type>jar</type>
		</dependency>

		<!-- LGPL! -->
		<!--
		<dependency>
			<groupId>jgroups</groupId>
			<artifactId>jgroups-all</artifactId>
			<version>2.2.8</version>
			<url></url>
			<type>jar</type>
		</dependency>
		-->

		<dependency>
			<groupId>tomcat</groupId>
			<artifactId>tomcat-util</artifactId>
			<version>3.2.1</version>
			<url>http://tomcat.apache.org/</url>
			<type>jar</type>
		</dependency>

		<dependency>
			<groupId>velocity</groupId>
			<artifactId>velocity</artifactId>
			<version>1.5</version>
			<url>http://jakarta.apache.org/velocity/</url>
			<type>jar</type>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<url>http://www.junit.org/</url>
			<type>jar</type>
		</dependency>

		<dependency>
			<groupId>xmlrpc</groupId>
			<artifactId>xmlrpc</artifactId>
			<version>2.0</version>
			<url>http://ws.apache.org/xmlrpc/</url>
			<type>jar</type>
		</dependency>

		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xercesImpl</artifactId>
			<version>2.6.2</version>
			<url>http://xml.apache.org/xerces2-j/</url>
			<type>jar</type>
		</dependency>

		<dependency>
			<groupId>xml-apis</groupId>
			<artifactId>xml-apis</artifactId>
			<version>2.0.2</version>
			<url>http://xml.apache.org/commons/</url>
			<type>jar</type>
		</dependency>

		<dependency>
			<groupId>berkeleydb</groupId>
			<artifactId>berkeleydb</artifactId>
			<version>1.5.1</version>
			<url></url>
			<type>jar</type>
		</dependency>
	</dependencies>

	<build>
		<sourceDirectory>src/java</sourceDirectory>
		<unitTestSourceDirectory>src/test</unitTestSourceDirectory>
		<!-- aspectSourceDirectories></aspectSourceDirectories -->
		<unitTest>
			<includes>
				<include>**/*${test}Test.java</include>
			</includes>
			<excludes>
				<!-- Several of the test cases rely on background tasks that are timing sensitive. -->
				<!-- You need to manually run these test cases. -->
				<exclude>**/BlockDiskElementDescriptorUnitTest.java</exclude> 
				<exclude>**/HSQLDiskCacheConcurrentUnitTest.java</exclude> 
				<exclude>**/HSQLDiskCacheUnitTest.java</exclude>
				<exclude>**/IndexedDiskCacheOptimizationUnitTest.java</exclude>
				<exclude>**/TestTCPLateralUnitTest.java</exclude>
				<exclude>**/UDPDiscoveryUnitTest.java</exclude>
				<!-- The ones that fail may be different for you. -->
				<!-- <exclude>**/JDBCDiskCacheRemovalUnitTest.java</exclude> -->
				<!-- <exclude>**/JDBCDiskCacheUnitTest.java</exclude> -->
			</excludes>
			<resources>
				<resource>
					<directory>src/test-conf</directory>
					<includes>
						<include>**/*.properties</include>
						<include>**/*.ccf</include>
					</includes>
				</resource>
			</resources>
		</unitTest>
        <resources>
            <resource>
                <directory>${basedir}</directory>
                <targetPath>META-INF</targetPath>
                <includes>
                  <include>NOTICE</include>
                  <include>LICENSE.xerox</include>
                </includes>
            </resource>
        </resources>
	</build>

	<reports>
		<report>maven-jdepend-plugin</report>
		<report>maven-checkstyle-plugin</report>
		<report>maven-changes-plugin</report>
		<report>maven-jcoverage-plugin</report>
		<report>maven-javadoc-plugin</report>
		<report>maven-jxr-plugin</report>
		<report>maven-junit-report-plugin</report>
		<report>maven-tasklist-plugin</report>
		<report>maven-pmd-plugin</report>
		<report>maven-simian-plugin</report>
		<report>maven-faq-plugin</report>
	</reports>

</project>
