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

Jose Luis López updated HADOOP-19970:
-------------------------------------
    Description: 
*Scope*:
* hadoop-project/pom.xml: add the jetty-servlet-api.version property (4.0.9), 
and replace the managed jakarta.servlet:jakarta.servlet-api 4.0.4 with 
org.eclipse.jetty.toolchain:jetty-servlet-api.
* hadoop-common/pom.xml: declare org.eclipse.jetty.toolchain:jetty-servlet-api 
at compile scope. HttpServer2 and its filters compile against javax.servlet, 
which today arrives only as javax.servlet-api 3.1.0 through jetty-server. Ten 
modules that use javax.servlet without declaring an API get it through 
hadoop-common.
* hadoop-project/pom.xml and hadoop-tools/hadoop-sls/pom.xml: the exclusion on 
jetty-server names org.eclipse.jetty:javax.servlet-api, a coordinate that 
matches nothing. Change it to javax.servlet:javax.servlet-api.
* hadoop-project/pom.xml: on javax-websocket-server-impl, also exclude 
javax.servlet:javax.servlet-api (through websocket-servlet).
* Switch the coordinate in the 17 module poms that declare the servlet API.
* Rename the 5 jakarta.servlet-api exclusions: 4 in hadoop-client-minicluster 
and 1 in hadoop-yarn-common.
* jersey-test-framework-core declares jakarta.servlet-api at compile scope. 
Exclude it there, and change the exclusion on the jdk-http provider to the same 
coordinate.
* LICENSE-binary: replace jakarta.servlet:jakarta.servlet-api:4.0.4 with 
org.eclipse.jetty.toolchain:jetty-servlet-api:4.0.9.
* LICENSE-binary and NOTICE-binary: drop javax.servlet:javax.servlet-api 3.1.0.

*Why*: javax.servlet-api 3.1.0 and jakarta.servlet-api 4.0.4 both publish the 
javax.servlet packages, and which one a module compiles and runs against 
depends on jar order. jetty-servlet-api is the servlet API that Jetty 12's ee8 
environment depends on. Switching now leaves one servlet API jar and takes the 
coordinate change out of HADOOP-19972.

*Impact on Jetty 9*: none. 4.0 is a superset of 3.1, and Jetty 9.4 runs on 
Servlet 4.0. jetty-servlet-api and jakarta.servlet-api 4.0.4 ship the same 
javax.servlet 4.0 classes, and jetty-servlet-api also carries the web.xml 
schemas. The project's web.xml files declare versions 2.4, 2.5 and 3.0, which 
Servlet 4.0 accepts.

*Downstream*:
* hadoop-client-runtime: still relocates one servlet API under 
org.apache.hadoop.shaded.javax.servlet. Its source changes from 
jakarta.servlet-api 4.0.4 to jetty-servlet-api 4.0.9: same javax.servlet 4.0 
classes, plus the web.xml schemas. No public API change.
* hadoop-client-api, hadoop-client-minicluster: unchanged; both already exclude 
the servlet API.
* Non-shaded artifacts: the coordinate changes from 
jakarta.servlet:jakarta.servlet-api to 
org.eclipse.jetty.toolchain:jetty-servlet-api. Downstream exclusions of 
jakarta.servlet-api need the new coordinate.
* Direct consumers of hadoop-common: the servlet API changes from 
javax.servlet:javax.servlet-api 3.1.0 to jetty-servlet-api 4.0.9. Same 
javax.servlet packages; 4.0 is a superset of 3.1.

*Depends on*: HADOOP-20014 (exclusion on the jdk-http provider).

*CI*: touches hadoop-project, so a full build.

  was:
*Scope*:
In hadoop-project, add the jetty-servlet-api.version property and swap the 
managed entry.
Switch the coordinate in 17 module poms.
Rename 5 exclusions (4 in minicluster, 1 in yarn-common). Add the 
jakarta.servlet-api exclusion to jersey-test-framework-core, which declares it 
at compile scope.
LICENSE-binary:649: swap the entry.

The client-runtime jetty-util change, the jdk-http provider switch, and the 
shuffle/AHS/router Jetty declarations.

