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

     https://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.    
-->
<ivy-module version="1.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"            
            xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
    <info organisation="org.apache.ivy"
           module="ivy"
           status="release">
        <description homepage="http://ant.apache.org/ivy/">
        Apache Ivy is a tool for managing (recording, tracking, resolving and reporting) project dependencies.
        </description>
    </info>
    <configurations defaultconfmapping="*->default">
        <conf name="core" description="only ivy jar, without any dependencies"/>
        <conf name="httpclient" extends="core" description="core + optional httpclient for better http handling"/>
        <conf name="oro" extends="core" description="to use optional glob matcher"/>
        <conf name="vfs" extends="core" description="core + optional VirtualFileSystem(VFS) support" />
        <conf name="sftp" extends="core" description="core + optional SFTP support" />
        <conf name="standalone" extends="core" description="to launch in standalone mode (from command line)"/>
        <conf name="ant" extends="core" description="core + ant jar provided as a dependency"/>
        <conf name="default" extends="core" description="full ivy with all dependencies"/>
        <conf name="test" description="dependencies used for junit testing ivy" visibility="private"/>
        <conf name="source" description="ivy sources"/>
    </configurations>
    <publications>
        <artifact name="ivy" type="jar" conf="core"/>
        <artifact name="ivy" type="source" ext="jar" conf="source"/>
    </publications>
    <!-- Definition of the version is done in version.properties -->
    <dependencies>
        <dependency org="org.apache.ant" name="ant" rev="${apache-ant.version}" conf="default,ant"/>
        <dependency org="org.apache.httpcomponents" name="httpclient" rev="${httpclient.version}" conf="default,httpclient->runtime,master"/>
        <dependency org="oro" name="oro" rev="${oro.version}" conf="default,oro"/>
        <dependency org="org.apache.commons" name="commons-vfs2" rev="${commons-vfs2.version}" conf="default,vfs"/>
        <dependency org="com.jcraft" name="jsch" rev="${jsch.version}" conf="default,sftp"/>
        <dependency org="com.jcraft" name="jsch.agentproxy" rev="${jsch.agentproxy.version}" conf="default,sftp"/>
        <dependency org="com.jcraft" name="jsch.agentproxy.connector-factory" rev="${jsch.agentproxy.version}" conf="default,sftp"/>
        <dependency org="com.jcraft" name="jsch.agentproxy.jsch" rev="${jsch.agentproxy.version}" conf="default,sftp"/>
        <dependency org="org.bouncycastle" name="bcpg-jdk15on" rev="${bouncycastle.version}" conf="default"/>
        <dependency org="org.bouncycastle" name="bcprov-jdk15on" rev="${bouncycastle.version}" conf="default"/>

        <!-- Test dependencies -->
        <dependency org="junit" name="junit" rev="${junit.version}" conf="test"/>
        <dependency org="org.hamcrest" name="hamcrest-core" rev="${hamcrest.version}" conf="test"/>
        <dependency org="org.hamcrest" name="hamcrest-library" rev="${hamcrest.version}" conf="test"/>
        <dependency org="org.apache.ant" name="ant-testutil" rev="${apache-ant.version}" conf="test" transitive="false"/>
        <dependency org="org.apache.ant" name="ant-launcher" rev="${apache-ant.version}" conf="test" transitive="false"/>
        <dependency org="org.apache.ant" name="ant-junit" rev="${apache-ant.version}" conf="test" transitive="false"/>
        <dependency org="org.apache.ant" name="ant-junit4" rev="${apache-ant.version}" conf="test" transitive="false"/>
        <dependency org="ant-contrib" name="ant-contrib" rev="${ant-contrib.version}" conf="test" transitive="false"/>
        <dependency org="xmlunit" name="xmlunit" rev="${xmlunit.version}" conf="test" transitive="false"/>

        <!-- Global excludes -->
        <exclude org="junit" module="junit" conf="core,default,httpclient,oro,vfs,sftp,standalone,ant"/>
        <exclude org="org.hamcrest" module="hamcrest-core" conf="core,default,httpclient,oro,vfs,sftp,standalone,ant"/>
        <!-- Exclude the whole outdated commons-httpclient org -->
        <exclude org="commons-httpclient" conf="*"/>
    </dependencies>
</ivy-module>
