Yaniv Kunda created HADOOP-19395: ------------------------------------ Summary: Upgrade javax to jakarta Key: HADOOP-19395 URL: https://issues.apache.org/jira/browse/HADOOP-19395 Project: Hadoop Common Issue Type: Improvement Components: common Affects Versions: 3.5.0 Reporter: Yaniv Kunda
The project uses old libraries in the {{javax.*}} package namespace, mainly {{javax.servlet}} & {{{}javax.annotation{}}}. For example, the old servlet-api is included via the following dependency management: {code:xml} <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>4.0.4</version> </dependency> {code} Note that while the artifact is in maven's `jakarta.servlet` namespace, it includes the `javax.servlet` classes - versions 5 and above include the `jakarta.servlet` classes. The scope of its use is extensive, spanning most modules, and in many cases in public classes - however I'm not sure if any are considered a public API. One caveat is that the current Jetty version (9.4.x) doesn't work with the `jakarta.*` namespace, so it will still need to use the previous `javax.*` namespace, but the latter can be used by getting `javax.servlet:javax.servlet-api:4.0.1` specifically where it is used - and having the old namespace for the maven coordinates as well means it wouldn't cause a conflict. I believe that the first logical step is to upgrade to version 5.0.0, which is the first version that uses the `jakarta.*` package namespace, but is also the last that is Java 8 compatible, and upgrade again to 6.1.0 once hadoop migrates to Java 17 as a minimum A new Java 17 baseline will also support upgrading Jetty, which at the latest version 12 can work with all servlet-api versions. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: common-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-dev-h...@hadoop.apache.org