[ 
https://issues.apache.org/jira/browse/HADOOP-19970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18106736#comment-18106736
 ] 

ASF GitHub Bot commented on HADOOP-19970:
-----------------------------------------

joseluisll opened a new pull request, #8699:
URL: https://github.com/apache/hadoop/pull/8699

   ### Description of PR
   
   Several modules resolve more than one Jetty release, and more than one 
servlet
   API, on a single classpath. Both combinations compile and then fail at run 
time,
   on whichever code path reaches the wrong jar.
   
   Intended result:
   
   * Every module resolves one Jetty release. Three are in play today: 9.4.44 
and
     9.4.55 reach some classpaths beside the managed 9.4.58.
   * Every module resolves one servlet API. `javax.servlet:javax.servlet-api` 
and
     `jakarta.servlet:jakarta.servlet-api` both publish the `javax.servlet`
     packages, and 73 modules carry both, so which one a module compiles and 
runs
     against is decided by the order of the jars rather than by anything in a 
pom.
   * Every module that uses Jetty in its main sources declares it. Four do not, 
and
     compile only because some other dependency happens to supply it.
   * The unused JSP API is gone. It reaches around eighty-five classpaths 
through
     hadoop-common, and nothing in the tree uses JSP.
   
   One module keeps two servlet APIs: 
`hadoop-yarn-server-timelineservice-hbase-tests`,
   where the second arrives with HBase's own test stack.
   
   None of this depends on a Jetty version change.
   
   Two notes for reviewers:
   
   * `hadoop-common` now compiles against Servlet 4.0 rather than 3.1. Servlet 
4.0
     is a superset and its additions are `default` interface methods, so the
     Jetty 9.4 implementation still satisfies them.
   * This overlaps the Jetty 12 work in #8653 in one place. Rebasing that PR 
onto
     this branch produces a single conflict in `hadoop-project/pom.xml`, where
     removing the JSP entry aligns our `jakarta.servlet-api` entry against its
     renamed websocket client. The two are unrelated entries; the resolution is 
to
     keep both.
   
   Contains content generated by Claude.
   
   ### How was this patch tested?
   
   Built and tested locally on Linux with JDK 17.
   
   Dependency resolution was compared before and after with `mvn 
dependency:tree`
   across all modules:
   
   | | before | after |
   | -

> Resolve a single Jetty release and servlet API on every module classpath
> ------------------------------------------------------------------------
>
>                 Key: HADOOP-19970
>                 URL: https://issues.apache.org/jira/browse/HADOOP-19970
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: build, common, test
>            Reporter: Jose Luis López
>            Priority: Major
>
> Several modules resolve more than one Jetty release, and more than one servlet
> API, on a single classpath. Both combinations compile and then fail at run 
> time,
> on whichever code path reaches the wrong jar.
> Intended result:
>  * Every module resolves one Jetty release. Three are in play today: 9.4.44 
> and
>    9.4.55 reach some classpaths beside the managed 9.4.58.
>  * Every module resolves one servlet API. javax.servlet:javax.servlet-api and
>    jakarta.servlet:jakarta.servlet-api both publish the javax.servlet 
> packages,
>    and 73 modules carry both, so which one a module compiles and runs against 
> is
>    decided by the order of the jars rather than by anything in a pom.
>  * Every module that uses Jetty in its main sources declares it. Four do not,
>    and compile only because some other dependency happens to supply it.
>  * The unused JSP API is gone. It reaches around eighty-five classpaths 
> through
>    hadoop-common, and nothing in the tree uses JSP.
> One module keeps two servlet APIs: 
> hadoop-yarn-server-timelineservice-hbase-tests,
> where the second arrives with HBase's own test stack.
> None of this depends on a Jetty version change.



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