*Impact on Jetty 9*: none. Both jars ship the same javax.servlet 4.0 classes; 
jetty-servlet-api adds the web.xml schemas. The project’s web.xml files declare 
versions 2.4, 2.5 and 3.0, and servlet 4.0 still accepts all of them.



> HADOOP-Move the servlet API to jetty-servlet-api 4.0.9
> ------------------------------------------------------
>
>                 Key: HADOOP-19970
>                 URL: https://issues.apache.org/jira/browse/HADOOP-19970
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: build, hadoop-common
>            Reporter: Jose Luis López
>            Assignee: Jose Luis López
>            Priority: Minor
>              Labels: pull-request-available
>
> *Scope*:
> * hadoop-project/pom.xml: add the jetty-servlet-api.version property (4.0.9), 
> and replace the managed jakarta.servlet:jakarta.servlet-api 4.0.4 with 
> org.eclipse.jetty.toolchain:jetty-servlet-api.
> * hadoop-common/pom.xml: declare 
> org.eclipse.jetty.toolchain:jetty-servlet-api at compile scope. HttpServer2 
> and its filters compile against javax.servlet, which today arrives only as 
> javax.servlet-api 3.1.0 through jetty-server. Ten modules that use 
> javax.servlet without declaring an API get it through hadoop-common.
> * hadoop-project/pom.xml and hadoop-tools/hadoop-sls/pom.xml: the exclusion 
> on jetty-server names org.eclipse.jetty:javax.servlet-api, a coordinate that 
> matches nothing. Change it to javax.servlet:javax.servlet-api.
> * hadoop-project/pom.xml: on javax-websocket-server-impl, also exclude 
> javax.servlet:javax.servlet-api (through websocket-servlet).
> * Switch the coordinate in the 17 module poms that declare the servlet API.
> * Rename the 5 jakarta.servlet-api exclusions: 4 in hadoop-client-minicluster 
> and 1 in hadoop-yarn-common.
> * jersey-test-framework-core declares jakarta.servlet-api at compile scope. 
> Exclude it there, and change the exclusion on the jdk-http provider to the 
> same coordinate.
> * LICENSE-binary: replace jakarta.servlet:jakarta.servlet-api:4.0.4 with 
> org.eclipse.jetty.toolchain:jetty-servlet-api:4.0.9.
> * LICENSE-binary and NOTICE-binary: drop javax.servlet:javax.servlet-api 
> 3.1.0.
> *Why*: javax.servlet-api 3.1.0 and jakarta.servlet-api 4.0.4 both publish the 
> javax.servlet packages, and which one a module compiles and runs against 
> depends on jar order. jetty-servlet-api is the servlet API that Jetty 12's 
> ee8 environment depends on. Switching now leaves one servlet API jar and 
> takes the coordinate change out of HADOOP-19972.
> *Impact on Jetty 9*: none. 4.0 is a superset of 3.1, and Jetty 9.4 runs on 
> Servlet 4.0. jetty-servlet-api and jakarta.servlet-api 4.0.4 ship the same 
> javax.servlet 4.0 classes, and jetty-servlet-api also carries the web.xml 
> schemas. The project's web.xml files declare versions 2.4, 2.5 and 3.0, which 
> Servlet 4.0 accepts.
> *Downstream*:
> * hadoop-client-runtime: still relocates one servlet API under 
> org.apache.hadoop.shaded.javax.servlet. Its source changes from 
> jakarta.servlet-api 4.0.4 to jetty-servlet-api 4.0.9: same javax.servlet 4.0 
> classes, plus the web.xml schemas. No public API change.
> * hadoop-client-api, hadoop-client-minicluster: unchanged; both already 
> exclude the servlet API.
> * Non-shaded artifacts: the coordinate changes from 
> jakarta.servlet:jakarta.servlet-api to 
> org.eclipse.jetty.toolchain:jetty-servlet-api. Downstream exclusions of 
> jakarta.servlet-api need the new coordinate.
> * Direct consumers of hadoop-common: the servlet API changes from 
> javax.servlet:javax.servlet-api 3.1.0 to jetty-servlet-api 4.0.9. Same 
> javax.servlet packages; 4.0 is a superset of 3.1.
> *Depends on*: HADOOP-20014 (exclusion on the jdk-http provider).
> *CI*: touches hadoop-project, so a full build.



--
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