<?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.chukwa" module="${ant.project.name}">
    <license name="Apache 2.0"/>
    <ivyauthor name="Apache Hadoop Chukwa Team" url="http://hadoop.apache.org/chukwa"/>
    <description>
        Apache Hadoop Chukwa
    </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="mandatory" description="contains the critical  dependencies"
      extends="commons-logging,log4j"/>
    <conf name="jetty" description="Jetty provides the in-VM HTTP daemon" extends="commons-logging"/>

    <!--Private configurations. -->
    <conf name="commons-logging" visibility="private"/>
    <conf name="common" visibility="private" 
      extends="jetty"
      description="artifacts needed to compile/test the application"/>
    <conf name="jetty" visibility="private" />
    <conf name="releaseaudit" visibility="private"
	description="Artifacts required for releaseaudit target"/>
    <conf name="log4j" visibility="private"/>
    <conf name="jdiff" visibility="private" extends="log4j,jetty"/>
    <conf name="javadoc" visibility="private" description="artiracts required while performing doc generation"
      extends="common,mandatory,jetty"/>
 
  </configurations>

  <publications>
    <!--get the artifact from our module name-->
    <artifact conf="master"/>
  </publications>
  <dependencies>
    <dependency org="jdiff"
      name="jdiff"
      rev="${jdiff.version}"
      conf="jdiff->default"/>
    <dependency org="xerces"
      name="xerces"
      rev="${xerces.version}"
      conf="jdiff->default"/>
   <dependency org="commons-fileupload"
      name="commons-fileupload"
      rev="${commons-fileupload.version}"
      conf="common->default"/>
   <dependency org="commons-httpclient"
      name="commons-httpclient"
      rev="${commons-httpclient.version}"
      conf="common->master"/>  
    <dependency org="commons-io"
      name="commons-io"
      rev="${commons-io.version}"
      conf="common->default"/>  
    <dependency org="commons-logging"
      name="commons-logging"
      rev="${commons-logging.version}"
      conf="common->default"/>
    <dependency org="commons-codec"
      name="commons-codec"
      rev="${commons-codec.version}"
      conf="common->master"/>   
  <dependency org="commons-logging"
      name="commons-logging-api"
      rev="${commons-logging-api.version}"
      conf="common->master"/>   
   <dependency org="commons-net"
      name="commons-net"
      rev="${commons-net.version}"
      conf="common->master"/> 
    <dependency org="org.mortbay.jetty"
      name="jetty"
      rev="${jetty.version}"
      conf="common->default"/>   
    <dependency org="org.mortbay.jetty"
      name="jetty-util"
      rev="${jetty-util.version}"
      conf="common->default"/>
    <dependency org="junit"
      name="junit"
      rev="${junit.version}"
      conf="common->default"/> 
    <dependency org="log4j"
      name="log4j"
      rev="${log4j.version}"
      conf="common->master"/>
    <dependency org="mysql"
      name="mysql-connector-java"
      rev="${mysql-connector.version}"
      conf="common->default"/>
    <!-- dependency org="org.apache.hadoop"
      name="hadoop-core"
      rev="${hadoop.version}"
      conf="common->default"/ -->
    <dependency org="com.google.code.p.arat"
      name="rat-lib"
      rev="${rats-lib.version}"
      conf="releaseaudit->default"/>
    <dependency org="commons-lang"
      name="commons-lang"
      rev="${commons-lang.version}"
      conf="common->default"/>
    <dependency org="commons-collections"
      name="commons-collections"
      rev="${commons-collections.version}"
      conf="common->default"/>
    <dependency org="net.sf.ezmorph"
      name="ezmorph"
      rev="${ezmorph.version}"
      conf="common->default"/>
    <dependency org="commons-beanutils"
      name="commons-beanutils"
      rev="${commons-beanutils.version}"
      conf="common->default"/>
    <dependency org="org.mortbay.jetty"
      name="jsp-api-2.1"
      rev="${jetty.version}"
      conf="jetty->master"/>
    <dependency org="org.mortbay.jetty"
      name="jsp-2.1"
      rev="${jetty.version}"
      conf="jetty->master"/>
    <dependency org="org.mortbay.jetty"
      name="servlet-api-2.5"
      rev="${jetty.version}"
      conf="jetty->master"/>
    <dependency org="org.apache.ant"
      name="ant"
      rev="${jetty.ant.version}"
      conf="common->default"/>
    <dependency org="org.eclipse.jdt"
      name="core"
      rev="${jetty.eclipse.jdt.core.version}"
      conf="jetty->master"/>
<!--    <dependency org="org.apache.tomcat"
      name="jasper"
      rev="${jasper.version}"
      conf="jetty->master"/> -->
  </dependencies>
</ivy-module>
