blob: 97433fa48338b521b451156688c6e73d19295ba5 [file] [log] [blame]
<?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.17.0-SNAPSHOT</version>
</parent>
<artifactId>drill-jdbc-all</artifactId>
<name>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>
</properties>
<dependencies>
<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>
</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.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>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>
<artifactId>metadata-extractor</artifactId>
<groupId>com.drewnoakes</groupId>
</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>
</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
-XX:+CMSClassUnloadingEnabled -ea</argLine>
<additionalClasspathElements>
<additionalClasspathElements>${settings.localRepository}/junit/junit/${junit.version}/junit-${junit.version}.jar</additionalClasspathElements>
<additionalClasspathElements>${settings.localRepository}/org/hamcrest/hamcrest-core/${hamcrest.core.version}/hamcrest-core-${hamcrest.core.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>${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>io.netty:netty:jar:3.7.0.Final</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.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>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>commons-io:commons-io</exclude>
<exclude>commons-beanutils:commons-beanutils-core:jar:*</exclude>
<exclude>commons-beanutils:commons-beanutils:jar:*</exclude>
<exclude>io.netty:netty-tcnative:jar:*</exclude>
<exclude>com.fasterxml.woodstox:woodstox-core: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>
<relocation><pattern>org.apache.hadoop.</pattern><shadedPattern>oadd.org.apache.hadoop.</shadedPattern></relocation>
<relocation><pattern>com.fasterxml.woodstox.</pattern><shadedPattern>oadd.com.fasterxml.woodstox.</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>**/*.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>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>
</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>43000000</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>
<pluginRepositories>
<pluginRepository>
<id>onejar-maven-plugin.googlecode.com</id>
<url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
</pluginRepository>
<pluginRepository>
<id>scala-tools.org</id>
<name>Scala-tools Maven2 Repository</name>
<url>http://scala-tools.org/repo-releases</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<profiles>
<profile>
<id>mapr</id>
<properties>
<package.namespace.prefix />
</properties>
<build>
<plugins>
<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>37500000</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>
<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>io.netty:netty:jar:3.7.0.Final</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>commons-io:commons-io</exclude>
<exclude>commons-beanutils:commons-beanutils-core:jar:*</exclude>
<exclude>commons-beanutils:commons-beanutils: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>**/*.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>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>
</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>travis</id>
<properties>
<skipTests>true</skipTests>
</properties>
</profile>
</profiles>
</project>