<!-- 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">
  <info organisation="org.apache.hcatalog"
        module="${ant.project.name}"
        revision="${hcatalog.version}">
    <license name="Apache 2.0"/>
    <ivyauthor name="Apache HCatalog Team" url="http://incubator.apache.org/hcatalog"/>
    <description>Apache HCatalog</description>
  </info>

  <configurations defaultconfmapping="default">
    <conf name="default"/>
    <conf name="test" extends="default"/>
  </configurations>

  <publications>
    <artifact name="hcatalog"/>
    <artifact name="hcatalog-core"/>
    <artifact name="hcatalog-server-extensions"/>
  </publications>

  <dependencies>
    <!-- hadoop20 dependencies -->
    <dependency org="org.apache.pig" name="pig" rev="${pig.version}" conf="default->*"/>
    <dependency org="org.apache.hadoop" name="hadoop-tools" rev="${hadoop20.version}" conf="default->*">
      <exclude org="commons-daemon" module="commons-daemon"/>
    </dependency>
    <dependency org="org.apache.hadoop" name="hadoop-test" rev="${hadoop20.version}" conf="test->*">
      <exclude org="commons-daemon" module="commons-daemon"/>
    </dependency>

    <dependency org="javax.jms" name="jms" rev="${jms.version}"/>
    <dependency org="org.apache.activemq" name="activemq-core" rev="${activemq.version}">
      <exclude org="org.springframework"/>
    </dependency>
    <dependency org="org.apache.activemq" name="kahadb" rev="${activemq.version}"/>
    <dependency org="javax.management.j2ee" name="management-api" rev="${javax-mgmt.version}"/>
    <dependency org="org.codehaus.jackson" name="jackson-mapper-asl" rev="${jackson.version}"/>
    <dependency org="org.codehaus.jackson" name="jackson-core-asl" rev="${jackson.version}"/>
    <dependency org="org.apache.hive" name="hive-builtins" rev="${hive.version}"/>
    <dependency org="org.apache.hive" name="hive-metastore" rev="${hive.version}"/>
    <dependency org="org.apache.hive" name="hive-common" rev="${hive.version}"/>
    <dependency org="org.apache.hive" name="hive-exec" rev="${hive.version}"/>
    <dependency org="org.apache.hive" name="hive-cli" rev="${hive.version}"/>
    <dependency org="org.apache.hive" name="hive-hbase-handler" rev="${hive.version}">
      <exclude org="org.apache.maven.plugins"/>
      <exclude org="org.jruby"/>
    </dependency>
    <dependency org="org.apache.thrift" name="libfb303" rev="${fb303.version}"/>
    <dependency org="commons-dbcp" name="commons-dbcp" rev="${commons-dbcp.version}">
      <exclude module="commons-pool"/>
      <exclude org="org.apache.geronimo.specs" module="geronimo-jta_1.1_spec"/>
    </dependency>
    <dependency org="com.google.guava" name="guava" rev="${guava.version}"/>

    <!-- test dependencies -->
    <dependency org="junit" name="junit" rev="${junit.version}" conf="test->default"/>
    <dependency org="org.vafer" name="jdeb" rev="${jdeb.version}" conf="test->default"/>
    <dependency org="com.google.code.p.arat" name="rat-lib" rev="${rats-lib.version}" conf="test->default"/>
    <dependency org="org.apache.maven" name="maven-ant-tasks" rev="${maven-ant-tasks.version}" conf="test->*"/>
    <dependency org="org.apache.hadoop" name="hadoop-test" rev="${hadoop20.version}" conf="test->default"/>
    <dependency org="com.puppycrawl.tools" name="checkstyle" rev="${checkstyle.version}" conf="test->default">
      <exclude org="com.google.collections"/>
    </dependency>
  </dependencies>
</ivy-module>
