<?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>3.1.1</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <groupId>io.arenadata.hive</groupId>
  <artifactId>hive-jdbc</artifactId>
  <packaging>jar</packaging>
  <name>Hive JDBC</name>
  <version>3.1.1-arenadata</version>
  <description>Hive JDBC driver from Arenadata</description>
  <url>https://github.com/arenadata/hive</url>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>

  <developers>
    <developer>
      <name>Andrey Shitov</name>
      <email>sai@arenadata.io</email>
      <organization>Arenadata</organization>
      <organizationUrl>https://arenadata.tech/en/</organizationUrl>
    </developer>
    <developer>
      <name>Roman Zolotov</name>
      <email>rzolotov@arenadata.io</email>
      <organization>Arenadata</organization>
      <organizationUrl>https://arenadata.tech/en/</organizationUrl>
    </developer>
  </developers>

  <scm>
    <connection>scm:git:git://github.com/arenadata/hive.git</connection>
    <developerConnection>scm:git:ssh://github.com/arenadata/hive.git</developerConnection>
    <url>https://github.com/arenadata/hive/tree/hive-3.1.1-feature/jar-with-dependencies</url>
  </scm>


  <properties>
    <hive.path.to.root>..</hive.path.to.root>
    <packaging.minimizeJar>false</packaging.minimizeJar>
    <jdbc-log4j.version>2.17.0</jdbc-log4j.version>
    <hive.version>3.1.1</hive.version>
  </properties>


  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-1.2-api</artifactId>
        <version>${jdbc-log4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>${jdbc-log4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>${jdbc-log4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-web</artifactId>
        <version>${jdbc-log4j.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>


  <dependencies>
    <!-- dependencies are always listed in sorted order by groupId, artifectId -->
    <!-- intra-project -->
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-common</artifactId>
      <version>${hive.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-service</artifactId>
      <version>${hive.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>${hive.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-metastore</artifactId>
      <version>${hive.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-shims</artifactId>
      <version>${hive.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-service-rpc</artifactId>
      <version>${hive.version}</version>
    </dependency>
    <!-- inter-project -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-1.2-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-web</artifactId>
    </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>
    <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>false</packaging.minimizeJar>
      </properties>
    </profile>
    <profile>
      <id>public-release</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <distributionManagement>
        <snapshotRepository>
          <id>ossrh</id>
          <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
          <id>ossrh</id>
          <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
      </distributionManagement>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.2.1</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <additionalOptions>-Xdoclint:none</additionalOptions>
              <additionalJOption>-Xdoclint:none</additionalJOption>
            </configuration>
            <version>3.2.0</version>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.6</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
                <configuration>
                  <keyname>${gpg.keyname}</keyname>
                  <passphraseServerId>${gpg.keyname}</passphraseServerId>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>1.6.8</version>
            <extensions>true</extensions>
            <configuration>
              <serverId>ossrh</serverId>
              <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
              <autoReleaseAfterClose>false</autoReleaseAfterClose>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>arenadata-assembly</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
              <finalName>hive-jdbc-${project.version}-assembly</finalName>
              <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
              </descriptorRefs>
              <appendAssemblyId>false</appendAssemblyId>
            </configuration>
            <executions>
              <execution>
                <id>assemble-all</id>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>dev-fast-build</id>
      <activation>
        <property>
          <name>skipShade</name>
          <value>!true</value>
        </property>
      </activation>
      <build>
        <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>org.apache.parquet:parquet-hadoop-bundle</artifact>
                      <excludes>
                        <exclude>shaded/parquet/org/codehaus/jackson/**</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>org.apache.logging.log4j:log4j-core</artifact>
                      <excludes>
                        <exclude>org/apache/logging/log4j/core/jackson/**</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>org.apache.hadoop:hadoop-common</artifact>
                      <includes>
                        <include>org/apache/hadoop/security/*</include>
                        <include>org/apache/hadoop/conf/*</include>
                        <include>org/apache/hadoop/fs/*</include>
                        <include>org/apache/hadoop/metrics2/*</include>
                        <include>org/apache/hadoop/metrics2/lib/*</include>
                        <include>org/apache/hadoop/metrics2/impl/*</include>
                        <include>org/apache/hadoop/util/ReflectionUtils.class</include>
                        <include>org/apache/hadoop/util/ReflectionUtils$1.class</include>
                        <include>org/apache/hadoop/io/Writable.class</include>
                        <include>org/apache/hadoop/io/DataOutputBuffer.class</include>
                        <include>org/apache/hadoop/io/DataInputBuffer.class</include>
                        <include>org/apache/hadoop/HadoopIllegalArgumentException.class</include>
                      </includes>
                    </filter>
                    <filter>
                      <artifact>org.apache.hadoop:hadoop-yarn-registry</artifact>
                      <includes>
                        <include>org/apache/hadoop/registry/client/binding/*</include>
                        <include>org/apache/hadoop/registry/client/types/*</include>
                      </includes>
                    </filter>
                    <filter>
                      <artifact>org.apache.hadoop:hadoop-yarn-api</artifact>
                      <includes>
			<include>org/apache/hadoop/yarn/api/records/ApplicationId.class</include>
                      </includes>
                    </filter>
                    <filter>
                      <artifact>*:*</artifact>
                      <excludes>
                        <exclude>META-INF/*.SF</exclude>
                        <exclude>META-INF/*.DSA</exclude>
                        <exclude>META-INF/*.RSA</exclude>
                        <exclude>core-default.xml</exclude>
                        <exclude>webapps/</exclude>
                        <exclude>hive-webapps/</exclude>
                        <exclude>hbase-webapps/</exclude>
                        <exclude>static/</exclude>
                      </excludes>
                    </filter>
                  </filters>
                  <artifactSet>
                    <excludes>
                      <exclude>org.apache.commons:commons-compress</exclude>
                      <exclude>org.apache.hadoop:hadoop-hdfs</exclude>
                      <exclude>org.apache.hadoop:hadoop-client</exclude>
                      <exclude>org.apache.hadoop:hadoop-hdfs-client</exclude>
                      <exclude>org.apache.hadoop:hadoop-mapreduce-client-jobclient</exclude>
                      <exclude>org.apache.hadoop:hadoop-mapreduce-client-common</exclude>
                      <exclude>org.apache.hadoop:hadoop-mapreduce-client-core</exclude>
                      <exclude>org.apache.hadoop:hadoop-yarn-client</exclude>
                      <exclude>org.apache.hadoop:hadoop-distcp</exclude>
                      <exclude>org.apache.hadoop:hadoop-yarn-server-resourcemanager</exclude>
                      <exclude>org.apache.hadoop:hadoop-yarn-common</exclude>
                      <exclude>org.apache.hadoop:hadoop-yarn-server-common</exclude>
                      <exclude>org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice</exclude>
                      <exclude>org.apache.hadoop:hadoop-yarn-server-web-proxy</exclude>
                      <exclude>org.apache.hadoop:hadoop-annotations</exclude>
                      <exclude>org.apache.hadoop:hadoop-auth</exclude>
                      <exclude>org.apache.hbase*:*</exclude>
                      <exclude>org.apache.hive:hive-vector-code-gen</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>io.airlift:*</exclude>
                      <exclude>io.dropwizard.metrics:*</exclude>
                      <exclude>org.apache.velocity:*</exclude>
                      <exclude>net.sf.jpam:*</exclude>
                      <exclude>org.apache.avro:*</exclude>
                      <exclude>org.apache.orc:*</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>com.zaxxer:*</exclude>
                      <exclude>com.fasterxml.jackson.core:*</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.*:*</exclude>
                      <exclude>jline:*</exclude>
                      <exclude>joda-time:*</exclude>
                      <exclude>net.java.dev.jets3t:*</exclude>
                      <exclude>org.apache.commons:commons-math3</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.htrace:*</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>com.tdunning:*</exclude>
                      <exclude>tomcat:*</exclude>
                      <exclude>xmlenc:*</exclude>
                      <exclude>xerces:*</exclude>
                      <exclude>xml-apis:*</exclude>
                    </excludes>
                  </artifactSet>
                  <relocations>
                    <relocation>
                      <pattern>org.apache.http</pattern>
                      <shadedPattern>org.apache.hive.org.apache.http</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>org.apache.thrift</pattern>
                      <shadedPattern>org.apache.hive.org.apache.thrift</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>com.google.common</pattern>
                      <shadedPattern>org.apache.hive.com.google.common</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>org.apache.commons</pattern>
                      <shadedPattern>org.apache.hive.org.apache.commons</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>org.apache.log4j</pattern>
                      <shadedPattern>org.apache.hive.org.apache.log4j</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>org.slf4j</pattern>
                      <shadedPattern>org.apache.hive.org.slf4j</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>com.facebook</pattern>
                      <shadedPattern>org.apache.hive.com.facebook</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>org.apache.zookeeper</pattern>
                      <shadedPattern>org.apache.hive.org.apache.zookeeper</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>org.apache.curator</pattern>
                      <shadedPattern>org.apache.hive.org.apache.curator</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>com.beust</pattern>
                      <shadedPattern>org.apache.hive.com.beust</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>com.lmax</pattern>
                      <shadedPattern>org.apache.hive.com.lmax</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>org.jamon</pattern>
                      <shadedPattern>org.apache.hive.org.jamon</shadedPattern>
                    </relocation>
                    <relocation>
                      <pattern>javolution</pattern>
                      <shadedPattern>org.apache.hive.javolution</shadedPattern>
                    </relocation>
                  </relocations>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <build>
    <sourceDirectory>${basedir}/src/java</sourceDirectory>
    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
    <resources>
      <resource>
        <directory>${basedir}/src/resources</directory>
      </resource>
    </resources>
  </build>
</project>
