<?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.drill.exec</groupId>
    <artifactId>exec-parent</artifactId>
    <version>1.22.0-SNAPSHOT</version>
  </parent>

  <artifactId>drill-jdbc-all</artifactId>
  <name>Drill : Exec : JDBC JAR with all dependencies</name>

  <!-- Since we are packaging hadoop dependencies under the namespace with "oadd." prefix by default,
       "package.namespace.prefix" equals to "oadd.". It can be overridden if necessary within any profile -->
  <properties>
    <package.namespace.prefix>oadd.</package.namespace.prefix>
    <jdbc-all-jar.maxsize>44500000</jdbc-all-jar.maxsize>
  </properties>

  <dependencies>
    <!--
      Notes for excluding unwanted code from the JDBC driver to keep its
      size down.

      First use conventional Maven exclusions, most commonly required under
      drill-java-exec, to try to exclude the dependency. If you cannot see
      the code you want exclude in this module's mvn:dependency-tree under
      a dependency where you could add an exclusion then you will need to
      use exclusion rules in the maven-shade-plugin instead.

      Once you've excluded something that was previously present in the JDBC
      driver you need to test it. Note that neither the JDBC unit tests nor
      drill-embedded exercise the JDBC driver JAR produced by *this module*,
      even though they both connect to Drill using JDBC. So to test you need
      to launch a JDBC client like DBeaver or a short Java CLI program that
      loads the driver JAR created by this module.
    -->

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

    <dependency>
      <groupId>org.apache.drill</groupId>
      <artifactId>drill-common</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <artifactId>javassist</artifactId>
          <groupId>javassist</groupId>
        </exclusion>
        <exclusion>
          <groupId>io.dropwizard.metrics</groupId>
          <artifactId>metrics-servlets</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.drill.exec</groupId>
      <artifactId>drill-java-exec</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.javassist</groupId>
          <artifactId>javassist</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.hbase</groupId>
          <artifactId>hbase</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.bouncycastle</groupId>
          <artifactId>bcpkix-jdk15on</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-codec</groupId>
          <artifactId>commons-codec</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-server</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.glassfish.jersey.core</groupId>
          <artifactId>jersey-common</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.glassfish.jersey.containers</groupId>
          <artifactId>jersey-container-jetty-servlet</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.glassfish.jersey.media</groupId>
          <artifactId>jersey-media-multipart</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.glassfish.jersey.ext</groupId>
          <artifactId>jersey-mvc-freemarker</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.glassfish.jersey.media</groupId>
          <artifactId>jersey-media-json-jackson</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.glassfish.jersey.inject</groupId>
          <artifactId>jersey-hk2</artifactId>
        </exclusion>
        <exclusion>
          <artifactId>jetty-server</artifactId>
          <groupId>org.eclipse.jetty</groupId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-client</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.avro</groupId>
          <artifactId>avro-mapred</artifactId>
        </exclusion>
        <exclusion>
          <artifactId>jetty-servlet</artifactId>
          <groupId>org.eclipse.jetty</groupId>
        </exclusion>
        <exclusion>
          <artifactId>parquet-hadoop</artifactId>
          <groupId>org.apache.parquet</groupId>
        </exclusion>
        <exclusion>
          <artifactId>parquet-column</artifactId>
          <groupId>org.apache.parquet</groupId>
        </exclusion>
        <exclusion>
          <artifactId>parquet-common</artifactId>
          <groupId>org.apache.parquet</groupId>
        </exclusion>
        <exclusion>
          <artifactId>infinispan-core</artifactId>
          <groupId>org.infinispan</groupId>
        </exclusion>
        <exclusion>
          <artifactId>asm-util</artifactId>
          <groupId>org.ow2.asm</groupId>
        </exclusion>
        <exclusion>
          <artifactId>codemodel</artifactId>
          <groupId>com.sun.codemodel</groupId>
        </exclusion>
        <exclusion>
          <artifactId>asm-commons</artifactId>
          <groupId>org.ow2.asm</groupId>
        </exclusion>
        <exclusion>
          <artifactId>infinispan-tree</artifactId>
          <groupId>org.infinispan</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jetty-util</artifactId>
          <groupId>org.eclipse.jetty</groupId>
        </exclusion>
        <exclusion>
          <artifactId>freemarker</artifactId>
          <groupId>org.freemarker</groupId>
        </exclusion>
        <exclusion>
          <artifactId>hazelcast</artifactId>
          <groupId>com.hazelcast</groupId>
        </exclusion>
        <exclusion>
          <groupId>nl.basjes.parse.httpdlog</groupId>
          <artifactId>httpdlog-parser</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.kohsuke</groupId>
          <artifactId>libpam4j</artifactId>
        </exclusion>
        <exclusion>
          <groupId>sqlline</groupId>
          <artifactId>sqlline</artifactId>
        </exclusion>
        <exclusion>
          <artifactId>stream</artifactId>
          <groupId>com.clearspring.analytics</groupId>
        </exclusion>
        <exclusion>
          <groupId>org.honton.chas.hocon</groupId>
          <artifactId>jackson-dataformat-hocon</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.owasp.encoder</groupId>
          <artifactId>encoder</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.dropbox.core</groupId>
          <artifactId>dropbox-core-sdk</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.box</groupId>
          <artifactId>box-java-sdk</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-compress</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.ws.xmlschema</groupId>
          <artifactId>xmlschema-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.ws.xmlschema</groupId>
          <artifactId>xmlschema-walker</artifactId>
        </exclusion>
        <exclusion>
          <groupId>io.airlift</groupId>
          <artifactId>aircompressor</artifactId>
        </exclusion>
        <exclusion>
          <groupId>io.swagger.core.v3</groupId>
          <artifactId>swagger-jaxrs2</artifactId>
        </exclusion>
        <exclusion>
          <groupId>io.swagger.core.v3</groupId>
          <artifactId>swagger-jaxrs2-servlet-initializer-v2</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.squareup.okhttp3</groupId>
          <artifactId>okhttp</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.tdunning</groupId>
          <artifactId>t-digest</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.bettercloud</groupId>
          <artifactId>vault-java-driver</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.esri.geometry</groupId>
          <artifactId>esri-geometry-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.yahoo.datasketches</groupId>
          <artifactId>sketches-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>${calcite.groupId}</groupId>
          <artifactId>calcite-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>${calcite.groupId}</groupId>
          <artifactId>calcite-linq4j</artifactId>
        </exclusion>
        <exclusion>
          <groupId>net.sf.jpam</groupId>
          <artifactId>jpam</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.drill.exec</groupId>
      <artifactId>drill-jdbc</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <artifactId>drill-storage-hive-core</artifactId>
          <groupId>org.apache.drill.contrib.storage-hive</groupId>
        </exclusion>
        <exclusion>
          <artifactId>foodmart-data-json</artifactId>
          <groupId>net.hydromatic</groupId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- Test Dependencies -->
    <dependency>
      <groupId>org.apache.drill</groupId>
      <artifactId>drill-common</artifactId>
      <classifier>tests</classifier>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.drill.exec</groupId>
      <artifactId>drill-java-exec</artifactId>
      <classifier>tests</classifier>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>

  </dependencies>

  <build>

    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>

    <plugins>

      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>define-classpath</id>
            <phase>integration-test</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <exportAntProperties>true</exportAntProperties>
              <target>
                <property name="app.class.path" refid="maven.test.classpath" />
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>3.1.2</version>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>

        <configuration>
          <argLine>-Xms512m -Xmx3g -Ddrill.exec.http.enabled=false -Djava.net.preferIPv4Stack=true
            -Ddrill.exec.sys.store.provider.local.write=false
            -Dorg.apache.drill.exec.server.Drillbit.system_options="org.apache.drill.exec.compile.ClassTransformer.scalar_replacement=on"
            -XX:MaxDirectMemorySize=3072M
            ${junit.args} -ea
          </argLine>
          <additionalClasspathElements>
            <additionalClasspathElements>${settings.localRepository}/org/junit/vintage/junit-vintage-engine/${junit.version}/junit-vintage-engine-${junit.version}.jar
            </additionalClasspathElements>
            <additionalClasspathElements>${settings.localRepository}/org/hamcrest/hamcrest/${hamcrest.version}/hamcrest-${hamcrest.version}.jar</additionalClasspathElements>
            <additionalClasspathElements>${project.build.directory}/test-classes/</additionalClasspathElements>
          </additionalClasspathElements>

          <systemPropertyVariables>
            <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
            <app.class.path>${app.class.path}</app.class.path>
            <project.version>${project.version}</project.version>
          </systemPropertyVariables>
          <useSystemClassLoader>false</useSystemClassLoader>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <configuration>
          <shadedArtifactAttached>false</shadedArtifactAttached>
          <createDependencyReducedPom>true</createDependencyReducedPom>
          <!-- TODO DRILL-4336: try to move the dependencyReducedPom out of the default location (the module root).
               Putting it here caused the target directory to be run as a submodule (oddly
               only when trying to run the maven release goal) -->
          <!--dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation-->
          <!-- TODO DRILL-4336: an attempt to fix the issue by moving the file elsewhere, had issues executing
               but may be able to be modified to to fix the issue-->
          <!--dependencyReducedPomLocation>${project.build.directory}/generated/shade/dependency-reduced-pom.xml</dependencyReducedPomLocation-->
          <minimizeJar>false</minimizeJar>

          <!-- Exclude dependencies at artifact level. Format is "groupId:artifactId[[:type]:classifier]" -->
          <artifactSet>
            <includes>
              <include>*:*</include>
            </includes>
            <excludes>
              <exclude>antlr:*</exclude>
              <exclude>com.beust:*</exclude>
              <exclude>com.dropbox.*</exclude>
              <exclude>com.github.stefanbirkner</exclude>
              <exclude>com.google.code.findbugs:jsr305:*</exclude>
              <exclude>com.googlecode.json-simple:*</exclude>
              <exclude>commons-beanutils:commons-beanutils-core:jar:*</exclude>
              <exclude>commons-beanutils:commons-beanutils:jar:*</exclude>
              <exclude>commons-cli:commons-cli</exclude>
              <exclude>commons-io:commons-io</exclude>
              <exclude>com.nimbusds:*</exclude>
              <exclude>com.twitter:*</exclude>
              <exclude>com.univocity:*</exclude>
              <exclude>dnsjava:dnsjava:jar:*</exclude>
              <exclude>dom4j:*</exclude>
              <exclude>io.netty:netty-tcnative-classes:jar:*</exclude>
              <exclude>io.netty:netty-tcnative:jar:*</exclude>
              <exclude>io.protostuff:*</exclude>
              <exclude>javax.activation:activation</exclude>
              <exclude>javax.inject:*</exclude>
              <exclude>javax.xml.bind:jaxb-api</exclude>
              <exclude>javax.xml.stream:stax-api</exclude>
              <exclude>jline:*</exclude>
              <exclude>net.hydromatic:linq4j</exclude>
              <exclude>org.apache.avro:*</exclude>
              <exclude>org.apache.avro:*</exclude>
              <exclude>org.apache.commons:commons-collections4</exclude>
              <exclude>org.apache.hadoop:hadoop-yarn-client</exclude>
              <exclude>org.apache.parquet:*</exclude>
              <exclude>org.apache.velocity:*</exclude>
              <exclude>org.apache.yetus:*</exclude>
              <exclude>org.eclipse.jetty:*</exclude>
              <exclude>org.eclipse.jetty.websocket:*</exclude>
              <exclude>org.hamcrest:hamcrest-core</exclude>
              <exclude>org.hibernate:*</exclude>
              <exclude>org.mockito:mockito-core</exclude>
              <exclude>org.mongodb:*</exclude>
              <exclude>org.msgpack:*</exclude>
              <exclude>org.objenesis:objenesis</exclude>
              <exclude>org.ow2.asm:*</exclude>
              <exclude>org.pentaho:*</exclude>
              <exclude>org.slf4j:jul-to-slf4j</exclude>
              <exclude>org.tukaani:*</exclude>
              <exclude>org.xerial.snappy:*</exclude>
              <exclude>xalan:*</exclude>
              <exclude>xerces:*</exclude>
            </excludes>
          </artifactSet>
          <relocations>
            <!-- Relocate Drill classes to minimize classloader hell. -->
            <relocation>
              <pattern>org.apache.drill.exec.</pattern>
              <shadedPattern>oadd.org.apache.drill.exec.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.drill.common.</pattern>
              <shadedPattern>oadd.org.apache.drill.common.</shadedPattern>
            </relocation>

            <!-- Move dependencies out of path -->
            <relocation>
              <pattern>antlr.</pattern>
              <shadedPattern>oadd.antlr.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>antlr.</pattern>
              <shadedPattern>oadd.antlr.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>io.</pattern>
              <shadedPattern>oadd.io.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>javacc.</pattern>
              <shadedPattern>oadd.javacc.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>java_cup.</pattern>
              <shadedPattern>oadd.java_cup.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>javassist.</pattern>
              <shadedPattern>oadd.javassist.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>jline.</pattern>
              <shadedPattern>oadd.jline.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>license.</pattern>
              <shadedPattern>oadd.license.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>net.</pattern>
              <shadedPattern>oadd.net.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>parquet.</pattern>
              <shadedPattern>oadd.parquet.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>test.</pattern>
              <shadedPattern>oadd.test.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>trax.</pattern>
              <shadedPattern>oadd.trax.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.antlr.</pattern>
              <shadedPattern>oadd.org.antlr.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.codehaus.</pattern>
              <shadedPattern>oadd.org.codehaus.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.eigenbase.</pattern>
              <shadedPattern>oadd.org.eigenbase.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.hamcrest.</pattern>
              <shadedPattern>oadd.org.hamcrest.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.jboss.</pattern>
              <shadedPattern>oadd.org.jboss.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.joda.</pattern>
              <shadedPattern>oadd.org.joda.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.json.</pattern>
              <shadedPattern>oadd.org.json.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.mockito.</pattern>
              <shadedPattern>oadd.org.mockito.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.msgpack.</pattern>
              <shadedPattern>oadd.org.msgpack.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.objectweb.</pattern>
              <shadedPattern>oadd.org.objectweb.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.objensis.</pattern>
              <shadedPattern>oadd.org.objensis.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.pentaho.</pattern>
              <shadedPattern>oadd.org.pentaho.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.reflections.</pattern>
              <shadedPattern>oadd.org.reflections.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.tukaani.</pattern>
              <shadedPattern>oadd.org.tukaani.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.xerial.</pattern>
              <shadedPattern>oadd.org.xerial.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.beust.</pattern>
              <shadedPattern>oadd.com.beust.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.carrotsearch.</pattern>
              <shadedPattern>oadd.com.carrotsearch.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.codahale.</pattern>
              <shadedPattern>oadd.com.codahale.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.dyuproject.</pattern>
              <shadedPattern>oadd.com.dyuproject.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.fasterxml.</pattern>
              <shadedPattern>oadd.com.fasterxml.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.google.</pattern>
              <shadedPattern>oadd.com.google.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.thoughtworks.</pattern>
              <shadedPattern>oadd.com.thoughtworks.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.typesafe.</pattern>
              <shadedPattern>oadd.com.typesafe.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.univocity.</pattern>
              <shadedPattern>oadd.com.univocity.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.avro.</pattern>
              <shadedPattern>oadd.org.apache.avro.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.bcel.</pattern>
              <shadedPattern>oadd.org.apache.bcel.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.calcite.</pattern>
              <shadedPattern>oadd.org.apache.calcite.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.commons.</pattern>
              <shadedPattern>oadd.org.apache.commons.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.curator.</pattern>
              <shadedPattern>oadd.org.apache.curator.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.html.</pattern>
              <shadedPattern>oadd.org.apache.html.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.jute.</pattern>
              <shadedPattern>oadd.org.apache.jute.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.log4j.</pattern>
              <shadedPattern>oadd.org.apache.log4j.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.regexp.</pattern>
              <shadedPattern>oadd.org.apache.regexp.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.velocity.</pattern>
              <shadedPattern>oadd.org.apache.velocity.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.wml.</pattern>
              <shadedPattern>oadd.org.apache.wml.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.xalan.</pattern>
              <shadedPattern>oadd.org.apache.xalan.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.xerces.</pattern>
              <shadedPattern>oadd.org.apache.xerces.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.xml.</pattern>
              <shadedPattern>oadd.org.apache.xml.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.xmlcommons.</pattern>
              <shadedPattern>oadd.org.apache.xmlcommons.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.xpath.</pattern>
              <shadedPattern>oadd.org.apache.xpath.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.zookeeper.</pattern>
              <shadedPattern>oadd.org.apache.zookeeper.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.hadoop.</pattern>
              <shadedPattern>oadd.org.apache.hadoop.</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.ctc.wstx.</pattern>
              <shadedPattern>oadd.com.ctc.wstx.</shadedPattern>
            </relocation>
          </relocations>
          <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
              <resource>drill-module.conf</resource>
            </transformer>
          </transformers>

          <!-- Remove the particular directory or class level dependency from final jar -->
          <filters>
            <filter>
              <artifact>*:*</artifact>
              <excludes>
                <exclude>bootstrap-storage-plugins.json</exclude>
                <exclude>codegen/**</exclude>
                <exclude>com/google/common/cache</exclude>
                <exclude>com/google/common/collect/Standard*</exclude>
                <exclude>com/google/common/collect/Tree*</exclude>
                <exclude>com/google/common/math</exclude>
                <exclude>com/google/common/net</exclude>
                <exclude>com/google/common/primitives</exclude>
                <exclude>com/google/common/reflect</exclude>
                <exclude>com/google/common/util</exclude>
                <exclude>com/jcraft/**</exclude>
                <exclude>**/*.DSA</exclude>
                <exclude>hello/**</exclude>
                <exclude>**/*.java</exclude>
                <exclude>javax/activation/**</exclude>
                <exclude>javax/annotation-api/**</exclude>
                <exclude>javax/*</exclude>
                <exclude>javax/inject/**</exclude>
                <exclude>javax/json/**</exclude>
                <exclude>javax/servlet/**</exclude>
                <exclude>javax/ws/**</exclude>
                <exclude>**/LICENSE.txt</exclude>
                <exclude>**/logback.xml</exclude>
                <exclude>**/mapr/**</exclude>
                <exclude>META-INF/ASL2.0</exclude>
                <exclude>META-INF/drill-module-scan/**</exclude>
                <exclude>META-INF/jboss-beans.xml</exclude>
                <exclude>META-INF/license/**</exclude>
                <exclude>META-INF/maven/**</exclude>
                <exclude>META-INF/native/**</exclude>
                <exclude>META-INF/NOTICE.txt</exclude>
                <exclude>META-INF/**/*.properties</exclude>
                <exclude>META-INF/services/com.fasterxml.*</exclude>
                <exclude>META-INF/services/javax.ws.*</exclude>
                <exclude>module-info.class</exclude>
                <exclude>org/apache/commons/pool2/**</exclude>
                <exclude>org/apache/directory/**</exclude>
                <exclude>org/apache/drill/exec/compile/**</exclude>
                <exclude>org/apache/drill/exec/expr/annotations/**</exclude>
                <exclude>org/apache/drill/exec/expr/fn/**</exclude>
                <exclude>org/apache/drill/exec/physical/**</exclude>
                <exclude>org/apache/drill/exec/planner/**</exclude>
                <exclude>org/apache/drill/exec/proto/beans/**</exclude>
                <exclude>org/apache/drill/exec/rpc/control/**</exclude>
                <exclude>org/apache/drill/exec/rpc/data/**</exclude>
                <exclude>org/apache/drill/exec/server/rest/**</exclude>
                <exclude>org/apache/drill/exec/store/**</exclude>
                <exclude>org/apache/drill/exec/work/**</exclude>
                <exclude>org/apache/drill/metastore/**</exclude>
                <exclude>org/apache/drill/shaded/guava/com/google/common/collect/Standard*</exclude>
                <exclude>org/apache/drill/shaded/guava/com/google/common/collect/Tree*</exclude>
                <exclude>org/apache/drill/shaded/guava/com/google/common/escape/**</exclude>
                <exclude>org/apache/drill/shaded/guava/com/google/common/eventbus/**</exclude>
                <exclude>org/apache/drill/shaded/guava/com/google/common/graph/**</exclude>
                <exclude>org/apache/drill/shaded/guava/com/google/common/graph/**</exclude>
                <exclude>org/apache/drill/shaded/guava/com/google/common/html/**</exclude>
                <exclude>org/apache/drill/shaded/guava/com/google/common/io/BaseEncoding*</exclude>
                <exclude>org/apache/drill/shaded/guava/com/google/common/net/**</exclude>
                <exclude>org/apache/drill/shaded/guava/com/google/common/xml/**</exclude>
                <exclude>org/apache/hadoop/crypto/**</exclude>
                <exclude>org/apache/hadoop/ha/**</exclude>
                <exclude>org/apache/hadoop/http/**</exclude>
                <exclude>org/apache/hadoop/ipc/**</exclude>
                <exclude>org/apache/hadoop/jmx/**</exclude>
                <exclude>org/apache/hadoop/log/**</exclude>
                <exclude>org/apache/hadoop/metrics/**</exclude>
                <exclude>org/apache/hadoop/record/**</exclude>
                <exclude>org/apache/hadoop/service/**</exclude>
                <exclude>org/apache/hadoop/tools/**</exclude>
                <exclude>org/apache/hadoop/tracing/**</exclude>
                <exclude>org/apache/hadoop/yarn/**</exclude>
                <exclude>org/apache/http/**</exclude>
                <exclude>org/apache/parquet</exclude>
                <exclude>**/org.codehaus.commons.compiler.properties</exclude>
                <exclude>org/yaml/**</exclude>
                <exclude>rest/**</exclude>
                <exclude>**/*.RSA</exclude>
                <exclude>**/*.SF</exclude>
                <exclude>*.tokens</exclude>
                <exclude>webapps/**</exclude>
              </excludes>
            </filter>
            <!-- This file is used to automatically load given jdbc driver without calling Class.forName().
                 Excluding the Avatica service file which is conflicting with the Drill one. -->
            <filter>
              <artifact>org.apache.calcite.avatica:*</artifact>
              <excludes>
                <exclude>META-INF/services/java.sql.Driver</exclude>
                <!-- Excludes shaded slf4j to avoid conflicts when they are put into the fat jar -->
                <exclude>org/slf4j/**</exclude>
              </excludes>
            </filter>
          </filters>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforce-jdbc-jar-compactness</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>verify</phase>
            <configuration>
              <rules>
                <requireFilesSize>
                  <message>

                    The file drill-jdbc-all-${project.version}.jar is outside the expected size range.

                    This is likely due to you adding new dependencies to a java-exec and not updating the excludes in this module. This is important as it minimizes the size of the
                    dependency of Drill application users.

                  </message>
                  <maxsize>${jdbc-all-jar.maxsize}</maxsize>
                  <minsize>15000000</minsize>
                  <files>
                    <file>${project.build.directory}/drill-jdbc-all-${project.version}.jar</file>
                  </files>
                </requireFilesSize>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

  <profiles>
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>aggregate-jar</goal>
                </goals>
                <inherited>false</inherited>
                <configuration>
                  <includeDependencySources>true</includeDependencySources>
                  <dependencySourceIncludes>
                    <dependencySourceInclude>org.apache.drill.exec:drill-jdbc</dependencySourceInclude>
                  </dependencySourceIncludes>
                  <!-- Include only the published interface in the Javadoc-
                       generated documentation.  Unfortunately, the plugin does
                       not support inclusion patterns and hence we have to rely
                       on an exclusion pattern. -->
                  <excludePackageNames>org.apache.drill.jdbc.impl</excludePackageNames>

                  <!-- windowtitle: common part of window titles (goes in
                       parentheses at end of window title, after in-page title
                       (e.g., package name)) -->
                  <windowtitle>
                    Apache Drill JDBC Driver v. ${project.version}
                  </windowtitle>

                  <!-- header, footer:  small text at right edge of
                       top, bottom Overview/Package/etc. menu bars -->
                  <header>Apache Drill JDBC Driver v. ${project.version}</header>
                  <footer>Apache Drill JDBC Driver v. ${project.version}</footer>

                  <!-- doctitle:  in-page title for overview page  -->
                  <doctitle>
                    Apache Drill JDBC Driver version ${project.version}
                  </doctitle>
                  <groups>
                    <group>
                      <title>Drill JDBC Driver</title>
                      <packages>org.apache.drill.jdbc</packages>
                    </group>
                    <group>
                      <title>Tracing Proxy JDBC Driver</title>
                      <packages>org.apache.drill.jdbc.proxy</packages>
                    </group>
                  </groups>

                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>hadoop-2</id>
      <properties>
        <jdbc-all-jar.maxsize>51000000</jdbc-all-jar.maxsize>
      </properties>
    </profile>
  </profiles>

</project>
