<?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" 
      description="artifacts needed to compile/test the application"/>
  </configurations>

  <publications>
    <!--get the artifact from our module name-->
    <artifact conf="master"/>
  </publications>
  <dependencies>
    <dependency org="org.apache.hadoop"
      name="hadoop-common"
      rev="${hadoop-common.version}"
      conf="common->default"/>
    <dependency org="org.apache.hadoop"
      name="hadoop-common-test"
      rev="${hadoop-common.version}"
      conf="common->default"/>
    <dependency org="commons-cli"
      name="commons-cli"
      rev="${commons-cli.version}"
      conf="common->default"/>
    <dependency org="log4j"
      name="log4j"
      rev="${log4j.version}"
      conf="common->master"/>
    <dependency org="commons-logging"
      name="commons-logging"
      rev="${commons-logging.version}"
      conf="common->master"/>
    <dependency org="commons-logging"
      name="commons-logging-api"
      rev="${commons-logging-api.version}"
      conf="common->master"/>
    <dependency org="junit"
      name="junit"
      rev="${junit.version}"
      conf="common->master"/>
    <dependency org="org.slf4j"
      name="slf4j-api"
      rev="${slf4j-api.version}"
      conf="common->master"/>
    <dependency org="org.slf4j"
      name="slf4j-log4j12"
      rev="${slf4j-log4j12.version}"
      conf="common->master"/>
    <dependency org="xmlenc"
      name="xmlenc"
      rev="${xmlenc.version}"
      conf="common->master"/>
    <dependency org="org.mortbay.jetty"
      name="jetty"
      rev="${jetty.version}"
      conf="common->master"/>
    <dependency org="org.mortbay.jetty"
      name="jsp-api-2.1"
      rev="${jetty.version}"
      conf="common->master"/>
    <dependency org="org.mortbay.jetty"
      name="jsp-2.1"
      rev="${jetty.version}"
      conf="common->master"/>
    <dependency org="org.mortbay.jetty"
      name="jetty-util"
      rev="${jetty-util.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="org.eclipse.jdt"
      name="core"
      rev="${core.version}"
      conf="common->master"/>
    <dependency org="org.apache.cactus" name="cactus.core.framework.uberjar.javaEE.14" rev="${cactus.version}" conf="common->master"/>
		<dependency org="org.apache.cactus" name="cactus.integration.ant" rev="${cactus.version}" conf="common->master"/>
		<dependency org="org.apache.cactus" name="cactus.integration.shared.api" rev="${cactus.version}" conf="common->master"/>
				
		<dependency org="commons-httpclient" name="commons-httpclient" rev="3.1" conf="common->master"/>
		<dependency org="commons-io" name="commons-io" rev="1.4" conf="common->master"/>
		<dependency org="commons-lang" name="commons-lang" rev="2.3" conf="common->master"/>
		<dependency org="commons-codec" name="commons-codec" rev="1.4" conf="common->master"/>
		
		<dependency org="aspectj" name="aspectjrt" rev="1.5.3" conf="common->master"/>
		
		<dependency org="org.codehaus.cargo" name="cargo-core-uberjar" rev="0.9" conf="common->master"/>
		<dependency org="org.codehaus.cargo" name="cargo-ant" rev="0.9" conf="common->master"/>

		<dependency org="javax.servlet" name="jsp-api" rev="2.0" conf="common->master"/>
		<dependency org="javax.servlet" name="servlet-api" rev="2.5" conf="common->master"/>
		<dependency org="javax.servlet" name="jstl" rev="1.1.2" conf="common->master"/>
		<dependency org="taglibs" name="standard" rev="1.1.2" conf="common->master"/>
	  
		<dependency org="junitperf" name="junitperf" rev="1.8" conf="common->master"/>
  </dependencies>
</ivy-module>
