<?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.apache.hive</groupId>
    <artifactId>hive</artifactId>
    <version>2.2.0-SNAPSHOT</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.apache.hive</groupId>
      <artifactId>hive-common</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-service</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-serde</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-metastore</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-shims</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-service-rpc</artifactId>
      <version>${project.version}</version>
    </dependency>
    <!-- inter-project -->
    <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>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>${hadoop.version}</version>
      <optional>true</optional>
    </dependency>
    <!-- test inter-project -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <profiles>
   <profile>
      <id>dist</id>
      <properties>
        <packaging.minimizeJar>true</packaging.minimizeJar>
      </properties>
    </profile>
  </profiles>

  <build>
    <sourceDirectory>${basedir}/src/java</sourceDirectory>
    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
    <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.apache.hive.shims:hive-shims-common</artifact>
                  <includes>
                    <include>**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>org.apache.hive.shims:hive-shims-0.23</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.commons:commons-compress</exclude>
                  <exclude>commons-configuration:commons-configuration</exclude>
                  <exclude>org.apache.hadoop:*</exclude>
                  <exclude>org.apache.hive:hive-ant</exclude>
                  <exclude>org.apache.ant:*</exclude>
                  <exclude>junit:*</exclude>
                  <exclude>org.hamcrest:*</exclude>
                  <exclude>org.ow2.asm:*</exclude>
                  <exclude>javax.jms:*</exclude>
                  <exclude>com.sun.jersey:*</exclude>
                  <exclude>com.sun.jersey.contribs:*</exclude>
                  <exclude>org.eclipse.jetty.aggregate:*</exclude>
                  <exclude>org.tukaani:*</exclude>
                  <exclude>org.iq80.snappy:*</exclude>
                  <exclude>org.apache.velocity:*</exclude>
                  <exclude>net.sf.jpam:*</exclude>
                  <exclude>org.apache.avro:*</exclude>
                  <exclude>net.sf.opencsv:*</exclude>
                  <exclude>org.antlr:*</exclude>
                  <exclude>org.slf4j:slf4j-log4j12</exclude>
                  <exclude>log4j:*</exclude>
                  <exclude>antlr:*</exclude>
                  <exclude>aopalliance:*</exclude>
                  <exclude>asm:*</exclude>
                  <exclude>com.google.code.gson:*</exclude>
                  <exclude>com.google.inject:*</exclude>
                  <exclude>com.google.inject.extensions:*</exclude>
                  <exclude>com.jamesmurty.utils:*</exclude>
                  <exclude>com.jcraft:*</exclude>
                  <exclude>com.jolbox:*</exclude>
                  <exclude>commons-beanutils:*</exclude>
                  <exclude>commons-cli:*</exclude>
                  <exclude>commons-dbcp:*</exclude>
                  <exclude>commons-digester:*</exclude>
                  <exclude>commons-el:*</exclude>
                  <exclude>commons-httpclient:*</exclude>
                  <exclude>commons-io:*</exclude>
                  <exclude>commons-net:*</exclude>
                  <exclude>commons-pool:*</exclude>
                  <exclude>com.google.code.findbugs:*</exclude>
                  <exclude>com.google.protobuf:*</exclude>
                  <exclude>com.sun.xml.bind:*</exclude>
                  <exclude>com.thoughtworks.paranamer:*</exclude>
                  <exclude>com.twitter:*</exclude>
                  <exclude>io.netty:*</exclude>
                  <exclude>javax.activation:*</exclude>
                  <exclude>javax.inject:*</exclude>
                  <exclude>javax.jdo:*</exclude>
                  <exclude>javax.mail:*</exclude>
                  <exclude>javax.servlet:*</exclude>
                  <exclude>javax.servlet.jsp:*</exclude>
                  <exclude>javax.transaction:*</exclude>
                  <exclude>javax.xml.bind:*</exclude>
                  <exclude>javax.xml.stream:*</exclude>
                  <exclude>jline:*</exclude>
                  <exclude>joda-time:*</exclude>
                  <exclude>net.java.dev.jets3t:*</exclude>
                  <exclude>org.apache.commons:commons-math3</exclude>
                  <exclude>org.apache.curator:*</exclude>
                  <exclude>org.apache.derby:*</exclude>
                  <exclude>org.apache.directory.api:*</exclude>
                  <exclude>org.apache.directory.server:*</exclude>
                  <exclude>org.apache.geronimo.specs:*</exclude>
                  <exclude>org.apache.zookeeper:*</exclude>
                  <exclude>org.codehaus.jackson:*</exclude>
                  <exclude>org.codehaus.jettison:*</exclude>
                  <exclude>org.datanucleus:*</exclude>
                  <exclude>org.fusesource.leveldbjni:*</exclude>
                  <exclude>org.htrace:*</exclude>
                  <exclude>org.mortbay.jetty:*</exclude>
                  <exclude>org.xerial.snappy:*</exclude>
                  <exclude>tomcat:*</exclude>
                  <exclude>xmlenc:*</exclude>
                </excludes>
              </artifactSet>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
