Files
impala/fe/pom.xml
Riza Suminto d4992d532b Revert "IMPALA-14454: Exclude log4j 2 dependencies"
This reverts commit 52b87fcefd.

The original commit caused an issue when Impala is deployed together
with Apache Atlas. Coordinator failed to start with error message:

java.lang.NoClassDefFoundError: org/apache/logging/log4j/core/Layout

Solved minor conflict in impala-config.sh due to IMPALA-14478 applied
after IMPALA-14454.

Change-Id: I77127db8d833c675c18c30eb3d6542ca906cd2a9
Reviewed-on: http://gerrit.cloudera.org:8080/23788
Reviewed-by: Michael Smith <michael.smith@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
2025-12-16 00:26:34 +00:00

1230 lines
44 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.impala</groupId>
<artifactId>impala-parent</artifactId>
<version>5.0.0-SNAPSHOT</version>
<relativePath>../java/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>impala-frontend</artifactId>
<packaging>jar</packaging>
<name>Apache Impala Query Engine Frontend</name>
<dependencies>
<dependency>
<groupId>org.apache.impala</groupId>
<artifactId>impala-executor-deps</artifactId>
<version>${project.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.apache.impala</groupId>
<artifactId>query-event-hook-api</artifactId>
<version>${impala.query.event.hook.api.version}</version>
</dependency>
<dependency>
<groupId>org.apache.impala</groupId>
<artifactId>impala-data-source-api</artifactId>
<version>${impala.extdatasrc.api.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-auth</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<!-- IMPALA-9108: Avoid pulling in leveldbjni, which is unneeded. -->
<groupId>org.fusesource.leveldbjni</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util-ajax</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hudi</groupId>
<artifactId>hudi-hadoop-mr</artifactId>
<version>${hudi.version}</version>
<exclusions>
<exclusion>
<!-- IMPALA-9647 (re: CVE-2014-3577, CVE-2015-5262) -->
<groupId>org.apache.httpcomponents</groupId>
<artifactId>fluent-hc</artifactId>
</exclusion>
<exclusion>
<!-- Avoid pulling in rocksdb, which is unneeded. -->
<groupId>org.rocksdb</groupId>
<artifactId>rocksdbjni</artifactId>
</exclusion>
<exclusion>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo-shaded</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.ranger</groupId>
<artifactId>ranger-plugins-common</artifactId>
<version>${ranger.version}</version>
<exclusions>
<!-- Ranger jar also includes solr artifacts which we not exclude here since
they are used during the instantiation of RangerAuthorizationFactory
(See IMPALA-10644 for more details. -->
<!-- We need to exclude ranger-plugins-audit here, or the build will fail
to resolve dependencies for cruise-control-metrics-reporter, which is
unneeded and not uploaded to toolchain. -->
<exclusion>
<groupId>com.cloudera</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.ranger</groupId>
<artifactId>ranger-plugins-audit</artifactId>
<version>${ranger.version}</version>
<exclusions>
<!-- Ranger jar also includes solr artifacts which we not exclude here since
they are used during the instantiation of RangerAuthorizationFactory
(See IMPALA-10644 for more details. -->
<exclusion>
<groupId>com.cloudera</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.kafka</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
</exclusion>
<!-- We exclude hive-exec which this jar includes because hive-exec
brings with it tons of other unnecessary dependencies including thrift 0.9.3
which can cause build failures.
-->
<exclusion>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
</exclusion>
<!-- Exclude the aws-java-sdk-bundle dependency because the Impala minimal
version of this dependency is used instead. -->
<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bundle</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.impala</groupId>
<artifactId>yarn-extras</artifactId>
<version>${yarn-extras.version}</version>
</dependency>
<dependency>
<groupId>org.apache.parquet</groupId>
<artifactId>parquet-hadoop-bundle</artifactId>
<version>${parquet.version}</version>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
</dependency>
<dependency>
<groupId>org.apache.orc</groupId>
<artifactId>orc-core</artifactId>
<version>${orc.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.hive</groupId>
<artifactId>*</artifactId>
</exclusion>
<!-- Rely on unshaded jars we already include rather than client jars. -->
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>net.sourceforge.czt.dev</groupId>
<artifactId>java-cup</artifactId>
<version>0.11-a-czt02-cdh</version>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
</dependency>
<dependency>
<groupId>org.apache.kudu</groupId>
<artifactId>kudu-client</artifactId>
<version>${kudu.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgres.jdbc.version}</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.2.0</version>
<exclusions>
<exclusion>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr-runtime</artifactId>
<version>3.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>${derby.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>sizeof</artifactId>
<version>0.4.0</version>
</dependency>
<dependency>
<groupId>com.github.jbellis</groupId>
<artifactId>jamm</artifactId>
<version>0.4.0</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.flatbuffers</groupId>
<artifactId>flatbuffers-java</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-databind.version}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.23.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.directory.server</groupId>
<artifactId>apacheds-test-framework</artifactId>
<version>2.0.0.AM25</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-hive-runtime</artifactId>
</dependency>
<!-- Needed for reading Iceberg Puffin files. -->
<dependency>
<groupId>org.apache.datasketches</groupId>
<artifactId>datasketches-java</artifactId>
</dependency>
<!-- Needed for tests like JdbcTest which instantiates HiveDriver -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>${hive.version}</version>
<scope>test</scope>
<exclusions>
<!-- Exclusions needed for Hive 3.1.3 -->
<exclusion>
<groupId>org.apache.hbase</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<!-- We should exclude hive-serde since it brings along a
different version of flatbuffers causing problems for loading tables -->
<exclusion>
<groupId>org.apache.hive</groupId>
<artifactId>hive-serde</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.hive</groupId>
<artifactId>hive-metastore</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.hive.shims</groupId>
<artifactId>hive-shims-0.20</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<!-- IMPALA-9108: Avoid pulling in leveldbjni, which is unneeded. -->
<groupId>org.fusesource.leveldbjni</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>com.cloudera</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-classification</artifactId>
<version>${hive.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-standalone-metastore</artifactId>
<version>${hive.version}</version>
<exclusions>
<!-- Impala uses log4j v1; avoid pulling in slf4j handling for log4j2 -->
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.hive</groupId>
<artifactId>hive-serde</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.hive</groupId>
<artifactId>hive-shims</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>com.cloudera</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- needed for JobConf, which HiveConf inherits from -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Needed by tests like TestCaseLoader instantiate HMS in embedded mode which
needs datanucleus as test dependency-->
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>javax.jdo</artifactId>
<version>3.2.0-m3</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.pac4j/pac4j-saml -->
<dependency>
<groupId>org.pac4j</groupId>
<artifactId>pac4j-saml-opensamlv3</artifactId>
<version>${pac4j.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
<exclusion>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
</exclusion>
<!-- Exclude spring components except spring-core -->
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</exclusion>
<!-- IMPALA-11673: spring-jcl conflicts with commons-logging -->
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-jcl</artifactId>
</exclusion>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
</dependency>
<!-- Needed for KerberosKdcEnvironment tests. -->
<dependency>
<groupId>org.apache.kerby</groupId>
<artifactId>kerb-simplekdc</artifactId>
<version>2.0.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.paimon</groupId>
<artifactId>paimon-hive-connector-3.1</artifactId>
<version>${paimon.version}</version>
<exclusions>
<exclusion>
<artifactId>lz4-java</artifactId>
<groupId>org.lz4</groupId>
</exclusion>
<exclusion>
<artifactId>caffeine</artifactId>
<groupId>com.github.ben-manes.caffeine</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.paimon</groupId>
<artifactId>paimon-arrow</artifactId>
<version>${paimon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-vector</artifactId>
<version>${arrow.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
</exclusion>
<exclusion>
<artifactId>flatbuffers-java</artifactId>
<groupId>com.google.flatbuffers</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-c-data</artifactId>
<version>${arrow.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-core</artifactId>
<version>${arrow.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-unsafe</artifactId>
<version>${arrow.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
</plugins>
</reporting>
<properties>
<buildOutputDirectory>${project.build.directory}/classes</buildOutputDirectory>
</properties>
<build>
<outputDirectory>${buildOutputDirectory}</outputDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<!-- Build fe/tests/ to jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.sourceforge.czt.dev</groupId>
<artifactId>cup-maven-plugin</artifactId>
<version>1.6-cdh</version>
<executions>
<execution>
<id>cup</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<cupDefinition>sql-parser.cup</cupDefinition>
<className>SqlParser</className>
<symbolsName>SqlParserSymbols</symbolsName>
<outputDirectory>${project.build.directory}/generated-sources/cup</outputDirectory>
<expectedConflicts>0</expectedConflicts>
</configuration>
</plugin>
<plugin>
<groupId>de.jflex</groupId>
<artifactId>maven-jflex-plugin</artifactId>
<version>1.4.3</version>
<executions>
<execution>
<id>jflex</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<backup>false</backup>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<!-- TODO(todd): consider removing this execution or moving it to
some kind of 'dist' profile. No need to copy all of these jars
on every build of the FE! -->
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeTypes>pom</excludeTypes>
<includeScope>runtime</includeScope>
<silent>true</silent>
</configuration>
</execution>
<!--
Write the runtime classpath to a file in the target directory
so it can be picked up by bin/set-classpath.sh
-->
<execution>
<id>write-classpath</id>
<goals>
<goal>build-classpath</goal>
</goals>
<configuration>
<outputFile>${project.build.directory}/build-classpath.txt</outputFile>
<includeScope>runtime</includeScope>
<excludeTypes>pom</excludeTypes>
</configuration>
</execution>
<execution>
<id>write-test-classpath</id>
<goals>
<goal>build-classpath</goal>
</goals>
<configuration>
<outputFile>${project.build.directory}/test-classpath.txt</outputFile>
<includeScope>test</includeScope>
<excludeTypes>pom</excludeTypes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<trimStackTrace>false</trimStackTrace>
<reportsDirectory>${surefire.reports.dir}</reportsDirectory>
<argLine>${surefireJacocoArg}</argLine>
<groups>${testcase.groups}</groups>
<environmentVariables>
<!-- Set LD_LIBRARY_PATH and LD_PRELOAD to pick up libraries required for
running fe tests:
* LD_LIBRARY_PATH needs to include the GCC libraries that libfesupport.so
was built against.
* LD_PRELOAD needs to include libjsig.so for JVM/native signal handling.
TODO(IMPALA-13856): remove libjsig.so if possible as it causes issues
with Java 17
-->
<LD_LIBRARY_PATH>
${env.IMPALA_TOOLCHAIN_PACKAGES_HOME}/gcc-${env.IMPALA_GCC_VERSION}/lib64
</LD_LIBRARY_PATH>
<LD_PRELOAD>
${env.LIB_JSIG}
</LD_PRELOAD>
</environmentVariables>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<!-- Tell maven about our generated files -->
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<!-- Make sure Eclipse knows where to find generated sources.
Note that the flex plugin appears to do this for you, but we have
to do this manually for the CUP and Thrift generated code
-->
<source>${project.basedir}/generated-sources/gen-java</source>
<source>${project.build.directory}/generated-sources/cup</source>
<source>${project.basedir}/src/compat-${hive.dist.type}/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.6.201602180812</version>
<executions>
<execution>
<id>prepare-jacoco-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>${jacoco.data.file}</destFile>
<propertyName>surefireJacocoArg</propertyName>
</configuration>
</execution>
<execution>
<id>jacoco-report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>${jacoco.data.file}</dataFile>
<outputDirectory>${jacoco.report.dir}</outputDirectory>
</configuration>
</execution>
</executions>
<configuration>
<!-- Code coverage reporting is disabled by default and must be enabled
when running tests like this: mvn test -DcodeCoverage -->
<skip>${jacoco.skip}</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>enforce-banned-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<!-- We shouldn't have a runtime dependency on Ant or the
Jetty server -->
<exclude>ant:*</exclude>
<exclude>ant-contrib:*</exclude>
<exclude>com.amazonaws:aws-java-sdk-bundle</exclude>
<exclude>org.apache.ant:*</exclude>
<exclude>org.eclipse.jetty:*</exclude>
<!-- We use reload4j, exclude log4j 1.x and 2.x -->
<exclude>org.apache.logging.log4j:log4j-slf4j-impl</exclude>
<exclude>org.apache.logging.log4j:log4j-1.2-api</exclude>
<exclude>log4j:*</exclude>
<exclude>org.slf4j:slf4j-log4j12</exclude>
<!-- IMPALA-9108: Avoid pulling in leveldbjni, which is unneeded. -->
<exclude>org.fusesource.leveldbjni:*</exclude>
<!-- IMPALA-9647 (re: CVE-2014-3577, CVE-2015-5262) -->
<exclude>org.apache.httpcomponents:fluent-hc</exclude>
<!-- IMPALA-9649 (Avoid pulling in shiro* due to CVE's) -->
<exclude>org.apache.shiro:shiro-core:*</exclude>
<exclude>org.apache.shiro:shiro-crypto-cipher:*</exclude>
<!-- Avoid runtime dependency on rocksdb. -->
<exclude>org.rocksdb:*</exclude>
<!-- Avoid runtime dependency on Jersey server components. -->
<exclude>com.sun.jersey:jersey-server</exclude>
<exclude>org.glassfish.jersey.core:jersey-servlet</exclude>
<!-- IMPALA-9708: Sentry is removed. -->
<exclude>org.apache.sentry:*</exclude>
<!-- IMPALA-11673: Ensure spring-jcl is not present. -->
<exclude>org.springframework:spring-jcl</exclude>
<!-- Assert that we only use artifacts from only the specified
version of these components. -->
<exclude>org.apache.hadoop:*</exclude>
<exclude>org.apache.hbase:*</exclude>
<exclude>org.apache.hive:*</exclude>
<exclude>org.apache.kudu:*</exclude>
<exclude>org.apache.parquet:*</exclude>
<exclude>org.apache.avro:*</exclude>
<exclude>org.apache.orc:*</exclude>
<exclude>org.jdom:jdom</exclude>
<exclude>org.bouncycastle:bcprov-jdk15on:*</exclude>
<exclude>org.bouncycastle:bcprov-jdk15to18:*</exclude>
<exclude>org.bouncycastle:bcprov-jdk15on:*</exclude>
<exclude>org.bouncycastle:bcpkix-jdk15to18:*</exclude>
</excludes>
<includes>
<!-- ranger-plugins-audit depends on jetty-client, which in turn pulls in jetty-http and jetty-io. -->
<include>org.eclipse.jetty:jetty-client</include>
<include>org.eclipse.jetty:jetty-http</include>
<include>org.eclipse.jetty:jetty-io</include>
<!-- jetty-security is needed by jetty-servlet. -->
<include>org.eclipse.jetty:jetty-security</include>
<!-- jetty-servlet is required by hive-standalone-metastore after HIVE-26071. -->
<include>org.eclipse.jetty:jetty-servlet</include>
<!-- jetty-server is required when HiveMetaStoreClient is instantiated after HIVE-21456. -->
<include>org.eclipse.jetty:jetty-server</include>
<!-- hadoop-yarn-common depends on some Jetty utilities. -->
<include>org.eclipse.jetty:jetty-util</include>
<include>org.eclipse.jetty:jetty-util-ajax</include>
<!-- Include the allowed versions specifically -->
<include>org.apache.hadoop:*:${hadoop.version}</include>
<include>org.apache.hadoop:*:${ozone.version}</include>
<include>org.apache.hbase:*:${hbase.version}</include>
<include>org.apache.hive:*:${hive.version}</include>
<include>org.apache.hive:hive-storage-api:${hive.storage.api.version}</include>
<include>org.apache.kudu:*:${kudu.version}</include>
<include>org.apache.avro:*:${avro.version}</include>
<include>org.apache.parquet:*:${parquet.version}</include>
<include>org.apache.orc:*:${orc.version}</include>
<include>org.apache.ozone:*:${ozone.version}</include>
<!-- orc-format does not match orc version -->
<include>org.apache.orc:orc-format:1.0</include>
</includes>
</bannedDependencies>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>net.sourceforge.czt</groupId>
<artifactId>maven-cup-plugin</artifactId>
<versionRange>[1.6.4,)</versionRange>
<goals>
<goal>generate</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<versionRange>[1.6,)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
<goal>build-classpath</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>de.jflex</groupId>
<artifactId>maven-jflex-plugin</artifactId>
<versionRange>[1.4.3,)</versionRange>
<goals>
<goal>generate</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute></execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
<!-- mvn eclipse:eclipse generates Eclipse .project and .classpath files
NOTE: This is a deprecated Maven plugin. It's recommended to use
the native Eclipse "import Maven project" functionality (m2e)
instead -->
<plugin>
<groupId>org.apache.maven.plugins </groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.10</version>
<configuration>
<!-- By default, we separate Eclipse-built files from Maven-built
files. Otherwise, they are both in target/classes, and Eclipse
and Maven may clobber each other, complicating attaching to
a running process. -->
<buildOutputDirectory>${eclipse.output.directory}</buildOutputDirectory>
<downloadSources>true</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
<additionalConfig>
<file>
<!-- Saved "launch configuration" for attaching Eclipse debugger to port 30000 -->
<name>impala-fe-30000.launch</name>
<content><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.remoteJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/impala-frontend"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ALLOW_TERMINATE" value="false"/>
<mapAttribute key="org.eclipse.jdt.launching.CONNECT_MAP">
<mapEntry key="hostname" value="localhost"/>
<mapEntry key="port" value="30000"/>
</mapAttribute>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="impala-frontend"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_CONNECTOR_ID" value="org.eclipse.jdt.launching.socketAttachConnector"/>
</launchConfiguration>
]]>
</content>
</file>
</additionalConfig>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>thrift-home-defined</id>
<activation>
<file>
<exists>${env.THRIFT_JAVA_HOME}/bin/thrift</exists>
</file>
</activation>
<properties>
<thrift.executable>${env.THRIFT_JAVA_HOME}/bin/thrift</thrift.executable>
</properties>
</profile>
<profile>
<id>jacoco-code-coverage</id>
<activation>
<property>
<!-- Enable code coverage if the 'codeCoverage' property is set.
Usage: mvn test -DcodeCoverage -->
<name>codeCoverage</name>
</property>
</activation>
<properties>
<jacoco.skip>false</jacoco.skip>
<!-- Due to Jacoco's runtime instrumentation some tests could fail.
In order to still produce a coverage report it is recommended
to ignore test failures. -->
<maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>
</profile>
<profile>
<id>errorprone</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<showWarnings>true</showWarnings>
<compilerId>javac-with-errorprone</compilerId>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
<compilerArgs>
<arg>-XepDisableWarningsInGeneratedCode</arg>
<arg>-XepExcludedPaths:.*/generated-.*/.*</arg>
</compilerArgs>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac-errorprone</artifactId>
<version>2.8.3</version>
</dependency>
<!-- override plexus-compiler-javac-errorprone's dependency on
Error Prone with the latest version -->
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile which is automatically activated based on the value of the
IMPALA_HIVE_DIST_TYPE environment -->
<profile>
<id>apache-hive-3</id>
<activation>
<property>
<name>env.IMPALA_HIVE_DIST_TYPE</name>
<value>apache-hive-3</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/org/apache/impala/catalog/metastore/*.java</exclude>
<exclude>**/org/apache/impala/catalog/CatalogHmsAPIHelper.java</exclude>
<exclude>**/org/apache/impala/catalog/CompactionInfoLoader.java</exclude>
</excludes>
<testExcludes>
<testExclude>**/org/apache/impala/catalog/metastore/*.java</testExclude>
<testExclude>**/org/apache/impala/testutil/Catalog*.java</testExclude>
</testExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile which is automatically activated when building from
within Eclipse based on the presence of the m2e.version
property -->
<profile>
<id>eclipse-m2e</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<!-- By default, we separate Eclipse-built files from Maven-built
files. Otherwise, they are both in target/classes, and Eclipse
and Maven may clobber each other, complicating attaching to
a running process. -->
<properties>
<buildOutputDirectory>${project.build.directory}/${eclipse.output.directory}</buildOutputDirectory>
</properties>
</profile>
<profile>
<id>s3-tests</id>
<properties>
<testcase.groups>org.apache.impala.planner.S3Tests</testcase.groups>
</properties>
</profile>
</profiles>
</project>