<?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.21.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>47000000</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>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.mortbay.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.0.0-M3</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>io.protostuff:*</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>com.dropbox.*</exclude>
              <exclude>com.github.stefanbirkner</exclude>
              <exclude>org.ow2.asm:*</exclude>
              <exclude>com.univocity:*</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.mortbay.jetty:*</exclude>
              <exclude>org.slf4j:jul-to-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>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>dnsjava:dnsjava:jar:*</exclude>
              <exclude>io.netty:netty-tcnative:jar:*</exclude>
              <exclude>io.netty:netty-tcnative-classes:jar:*</exclude>
              <exclude>com.nimbusds:*</exclude>
              <exclude>org.apache.yetus:*</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>**/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/io/BaseEncoding*</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/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/net/**</exclude>
                <exclude>org/apache/hadoop/record/**</exclude>
                <exclude>org/apache/hadoop/service/**</exclude>
                <exclude>org/apache/hadoop/tracing/**</exclude>
                <exclude>org/apache/hadoop/tools/**</exclude>
                <exclude>org/apache/hadoop/yarn/**</exclude>
                <exclude>org/apache/commons/pool2/**</exclude>
                <exclude>org/apache/http/**</exclude>
                <exclude>org/apache/directory/**</exclude>
                <exclude>org/apache/drill/metastore/**</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>

      <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.mortbay.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>50000000</jdbc-all-jar.maxsize>
      </properties>
    </profile>
  </profiles>

</project>
