You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by cs...@apache.org on 2026/09/16 09:18:26 UTC

(impala) 02/03: IMPALA-15351: Split maven-enforcer-plugin rules in 2 passes

This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit 363382e90f320937e1bff64119cdf80b7fca1dd7
Author: Csaba Ringhofer <cs...@cloudera.com>
AuthorDate: Tue Sep 15 11:03:23 2026 +0200

    IMPALA-15351: Split maven-enforcer-plugin rules in 2 passes
    
    The goal is to be able to exclude specific artifacts in groups
    pinned to specific versions. The include list in version pinned
    groups have * for artifact, which would override the exclude rules.
    
    Also removed a duplicate rule (org.bouncycastle:bcprov-jdk15on).
    
    Change-Id: I8f496f95199af1d7131c528b65e0b1277ba3aaff
    Reviewed-on: http://gerrit.cloudera.org:8080/24846
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 fe/pom.xml | 47 +++++++++++++++++++++++++++++++++++------------
 1 file changed, 35 insertions(+), 12 deletions(-)

diff --git a/fe/pom.xml b/fe/pom.xml
index 521eb15b0..fb5259a15 100644
--- a/fe/pom.xml
+++ b/fe/pom.xml
@@ -817,6 +817,9 @@ under the License.
         <artifactId>maven-enforcer-plugin</artifactId>
         <version>3.1.0</version>
         <executions>
+          <!-- Dependencies that must never appear on the classpath, at any
+               version. Version pinning of the components that are shipped is in
+               execution enforce-dependency-versions. -->
           <execution>
             <id>enforce-banned-dependencies</id>
             <goals>
@@ -856,20 +859,9 @@ under the License.
                     <exclude>org.springframework:spring-jcl</exclude>
                     <!-- We don't support junit 5 yet. -->
                     <exclude>org.junit.jupiter:*</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.apache.logging.log4j:*</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>
@@ -880,13 +872,44 @@ under the License.
                     <!-- 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>
+                    <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>org.eclipse.jetty:jetty-continuation</include>
+                  </includes>
+                </bannedDependencies>
+              </rules>
+              <fail>true</fail>
+            </configuration>
+          </execution>
+          <!-- Components shipped, but only at the specific pinned version.
+               Kept separate from enforce-banned-dependencies execution to avoid
+               sharing include list (the * for artifact in include list would
+               override the excludes). -->
+          <execution>
+            <id>enforce-dependency-versions</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <bannedDependencies>
+                  <excludes>
+                    <!-- 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.apache.logging.log4j:*</exclude>
+                  </excludes>
+                  <includes>
                     <!-- Include the allowed versions specifically -->
                     <include>org.apache.hadoop:*:${hadoop.version}</include>
                     <include>org.apache.hadoop:*:${ozone.version}</include>