<?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="2.0" xmlns:m="http://ant.apache.org/ivy/maven"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
  <info organisation="org.apache.pig" module="${ant.project.name}" revision="${version}">
    <license name="Apache 2.0"/>
    <ivyauthor name="Apache Hadoop Team" url="http://hadoop.apache.org/pig"/>
    <description>Pig</description>
  </info>
  <configurations defaultconfmapping="default">
    <!--these match the Maven configurations-->
    <conf name="master" description="contains the artifact but no dependencies"/>
    <conf name="default" extends="master,runtime"/>
    <conf name="runtime" extends="compile,test" description="runtime but not the artifact" />
    <!--Private configurations. -->
    <conf name="compile" visibility="private" description="compile artifacts"/>
    <conf name="test" extends="compile" visibility="private"/>
    <conf name="javadoc" visibility="private" extends="compile,test"/>
    <conf name="releaseaudit" visibility="private"/>
    <conf name="jdiff" visibility="private"/>
    <conf name="checkstyle" visibility="private"/>
    <conf name="buildJar" extends="compile,test" visibility="private"/>
  </configurations>
  <publications>
    <!--get the artifact from our module name-->
    <artifact conf="master"/>
  </publications>
  <dependencies>
    <dependency org="checkstyle" name="checkstyle" rev="${checkstyle.version}"
      conf="checkstyle->master"/>
    <!-- <dependency org="antlr" name="antlr" rev="${antlr.version}"
      conf="checkstyle->master"/> -->
    <dependency org="commons-beanutils" name="commons-beanutils-core" rev="${commons-beanutils.version}"
      conf="checkstyle->master"/>
    <dependency org="commons-el" name="commons-el" rev="${commons-el.version}"
      conf="compile->master"/>
    <dependency org="log4j" name="log4j" rev="${log4j.version}"
      conf="compile->master"/>
    <dependency org="org.apache.hadoop" name="hadoop-core" rev="${hadoop-core.version}"
      conf="compile->default;test->default"/>
    <dependency org="org.apache.hadoop" name="hadoop-test" rev="${hadoop-test.version}"
      conf="compile->default;test->default"/>
    <dependency org="org.mortbay.jetty" name="jetty" rev="${jetty.version}"
      conf="compile->master"/>
    <dependency org="org.mortbay.jetty" name="jetty-util" rev="${jetty-util.version}"
      conf="compile->master"/>
    <dependency org="commons-logging" name="commons-logging" rev="${commons-logging.version}"
      conf="compile->master;checkstyle->master"/>
     <dependency org="org.slf4j" name="slf4j-log4j12" rev="${slf4j-log4j12.version}"
      conf="compile->master;test->master"/>
    <dependency org="commons-cli" name="commons-cli" rev="${commons-cli.version}"
      conf="checkstyle->master"/>
    
    <dependency org="org.apache.avro" name="avro" rev="${avro.version}"
      conf="compile->master;checkstyle->master"/>
    <dependency org="com.googlecode.json-simple" name="json-simple" rev="${json-simple.version}"
      conf="compile->master;checkstyle->master"/>

    <dependency org="jdiff" name="jdiff" rev="${jdiff.version}"
      conf="jdiff->default"/>
    <dependency org="xerces" name="xerces" rev="${xerces.version}"
      conf="jdiff->default"/>
    <dependency org="com.jcraft" name="jsch" rev="${jsch.version}"
      conf="compile->master"/>
    <dependency org="jline" name="jline" rev="${jline.version}"
      conf="compile->master"/>
    <dependency org="net.java.dev.javacc" name="javacc" rev="${javacc.version}"
      conf="compile->master"/>
    <dependency org="junit" name="junit" rev="${junit.version}"
      conf="test->default"/>
    <dependency org="com.google.code.p.arat" name="rat-lib" rev="${rats-lib.version}"
      conf="releaseaudit->default"/>
    <dependency org="org.codehaus.jackson" name="jackson-mapper-asl" rev="${jackson.version}"
      conf="compile->master"/>
    <dependency org="org.codehaus.jackson" name="jackson-core-asl" rev="${jackson.version}"
      conf="compile->master"/>
    <dependency org="joda-time" name="joda-time" rev="${joda-time.version}" conf="compile->master"/>
  	<dependency org="commons-lang" name="commons-lang" rev="${commons-lang.version}"
  	  conf="compile->master"/>
    <dependency org="com.google.guava" name="guava" rev="${guava.version}" conf="compile->master" />
  	<dependency org="org.python" name="jython" rev="${jython.version}" conf="compile->master"/>
    <dependency org="rhino" name="js" rev="${rhino.version}" conf="compile->master"/>
  	<dependency org="org.antlr" name="antlr" rev="${antlr.version}" conf="compile->master"/>
  	<dependency org="org.antlr" name="antlr-runtime" rev="${antlr.version}" conf="compile->default"/>
    <dependency org="org.apache.zookeeper" name="zookeeper" rev="${zookeeper.version}" conf="compile->master"/>
    <dependency org="org.jboss.netty" name="netty" rev="3.2.2.Final" conf="compile->master"/>

    <dependency org="org.apache.hbase" name="hbase" rev="${hbase.version}" conf="compile->master">
      <artifact name="hbase" type="jar"/>
      <artifact name="hbase" type="test-jar" ext="jar" m:classifier="tests"/>
      <exclude org="org.apache.thrift" module="thrift"/>
      <exclude org="org.apache.hadoop" module="hadoop-core"/>
      <exclude org="org.apache.ant" module="ant" />
      <exclude org="org.slf4j" module="slf4j"/>
      <exclude org="org.slf4j" module="slf4j-api"/>
      <exclude org="org.slf4j" module="log4j12"/>
      <exclude org="org.slf4j" module="slf4j-log4j12" />
      <exclude org="stax" module="stax-api" />
      <exclude org="javax.xml.bind" module="jaxb-api" />
      <exclude org="javax.ws.rs" module="jsr311-api" />
      <exclude org="com.google.protobuf" module="protobuf-java"/>
      <exclude org="tomcat" module="jasper-runtime"/>
      <exclude org="tomcat" module="jasper-compiler"/>
      <exclude org="org.slf4j" module="log4j-over-slf4j"/>
      <exclude org="com.sun.jersey" module="jersey-core"/>
      <exclude org="com.sun.jersey" module="jersey-server"/>
      <exclude org="com.sun.jersey" module="jersey-json"/>
      <exclude org="asm" module="asm"/>
    </dependency>

    <dependency org="hsqldb" name="hsqldb" rev="${hsqldb.version}"
      conf="test->default" />
    <dependency org="org.vafer" name="jdeb" rev="${jdeb.version}"
      conf="compile->master">
    </dependency>
    </dependencies>
</ivy-module>
