<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed 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.spark-project.hive</groupId>
    <artifactId>hive</artifactId>
    <version>1.21.2.3.1.0.0-78</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>hive-jdbc</artifactId>
  <packaging>jar</packaging>
  <name>Hive JDBC</name>

  <properties>
    <hive.path.to.root>..</hive.path.to.root>
    <packaging.minimizeJar>false</packaging.minimizeJar>
  </properties>

  <dependencies>
    <!-- dependencies are always listed in sorted order by groupId, artifectId -->
    <!-- intra-project -->
    <dependency>
      <groupId>org.spark-project.hive</groupId>
      <artifactId>hive-common</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.spark-project.hive</groupId>
      <artifactId>hive-service</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.spark-project.hive</groupId>
            <artifactId>hive-exec</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.spark-project.hive</groupId>
      <artifactId>hive-serde</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.spark-project.hive</groupId>
      <artifactId>hive-metastore</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.spark-project.hive</groupId>
      <artifactId>hive-shims</artifactId>
      <version>${project.version}</version>
    </dependency>
    <!-- inter-project -->
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>${commons-logging.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>${httpcomponents.client.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore</artifactId>
      <version>${httpcomponents.core.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.thrift</groupId>
      <artifactId>libthrift</artifactId>
      <version>${libthrift.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
      <version>${zookeeper.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.jboss.netty</groupId>
            <artifactId>netty</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-framework</artifactId>
      <version>${curator.version}</version>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>hadoop-1</id>
      <dependencies>
        <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-core</artifactId>
          <version>${hadoop-20S.version}</version>
         <optional>true</optional>
        </dependency>
      </dependencies>
    </profile>
   <profile>
      <id>hadoop-2</id>
      <dependencies>
        <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-common</artifactId>
          <version>${hadoop-23.version}</version>
          <optional>true</optional>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>dist</id>
      <properties>
        <packaging.minimizeJar>true</packaging.minimizeJar>
      </properties>
    </profile>
  </profiles>


  <build>
    <sourceDirectory>${basedir}/src/java</sourceDirectory>
    <resources>
      <resource>
        <directory>${basedir}/src/resources</directory>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <minimizeJar>${packaging.minimizeJar}</minimizeJar>
              <shadedArtifactAttached>true</shadedArtifactAttached>
              <shadedClassifierName>${hive.jdbc.driver.classifier}</shadedClassifierName>
              <filters>
                <filter>
                  <artifact>org.spark-project.hive.shims:hive-shims-common</artifact>
                  <includes>
                    <include>**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>org.spark-project.hive.shims:hive-shims-0.23</artifact>
                  <includes>
                    <include>**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>commons-logging:commons-logging</artifact>
                  <includes>
                    <include>**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>*:*</artifact>
                  <excludes>
                    <exclude>META-INF/*.SF</exclude>
                    <exclude>META-INF/*.DSA</exclude>
                    <exclude>META-INF/*.RSA</exclude>
                  </excludes>
                </filter>
              </filters>
              <artifactSet>
                <excludes>
                  <exclude>org.apache.hadoop:*</exclude>
                  <exclude>org.spark-project.hive:hive-ant</exclude>
                  <exclude>org.apache.ant:*</exclude>
                  <exclude>org.ow2.asm:*</exclude>
                  <exclude>com.sun.jersey:*</exclude>
                  <exclude>com.sun.jersey.contribs:*</exclude>
                  <exclude>org.iq80.snappy:*</exclude>
                  <exclude>org.apache.velocity:*</exclude>
                  <exclude>net.sf.jpam:*</exclude>
                  <exclude>net.sf.opencsv:*</exclude>
                  <exclude>com.sun.xml.bind:*</exclude>
                  <exclude>com.google.inject:*</exclude>
                  <exclude>aopalliance:*</exclude>
                  <exclude>com.google.inject.extensions:*</exclude>
                  <exclude>javax.jdo:*</exclude>
                  <exclude>javax.activation:*</exclude>
                  <exclude>javax.jms:*</exclude>
                  <exclude>javax.net:*</exclude>
                  <exclude>javax.servlet:*</exclude>
                  <exclude>javax.servlet.jsp:*</exclude>
                  <exclude>javax.transaction:*</exclude>
                  <exclude>javax.mail:*</exclude>
                  <exclude>javax.annotation:*</exclude>
                  <exclude>javax.xml.*:*</exclude>
                  <exclude>javax.inject:*</exclude>
                  <exclude>javax.ws.rs:*</exclude>
                  <exclude>com.jolbox:*</exclude>
                  <exclude>com.thoughtworks.paranamer:*</exclude>
                  <exclude>com.google.code.findbugs:*</exclude>
                  <exclude>commons-dbcp:*</exclude>
                  <exclude>commons-pool:*</exclude>
                  <exclude>commons-cli:*</exclude>
                  <exclude>commons-codec:*</exclude>
                  <exclude>commons-lang:*</exclude>
                  <exclude>commons-io:*</exclude>
                  <exclude>io.netty:*</exclude>
                  <exclude>jline:*</exclude>
                  <exclude>org.apache.zookeeper:zookeeper</exclude>
                  <exclude>org.slf4j:slf4j-log4j12</exclude>
                  <exclude>log4j:*</exclude>
                </excludes>
              </artifactSet>
              <relocations>
                <relocation>
                  <pattern>org.apache.http</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.http</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.google.common</pattern>
                  <shadedPattern>org.apache.spark-project.com.google.common</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.facebook</pattern>
                  <shadedPattern>org.apache.spark-project.com.facebook</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.thrift</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.thrift</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.curator</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.curator</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.slf4j</pattern>
                  <shadedPattern>org.apache.spark-project.org.slf4j</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.hive</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.hive</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.hadoop.hive</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.hadoop.hive</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.eclipse.jetty</pattern>
                  <shadedPattern>org.apache.spark-project.org.eclipse.jetty</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.objectweb.asm</pattern>
                  <shadedPattern>org.apache.spark-project.org.objectweb.asm</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.xerial.snappy</pattern>
                  <shadedPattern>org.apache.spark-project.org.xerial.snappy</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.derby</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.derby</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.datanucleus</pattern>
                  <shadedPattern>org.apache.spark-project.org.datanucleus</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.joda.time</pattern>
                  <shadedPattern>org.apache.spark-project.org.joda.time</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.tukaani</pattern>
                  <shadedPattern>org.apache.spark-project.org.tukaani</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.json</pattern>
                  <shadedPattern>org.apache.spark-project.org.json</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.antlr</pattern>
                  <shadedPattern>org.apache.spark-project.org.antlr</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>antlr</pattern>
                  <shadedPattern>org.apache.spark-project.antlr</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.codehaus.jackson</pattern>
                  <shadedPattern>org.apache.spark-project.org.codehaus.jackson</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>parquet</pattern>
                  <shadedPattern>org.apache.spark-project.parquet</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.commons.httpclient</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.commons.httpclient</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.mail</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.mail</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.hadoop.mapred</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.hadoop.mapred</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.hadoop.security.token.delegation</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.hadoop.security.token.delegation</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.activation.registries</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.activation.registries</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.activation.viewers</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.activation.viewers</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.google.inject</pattern>
                  <shadedPattern>org.apache.spark-project.com.google.inject</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.google.protobuf</pattern>
                  <shadedPattern>org.apache.spark-project.com.google.protobuf</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.istack</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.istack</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.jersey.api</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.jersey.api</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.jersey.client</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.jersey.client</shadedPattern>
                </relocation>
                <relocation>
                 <pattern>com.sun.jersey.core</pattern>
                 <shadedPattern>org.apache.spark-project.com.sun.jersey.core</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.jersey.guice</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.jersey.guice</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.jersey.impl</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.jersey.impl</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.jersey.json</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.jersey.json</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.jersey.localization</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.jersey.localization</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.jersey.server</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.jersey.server</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.jersey.spi</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.jersey.spi</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.xml.bind</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.xml.bind</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.ws.rs.ext</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.ws.rs.ext</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.research.ws.wadl</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.research.ws.wadl</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.sun.xml.txw2</pattern>
                  <shadedPattern>org.apache.spark-project.com.sun.xml.txw2</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>junit.extensions</pattern>
                  <shadedPattern>org.apache.spark-project.junit.extensions</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>junit.framework</pattern>
                  <shadedPattern>org.apache.spark-project.junit.framework</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>junit.runner</pattern>
                  <shadedPattern>org.apache.spark-project.junit.runner</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>junit.textui</pattern>
                  <shadedPattern>org.apache.spark-project.junit.textui</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.aopalliance.aop</pattern>
                  <shadedPattern>org.apache.spark-project.org.aopalliance.aop</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.aopalliance.intercept</pattern>
                  <shadedPattern>org.apache.spark-project.org.aopalliance.intercept</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.avro</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.avro</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.commons.collections</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.commons.collections</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.commons.compress</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.commons.compress</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.commons.io</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.commons.io</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.hadoop.classification</pattern>
                  <shadedPattern>org.apache.spark-project.org.apache.hadoop.classification</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.codehaus.jettison</pattern>
                  <shadedPattern>org.apache.spark-project.org.codehaus.jettison</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.fusesource.hawtjni</pattern>
                  <shadedPattern>org.apache.spark-project.org.fusesource.hawtjni</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.fusesource.leveldbjni</pattern>
                  <shadedPattern>org.apache.spark-project.org.fusesource.leveldbjni</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.hamcrest</pattern>
                  <shadedPattern>org.apache.spark-project.org.hamcrest</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.iq80.leveldb</pattern>
                  <shadedPattern>org.apache.spark-project.org.iq80.leveldb</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.junit</pattern>
                  <shadedPattern>org.apache.spark-project.org.junit</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.mortbay</pattern>
                  <shadedPattern>org.apache.spark-project.org.mortbay</shadedPattern>
                </relocation>
              </relocations>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
