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