<!--
  ~ Smart Data Lake - Build your data lake the smart way.
  ~
  ~ Copyright © 2019-2020 ELCA Informatique SA (<https://www.elca.ch>)
  ~
  ~ This program is free software: you can redistribute it and/or modify
  ~ it under the terms of the GNU General Public License as published by
  ~ the Free Software Foundation, either version 3 of the License, or
  ~ (at your option) any later version.
  ~
  ~ This program is distributed in the hope that it will be useful,
  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  ~ GNU General Public License for more details.
  ~
  ~ You should have received a copy of the GNU General Public License
  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.
  -->
<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>

    <groupId>io.smartdatalake</groupId>
    <artifactId>sdl-parent</artifactId>
    <version>2.5.2</version>
    <packaging>pom</packaging>

    <modules>
        <module>sdl-core</module>
        <module>sdl-kafka</module>
        <module>sdl-splunk</module>
        <module>sdl-jms</module>
        <module>sdl-deltalake</module>
        <module>sdl-iceberg</module>
        <module>sdl-snowflake</module>
        <module>sdl-azure</module>
        <module>sdl-lang</module>
    </modules>

    <licenses>
        <license>
            <name>GNU General Public License (GPL) version 3</name>
            <url>https://www.gnu.org/licenses/gpl-3.0.html</url>
        </license>
    </licenses>

    <!-- Used for license header by maven-license-plugin -->
    <name>Smart Data Lake</name>
    <description>Build your data lake the smart way.</description>
    <url>http://www.smartdatalake.io</url>
    <inceptionYear>2019</inceptionYear>
    <organization>
        <name>ELCA Informatique SA</name>
        <url>https://www.elca.ch</url>
    </organization>

    <developers>
        <developer>
            <name>Smart Data Lake</name>
            <email>smartdatalake@elca.ch</email>
            <organization>ELCA Informatik AG</organization>
            <organizationUrl>http://www.elca.ch</organizationUrl>
        </developer>
    </developers>

    <profiles>
        <profile>
            <id>fat-jar</id>
            <properties>
                <scala.deps.scope>provided</scala.deps.scope>
                <spark.deps.scope>provided</spark.deps.scope>
                <hadoop.deps.scope>provided</hadoop.deps.scope>
                <hive.deps.scope>provided</hive.deps.scope>
                <hive.storage.scope>provided</hive.storage.scope>
                <hive.common.scope>provided</hive.common.scope>
                <hive.llap.scope>provided</hive.llap.scope>
                <hive.serde.scope>provided</hive.serde.scope>
                <hive.shims.scope>provided</hive.shims.scope>
                <orc.deps.scope>provided</orc.deps.scope>
                <parquet.deps.scope>provided</parquet.deps.scope>
                <jetty.deps.scope>provided</jetty.deps.scope>
            </properties>
            <build>
                <plugins>
                    <!-- Builds executable fat-jar that includes all dependencies -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-shade-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>fat-jar-with-spark</id>
            <build>
                <plugins>
                    <!-- Builds executable fat-jar that includes all dependencies -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-shade-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>copy-libs</id>
            <properties>
                <scala.deps.scope>provided</scala.deps.scope>
                <spark.deps.scope>provided</spark.deps.scope>
                <hadoop.deps.scope>provided</hadoop.deps.scope>
                <hive.deps.scope>provided</hive.deps.scope>
                <hive.storage.scope>provided</hive.storage.scope>
                <hive.common.scope>provided</hive.common.scope>
                <hive.llap.scope>provided</hive.llap.scope>
                <hive.serde.scope>provided</hive.serde.scope>
                <hive.shims.scope>provided</hive.shims.scope>
                <orc.deps.scope>provided</orc.deps.scope>
                <parquet.deps.scope>provided</parquet.deps.scope>
                <jetty.deps.scope>provided</jetty.deps.scope>
            </properties>
            <build>
                <plugins>
                    <!-- Copy all dependencies to target/lib folder -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <version>3.1.1</version>
                        <executions>
                            <execution>
				<id>copy-libs-exec</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>copy-dependencies</goal>
                                </goals>
                                <configuration>
                                    <includeScope>runtime</includeScope>
                                    <excludeScope>provided</excludeScope>
                                    <outputDirectory>${project.build.directory}/lib</outputDirectory>
                                    <overWriteIfNewer>true</overWriteIfNewer>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>copy-libs-with-spark</id>
            <build>
                <plugins>
                    <!-- Copy all dependencies to target/lib folder -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <version>3.1.1</version>
                        <executions>
                            <execution>
				<id>copy-libs-with-exec</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>copy-dependencies</goal>
                                </goals>
                                <configuration>
                                    <includeScope>runtime</includeScope>
                                    <excludeScope>provided</excludeScope>
                                    <outputDirectory>${project.build.directory}/lib</outputDirectory>
                                    <overWriteIfNewer>true</overWriteIfNewer>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- only scala 2.12 supported in spark 3.0 -->
        <profile>
            <id>scala-2.12</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <scala.minor.version>2.12</scala.minor.version>
                <scala.version>${scala.minor.version}.15</scala.version>
            </properties>
        </profile>
        <profile>
            <id>test-sonar</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.scoverage</groupId>
                        <artifactId>scoverage-maven-plugin</artifactId>
                        <version>${scoverage.plugin.version}</version>
                        <configuration>
                            <scalaVersion>${scala.version}</scalaVersion>
                            <aggregate>true</aggregate>
                            <highlighting>true</highlighting>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>release-sonatype</id>
            <distributionManagement>
                <snapshotRepository>
                    <id>ossrh</id>
                    <name>Central Repository OSSRH</name>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                </snapshotRepository>
                <repository>
                    <id>ossrh</id>
                    <name>Central Repository OSSRH</name>
                    <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                </repository>
            </distributionManagement>
            <build>
                <plugins>
                    <!-- create scala-doc -->
                    <plugin>
                        <groupId>net.alchim31.maven</groupId>
                        <artifactId>scala-maven-plugin</artifactId>
                        <version>4.5.4</version>
                        <executions>
                            <execution>
                                <id>scala-doc</id>
                                <goals>
                                    <goal>doc-jar</goal>
                                </goals>
                                <configuration>
                                    <args>
                                        <arg>-no-link-warnings</arg>
                                    </args>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- sign artifacts with gpg -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.6</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                                <configuration>
                                    <!-- Prevent `gpg` from using pinentry programs -->
                                    <gpgArguments>
                                        <arg>--pinentry-mode</arg>
                                        <arg>loopback</arg>
                                    </gpgArguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- deploy to sonatype / maven central -->
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.7</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>false</autoReleaseAfterClose>
                            <stagingProgressTimeoutMinutes>30</stagingProgressTimeoutMinutes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <license.header.file>src/license/gplv3-header.txt</license.header.file>

        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.release>8</maven.compiler.release>

        <scala.deps.scope>compile</scala.deps.scope>
        <spark.deps.scope>compile</spark.deps.scope>
        <hadoop.deps.scope>compile</hadoop.deps.scope>
        <hive.deps.scope>compile</hive.deps.scope>
        <hive.storage.version>2.7.2</hive.storage.version>
        <hive.storage.scope>compile</hive.storage.scope>
        <hive.common.scope>compile</hive.common.scope>
        <hive.llap.scope>compile</hive.llap.scope>
        <hive.serde.scope>compile</hive.serde.scope>
        <hive.shims.scope>compile</hive.shims.scope>
        <orc.deps.scope>compile</orc.deps.scope>
        <parquet.deps.scope>compile</parquet.deps.scope>
        <parquet.test.deps.scope>test</parquet.test.deps.scope>
        <jetty.deps.scope>compile</jetty.deps.scope>
        <scala.minor.version>2.12</scala.minor.version>
        <scala.version>${scala.minor.version}.15</scala.version>

        <spark.version>3.3.2</spark.version>
        <spark-extensions.version>3.3.6</spark-extensions.version> <!-- this sdl-specific extensions should match the minor version of property spark.version -->
        <spark.minor.version>3.3</spark.minor.version> <!-- this is used in sdl-snowflake -->

        <netty.version>4.1.74.Final</netty.version>

        <!-- SPARK-PARENT start: properties copied from spark-parent pom version for spark-parent import in dependencyManagement -->
        <!-- attention - manually adapted are: zookeeper, scala.version, scala.binary.version -->
        <slf4j.version>1.7.32</slf4j.version>
        <log4j.version>2.17.2</log4j.version>
        <!-- hadoop version must match the hadoop version included by spark-core -->
        <!-- could be better to use cloudera version of hadoop because they backported many bugfixes from later versions -->
        <!--hadoop.version>2.6.0-cdh5.16.1</hadoop.version-->
        <hadoop.version>3.3.2</hadoop.version>
        <protobuf.version>2.5.0</protobuf.version>
        <yarn.version>${hadoop.version}</yarn.version>
        <zookeeper.version>3.6.2</zookeeper.version>
        <curator.version>2.13.0</curator.version>
        <hive.group>org.apache.hive</hive.group>
        <hive.classifier>core</hive.classifier>
        <!-- Version used in Maven Hive dependency -->
        <hive.version>2.3.9</hive.version>
        <hive23.version>2.3.9</hive23.version>
        <!-- Version used for internal directory structure -->
        <hive.version.short>2.3</hive.version.short>
        <kafka.version>2.8.1</kafka.version>
        <derby.version>10.14.2.0</derby.version>
        <parquet.version>1.12.2</parquet.version>
        <orc.version>1.7.6</orc.version>
        <jetty.version>9.4.48.v20220622</jetty.version>
        <jakartaservlet.version>4.0.3</jakartaservlet.version>
        <chill.version>0.10.0</chill.version>
        <ivy.version>2.5.0</ivy.version>
        <oro.version>2.0.8</oro.version>
        <!--
        If you changes codahale.metrics.version, you also need to change
        the link to metrics.dropwizard.io in docs/monitoring.md.
        -->
        <codahale.metrics.version>4.2.7</codahale.metrics.version>
        <avro.version>1.11.0</avro.version>
        <aws.kinesis.client.version>1.12.0</aws.kinesis.client.version>
        <!-- Should be consistent with Kinesis client dependency -->
        <aws.java.sdk.version>1.11.655</aws.java.sdk.version>
        <!-- the producer is used in tests -->
        <aws.kinesis.producer.version>0.12.8</aws.kinesis.producer.version>
        <!--  org.apache.httpcomponents/httpclient-->
        <commons.httpclient.version>4.5.13</commons.httpclient.version>
        <commons.httpcore.version>4.4.14</commons.httpcore.version>
        <commons.math3.version>3.6.1</commons.math3.version>
        <!-- managed up from 3.2.1 for SPARK-11652 -->
        <commons.collections.version>3.2.2</commons.collections.version>
        <commons.collections4.version>4.4</commons.collections4.version>
        <scala.binary.version>${scala.minor.version}</scala.binary.version>
        <scalatest-maven-plugin.version>2.0.2</scalatest-maven-plugin.version>
        <scalafmt.parameters>--test</scalafmt.parameters>
        <!-- for now, not running scalafmt as part of default verify pipeline -->
        <scalafmt.skip>true</scalafmt.skip>
        <codehaus.jackson.version>1.9.13</codehaus.jackson.version>
        <fasterxml.jackson.version>2.13.4</fasterxml.jackson.version>
        <fasterxml.jackson.databind.version>2.13.4.1</fasterxml.jackson.databind.version>
        <snappy.version>1.1.8.4</snappy.version>
        <netlib.java.version>1.1.2</netlib.java.version>
        <netlib.ludovic.dev.version>2.2.1</netlib.ludovic.dev.version>
        <commons-codec.version>1.15</commons-codec.version>
        <commons-compress.version>1.21</commons-compress.version>
        <commons-io.version>2.11.0</commons-io.version>
        <!-- org.apache.commons/commons-lang/-->
        <commons-lang2.version>2.6</commons-lang2.version>
        <!-- org.apache.commons/commons-lang3/-->
        <commons-lang3.version>3.12.0</commons-lang3.version>
        <!-- org.apache.commons/commons-pool2/-->
        <commons-pool2.version>2.11.1</commons-pool2.version>
        <datanucleus-core.version>4.1.17</datanucleus-core.version>
        <guava.version>14.0.1</guava.version>
        <janino.version>3.0.16</janino.version>
        <jersey.version>2.36</jersey.version>
        <joda.version>2.10.13</joda.version>
        <jodd.version>3.5.2</jodd.version>
        <jsr305.version>3.0.0</jsr305.version>
        <libthrift.version>0.12.0</libthrift.version>
        <antlr4.version>4.8</antlr4.version>
        <jpam.version>1.1</jpam.version>
        <selenium.version>3.141.59</selenium.version>
        <htmlunit.version>2.50.0</htmlunit.version>
        <maven-antrun.version>1.8</maven-antrun.version>
        <commons-crypto.version>1.1.0</commons-crypto.version>
        <commons-cli.version>1.5.0</commons-cli.version>
        <bouncycastle.version>1.60</bouncycastle.version>
        <tink.version>1.6.1</tink.version>
        <!--
        If you are changing Arrow version specification, please check
        ./python/pyspark/sql/pandas/utils.py, and ./python/setup.py too.
        -->
        <arrow.version>7.0.0</arrow.version>
        <!-- org.fusesource.leveldbjni will be used except on arm64 platform. -->
        <leveldbjni.group>org.fusesource.leveldbjni</leveldbjni.group>
        <kubernetes-client.version>5.12.2</kubernetes-client.version>
        <!--
          These default to Hadoop 3.x shaded client/minicluster jars, but since the shaded jars are
          only available in 3.x, we have to switch to non-shaded Hadoop client jars when the active
          profile is hadoop-2.7.

          To make the above work, in the hadoop-2.7 profile section we bind hadoop-client-api to
          hadoop-client and hadoop-client-runtime to hadoop-yarn-api, which is a dependency of the
          former. This effectively moves the hadoop-yarn-api to the same level as hadoop-client, but
          should be fine since both dependencies are required. We cannot use hadoop-client for both
          of these because the maven enforcer plugin bans duplicate dependencies.

          We still leave hadoop-client-minicluster to use hadoop-client because it is of test scope,
          and is only used by spark-yarn module. To avoid the duplicate dependency issue we only
          declare the dependency when we're using hadoop-3.2 profile, in
          resource-managers/yarn/pom.xml.

          Please check SPARK-36835 for more details.
        -->
        <hadoop-client-api.artifact>hadoop-client-api</hadoop-client-api.artifact>
        <hadoop-client-runtime.artifact>hadoop-client-runtime</hadoop-client-runtime.artifact>
        <hadoop-client-minicluster.artifact>hadoop-client-minicluster</hadoop-client-minicluster.artifact>
        <spark.yarn.isHadoopProvided>false</spark.yarn.isHadoopProvided>
        <!-- SPARK-PARENT finished -->

        <!-- other dependency versions -->
        <scopt.version>4.0.1</scopt.version>
        <databricks.spark-xml.version>0.14.0</databricks.spark-xml.version>
        <spark.excel.version>${spark.minor.version}.1_0.18.6-beta1</spark.excel.version>
        <ucanaccess.version>5.0.1</ucanaccess.version>
        <hsqldb.version>2.5.2</hsqldb.version>
        <!-- when changing config version, remember to update it in DatabricksSmartDataLakeBuilder main method -->
        <typesafe.config.version>1.4.1</typesafe.config.version>
        <kxbmap.configs.version>0.6.1</kxbmap.configs.version>
        <monix.version>3.4.0</monix.version>
        <splunk.version>1.6.5.0</splunk.version>
        <sshj.version>0.21.1</sshj.version>
        <snowflake-spark.version>2.11.0</snowflake-spark.version>
        <snowflake-snowpark.version>1.6.2</snowflake-snowpark.version>
        <keycloak.version>20.0.1</keycloak.version>
        <delta.version>2.2.0</delta.version>
        <iceberg.version>1.1.0</iceberg.version>

        <json4s.version>3.7.0-M11</json4s.version>

        <scaladoc.reader.version>1.0.2</scaladoc.reader.version>

        <scalatest.test.version>3.0.8</scalatest.test.version>
        <sshd.test.version>2.3.0</sshd.test.version>

        <!-- Sonar related -->
        <sonar.organization>smart-data-lake</sonar.organization>
        <sonar.host.url>https://sonarcloud.io</sonar.host.url>
        <scoverage.plugin.version>1.4.11</scoverage.plugin.version>
        <scoverage.scalacPluginVersion>1.4.11</scoverage.scalacPluginVersion>

    </properties>

    <scm>
        <connection>scm:git:git://github.com/smart-data-lake/smart-data-lake.git</connection>
        <developerConnection>scm:git:ssh://github.com/smart-data-lake/smart-data-lake.git</developerConnection>
        <url>http://github.com/smart-data-lake/smart-data-lake/tree/master</url>
    </scm>

    <repositories>
        <repository>
            <id>maven central</id>
            <name>Maven Central Repository</name>
            <url>https://repo1.maven.org/maven2/</url>
        </repository>
        <repository>
            <id>confluent</id>
            <name>Confluent Schema Repository</name>
            <url>https://packages.confluent.io/maven/</url>
        </repository>
        <!-- smartdatalake snapshots -->
        <repository>
            <id>ossrh</id>
            <name>ossrh snapshots</name>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <build>

        <pluginManagement>
            <plugins>

                <!-- add scala sources, if we have also java sources using sourceDirectory / testSourceDirectory tag -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.2.0</version>
                    <executions>
                        <execution>
                            <id>add-source</id>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>add-source</goal>
                            </goals>
                            <configuration>
                                <sources>
                                    <source>src/main/scala</source>
                                </sources>
                            </configuration>
                        </execution>
                        <execution>
                            <id>add-test-source</id>
                            <phase>generate-test-sources</phase>
                            <goals>
                                <goal>add-test-source</goal>
                            </goals>
                            <configuration>
                                <sources>
                                    <source>src/test/scala</source>
                                </sources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <!-- Compiles Scala sources. -->
                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <version>4.5.6</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>compile</goal>
                                <goal>testCompile</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <scalaCompatVersion>${scala.minor.version}</scalaCompatVersion>
                        <checkMultipleScalaVersions>true</checkMultipleScalaVersions>
                        <failOnMultipleScalaVersions>true</failOnMultipleScalaVersions>
                        <recompileMode>incremental</recompileMode>
                        <args>
                            <arg>-unchecked</arg>
                            <arg>-deprecation</arg>
                            <arg>-feature</arg>
                            <arg>-explaintypes</arg>
                            <arg>-target:jvm-1.8</arg>
                        </args>
                        <jvmArgs>
                            <jvmArg>-Xms64m</jvmArg>
                            <jvmArg>-Xmx1024m</jvmArg>
                        </jvmArgs>
                        <compilerPlugins>
                            <!-- embedded scaladoc as annotations -->
                            <!-- an alternative library would be com.github.andyglow:scaladoc-compiler-plugin, but there are plugin initialization problems with path on windows. -->
                            <compilerPlugin>
                                <groupId>com.github.takezoe</groupId>
                                <artifactId>runtime-scaladoc-reader_${scala.minor.version}</artifactId>
                                <version>${scaladoc.reader.version}</version>
                            </compilerPlugin>
                        </compilerPlugins>
                    </configuration>
                </plugin>

                <!-- rewrite pom for compiling with different scala version profiles -->
                <plugin>
                    <groupId>org.spurint.maven.plugins</groupId>
                    <artifactId>scala-cross-maven-plugin</artifactId>
                    <version>0.2.1</version>
                    <executions>
                        <execution>
                            <id>rewrite-pom</id>
                            <goals>
                                <goal>rewrite-pom</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

                <!-- Copies files in resources folders to target folder. -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>

                <!-- Checks whether source files have the specified license header. -->
                <plugin>
                    <groupId>com.mycila</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <version>3.0</version>
                    <configuration>
                        <header>${basedir}/${license.header.file}</header>
                        <properties>
                            <copyright.name>${project.organization.name}</copyright.name>
                            <copyright.contact>${project.organization.url}</copyright.contact>
                        </properties>
                        <includes>
                            <include>src/**</include>
                        </includes>
                        <excludes>
                            <exclude>**/*.accdb</exclude>
                            <exclude>**/*.mdb</exclude>
                            <exclude>**/*.csv</exclude>
                            <exclude>**/*.keytab</exclude>
                            <exclude>**/*.pkcs12</exclude>
                        </excludes>
                        <mapping>
                            <scala>SLASHSTAR_STYLE</scala>
                            <conf>SCRIPT_STYLE</conf>
                        </mapping>
                        <failIfMissing>false</failIfMissing>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>com.mycila</groupId>
                            <artifactId>license-maven-plugin-git</artifactId>
                            <version>3.0</version>
                        </dependency>
                    </dependencies>
                    <executions>
                        <execution>
                            <goals>
                                <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

                <!-- Creates the jar without dependencies -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.1.2</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <mainClass>io.smartdatalake.app.LocalSmartDataLakeBuilder</mainClass>
                                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            </manifest>
                        </archive>
                        <excludes>
                            <exclude>log4j2.*</exclude> <!-- Logging configuration should be left to user. -->
                            <exclude>${project.artifactId}*.jar
                            </exclude> <!-- avoid "Error assembling JAR" because of already existing artifact jar -->
                        </excludes>
                    </configuration>
                </plugin>

                <!-- Creates a JAR file with the source files of the project. -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.1.0</version>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar-no-fork</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

                <!-- Builds executable fat-jar that includes all dependencies -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.2.4</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <filters>
                                    <filter>
                                        <artifact>*:*</artifact>
                                        <excludes>
                                            <exclude>META-INF/*.SF</exclude>
                                            <exclude>META-INF/*.DSA</exclude>
                                            <exclude>META-INF/*.RSA</exclude>
                                            <!-- handle some duplicate warnings: these files are not needed -->
                                            <exclude>META-INF/DEPENDENCIES</exclude>
                                            <exclude>META-INF/LICENSE</exclude>
                                            <exclude>META-INF/LICENSE.txt</exclude>
                                            <exclude>META-INF/NOTICE</exclude>
                                            <exclude>META-INF/NOTICE.txt</exclude>
                                            <exclude>META-INF/ASL2.0</exclude>
                                            <exclude>META-INF/NOTICE</exclude>
                                            <exclude>META-INF/MANIFEST.MF</exclude>
                                            <exclude>META-INF/maven/**/*</exclude>
                                            <exclude>META-INF/README.txt</exclude>
                                            <exclude>LICENSE</exclude>
                                            <exclude>LICENSE.txt</exclude>
                                            <exclude>NOTICE.txt</exclude>
                                            <!-- shading doesnt respect Java Modularisation (>JDK9) -->
                                            <exclude>module-info.class</exclude>
                                        </excludes>
                                    </filter>
                                </filters>
                                <shadedArtifactAttached>true</shadedArtifactAttached>
                                <shadedClassifierName>jar-with-dependencies</shadedClassifierName>
                                <artifactSet>
                                    <includes>
                                        <include>*:*</include>
                                    </includes>
                                </artifactSet>
                                <transformers>
                                    <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                        <resource>reference.conf</resource>
                                    </transformer>
                                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                        <manifestEntries>
                                            <Main-Class>io.smartdatalake.app.LocalSmartDataLakeBuilder</Main-Class>
                                            <Implementation-Version>${project.version}</Implementation-Version>
                                            <Multi-Release>true</Multi-Release>
                                        </manifestEntries>
                                    </transformer>
                                    <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                                    <transformer implementation="io.github.edwgiz.log4j.maven.plugins.shade.transformer.Log4j2PluginCacheFileTransformer" />
                                </transformers>
                            </configuration>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>io.github.edwgiz</groupId>
                            <artifactId>log4j-maven-shade-plugin-extensions</artifactId>
                            <version>${log4j.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>

                <!-- Executes units tests with scalatest  -->
                <plugin>
                    <groupId>org.scalatest</groupId>
                    <artifactId>scalatest-maven-plugin</artifactId>
                    <version>2.0.0</version>
                    <configuration>
                        <reportsDirectory>
                            ${project.build.directory}/scalatest-reports
                        </reportsDirectory>
                        <junitxml>.</junitxml>
                        <filereports>
                            ${project.artifactId}.txt
                        </filereports>
                        <stdout>WT
                        </stdout>  <!-- without color, show reminder of failed and canceled tests with short stack traces, see: http://www.scalatest.org/user_guide/using_scalatest_with_sbt-->
                        <environmentVariables>
                            <SPARK_LOCAL_IP>127.0.0.1
                            </SPARK_LOCAL_IP> <!-- Suppresses Spark IP discovery during tests (when executed with mvn test) -->
                        </environmentVariables>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>test</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

                <!-- Checks for declared but unused and undeclared but used dependencies in the verify stage -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.1.1</version>
                    <configuration>
                        <failOnWarning>false</failOnWarning>
                        <ignoreNonCompile>true</ignoreNonCompile>
                        <ignoredUsedUndeclaredDependencies>
                            <dependency>org.scalacheck:scalacheck_${scala.minor.version}</dependency>
                        </ignoredUsedUndeclaredDependencies>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>analyze-only</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

                <!-- check for dependency version conflicts -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>3.0.0-M3</version>
                    <configuration>
                        <rules>
                            <requireMavenVersion>
                                <version>2.0.6</version>
                            </requireMavenVersion>
                            <requireJavaVersion>
                                <version>1.8</version>
                            </requireJavaVersion>
                            <dependencyConvergence/>
                            <requireProperty>
                                <property>scala.minor.version</property>
                                <message>You must setscala.minor.version property by activating profile scala-2.11 or
                                    scala-2.12!
                                </message>
                            </requireProperty>
                        </rules>
                    </configuration>
                </plugin>

            </plugins>
        </pluginManagement>

        <plugins>

            <!-- Allows handling of version numbers -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
                <version>2.7</version>
            </plugin>

            <!-- disable executing surefire tests as we use scalatest -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>

        </plugins>

    </build>

    <!-- cleanup version of conflicting transitive dependencies reported by mvn enforcer:enforce -->
    <dependencyManagement>
        <dependencies>
            <!--
			  Copy of SPARK-PARENT pom dependency management to cleanup spark dependencies.
			  Import of spark-parent doesnt work, as it is no longer possible to change version by modifying properties.
			-->
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-tags_${scala.binary.version}</artifactId>
                <version>${spark.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-tags_${scala.binary.version}</artifactId>
                <version>${spark.version}</version>
                <type>test-jar</type>
            </dependency>
            <!-- #if scala-2.13 --><!--
      <dependency>
        <groupId>org.scala-lang.modules</groupId>
        <artifactId>scala-parallel-collections_${scala.binary.version}</artifactId>
        <version>1.0.3</version>
      </dependency>
      --><!-- #endif scala-2.13 -->
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>chill_${scala.binary.version}</artifactId>
                <version>${chill.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.xbean</groupId>
                        <artifactId>xbean-asm7-shaded</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>chill-java</artifactId>
                <version>${chill.version}</version>
            </dependency>
            <!-- This artifact is a shaded version of ASM 9.x. The POM that was used to produce this
                 is at https://github.com/apache/geronimo-xbean/tree/trunk/xbean-asm9-shaded
                 For context on why we shade ASM, see SPARK-782 and SPARK-6152. -->
            <dependency>
                <groupId>org.apache.xbean</groupId>
                <artifactId>xbean-asm9-shaded</artifactId>
                <version>4.20</version>
            </dependency>
            <!-- Shaded deps marked as provided. These are promoted to compile scope
                 in the modules where we want the shaded classes to appear in the
                 associated jar. -->
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-http</artifactId>
                <version>${jetty.version}</version>
                <scope>${jetty.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-continuation</artifactId>
                <version>${jetty.version}</version>
                <scope>${jetty.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlet</artifactId>
                <version>${jetty.version}</version>
                <scope>${jetty.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlets</artifactId>
                <version>${jetty.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-proxy</artifactId>
                <version>${jetty.version}</version>
                <scope>${jetty.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-client</artifactId>
                <version>${jetty.version}</version>
                <scope>${jetty.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-util</artifactId>
                <version>${jetty.version}</version>
                <scope>${jetty.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-security</artifactId>
                <version>${jetty.version}</version>
                <scope>${jetty.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-plus</artifactId>
                <version>${jetty.version}</version>
                <scope>${jetty.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
                <scope>${jetty.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-webapp</artifactId>
                <version>${jetty.version}</version>
                <scope>${jetty.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
                <scope>${spark.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.jpmml</groupId>
                <artifactId>pmml-model</artifactId>
                <version>1.4.8</version>
                <scope>${spark.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.jpmml</groupId>
                        <artifactId>pmml-agent</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- End of shaded deps -->
            <!-- Provide a JAXB impl; no longer auto available in Java 9+ in the JDK -->
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxb-runtime</artifactId>
                <version>2.3.2</version>
                <scope>compile</scope>
                <exclusions>
                    <!-- for now, we only write XML in PMML export, and these can be excluded -->
                    <exclusion>
                        <groupId>com.sun.xml.fastinfoset</groupId>
                        <artifactId>FastInfoset</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish.jaxb</groupId>
                        <artifactId>txw2</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jvnet.staxex</groupId>
                        <artifactId>stax-ex</artifactId>
                    </exclusion>
                    <!--
                      SPARK-27611: Exclude redundant javax.activation implementation, which
                      conflicts with the existing javax.activation:activation:1.1.1 dependency.
                      -->
                    <exclusion>
                        <groupId>jakarta.activation</groupId>
                        <artifactId>jakarta.activation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons-lang3.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>1.10.0</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>${commons-lang2.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons-codec.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>${commons-compress.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-math3</artifactId>
                <version>${commons.math3.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${commons.collections.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>${commons.collections4.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.4</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <!-- Hive uses commons-logging 1.1.3 from 0.13 to 1.2 -->
                <version>1.1.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ivy</groupId>
                <artifactId>ivy</artifactId>
                <version>${ivy.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>${jsr305.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${commons.httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpmime</artifactId>
                <version>${commons.httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>${commons.httpcore.version}</version>
            </dependency>
            <dependency>
                <groupId>org.rocksdb</groupId>
                <artifactId>rocksdbjni</artifactId>
                <version>6.20.3</version>
            </dependency>
            <dependency>
                <groupId>${leveldbjni.group}</groupId>
                <artifactId>leveldbjni-all</artifactId>
                <version>1.8</version>
            </dependency>
            <!-- Added for selenium only, and should match its dependent version: -->
            <dependency>
                <groupId>xml-apis</groupId>
                <artifactId>xml-apis</artifactId>
                <version>1.4.01</version>
            </dependency>
            <!-- log4j -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jul-to-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>${slf4j.version}</version>
                <!-- runtime scope is appropriate, but causes SBT build problems -->
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
                <version>${log4j.version}</version>
                <scope>${hadoop.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <!-- API bridge between log4j 1 and 2 -->
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-1.2-api</artifactId>
                <version>${log4j.version}</version>
                <scope>${hadoop.deps.scope}</scope>
            </dependency>
            <!-- end -->
            <dependency>
                <groupId>com.ning</groupId>
                <artifactId>compress-lzf</artifactId>
                <version>1.1</version>
            </dependency>
            <dependency>
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
                <version>${snappy.version}</version>
            </dependency>
            <dependency>
                <groupId>org.lz4</groupId>
                <artifactId>lz4-java</artifactId>
                <version>1.8.0</version>
            </dependency>
            <dependency>
                <groupId>com.github.luben</groupId>
                <artifactId>zstd-jni</artifactId>
                <version>1.5.2-1</version>
            </dependency>
            <dependency>
                <groupId>com.clearspring.analytics</groupId>
                <artifactId>stream</artifactId>
                <version>2.9.6</version>
                <exclusions>
                    <!-- Only HyperLogLogPlus is used, which doesn't depend on fastutil -->
                    <exclusion>
                        <groupId>it.unimi.dsi</groupId>
                        <artifactId>fastutil</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- In theory we need not directly depend on protobuf since Spark does not directly
                 use it. However, when building with Hadoop/YARN 2.2 Maven doesn't correctly bump
                 the protobuf version up from the one Mesos gives. For now we include this variable
                 to explicitly bump the version when building with YARN. It would be nice to figure
                 out why Maven can't resolve this correctly (like SBT does). -->
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>${protobuf.version}</version>
                <scope>${hadoop.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.roaringbitmap</groupId>
                <artifactId>RoaringBitmap</artifactId>
                <version>0.9.25</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
                <version>${netty.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-dns</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-haproxy</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-http</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-http2</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-memcache</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-mqtt</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-redis</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-smtp</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-socks</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-stomp</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-xml</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-handler-proxy</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-resolver-dns</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-resolver-dns-classes-macos</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-resolver-dns-native-macos</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-transport-rxtx</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-transport-sctp</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-transport-udt</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derby</artifactId>
                <version>${derby.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>${codahale.metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-jvm</artifactId>
                <version>${codahale.metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-json</artifactId>
                <version>${codahale.metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-graphite</artifactId>
                <version>${codahale.metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-jmx</artifactId>
                <version>${codahale.metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${fasterxml.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${fasterxml.jackson.databind.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${fasterxml.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jsr310</artifactId>
                <version>${fasterxml.jackson.version}</version>
            </dependency>
            <!-- Guava is excluded because of SPARK-6149.  The Guava version referenced in this module is
                 15.0, which causes runtime incompatibility issues. -->
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-scala_${scala.binary.version}</artifactId>
                <version>${fasterxml.jackson.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-jaxb-annotations</artifactId>
                <version>${fasterxml.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-server</artifactId>
                <version>${jersey.version}</version>
                <!-- SPARK-28765 Unused JDK11-specific dependency -->
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.xml.bind</groupId>
                        <artifactId>jakarta.xml.bind-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-common</artifactId>
                <version>${jersey.version}</version>
                <!-- SPARK-28765 Unused JDK11-specific dependency -->
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.activation</groupId>
                        <artifactId>jakarta.activation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-servlet</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-servlet-core</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.inject</groupId>
                <artifactId>jersey-hk2</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>javax.ws.rs-api</artifactId>
                <version>2.0.1</version>
            </dependency>
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>2.2.11</version>
            </dependency>
            <dependency>
                <groupId>org.scalanlp</groupId>
                <artifactId>breeze_${scala.binary.version}</artifactId>
                <version>1.2</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.commons</groupId>
                        <artifactId>commons-math3</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.chuusai</groupId>
                <artifactId>shapeless_${scala.binary.version}</artifactId>
                <version>2.3.7</version>
            </dependency>
            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-jackson_${scala.binary.version}</artifactId>
                <version>${json4s.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-ast_${scala.minor.version}</artifactId>
                <version>${json4s.version}</version>
            </dependency>
            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-core_${scala.minor.version}</artifactId>
                <version>${json4s.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang.modules</groupId>
                <artifactId>scala-xml_${scala.binary.version}</artifactId>
                <version>1.2.0</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-compiler</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-reflect</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang.modules</groupId>
                <artifactId>scala-parser-combinators_${scala.binary.version}</artifactId>
                <version>1.1.2</version>
            </dependency>
            <dependency>
                <groupId>jline</groupId>
                <artifactId>jline</artifactId>
                <version>2.14.6</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>${curator.version}</version>
                <scope>${hadoop.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jline</groupId>
                        <artifactId>jline</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-client</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <!-- Hadoop 3.x dependencies -->
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>${hadoop-client-api.artifact}</artifactId>
                <version>${hadoop.version}</version>
                <scope>${hadoop.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>${hadoop-client-runtime.artifact}</artifactId>
                <version>${hadoop.version}</version>
                <scope>${hadoop.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>${hadoop-client-minicluster.artifact}</artifactId>
                <version>${yarn.version}</version>
                <scope>test</scope>
            </dependency>
            <!-- End of Hadoop 3.x dependencies -->
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-client</artifactId>
                <version>${hadoop.version}</version>
                <scope>${hadoop.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.fusesource.leveldbjni</groupId>
                        <artifactId>leveldbjni-all</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>jackson-mapper-asl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- BeanUtils >= 1.9.0 no longer splits out -core; exclude it -->
                        <groupId>commons-beanutils</groupId>
                        <artifactId>commons-beanutils-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mockito</groupId>
                        <artifactId>mockito-all</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>servlet-api-2.5</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.jersey-test-framework</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.contribs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>net.java.dev.jets3t</groupId>
                        <artifactId>jets3t</artifactId>
                    </exclusion>
                    <!-- Hadoop-3.x -->
                    <exclusion>
                        <groupId>javax.ws.rs</groupId>
                        <artifactId>jsr311-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>jetty-webapp</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- Managed up to match Hadoop in HADOOP-16530 -->
            <dependency>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
                <version>2.12.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro</artifactId>
                <version>${avro.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro-mapred</artifactId>
                <version>${avro.version}</version>
                <scope>${hive.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.avro</groupId>
                        <artifactId>avro-ipc-jetty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-util</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.velocity</groupId>
                        <artifactId>velocity-engine-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.annotation</groupId>
                        <artifactId>javax.annotation-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.github.luben</groupId>
                        <artifactId>zstd-jni</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.tukaani</groupId>
                <artifactId>xz</artifactId>
                <version>1.8</version>
            </dependency>
            <!-- See SPARK-23654 for info on this dependency;
            It is used to keep javax.activation at v1.1.1 after dropping
            jets3t as a dependency.
             -->
            <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>activation</artifactId>
                <version>1.1.1</version>
                <scope>${hadoop.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-api</artifactId>
                <version>${yarn.version}</version>
                <scope>${hadoop.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.jersey-test-framework</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.contribs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jdk.tools</groupId>
                        <artifactId>jdk.tools</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-common</artifactId>
                <version>${yarn.version}</version>
                <scope>${hadoop.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.jersey-test-framework</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.contribs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-server-web-proxy</artifactId>
                <version>${yarn.version}</version>
                <scope>${hadoop.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-yarn-server-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-yarn-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-yarn-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcprov-jdk15on</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcpkix-jdk15on</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.fusesource.leveldbjni</groupId>
                        <artifactId>leveldbjni-all</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>javax.servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.jersey-test-framework</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.contribs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <!-- Hadoop-3.x -->
                    <exclusion>
                        <groupId>com.zaxxer</groupId>
                        <artifactId>HikariCP-java7</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.microsoft.sqlserver</groupId>
                        <artifactId>mssql-jdbc</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-client</artifactId>
                <version>${yarn.version}</version>
                <scope>${hadoop.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.jersey-test-framework</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.contribs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper.version}</version>
                <scope>${hadoop.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jline</groupId>
                        <artifactId>jline</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-handler</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-transport-native-epoll</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>${codehaus.jackson.version}</version>
                <scope>${hadoop.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>${codehaus.jackson.version}</version>
                <scope>${hadoop.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-xc</artifactId>
                <version>${codehaus.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-jaxrs</artifactId>
                <version>${codehaus.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>${hive.group}</groupId>
                <artifactId>hive-beeline</artifactId>
                <version>${hive.version}</version>
                <scope>${hive.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-exec</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-jdbc</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-metastore</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-service</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-service-rpc</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-shims</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>libthrift</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>${hive.group}</groupId>
                <artifactId>hive-cli</artifactId>
                <version>${hive.version}</version>
                <scope>${hive.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-exec</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-jdbc</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-metastore</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-serde</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-service</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-shims</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>libthrift</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>${hive.group}</groupId>
                <artifactId>hive-common</artifactId>
                <version>${hive.version}</version>
                <scope>${hive.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-shims</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-auth</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <!-- Begin of Hive 2.3 exclusion -->
                    <!--
                      ORC is needed, but the version should be consistent with the `sql/core` ORC data source.
                      Looks like this is safe, please see the major changes from ORC 1.3.3 to 1.5.4:
                      HIVE-17631 and HIVE-19465
                    -->
                    <exclusion>
                        <groupId>org.apache.orc</groupId>
                        <artifactId>orc-core</artifactId>
                    </exclusion>
                    <!-- jetty-all conflict with jetty 9.4.12.v20180830 -->
                    <exclusion>
                        <groupId>org.eclipse.jetty.aggregate</groupId>
                        <artifactId>jetty-all</artifactId>
                    </exclusion>
                    <!-- org.apache.logging.log4j:* conflict with log4j 1.2.17 -->
                    <exclusion>
                        <groupId>org.apache.logging.log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <!-- Hive includes javax.servlet to fix the Hive on Spark test failure; see HIVE-12783 -->
                    <exclusion>
                        <groupId>org.eclipse.jetty.orbit</groupId>
                        <artifactId>javax.servlet</artifactId>
                    </exclusion>
                    <!-- hive-storage-api is needed and must be explicitly included later -->
                    <exclusion>
                        <groupId>org.apache.hive</groupId>
                        <artifactId>hive-storage-api</artifactId>
                    </exclusion>
                    <!-- End of Hive 2.3 exclusion -->
                </exclusions>
            </dependency>
            <dependency>
                <groupId>${hive.group}</groupId>
                <artifactId>hive-exec</artifactId>
                <classifier>${hive.classifier}</classifier>
                <version>${hive.version}</version>
                <scope>${hive.deps.scope}</scope>
                <exclusions>
                    <!-- pull this in when needed; the explicit definition culls the surplus-->
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-metastore</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-shims</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-ant</artifactId>
                    </exclusion>
                    <!-- break the loop -->
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>spark-client</artifactId>
                    </exclusion>
                    <!-- excluded dependencies & transitive.
                     Some may be needed to be explicitly included-->
                    <exclusion>
                        <groupId>ant</groupId>
                        <artifactId>ant</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.esotericsoftware.kryo</groupId>
                        <artifactId>kryo</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-codec</groupId>
                        <artifactId>commons-codec</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.avro</groupId>
                        <artifactId>avro-mapred</artifactId>
                    </exclusion>
                    <!--  Do not need Calcite because we disabled hive.cbo.enable -->
                    <exclusion>
                        <groupId>org.apache.calcite</groupId>
                        <artifactId>calcite-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.calcite</groupId>
                        <artifactId>calcite-avatica</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.curator</groupId>
                        <artifactId>apache-curator</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.curator</groupId>
                        <artifactId>curator-client</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.curator</groupId>
                        <artifactId>curator-framework</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>libthrift</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>libfb303</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-all</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jline</groupId>
                        <artifactId>jline</artifactId>
                    </exclusion>
                    <!-- Cat X license now; see SPARK-18262 -->
                    <exclusion>
                        <groupId>org.json</groupId>
                        <artifactId>json</artifactId>
                    </exclusion>
                    <!-- Begin of Hive 2.3 exclusion -->
                    <!-- Do not need Tez -->
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-llap-tez</artifactId>
                    </exclusion>
                    <!-- Do not need Calcite, see SPARK-27054 -->
                    <exclusion>
                        <groupId>org.apache.calcite</groupId>
                        <artifactId>calcite-druid</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.calcite.avatica</groupId>
                        <artifactId>avatica</artifactId>
                    </exclusion>
                    <!-- org.apache.logging.log4j:* conflict with log4j 1.2.17 -->
                    <exclusion>
                        <groupId>org.apache.logging.log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>net.hydromatic</groupId>
                        <artifactId>eigenbase-properties</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.janino</groupId>
                        <artifactId>commons-compiler</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.janino</groupId>
                        <artifactId>janino</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.pentaho</groupId>
                        <artifactId>pentaho-aggdesigner-algorithm</artifactId>
                    </exclusion>
                    <!-- End of Hive 2.3 exclusion -->
                </exclusions>
            </dependency>
            <dependency>
                <groupId>${hive.group}</groupId>
                <artifactId>hive-jdbc</artifactId>
                <version>${hive.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-metastore</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-serde</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-service</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-service-rpc</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-shims</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.curator</groupId>
                        <artifactId>curator-framework</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>libthrift</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>libfb303</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-all</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>${hive.group}</groupId>
                <artifactId>hive-metastore</artifactId>
                <version>${hive.version}</version>
                <scope>${hive.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-serde</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-shims</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>libfb303</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>libthrift</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <!-- Begin of Hive 2.3 exclusion -->
                    <!-- Hive removes the HBase Metastore; see HIVE-17234 -->
                    <exclusion>
                        <groupId>org.apache.hbase</groupId>
                        <artifactId>hbase-client</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>co.cask.tephra</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <!-- End of Hive 2.3 exclusion -->
                </exclusions>
            </dependency>
            <dependency>
                <groupId>${hive.group}</groupId>
                <artifactId>hive-serde</artifactId>
                <version>${hive.version}</version>
                <scope>${hive.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-shims</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-codec</groupId>
                        <artifactId>commons-codec</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.avro</groupId>
                        <artifactId>avro</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>libthrift</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>libfb303</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-all</artifactId>
                    </exclusion>
                    <!-- Begin of Hive 2.3 exclusion -->
                    <exclusion>
                        <groupId>${hive.group}</groupId>
                        <artifactId>hive-service-rpc</artifactId>
                    </exclusion>
                    <!-- parquet-hadoop-bundle:1.8.1 conflict with 1.12.0 -->
                    <exclusion>
                        <groupId>org.apache.parquet</groupId>
                        <artifactId>parquet-hadoop-bundle</artifactId>
                    </exclusion>
                    <!-- Do not need Jasper, see HIVE-19799 -->
                    <exclusion>
                        <groupId>tomcat</groupId>
                        <artifactId>jasper-compiler</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>tomcat</groupId>
                        <artifactId>jasper-runtime</artifactId>
                    </exclusion>
                    <!-- End of Hive 2.3 exclusion -->
                </exclusions>
            </dependency>

            <dependency>
                <groupId>${hive.group}</groupId>
                <artifactId>hive-service-rpc</artifactId>
                <version>3.1.2</version>
                <exclusions>
                    <exclusion>
                        <groupId>*</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>net.sf.jpam</groupId>
                <artifactId>jpam</artifactId>
                <scope>${hive.deps.scope}</scope>
                <version>${jpam.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- hive shims pulls in hive 0.23 and a transitive dependency of the Hadoop version
              Hive was built against. This dependency cuts out the YARN/hadoop dependency, which
              is needed by Hive to submit work to a YARN cluster.-->
            <dependency>
                <groupId>${hive.group}</groupId>
                <artifactId>hive-shims</artifactId>
                <version>${hive.version}</version>
                <scope>${hive.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-yarn-server-resourcemanager</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.curator</groupId>
                        <artifactId>curator-framework</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>libthrift</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-all</artifactId>
                    </exclusion>
                    <!-- Begin of Hive 2.3 exclusion -->
                    <!-- Exclude log4j-slf4j-impl, otherwise throw NCDFE when starting spark-shell -->
                    <exclusion>
                        <groupId>org.apache.logging.log4j</groupId>
                        <artifactId>log4j-slf4j-impl</artifactId>
                    </exclusion>
                    <!-- End of Hive 2.3 exclusion -->
                </exclusions>
            </dependency>
            <!-- hive-llap-common is needed when registering UDFs in Hive 2.3.
               We add it here, otherwise -Phive-provided won't work. -->
            <dependency>
                <groupId>org.apache.hive</groupId>
                <artifactId>hive-llap-common</artifactId>
                <version>${hive23.version}</version>
                <scope>${hive.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.hive</groupId>
                        <artifactId>hive-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hive</groupId>
                        <artifactId>hive-serde</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.orc</groupId>
                <artifactId>orc-core</artifactId>
                <version>${orc.version}</version>
                <scope>${orc.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-hdfs</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-client-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hive</groupId>
                        <artifactId>hive-storage-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.orc</groupId>
                <artifactId>orc-mapreduce</artifactId>
                <version>${orc.version}</version>
                <scope>${orc.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-mapreduce-client-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.orc</groupId>
                        <artifactId>orc-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hive</groupId>
                        <artifactId>hive-storage-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.esotericsoftware</groupId>
                        <artifactId>kryo-shaded</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.parquet</groupId>
                <artifactId>parquet-column</artifactId>
                <version>${parquet.version}</version>
                <scope>${parquet.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.parquet</groupId>
                <artifactId>parquet-encoding</artifactId>
                <version>${parquet.version}</version>
                <scope>${parquet.test.deps.scope}</scope>
                <classifier>tests</classifier>
            </dependency>
            <dependency>
                <groupId>org.apache.parquet</groupId>
                <artifactId>parquet-common</artifactId>
                <version>${parquet.version}</version>
                <scope>${parquet.test.deps.scope}</scope>
                <classifier>tests</classifier>
            </dependency>
            <dependency>
                <groupId>org.apache.parquet</groupId>
                <artifactId>parquet-column</artifactId>
                <version>${parquet.version}</version>
                <scope>${parquet.test.deps.scope}</scope>
                <classifier>tests</classifier>
            </dependency>
            <dependency>
                <groupId>org.apache.parquet</groupId>
                <artifactId>parquet-hadoop</artifactId>
                <version>${parquet.version}</version>
                <scope>${parquet.deps.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>commons-pool</groupId>
                        <artifactId>commons-pool</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.annotation</groupId>
                        <artifactId>javax.annotation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.parquet</groupId>
                <artifactId>parquet-avro</artifactId>
                <version>${parquet.version}</version>
                <scope>${parquet.test.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.codehaus.janino</groupId>
                <artifactId>janino</artifactId>
                <version>${janino.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.janino</groupId>
                <artifactId>commons-compiler</artifactId>
                <version>${janino.version}</version>
            </dependency>
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>${joda.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jodd</groupId>
                <artifactId>jodd-core</artifactId>
                <version>${jodd.version}</version>
            </dependency>
            <dependency>
                <groupId>org.datanucleus</groupId>
                <artifactId>datanucleus-core</artifactId>
                <version>${datanucleus-core.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.thrift</groupId>
                <artifactId>libthrift</artifactId>
                <version>${libthrift.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.thrift</groupId>
                <artifactId>libfb303</artifactId>
                <version>0.9.3</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>antlr4-runtime</artifactId>
                <version>${antlr4.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-crypto</artifactId>
                <version>${commons-crypto.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>net.java.dev.jna</groupId>
                        <artifactId>jna</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.crypto.tink</groupId>
                <artifactId>tink</artifactId>
                <version>${tink.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.arrow</groupId>
                <artifactId>arrow-vector</artifactId>
                <version>${arrow.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-common</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.arrow</groupId>
                <artifactId>arrow-memory-netty</artifactId>
                <version>${arrow.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-buffer</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-common</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.univocity</groupId>
                <artifactId>univocity-parsers</artifactId>
                <version>2.9.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hive</groupId>
                <artifactId>hive-storage-api</artifactId>
                <version>${hive.storage.version}</version>
                <scope>${hive.storage.scope}</scope>
                <exclusions>
                    <exclusion>
                        <groupId>commons-lang</groupId>
                        <artifactId>commons-lang</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>${commons-cli.version}</version>
            </dependency>
            <dependency>
                <groupId>dev.ludovic.netlib</groupId>
                <artifactId>blas</artifactId>
                <version>${netlib.ludovic.dev.version}</version>
            </dependency>
            <dependency>
                <groupId>dev.ludovic.netlib</groupId>
                <artifactId>lapack</artifactId>
                <version>${netlib.ludovic.dev.version}</version>
            </dependency>
            <dependency>
                <groupId>dev.ludovic.netlib</groupId>
                <artifactId>arpack</artifactId>
                <version>${netlib.ludovic.dev.version}</version>
            </dependency>

            <!-- SDLB dependency management -->
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_${scala.minor.version}</artifactId>
                <version>${spark.version}</version>
                <scope>${spark.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-sql_${scala.minor.version}</artifactId>
                <version>${spark.version}</version>
                <scope>${spark.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-catalyst_${scala.minor.version}</artifactId>
                <version>${spark.version}</version>
                <scope>${spark.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-hive_${scala.minor.version}</artifactId>
                <version>${spark.version}</version>
                <scope>${spark.deps.scope}</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>1.21</version>
            </dependency>
            <dependency>
                <groupId>com.typesafe</groupId>
                <artifactId>config</artifactId>
                <version>${typesafe.config.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.kxbmap</groupId>
                <artifactId>configs_${scala.minor.version}</artifactId>
                <version>${kxbmap.configs.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>1.5.22</version>
            </dependency>
            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>ST4</artifactId>
                <version>4.0.4</version>
            </dependency>
            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>antlr-runtime</artifactId>
                <version>3.4</version>
            </dependency>
            <dependency>
                <groupId>io.smartdatalake</groupId>
                <artifactId>spark-extensions_${scala.minor.version}</artifactId>
                <version>${spark-extensions.version}</version>
            </dependency>
            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-ext_${scala.minor.version}</artifactId>
                <version>${json4s.version}</version>
            </dependency>
            <dependency>
                <groupId>io.delta</groupId>
                <artifactId>delta-core_${scala.minor.version}</artifactId>
                <version>${delta.version}</version>
            </dependency>

            <!-- TEST dependencies -->
            <dependency>
                <groupId>org.scalatest</groupId>
                <artifactId>scalatest_${scala.minor.version}</artifactId>
                <version>${scalatest.test.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.scala-lang.modules</groupId>
                        <artifactId>scala-xml_${scala.minor.version}</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.scalactic</groupId>
                <artifactId>scalactic_${scala.minor.version}</artifactId>
                <version>${scalatest.test.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.scalacheck</groupId>
                <artifactId>scalacheck_${scala.minor.version}</artifactId>
                <version>1.14.3</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
