<?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>40500000</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>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>mapr</id>
      <properties>
        <package.namespace.prefix />
      </properties>

      <build>
        <plugins>
          <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>org.slf4j:jcl-over-slf4j</exclude>
                  <exclude>io.protostuff:*</exclude>
                  <exclude>${calcite.groupId}:calcite-core</exclude>
                  <exclude>${calcite.groupId}:calcite-linq4j</exclude>
                  <exclude>org.pentaho:*</exclude>
                  <exclude>org.msgpack:*</exclude>
                  <exclude>xerces:*</exclude>
                  <exclude>xalan:*</exclude>
                  <exclude>org.apache.avro:*</exclude>
                  <exclude>org.mongodb:*</exclude>
                  <exclude>com.googlecode.json-simple:*</exclude>
                  <exclude>dom4j:*</exclude>
                  <exclude>org.hibernate:*</exclude>
                  <exclude>antlr:*</exclude>
                  <exclude>org.ow2.asm:*</exclude>
                  <exclude>com.univocity:*</exclude>
                  <exclude>net.sf.jpam:*</exclude>
                  <exclude>com.twitter:*</exclude>
                  <exclude>org.apache.parquet:*</exclude>
                  <exclude>javax.inject:*</exclude>
                  <exclude>com.beust:*</exclude>
                  <exclude>jline:*</exclude>
                  <exclude>org.xerial.snappy:*</exclude>
                  <exclude>org.apache.avro:*</exclude>
                  <exclude>org.tukaani:*</exclude>
                  <exclude>org.apache.velocity:*</exclude>
                  <exclude>net.hydromatic:linq4j</exclude>
                  <exclude>org.codehaus.janino:*</exclude>
                  <exclude>org.eclipse.jetty:*</exclude>
                  <exclude>org.slf4j:jul-to-slf4j</exclude>
                  <exclude>org.slf4j:log4j-over-slf4j</exclude>
                  <exclude>org.hamcrest:hamcrest-core</exclude>
                  <exclude>org.mockito:mockito-core</exclude>
                  <exclude>org.objenesis:objenesis</exclude>
                  <exclude>org.eclipse.jetty:*</exclude>
                  <exclude>org.apache.hadoop:*</exclude>
                  <exclude>org.jboss.netty:netty</exclude>
                  <exclude>javax.xml.bind:jaxb-api</exclude>
                  <exclude>javax.xml.stream:stax-api</exclude>
                  <exclude>javax.activation:activation</exclude>
                  <exclude>commons-cli:commons-cli</exclude>
                  <exclude>org.apache.commons:commons-collections4</exclude>
                  <exclude>commons-io:commons-io</exclude>
                  <exclude>commons-beanutils:commons-beanutils-core:jar:*</exclude>
                  <exclude>commons-beanutils:commons-beanutils:jar:*</exclude>
                  <exclude>com.google.code.findbugs:jsr305:*</exclude>
                  <exclude>com.esri.geometry:esri-geometry-api:*</exclude>
                  <exclude>dnsjava:dnsjava:jar:*</exclude>
                  <exclude>io.netty:netty-tcnative:jar:*</exclude>
                  <exclude>io.netty:netty-tcnative-classes:jar:*</exclude>
                  <exclude>com.bettercloud:vault-java-driver:jar:*</exclude>
                  <exclude>com.tdunning:t-digest:jar:*</exclude>
                  <exclude>io.airlift:aircompressor:jar:*</exclude>
                  <exclude>com.rdblue:brotli-codec:jar:*</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>
              </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>**/logback.xml</exclude>
                    <exclude>**/LICENSE.txt</exclude>
                    <exclude>**/*.java</exclude>
                    <exclude>META-INF/ASL2.0</exclude>
                    <exclude>META-INF/NOTICE.txt</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/services/com.fasterxml.*</exclude>
                    <exclude>META-INF/services/javax.ws.*</exclude>
                    <exclude>META-INF/**/*.properties</exclude>
                    <exclude>**/org.codehaus.commons.compiler.properties</exclude>
                    <exclude>module-info.class</exclude>
                    <exclude>**/*.SF</exclude>
                    <exclude>**/*.RSA</exclude>
                    <exclude>**/*.DSA</exclude>
                    <exclude>javax/*</exclude>
                    <exclude>javax/activation/**</exclude>
                    <exclude>javax/annotation-api/**</exclude>
                    <exclude>javax/inject/**</exclude>
                    <exclude>javax/servlet-api/**</exclude>
                    <exclude>javax/json/**</exclude>
                    <exclude>javax/ws/**</exclude>
                    <exclude>rest/**</exclude>
                    <exclude>*.tokens</exclude>
                    <exclude>codegen/**</exclude>
                    <exclude>bootstrap-storage-plugins.json</exclude>
                    <exclude>org/apache/parquet</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/html/**</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/drill/shaded/guava/com/google/common/graph/**</exclude>
                    <exclude>org/apache/drill/shaded/guava/com/google/common/collect/Tree*</exclude>
                    <exclude>org/apache/drill/shaded/guava/com/google/common/collect/Standard*</exclude>
                    <exclude>org/apache/drill/shaded/guava/com/google/common/graph/**</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/google/common/cache</exclude>
                    <exclude>com/google/common/collect/Tree*</exclude>
                    <exclude>com/google/common/collect/Standard*</exclude>
                    <exclude>org/apache/drill/exec/expr/annotations/**</exclude>
                    <exclude>org/apache/drill/exec/expr/fn/**</exclude>
                    <exclude>org/apache/drill/exec/proto/beans/**</exclude>
                    <exclude>org/apache/drill/exec/compile/**</exclude>
                    <exclude>org/apache/drill/exec/planner/**</exclude>
                    <exclude>org/apache/drill/exec/physical/**</exclude>
                    <exclude>org/apache/drill/exec/store/**</exclude>
                    <exclude>org/apache/drill/exec/server/rest/**</exclude>
                    <exclude>org/apache/drill/exec/rpc/data/**</exclude>
                    <exclude>org/apache/drill/exec/rpc/control/**</exclude>
                    <exclude>org/apache/drill/exec/work/**</exclude>
                    <exclude>org/apache/drill/metastore/**</exclude>
                    <exclude>org/apache/hadoop/**</exclude>
                    <exclude>org/apache/commons/pool2/**</exclude>
                    <exclude>org/apache/http/**</exclude>
                    <exclude>org/apache/directory/**</exclude>
                    <exclude>com/jcraft/**</exclude>
                    <exclude>**/mapr/**</exclude>
                    <exclude>org/yaml/**</exclude>
                    <exclude>hello/**</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>
        </plugins>

      </build>
    </profile>
    <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>
