<?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>54000000</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>
          <groupId>io.dropwizard.metrics</groupId>
          <artifactId>metrics-servlets</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>*</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>*</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>parquet-hadoop</artifactId>
          <groupId>org.apache.parquet</groupId>
        </exclusion>
        <exclusion>
          <artifactId>parquet-column</artifactId>
          <groupId>org.apache.parquet</groupId>
        </exclusion>
        <exclusion>
          <artifactId>parquet-common</artifactId>
          <groupId>org.apache.parquet</groupId>
        </exclusion>
        <exclusion>
          <artifactId>infinispan-core</artifactId>
          <groupId>org.infinispan</groupId>
        </exclusion>
        <exclusion>
          <artifactId>asm-util</artifactId>
          <groupId>org.ow2.asm</groupId>
        </exclusion>
        <exclusion>
          <artifactId>codemodel</artifactId>
          <groupId>com.sun.codemodel</groupId>
        </exclusion>
        <exclusion>
          <artifactId>asm-commons</artifactId>
          <groupId>org.ow2.asm</groupId>
        </exclusion>
        <exclusion>
          <artifactId>infinispan-tree</artifactId>
          <groupId>org.infinispan</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jetty-util</artifactId>
          <groupId>org.eclipse.jetty</groupId>
        </exclusion>
        <exclusion>
          <artifactId>freemarker</artifactId>
          <groupId>org.freemarker</groupId>
        </exclusion>
        <exclusion>
          <artifactId>hazelcast</artifactId>
          <groupId>com.hazelcast</groupId>
        </exclusion>
        <exclusion>
          <groupId>nl.basjes.parse.httpdlog</groupId>
          <artifactId>httpdlog-parser</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.kohsuke</groupId>
          <artifactId>libpam4j</artifactId>
        </exclusion>
        <exclusion>
          <groupId>sqlline</groupId>
          <artifactId>sqlline</artifactId>
        </exclusion>
        <exclusion>
          <artifactId>stream</artifactId>
          <groupId>com.clearspring.analytics</groupId>
        </exclusion>
        <exclusion>
          <groupId>org.honton.chas.hocon</groupId>
          <artifactId>jackson-dataformat-hocon</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.owasp.encoder</groupId>
          <artifactId>encoder</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.dropbox.core</groupId>
          <artifactId>dropbox-core-sdk</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.box</groupId>
          <artifactId>box-java-sdk</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-compress</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.ws.xmlschema</groupId>
          <artifactId>xmlschema-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.ws.xmlschema</groupId>
          <artifactId>xmlschema-walker</artifactId>
        </exclusion>
        <exclusion>
          <groupId>io.airlift</groupId>
          <artifactId>aircompressor</artifactId>
        </exclusion>
        <exclusion>
          <groupId>io.swagger.core.v3</groupId>
          <artifactId>swagger-jaxrs2</artifactId>
        </exclusion>
        <exclusion>
          <groupId>io.swagger.core.v3</groupId>
          <artifactId>swagger-jaxrs2-servlet-initializer-v2</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.squareup.okhttp3</groupId>
          <artifactId>okhttp</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.tdunning</groupId>
          <artifactId>t-digest</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.bettercloud</groupId>
          <artifactId>vault-java-driver</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.esri.geometry</groupId>
          <artifactId>esri-geometry-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.yahoo.datasketches</groupId>
          <artifactId>sketches-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>${calcite.groupId}</groupId>
          <artifactId>calcite-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>${calcite.groupId}</groupId>
          <artifactId>calcite-linq4j</artifactId>
        </exclusion>
        <exclusion>
          <groupId>net.sf.jpam</groupId>
          <artifactId>jpam</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.beust</groupId>
          <artifactId>jcommander</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.codehaus.janino</groupId>
          <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.thoughtworks.paranamer</groupId>
          <artifactId>paranamer</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.servlet</groupId>
          <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.servlet.jsp</groupId>
          <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.kerby</groupId>
          <artifactId>*</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>
              <!-- Please keep this list sorted. -->
              <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.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/hadoop/crypto/**</exclude>
                <exclude>org/apache/hadoop/ha/**</exclude>
                <exclude>org/apache/hadoop/http/**</exclude>
                <exclude>org/apache/hadoop/ipc/**</exclude>
                <exclude>org/apache/hadoop/jmx/**</exclude>
                <exclude>org/apache/hadoop/log/**</exclude>
                <exclude>org/apache/hadoop/metrics/**</exclude>
                <exclude>org/apache/hadoop/record/**</exclude>
                <exclude>org/apache/hadoop/service/**</exclude>
                <exclude>org/apache/hadoop/tools/**</exclude>
                <exclude>org/apache/hadoop/tracing/**</exclude>
                <exclude>org/apache/hadoop/yarn/**</exclude>
                <exclude>org/apache/http/**</exclude>
                <exclude>org/apache/parquet</exclude>
                <exclude>**/org.codehaus.commons.compiler.properties</exclude>
                <exclude>org/yaml/**</exclude>
                <exclude>rest/**</exclude>
                <exclude>**/*.RSA</exclude>
                <exclude>**/*.SF</exclude>
                <exclude>*.tokens</exclude>
                <exclude>webapps/**</exclude>
              </excludes>
            </filter>
            <!-- This file is used to automatically load given jdbc driver without calling Class.forName().
                 Excluding the Avatica service file which is conflicting with the Drill one. -->
            <filter>
              <artifact>org.apache.calcite.avatica:*</artifact>
              <excludes>
                <exclude>META-INF/services/java.sql.Driver</exclude>
                <!-- Excludes shaded slf4j to avoid conflicts when they are put into the fat jar -->
                <exclude>org/slf4j/**</exclude>
              </excludes>
            </filter>
          </filters>
        </configuration>
      </plugin>

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

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

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

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

    </plugins>
  </build>

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

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

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

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

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

</project>
