<?xml version="1.0" ?>
<!--
   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}">
    <license name="Apache 2.0"/>
    <ivyauthor name="Apache Hadoop Team" url="http://hadoop.apache.org"/>
    <description> Apache Hadoop contrib </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" />

    <conf name="common" visibility="private" extends="runtime" description="common artifacts"/>
    <conf name="test" visibility="private" extends="runtime"/>
  </configurations>

  <publications>
    <artifact conf="master"/>
  </publications>

  <dependencies>
    <dependency org="org.apache.hadoop" name="hadoop-common" rev="${hadoop-common.version}" conf="common->default"/>
    <dependency org="org.mortbay.jetty" name="jetty" rev="${jetty.version}" conf="common->master"/>
    <dependency org="org.mortbay.jetty" name="jetty-util" rev="${jetty-util.version}" conf="common->master"/>
    <dependency org="tomcat" name="jasper-runtime" rev="${jasper.version}" conf="common->master"/>
    <dependency org="tomcat" name="jasper-compiler" rev="${jasper.version}" conf="common->master"/>
    <dependency org="commons-el" name="commons-el" rev="${commons-el.version}" conf="common->master"/>
    <dependency org="commons-logging" name="commons-logging" rev="${commons-logging.version}" conf="common->master"/>
    <dependency org="log4j" name="log4j" rev="${log4j.version}" conf="common->master"/>
    <dependency org="net.java.dev.jets3t" name="jets3t" rev="${jets3t.version}" conf="common->master"/>
    <dependency org="commons-net" name="commons-net" rev="${commons-net.version}" conf="common->master"/>  
    <dependency org="org.mortbay.jetty" name="servlet-api-2.5" rev="${servlet-api-2.5.version}" conf="common->master"/>
    <dependency org="junit" name="junit" rev="${junit.version}" conf="common->default"/>
    <dependency org="org.slf4j" name="slf4j-api" rev="${slf4j-api.version}" conf="common->master"/>
  </dependencies>
</ivy-module>
