You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by pr...@apache.org on 2025/12/31 10:39:03 UTC
(ranger) 09/12: RANGER-4706: Enforce Jersey 2 and JUnit 5 via Maven Enforcer and dependency exclusions
This is an automated email from the ASF dual-hosted git repository.
pradeep pushed a commit to branch RANGER-4076_master
in repository https://gitbox.apache.org/repos/asf/ranger.git
commit 0b0ed0f7beb0e3dc454e6d68e557115af69c95fc
Author: Pradeep AgrawaL <pr...@apache.org>
AuthorDate: Sun Dec 21 09:42:18 2025 +0530
RANGER-4706: Enforce Jersey 2 and JUnit 5 via Maven Enforcer and dependency exclusions
---
distro/pom.xml | 16 ++++++++++++++++
hdfs-agent/pom.xml | 40 ++++++++++++++++++++++++++++++++++++++++
hive-agent/pom.xml | 5 +++++
plugin-atlas/pom.xml | 18 ++++++++++++++++++
plugin-yarn/pom.xml | 4 ++++
pom.xml | 40 ++++++++++++++++++++++++++++++++++++++++
ranger-atlas-plugin-shim/pom.xml | 9 +++++++++
ranger-hive-plugin-shim/pom.xml | 9 +++++++++
ranger-yarn-plugin-shim/pom.xml | 9 +++++++++
security-admin/pom.xml | 5 +++++
tagsync/pom.xml | 15 +++++++++++++++
11 files changed, 170 insertions(+)
diff --git a/distro/pom.xml b/distro/pom.xml
index 709cf9f83..af5cedce5 100644
--- a/distro/pom.xml
+++ b/distro/pom.xml
@@ -423,6 +423,22 @@
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>ban-legacy-dependencies</id>
+ <phase>none</phase>
+ <!-- Skip ban-legacy-dependencies check - this module includes tagsync which requires Apache Atlas (uses Jersey 1.x) -->
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
<profiles>
<profile>
<id>all</id>
diff --git a/hdfs-agent/pom.xml b/hdfs-agent/pom.xml
index d71295227..c07980c04 100644
--- a/hdfs-agent/pom.xml
+++ b/hdfs-agent/pom.xml
@@ -56,6 +56,20 @@
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
<exclusions>
+ <!-- Exclude pjfanning jersey-json which depends on Jersey 1.x -->
+ <exclusion>
+ <groupId>com.github.pjfanning</groupId>
+ <artifactId>jersey-json</artifactId>
+ </exclusion>
+ <!-- Exclude Jersey 1.x - project uses Jersey 2.x -->
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
@@ -91,6 +105,15 @@
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
<exclusions>
+ <!-- Exclude Jersey 1.x - project uses Jersey 2.x -->
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
@@ -129,12 +152,29 @@
<artifactId>ranger-plugins-common</artifactId>
<version>${project.version}</version>
</dependency>
+
+ <!-- Jersey 1.x for hadoop-minicluster tests (MiniDFSCluster HTTP server needs it) -->
+ <dependency>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-servlet</artifactId>
+ <version>1.19.4</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-minicluster</artifactId>
<version>${hadoop.version}</version>
<scope>test</scope>
<exclusions>
+ <!-- Exclude Jersey 1.x - project uses Jersey 2.x -->
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
diff --git a/hive-agent/pom.xml b/hive-agent/pom.xml
index 1bb3273bd..5ae65c006 100644
--- a/hive-agent/pom.xml
+++ b/hive-agent/pom.xml
@@ -345,6 +345,11 @@
<version>${hadoop.version}</version>
<scope>test</scope>
<exclusions>
+ <!-- Exclude Jersey 1.x - project uses Jersey 2.x -->
+ <exclusion>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>jersey-guice</artifactId>
+ </exclusion>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
diff --git a/plugin-atlas/pom.xml b/plugin-atlas/pom.xml
index da0dabdfa..631500c6d 100644
--- a/plugin-atlas/pom.xml
+++ b/plugin-atlas/pom.xml
@@ -45,6 +45,15 @@
<artifactId>atlas-authorization</artifactId>
<version>${atlas.version}</version>
<exclusions>
+ <!-- Exclude Jersey 1.x - project uses Jersey 2.x -->
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
@@ -56,6 +65,15 @@
<artifactId>atlas-common</artifactId>
<version>${atlas.version}</version>
<exclusions>
+ <!-- Exclude Jersey 1.x - project uses Jersey 2.x -->
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
diff --git a/plugin-yarn/pom.xml b/plugin-yarn/pom.xml
index f2fe84112..6eaef53d1 100644
--- a/plugin-yarn/pom.xml
+++ b/plugin-yarn/pom.xml
@@ -59,6 +59,10 @@
<groupId>com.sun.jersey</groupId>
<artifactId>*</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>*</artifactId>
diff --git a/pom.xml b/pom.xml
index 9a60f63c6..e313cf629 100644
--- a/pom.xml
+++ b/pom.xml
@@ -614,6 +614,46 @@
</rules>
</configuration>
</execution>
+ <execution>
+ <id>ban-legacy-dependencies</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <bannedDependencies>
+ <excludes>
+ <!-- Ban JUnit 4 - project has migrated to JUnit 5 -->
+ <exclude>junit:junit:*:*:compile</exclude>
+ <exclude>junit:junit:*:*:runtime</exclude>
+ <exclude>junit:junit:*:*:provided</exclude>
+ <exclude>junit:junit-dep:*:*:compile</exclude>
+ <exclude>junit:junit-dep:*:*:runtime</exclude>
+ <exclude>junit:junit-dep:*:*:provided</exclude>
+
+ <!-- Ban Jersey 1.x - project has migrated to Jersey 2.x (Glassfish) -->
+ <exclude>com.sun.jersey:*:*:*:compile</exclude>
+ <exclude>com.sun.jersey:*:*:*:runtime</exclude>
+ <exclude>com.sun.jersey:*:*:*:provided</exclude>
+ <exclude>com.sun.jersey.contribs:*:*:*:compile</exclude>
+ <exclude>com.sun.jersey.contribs:*:*:*:runtime</exclude>
+ <exclude>com.sun.jersey.contribs:*:*:*:provided</exclude>
+ </excludes>
+ <searchTransitive>true</searchTransitive>
+ <message>❌ Banned dependencies detected!
+
+ This project has migrated to:
+ - JUnit 5 (org.junit.jupiter:junit-jupiter) - NOT JUnit 4 (junit:junit)
+ - Jersey 2.x (org.glassfish.jersey.*) - NOT Jersey 1.x (com.sun.jersey:*)
+
+ Test-scoped dependencies are allowed for compatibility with test infrastructure.
+
+ Please update your dependencies accordingly.</message>
+ </bannedDependencies>
+ </rules>
+ <fail>true</fail>
+ </configuration>
+ </execution>
</executions>
</plugin>
<plugin>
diff --git a/ranger-atlas-plugin-shim/pom.xml b/ranger-atlas-plugin-shim/pom.xml
index 2f2c7d86f..19a45687c 100644
--- a/ranger-atlas-plugin-shim/pom.xml
+++ b/ranger-atlas-plugin-shim/pom.xml
@@ -40,6 +40,15 @@
<artifactId>atlas-authorization</artifactId>
<version>${atlas.version}</version>
<exclusions>
+ <!-- Exclude Jersey 1.x - project uses Jersey 2.x -->
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
diff --git a/ranger-hive-plugin-shim/pom.xml b/ranger-hive-plugin-shim/pom.xml
index c452b30e0..e94d160e2 100644
--- a/ranger-hive-plugin-shim/pom.xml
+++ b/ranger-hive-plugin-shim/pom.xml
@@ -36,6 +36,15 @@
<artifactId>hive-exec</artifactId>
<version>${hive.version}</version>
<exclusions>
+ <!-- Exclude Jersey 1.x - project uses Jersey 2.x -->
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
diff --git a/ranger-yarn-plugin-shim/pom.xml b/ranger-yarn-plugin-shim/pom.xml
index 929f04721..1327f1a6d 100644
--- a/ranger-yarn-plugin-shim/pom.xml
+++ b/ranger-yarn-plugin-shim/pom.xml
@@ -36,6 +36,15 @@
<artifactId>hadoop-yarn-common</artifactId>
<version>${hadoop.version}</version>
<exclusions>
+ <!-- Exclude Jersey 1.x - project uses Jersey 2.x -->
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>*</artifactId>
diff --git a/security-admin/pom.xml b/security-admin/pom.xml
index e86ce30b7..95eafbdbf 100644
--- a/security-admin/pom.xml
+++ b/security-admin/pom.xml
@@ -374,6 +374,11 @@
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
</exclusion>
+ <!-- Exclude Jersey 1.x - project uses Jersey 2.x -->
+ <exclusion>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>jersey-guice</artifactId>
+ </exclusion>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
diff --git a/tagsync/pom.xml b/tagsync/pom.xml
index 8f9d3803b..3e4af5ffb 100644
--- a/tagsync/pom.xml
+++ b/tagsync/pom.xml
@@ -513,4 +513,19 @@
<scope>test</scope>
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>ban-legacy-dependencies</id>
+ <phase>none</phase>
+ <!-- Skip ban-legacy-dependencies check - this module requires Apache Atlas which uses Jersey 1.x -->
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
</project>