<?xml version="1.0"?>
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <!--
      /**
       * 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.
       */
      -->
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <artifactId>hbase-build-configuration</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>2.4.1</version>
        <relativePath>../hbase-build-configuration</relativePath>
    </parent>
    <artifactId>hbase-testing-util</artifactId>
    <name>Apache HBase - Testing Util</name>
    <description>HBase Testing Utilities.</description>
    <dependencies>
        <!-- Intra-project dependencies -->
        <!-- we do not want to introduce this to downstream users so still set the scope to test -->
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-logging</artifactId>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-common</artifactId>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-common</artifactId>
            <type>test-jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-annotations</artifactId>
            <type>test-jar</type>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <groupId>jdk.tools</groupId>
                    <artifactId>jdk.tools</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-protocol</artifactId>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-zookeeper</artifactId>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-zookeeper</artifactId>
            <type>test-jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-server</artifactId>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-server</artifactId>
            <type>test-jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-asyncfs</artifactId>
            <type>test-jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-hadoop-compat</artifactId>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-hadoop-compat</artifactId>
            <type>test-jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>${compat.module}</artifactId>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>${compat.module}</artifactId>
            <type>test-jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <profiles>
        <!-- Profiles for building against different hadoop versions -->
        <!-- There are a lot of common dependencies used here, should investigate
        if we can combine these profiles somehow -->

        <!-- profile for building against Hadoop 2.x. This is the default -->
        <profile>
            <id>hadoop-2.0</id>
            <activation>
                <property>
                    <!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
                    <!--h2--><name>!hadoop.profile</name>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-common</artifactId>
                    <scope>compile</scope>
                    <exclusions>
                      <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                      </exclusion>
                    </exclusions>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-auth</artifactId>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-client</artifactId>
                    <scope>compile</scope>
                    <exclusions>
                      <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                      </exclusion>
                      <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                      </exclusion>
                    </exclusions>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-mapreduce-client-core</artifactId>
                    <scope>compile</scope>
                    <exclusions>
                      <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                      </exclusion>
                      <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                      </exclusion>
                    </exclusions>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
                    <scope>compile</scope>
                    <exclusions>
                      <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                      </exclusion>
                    </exclusions>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-hdfs</artifactId>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-hdfs</artifactId>
                    <type>test-jar</type>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-minicluster</artifactId>
                    <scope>compile</scope>
                    <exclusions>
                      <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                      </exclusion>
                      <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                      </exclusion>
                    </exclusions>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-minikdc</artifactId>
                </dependency>
            </dependencies>
        </profile>
        <!--
          profile for building against Hadoop 3.0.x. Activate using:
           mvn -Dhadoop.profile=3.0
        -->
        <profile>
            <id>hadoop-3.0</id>
            <activation>
                <property>
                    <name>hadoop.profile</name>
                    <value>3.0</value>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-common</artifactId>
                    <exclusions>
                      <exclusion>
                         <groupId>javax.xml.bind</groupId>
                         <artifactId>jaxb-api</artifactId>
                      </exclusion>
                      <exclusion>
                       <groupId>javax.ws.rs</groupId>
                       <artifactId>jsr311-api</artifactId>
                      </exclusion>
                    </exclusions>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-minicluster</artifactId>
                    <scope>compile</scope>
                    <exclusions>
                      <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                      </exclusion>
                      <exclusion>
                       <groupId>javax.ws.rs</groupId>
                       <artifactId>jsr311-api</artifactId>
                      </exclusion>
                    </exclusions>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-minikdc</artifactId>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
</project>
