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