<?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>Commons VFS</name>
    <groupId>commons-vfs</groupId>
    <artifactId>commons-vfs</artifactId>
    <logo>/images/vfs-logo-white.png</logo>
    <url>http://jakarta.apache.org/commons/vfs/</url>
    <currentVersion>1.0-RC8-SNAPSHOT</currentVersion>
    <inceptionYear>2002</inceptionYear>
    <package>org.apache.commons.vfs</package>
    <shortDescription>Commons VFS</shortDescription>

    <description>
        VFS is a Virtual File System library.
    </description>

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

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>/LICENSE.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
    <issueTrackingUrl>http://issues.apache.org/jira/</issueTrackingUrl>
    <siteAddress>people.apache.org</siteAddress>
        <siteDirectory>/www/jakarta.apache.org/commons/vfs/</siteDirectory>
    <!--
    <siteDirectory>public_html/vfs-1.0-RC7/site</siteDirectory>
    -->
    <distributionDirectory>/www/jakarta.apache.org/builds/jakarta-commons/vfs/</distributionDirectory>
    <repository>
        <connection>scm:svn:http://svn.apache.org/repos/asf/jakarta/commons/proper/vfs/trunk</connection>
        <url>http://svn.apache.org/viewvc</url>
    </repository>
    <mailingLists>
        <mailingList>
            <name>Commons Dev List</name>
            <subscribe>commons-dev-subscribe@jakarta.apache.org</subscribe>
            <unsubscribe>commons-dev-unsubscribe@jakarta.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/jakarta-commons-dev/</archive>
        </mailingList>
        <mailingList>
            <name>Commons User List</name>
            <subscribe>commons-user-subscribe@jakarta.apache.org</subscribe>
            <unsubscribe>commons-user-unsubscribe@jakarta.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/jakarta-commons-user/</archive>
        </mailingList>
    </mailingLists>

    <developers>
        <developer>
            <name>Adam Murdoch</name>
            <id>adammurdoch</id>
            <email>adammurdoch -at- apache.org</email>
            <organization></organization>
        </developer>
        <developer>
            <name>James Strachan</name>
            <id>jstrachan</id>
            <email>jstrachan -at- apache.org</email>
            <organization>SpiritSoft, Inc.</organization>
        </developer>
        <developer>
            <name>Mario Ivankovits</name>
            <id>imario</id>
            <email>imario -at- apache.org</email>
            <organization>OPS EDV Gmbh</organization>
        </developer>
        <developer>
            <name>Rahul Akolkar</name>
            <id>rahul</id>
            <email>rahul -at- apache.org</email>
            <organization>Apache Software Foundation</organization>
        </developer>
    </developers>

    <contributors>
        <contributor>
            <name>Rami Ojares</name>
            <email>rami.ojares -at- elisa.fi</email>
        </contributor>
        <contributor>
            <name>Anthony Goubard</name>
            <email>adagoubard -at- chello.nl</email>
        </contributor>
        <contributor>
            <name>Christopher Ottley</name>
            <email>xknight -at- users.sourceforge.net</email>
        </contributor>
    </contributors>

    <dependencies>
        <dependency>
            <groupId>ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.6.2</version>
        </dependency>

        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>1.4.1</version>
        </dependency>

        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.0.4</version>
        </dependency>

        <!--TODO:Revert to [compress] if/when released
        <dependency>
            <groupId>commons-compress</groupId>
            <artifactId>commons-compress</artifactId>
            <version>SNAPSHOT</version>
        </dependency-->

        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.1</version>
        </dependency>

        <dependency>
            <groupId>jcifs</groupId>
            <artifactId>jcifs</artifactId>
            <version>0.8.3</version>
        </dependency>

        <dependency>
            <groupId>slide</groupId>
            <artifactId>jakarta-slide-webdavlib</artifactId>
            <version>20050629.161100</version>
        </dependency>

        <dependency>
            <groupId>jdom</groupId>
            <artifactId>jdom</artifactId>
            <version>1.0</version>
        </dependency>

        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>2.0.2</version>
        </dependency>

        <dependency>
            <groupId>com.jcraft</groupId>
            <artifactId>jsch</artifactId>
            <version>0.1.23</version>
        </dependency>

        <dependency>
            <groupId>xml-apis</groupId>
            <artifactId>xml-apis</artifactId>
            <version>1.0.b2</version>
        </dependency>

        <dependency>
            <groupId>oro</groupId>
            <artifactId>oro</artifactId>
            <version>2.0.8</version>
        </dependency>

        <dependency>
            <groupId>maven</groupId>
            <artifactId>maven-xdoc-plugin</artifactId>
            <version>1.9.2</version>
            <url>http://maven.apache.org/reference/plugins/xdoc/</url>
            <type>plugin</type>
            <properties>
              <comment>
                  &lt;strong&gt;Site&lt;/strong&gt; - Only
                  required for building the website/documentation.
              </comment>
            </properties>
        </dependency>

    </dependencies>

    <build>
        <sourceDirectory>core/src/main/java</sourceDirectory>

        <!-- Unit test classes -->
        <unitTestSourceDirectory>core/src/test/java</unitTestSourceDirectory>
        <unitTest>
            <includes>
                <include>**/test/*TestCase.java</include>
            </includes>
            <excludes>
                <exclude>**/test/Abstract*TestCase.java</exclude>
            </excludes>
        </unitTest>

        <!-- J A R  R E S O U R C E S -->
        <!-- Resources that are packaged up inside the JAR file -->
        <resources>
            <resource>
                <directory>core/src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}</directory>
                <targetPath>META-INF</targetPath>
                <includes>
                    <include>NOTICE.txt</include>
                </includes>
            </resource>
        </resources>
    </build>

    <reports>
        <!--<report>maven-changelog-plugin</report>-->
        <report>maven-changes-plugin</report>
        <!-- <report>maven-checkstyle-plugin</report> -->
        <!--
                <report>maven-clover-plugin</report>
        -->
        <!--
        <report>maven-developer-activity-plugin</report>
        <report>maven-file-activity-plugin</report>
        -->
        <report>maven-javadoc-plugin</report>
        <!--<report>maven-jellydoc-plugin</report>-->
        <report>maven-junit-report-plugin</report>
        <report>maven-jxr-plugin</report>
        <report>maven-license-plugin</report>
        <!-- <report>maven-linkcheck-plugin</report> -->
        <!-- <report>maven-statcvs-plugin</report> -->
        <report>maven-tasklist-plugin</report>
    </reports>

</project>
