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

<ivy-module version="1.0">
  <info organisation="org.apache.hadoop" module="${ant.project.name}" revision="${version}">
    <license name="Apache 2.0"/>
    <ivyauthor name="Apache Hadoop Team" url="http://hadoop.apache.org"/>
    <description>
        Hadoop Common
    </description>
  </info>
  <configurations defaultconfmapping="default">
    <!--these match the Maven configurations-->
    <conf name="default" extends="master,runtime"/>
    <conf name="master" description="contains the artifact but no dependencies"/>
    <conf name="runtime" description="runtime but not the artifact"
      extends="client,server,s3-server,kfs,mandatory,jetty,ftp"/>

    <conf name="mandatory" description="contains the critical  dependencies"
      extends="commons-logging,log4j"/>

    <!--
    These public configurations contain the core dependencies for running hadoop client or server.
    The server is effectively a superset of the client.
    -->
    <conf name="client" description="client-side dependencies"
      extends="mandatory,httpclient"/>
    <conf name="server" description="server-side dependencies"
      extends="client"/>
    <conf name="s3-client" description="dependencies for working with S3/EC2 infrastructure"
      extends="client"/>
    <conf name="s3-server" description="dependencies for running on S3/EC2 infrastructure"
      extends="s3-client,server"/>
    <conf name="kfs" description="dependencies for KFS file system support"/>
    <conf name="ftp" description="dependencies for workign with FTP filesytems" 
              extends="mandatory"/>
    <conf name="jetty" description="Jetty provides the in-VM HTTP daemon" extends="commons-logging"/>

    <conf name="common" extends="runtime,mandatory,httpclient,ftp,jetty,jdiff"
                        description="common artifacts"/>
    <!--Testing pulls in everything-->
   <conf name="test" extends="master" description="the classpath needed to run tests"/>

    <!--Private configurations. -->

    <conf name="javadoc" visibility="private" description="artiracts required while performing doc generation"
      extends="common,mandatory,jetty,lucene"/>

    <conf name="releaseaudit" visibility="private"
	description="Artifacts required for releaseaudit target"/>
     
    <conf name="commons-logging" visibility="private"/>
    <conf name="httpclient" visibility="private" extends="commons-logging"/>
    <conf name="log4j" visibility="private"/>
    <conf name="lucene" visibility="private"/>
    <conf name="jdiff" visibility="private" extends="log4j,s3-client,jetty,server"/>
    <conf name="checkstyle" visibility="private"/>

  </configurations>

  <publications>
    <!--get the artifact from our module name-->
    <artifact conf="master"/>
  </publications>
  <dependencies>

 <!--used client side-->
    <dependency org="commons-cli"
      name="commons-cli"
      rev="${commons-cli.version}"
      conf="client->default"/>
    <dependency org="checkstyle"
      name="checkstyle"
      rev="${checkstyle.version}"
      conf="checkstyle->default"/>
    <dependency org="jdiff"
      name="jdiff"
      rev="${jdiff.version}"
      conf="jdiff->default"/>

    <dependency org="xmlenc"
      name="xmlenc"
      rev="${xmlenc.version}"
      conf="server->default"/>

    <!--Configuration: httpclient-->

    <dependency org="commons-codec"
      name="commons-codec"
      rev="${commons-codec.version}"
      conf="httpclient->default"/>

    <dependency org="commons-net"
      name="commons-net"
      rev="${commons-net.version}"
      conf="ftp->default"/>

    <!--Configuration: Jetty -->
    <dependency org="org.mortbay.jetty"
      name="jetty"
      rev="${jetty.version}"
      conf="jetty->default">
      <exclude module="ant"/>
    </dependency>

    <dependency org="tomcat"
      name="jasper-runtime"
      rev="${jasper.version}"
      conf="jetty->master"/>
    <dependency org="tomcat"
      name="jasper-compiler"
      rev="${jasper.version}"
      conf="jetty->master"/>
    <dependency org="org.mortbay.jetty"
      name="jsp-2.1-jetty"
      rev="${jetty.version}"
      conf="jetty->default"/>
    <dependency org="commons-el"
      name="commons-el"
      rev="${commons-el.version}"
      conf="jetty->master"/>


    <!--Configuration: commons-logging -->

    <!--it is essential that only the master JAR of commons logging
    is pulled in, as its dependencies are usually a mess, including things
    like out of date servlet APIs, bits of Avalon, etc.
    -->
    <dependency org="commons-logging"
      name="commons-logging"
      rev="${commons-logging.version}"
      conf="commons-logging->master"/>


    <!--Configuration: commons-logging -->

    <!--log4J is not optional until commons-logging.properties is stripped out of the JAR -->
    <dependency org="log4j"
      name="log4j"
      rev="${log4j.version}"
      conf="log4j->master"/>

    <!--Configuration: s3-client -->
    <!--there are two jets3t projects in the repository; this one goes up to 0.6 and
    is assumed to be the live one-->
    <dependency org="net.java.dev.jets3t"
      name="jets3t"
      rev="${jets3t.version}"
      conf="s3-client->default"/>
    <dependency org="commons-net"
      name="commons-net"
      rev="${commons-net.version}"
      conf="s3-client->master"/> 
    <dependency org="net.sf.kosmosfs"
      name="kfs"
      rev="${kfs.version}"
      conf="kfs->default"/>

    <!--Configuration: test -->
    <!--artifacts needed for testing -->

    <dependency org="junit"
      name="junit"
      rev="${junit.version}"
      conf="test->default"/>
    <dependency org="org.apache.rat"
      name="apache-rat-tasks"
      rev="${rats-lib.version}"
      conf="releaseaudit->default"/>
    <dependency org="commons-lang"
      name="commons-lang"
      rev="${commons-lang.version}"
      conf="releaseaudit->default"/>
    <dependency org="commons-collections"
      name="commons-collections"
      rev="${commons-collections.version}"
      conf="releaseaudit->default"/>
    <dependency org="hsqldb"
      name="hsqldb"
      rev="${hsqldb.version}"
      conf="common->default"/>
    <dependency org="org.apache.lucene"
      name="lucene-core"
      rev="${lucene-core.version}"
      conf="javadoc->default"/> 
    <dependency org="commons-logging"
      name="commons-logging-api"
      rev="${commons-logging-api.version}"
      conf="common->default"/>
    <dependency org="org.slf4j"
      name="slf4j-api"
      rev="${slf4j-api.version}"
      conf="common->default"/>
    <dependency org="org.eclipse.jdt"
      name="core"
      rev="${core.version}"
      conf="common->master"/>
    <dependency org="org.slf4j"
      name="slf4j-log4j12"
      rev="${slf4j-log4j12.version}"
      conf="common->master">
    </dependency>
    <dependency org="org.apache.avro"
      name="avro"
      rev="${avro.version}"
      conf="common->default">
      <exclude module="ant"/>
      <exclude module="jetty"/>
      <exclude module="slf4j-simple"/>
      <exclude module="velocity"/>
      <exclude module="netty" />
    </dependency>
    <dependency org="org.aspectj"
      name="aspectjrt"
      rev="${aspectj.version}"
      conf="common->default">
    </dependency>
    <dependency org="org.aspectj"
      name="aspectjtools"
      rev="${aspectj.version}"
      conf="common->default">
    </dependency>
    <dependency org="org.mockito" 
      name="mockito-all" 
      rev="${mockito-all.version}" 
      conf="test->default">
    </dependency> 
    <dependency org="com.jcraft"
      name="jsch"
      rev="${jsch.version}"
      conf="common->default">
    </dependency>
    <dependency org="commons-configuration"
      name="commons-configuration"
      rev="${commons-configuration.version}"
      conf="common->default"/>
    <dependency org="org.apache.commons"
      name="commons-math"
      rev="${commons-math.version}"
      conf="common->default"/>
    <dependency org="com.google.guava"
      name="guava"
      rev="${guava.version}"
      conf="common->default"/>
  </dependencies>
</ivy-module>
