[ 
https://issues.apache.org/jira/browse/HADOOP-19625?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jose Luis López reassigned HADOOP-19625:
----------------------------------------

    Assignee:     (was: Jose Luis López)

> Map the javax-bound dependencies to their jakarta replacements (Jersey, Jetty 
> ee10, JAXB, Guice, Jackson)
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-19625
>                 URL: https://issues.apache.org/jira/browse/HADOOP-19625
>             Project: Hadoop Common
>          Issue Type: Task
>            Reporter: Palakur Eshwitha Sai
>            Priority: Major
>
> Sub-task of HADOOP-19395, Phase A. It changes no code.
> h3. Goal
> Before the javax → jakarta switch can start, every third-party dependency 
> bound to the javax APIs needs a known jakarta replacement. For each one, 
> record:
> * the target artifact and version;
> * its minimum Java version (Hadoop builds on Java 17);
> * its licence (Category A);
> * API changes Hadoop code would have to absorb;
> * whether it is released at all: flag the ones that have no jakarta release 
> and need a replacement or removal.
> The table is the input for the switch sub-tasks of HADOOP-19395, starting 
> with B1, which sets the versions in {{hadoop-project}}.
> h3. Decision this depends on
> Target Jakarta EE 10 (Jetty ee10, Servlet 6.0, Jersey 3.1) or Jakarta EE 11 
> (Jetty ee11, Servlet 6.1, Jersey 4.0). Jetty 12.1 supports both. The mapping 
> should list both columns where they differ, so the dev list can decide with 
> the facts in hand.
> h3. Artifacts in scope
> The 30 artifacts managed in {{hadoop-project}} that are bound to javax, as 
> found by an inventory of the HADOOP-19972 branch. The targets are first 
> guesses, to confirm:
> ||Group||Artifact||Current||Likely target (to confirm)||
> |Jersey|{{jersey-server}}, {{jersey-client}}, {{jersey-common}}, 
> {{jersey-container-servlet}}, {{jersey-container-servlet-core}}, 
> {{jersey-hk2}}, {{jersey-media-jaxb}}, {{jersey-media-json-jettison}}, 
> {{jersey-test-framework-core}}, 
> {{jersey-test-framework-provider-jdk-http}}|2.46|3.1.x (EE 10) or 4.0.x (EE 
> 11), same artifact names|
> |Jetty|{{jetty-ee8-nested}}, {{jetty-ee8-servlet}}, {{jetty-ee8-webapp}}, 
> {{jetty-ee8-websocket-jetty-server}}, 
> {{jetty-ee8-websocket-jetty-client}}|12.1.12|the {{jetty-ee10-*}} (or 
> {{jetty-ee11-*}}) counterparts, same release|
> |Servlet 
> API|{{org.eclipse.jetty.toolchain:jetty-servlet-api}}|4.0.9|{{jakarta.servlet:jakarta.servlet-api}}
>  6.0 / 6.1|
> |JAX-RS API|{{jakarta.ws.rs:jakarta.ws.rs-api}}|2.1.6|3.1 / 4.0|
> |JAXB|{{jakarta.xml.bind:jakarta.xml.bind-api}}, 
> {{org.glassfish.jaxb:jaxb-runtime}}|2.3.3, 2.3.9|4.0.x|
> |Activation|{{jakarta.activation:jakarta.activation-api}}|1.2.1|2.1.x|
> |JSP API|{{jakarta.servlet.jsp:jakarta.servlet.jsp-api}}|2.3.6|3.1 / 4.0; 
> check whether it is still needed at all|
> |Annotations|{{javax.annotation:javax.annotation-api}}|1.3.2|{{jakarta.annotation:jakarta.annotation-api}}
>  2.1 / 3.0|
> |JSON-P|{{jakarta.json:jakarta.json-api}}, 
> {{org.glassfish:javax.json}}|1.1.6, 1.1.4|{{jakarta.json-api}} 2.1 with an 
> implementation such as Eclipse Parsson|
> |Guice|{{guice}}, {{guice-servlet}}|5.1.0|7.x, through 6.x, which accepts 
> both {{javax.inject}} and {{jakarta.inject}}|
> |Jackson|{{jackson-jaxrs-json-provider}}, 
> {{jackson-module-jaxb-annotations}}|2.18.10|{{jackson-jakarta-rs-json-provider}},
>  {{jackson-module-jakarta-xmlbind-annotations}}|
> |Others|{{org.codehaus.jettison:jettison}}|1.5.4|to check: still needed with 
> Jersey 3/4, or replaceable by Jackson|
> |Others|{{io.swagger:swagger-annotations}}|1.5.4|to check: does it depend on 
> javax at all, or does it need the swagger v3 jakarta artifacts|
> h3. Also check
> * Transitive dependencies: run {{mvn dependency:tree}} per module and list 
> any javax artifact that arrives through a dependency Hadoop does not manage.
> * Shaded clients: which relocations and exclusions in {{hadoop-client-api}}, 
> {{hadoop-client-runtime}} and {{hadoop-client-minicluster}} change with each 
> replacement.
> * LICENSE-binary and NOTICE-binary entries for each new artifact.
> h3. Out of scope
> * {{javax.cache:cache-api}} (JCache) and jsr305 
> ({{javax.annotation.Nullable}}): not Jakarta EE, they stay.
> * Solr in the YARN application catalog: tracked under HADOOP-19912.
> * Making the changes: that is the switch, in the Phase B sub-tasks of 
> HADOOP-19395.
> h3. Done when
> A table covering every artifact above, attached here or in a linked document, 
> with a target for each, or a decision to replace or remove it, and the EE 10 
> / EE 11 difference spelled out where it matters.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to