<?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.


-->

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.phoenix</groupId>
    <artifactId>phoenix-connectors</artifactId>
    <version>6.0.0-SNAPSHOT</version>
  </parent>
  <artifactId>phoenix-hive-base</artifactId>
  <name>Phoenix Hive Connector - Base</name>

  <packaging>pom</packaging>

  <modules>
    <module>phoenix4-hive</module>
    <module>phoenix4-hive-shaded</module>
    <module>phoenix5-hive</module>
    <module>phoenix5-hive-shaded</module>
  </modules>

  <properties>
    <test.tmp.dir>${project.build.directory}/tmp</test.tmp.dir>
    <tez.version>0.9.1</tez.version>
    <jdk.version>1.8</jdk.version>
    <commons-lang3.version>3.9</commons-lang3.version>
    <hive4.calcite.version>1.10.0</hive4.calcite.version>
    <hive5.calcite.version>1.16.0</hive5.calcite.version>
    <calcite.version>${hive4.calcite.version}</calcite.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.phoenix</groupId>
      <artifactId>phoenix-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.phoenix.thirdparty</groupId>
      <artifactId>phoenix-shaded-guava</artifactId>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>${commons-lang3.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-protocol</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-client</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-common</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-core</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-compress</artifactId>
      <version>${commons-compress.version}</version>
    </dependency>

    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>${commons-io.version}</version>
    </dependency>

    <!-- Test dependencies -->
    <dependency>
      <groupId>org.apache.phoenix</groupId>
      <artifactId>phoenix-core</artifactId>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-server</artifactId>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-it</artifactId>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-hdfs</artifactId>
      <exclusions>
        <exclusion>
          <groupId>io.netty</groupId>
          <artifactId>netty</artifactId>
        </exclusion>
      </exclusions>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.tez</groupId>
      <artifactId>tez-tests</artifactId>
      <scope>test</scope>
      <version>${tez.version}</version>
      <type>test-jar</type>
      <exclusions>
        <exclusion>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-yarn-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.tez</groupId>
      <artifactId>tez-dag</artifactId>
      <scope>test</scope>
      <version>${tez.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-yarn-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <!-- Bogus test dependencies from the copied Hive QTestUtil -->
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant</artifactId>
      <scope>provided</scope>
      <version>1.9.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <scope>provided</scope>
      <version>${log4j2.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <scope>provided</scope>
      <version>${log4j2.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <scope>provided</scope>
      <version>${log4j2.version}</version>
    </dependency>


<!-- Mark every HBase and Hadoop jar as provided -->
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-annotations</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-metrics-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-metrics</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-server</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-hadoop-compat</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-hadoop2-compat</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase.thirdparty</groupId>
      <artifactId>hbase-shaded-miscellaneous</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase.thirdparty</groupId>
      <artifactId>hbase-shaded-protobuf</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-annotations</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-auth</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-yarn-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <configuration>
            <ignoreNonCompile>true</ignoreNonCompile>
            <ignoredUnusedDeclaredDependencies>
              <ignoredUnusedDeclaredDependency>
                 org.slf4j:slf4j-api
              </ignoredUnusedDeclaredDependency>
              <ignoredUnusedDeclaredDependency>
                org.apache.commons:commons-lang3
              </ignoredUnusedDeclaredDependency>
            </ignoredUnusedDeclaredDependencies>
            <ignoredUsedUndeclaredDependencies>
              <!-- I couldn't find it referenced anywhere in the phoenix-hive codebase -->
              <ignoredUsedUndeclaredDependency>
                com.google.code.findbugs:jsr305
              </ignoredUsedUndeclaredDependency>
              <ignoredUsedUndeclaredDependency>
                org.apache.calcite.avatica:avatica
              </ignoredUsedUndeclaredDependency>
            </ignoredUsedUndeclaredDependencies>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <executions>
            <execution>
              <id>add-parent-source</id>
              <phase>generate-sources</phase>
              <goals>
                <goal>add-source</goal>
              </goals>
              <configuration>
                <sources>
                  <source>${project.parent.basedir}/src/main/java</source>
                </sources>
              </configuration>
            </execution>
            <execution>
              <id>add-parent-test-source</id>
              <phase>generate-sources</phase>
              <goals>
                <goal>add-test-source</goal>
              </goals>
              <configuration>
                <sources>
                  <source>${project.parent.basedir}/src/it/java</source>
                  <source>${project.parent.basedir}/src/test/java</source>
                </sources>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-failsafe-plugin</artifactId>
          <configuration>
            <!-- The Hbase + Hive minicluster setup seems very fragile, so
            we make sure to run everything as serially as possible -->
            <forkCount>1</forkCount>
            <reuseForks>false</reuseForks>
          </configuration>
          <executions>
            <execution>
              <id>ParallelStatsDisabledTest</id>
              <configuration>
                <forkCount>1</forkCount>
                <reuseForks>false</reuseForks>
                <argLine>-Xmx3000m -XX:MaxPermSize=256m -Djava.security.egd=file:/dev/./urandom "-Djava.library.path=${hadoop.library.path}${path.separator}${java.library.path}" -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./target/</argLine>
                <groups>org.apache.phoenix.end2end.ParallelStatsDisabledTest</groups>
              </configuration>
              <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <executions>
            <execution>
              <id>copy-resources</id>
              <phase>generate-resources</phase>
              <goals>
                <goal>copy-resources</goal>
              </goals>
              <configuration>
                <outputDirectory>${project.build.directory}/test-classes
                </outputDirectory>
                <overwrite>true</overwrite>
                <resources>
                  <resource>
                    <directory>${project.parent.basedir}/src/test/resources</directory>
                  </resource>
                </resources>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <source>8</source>
            <target>8</target>
          </configuration>
        </plugin>
        <!-- Taken from phoenix-client-parent
        this should be kept in sync with Phoenix as much as possible -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <configuration>
            <shadedArtifactAttached>false</shadedArtifactAttached>
            <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
            <filters>
              <filter>
                <artifact>*:*</artifact>
                <excludes>
                  <exclude>META-INF/*.SF</exclude>
                  <exclude>META-INF/*.DSA</exclude>
                  <exclude>META-INF/*.RSA</exclude>
                  <exclude>META-INF/license/*</exclude>
                  <exclude>META-INF/NOTICE</exclude>
                  <exclude>LICENSE.*</exclude>
                  <exclude>NOTICE.*</exclude>
                  <exclude>NOTICE</exclude>
                  <exclude>README*</exclude>
                  <!-- Coming from Omid, should be fixed there -->
                  <exclude>log4j.properties</exclude>
                </excludes>
              </filter>
             <filter>
                <artifact>org.apache.hadoop:hadoop-yarn-common</artifact>
                <excludes>
                  <exclude>org/apache/hadoop/yarn/factories/package-info.class</exclude>
                  <exclude>org/apache/hadoop/yarn/util/package-info.class</exclude>
                  <exclude>org/apache/hadoop/yarn/factory/providers/package-info.class</exclude>
                  <exclude>org/apache/hadoop/yarn/client/api/impl/package-info.class</exclude>
                  <exclude>org/apache/hadoop/yarn/client/api/package-info.class</exclude>
                  <exclude>webapps/**</exclude>
                </excludes>
              </filter>
              <!-- Phoenix specific -->
              <filter>
                <artifact>org.apache.commons:commons-math3</artifact>
                <excludes>
                  <exclude>assets/**</exclude>
                </excludes>
              </filter>
              <filter>
                <artifact>org.apache.hbase:hbase-server</artifact>
                <excludes>
                  <exclude>hbase-webapps/**</exclude>
                </excludes>
              </filter>
              <!-- Phoenix specific -->
            </filters>
            <transformers>
              <transformer
                  implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
              <transformer
                  implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
                <resource>csv-bulk-load-config.properties</resource>
                <file>
                  ${project.basedir}/../config/csv-bulk-load-config.properties
                </file>
              </transformer>
              <transformer
                  implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
                <resource>README.md</resource>
                <file>${project.basedir}/../README.md</file>
              </transformer>
              <transformer
                  implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
                <resource>LICENSE.txt</resource>
                <file>${project.basedir}/../LICENSE</file>
              </transformer>
              <transformer
                  implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
                <resource>NOTICE</resource>
                <file>${project.basedir}/../NOTICE</file>
              </transformer>
            </transformers>
            <relocations>
              <relocation>
                <pattern>org/</pattern>
                <shadedPattern>${shaded.package}.org.</shadedPattern>
                <excludes>
                  <exclude>org/apache/hadoop/**</exclude>
                  <!-- Our non-shaded htrace and logging libraries -->
                  <exclude>org/apache/htrace/**</exclude>
                  <exclude>org/slf4j/**</exclude>
                  <exclude>org/apache/commons/logging/**</exclude>
                  <exclude>org/apache/log4j/**</exclude>
                  <!-- Not the org/ packages that are a part of the jdk -->
                  <exclude>org/ietf/jgss/**</exclude>
                  <exclude>org/omg/**</exclude>
                  <exclude>org/w3c/dom/**</exclude>
                  <exclude>org/xml/sax/**</exclude>
                  <!-- Extras compared to Hadoop -->
                  <!-- Hbase classes - Maybe these could be shaded as well ? -->
                  <exclude>org/apache/hbase/**</exclude>
                  <!-- Phoenix classes -->
                  <exclude>org/apache/phoenix/**</exclude>
                  <exclude>org/apache/omid/**</exclude>
                  <!-- Do want/need to expose Tephra as well ? -->
                </excludes>
              </relocation>
              <relocation>
                <pattern>com/</pattern>
                <shadedPattern>${shaded.package}.com.</shadedPattern>
                <excludes>
                  <!-- Not the com/ packages that are a part of particular jdk implementations -->
                  <exclude>com/sun/tools/**</exclude>
                  <exclude>com/sun/javadoc/**</exclude>
                  <exclude>com/sun/security/**</exclude>
                  <exclude>com/sun/jndi/**</exclude>
                  <exclude>com/sun/management/**</exclude>
                  <!-- We are getting unshaded HBase from Hive, we must leave protobuf generated
                  classes alone -->
                  <exclude>com/google/protobuf/**</exclude>
                </excludes>
              </relocation>
              <relocation>
                <pattern>io/</pattern>
                <shadedPattern>${shaded.package}.io.</shadedPattern>
                <excludes>
                  <!-- Exclude config keys for Hadoop that look like package names -->
                  <exclude>io/compression/**</exclude>
                  <exclude>io/mapfile/**</exclude>
                  <exclude>io/map/index/*</exclude>
                  <exclude>io/seqfile/**</exclude>
                  <exclude>io/file/buffer/size</exclude>
                  <exclude>io/skip/checksum/errors</exclude>
                  <exclude>io/sort/*</exclude>
                  <exclude>io/serializations</exclude>
                </excludes>
              </relocation>
              <!-- JSRs that haven't made it to inclusion in J2SE -->
              <relocation>
                <pattern>javax/el/</pattern>
                <shadedPattern>${shaded.package}.javax.el.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>javax/cache/</pattern>
                <shadedPattern>${shaded.package}.javax.cache.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>javax/servlet/</pattern>
                <shadedPattern>${shaded.package}.javax.servlet.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>javax/ws/</pattern>
                <shadedPattern>${shaded.package}.javax.ws.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>javax/annotation/</pattern>
                <shadedPattern>${shaded.package}.javax.annotation.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>javax/inject/</pattern>
                <shadedPattern>${shaded.package}.javax.inject.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>javax/validation/</pattern>
                <shadedPattern>${shaded.package}.javax.validation.</shadedPattern>
            </relocation>
              <relocation>
                <pattern>net/</pattern>
                <shadedPattern>${shaded.package}.net.</shadedPattern>
                <excludes>
                  <!-- Exclude config keys for Hadoop that look like package names -->
                  <exclude>net/topology/**</exclude>
                </excludes>
              </relocation>
              <!-- okio declares a top level package instead of nested -->
              <relocation>
                <pattern>okio/</pattern>
                <shadedPattern>${shaded.package}.okio.</shadedPattern>
              </relocation>
              <!-- Phoenix specific relocations -->
              <relocation>
                <!-- Tephra -->
                <pattern>co/</pattern>
                <shadedPattern>${shaded.package}.co.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>it/</pattern>
                <shadedPattern>${shaded.package}.it.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>javassist/</pattern>
                <shadedPattern>${shaded.package}.javassist.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>jersey/</pattern>
                <shadedPattern>${shaded.package}.jersey.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>jline/</pattern>
                <shadedPattern>${shaded.package}.jline.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>mozilla/</pattern>
                <shadedPattern>${shaded.package}.mozilla.</shadedPattern>
              </relocation>
              <relocation>
                <pattern>tables/</pattern>
                <shadedPattern>${shaded.package}.tables.</shadedPattern>
              </relocation>
              <!-- Phoenix specific relocations end -->
            </relocations>
          </configuration>
          <executions>
            <execution>
              <phase>package</phase>
              <goals>
                <goal>shade</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

   <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.calcite</groupId>
        <artifactId>calcite-core</artifactId>
        <version>${calcite.version}</version>
        <exclusions>
          <exclusion>
            <!-- PHOENIX-6478: exclude a dependency that is not required and not available at Maven Central -->
            <groupId>org.pentaho</groupId>
            <artifactId>pentaho-aggdesigner-algorithm</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
    </dependencies>
  </dependencyManagement>

</project>
