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: [email protected]
For additional commands, e-mail: [email protected]