<?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.sqoop" module="${name}-test">
    <license name="Apache 2.0"/>
    <ivyauthor name="Sqoop Team" url="http://sqoop.apache.org/" />
    <description>
        Sqoop test library
    </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="artifacts needed to compile/test the application"/>
  </configurations>

  <publications>
    <!--get the artifact from our module name-->
    <artifact conf="master"/>
  </publications>
  <dependencies>
    <!-- Dependencies for Cloudera's Distribution for Hadoop -->
    <dependency org="com.cloudera.hadoop" name="hadoop-core"
      rev="${hadoop-core.cloudera.version}" conf="common->default"/>
    <dependency org="com.cloudera.hadoop" name="hadoop-test"
      rev="${hadoop-core.cloudera.version}" conf="common->default"/>
    <dependency org="junit" name="junit" rev="${junit.version}"
      conf="common->default"/>
    <dependency org="hsqldb" name="hsqldb" rev="${hsqldb.version}"
      conf="common->default"/>
  </dependencies>
</ivy-module>
