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

Jose Luis López updated HADOOP-20015:
-------------------------------------
    Description: 
*Scope*: every use, in main and test code across the repository, of a Jetty 9.4 
class that Jetty 12 no longer has, where the JDK, SLF4J or the servlet API does 
the same job:
* FSMainOperationsBaseTest, ViewFileSystemTestSetup, ViewFsTestSetup, 
TestAuthenticationSessionCookie (hadoop-common), 
TestRollingLevelDBTimelineStore (applicationhistoryservice), TestAMRMClient, 
TestYarnCLI (yarn-client) and MockNM (resourcemanager): they logged through 
org.eclipse.jetty.util.log.Log, which Jetty 10 and later no longer have. Log 
through SLF4J instead.
* TestDockerCommandExecutor (nodemanager): it borrowed a logger from Jetty's 
GzipHttpOutputInterceptor. Give it its own.
* FederationInterceptor (nodemanager): replace Jetty's ConcurrentHashSet, which 
Jetty 12 no longer has, with ConcurrentHashMap.newKeySet().
* TestLogAggregationService (nodemanager): it batched assertion failures in 
Jetty's MultiException, which Jetty 12 no longer has. Collect them in a list 
and throw one AssertionError carrying all of them.
* HttpServer2#inferMimeType (hadoop-common): drop the cast to a Jetty context, 
since ServletContext has getMimeType.

*Out of scope*: classes that Jetty 12 moves to the org.eclipse.jetty.ee8 
packages, and uses whose only replacement is another Jetty API (such as 
MultiException in HttpServer2). Those are the upgrade itself, HADOOP-19972. 
Every other Jetty class the code imports still exists in Jetty 12.

*Why*: these uses would not compile on Jetty 12, and none of them needs Jetty. 
Removing them now keeps HADOOP-19972 to the changes the upgrade really requires.

*Impact on Jetty 9*: none. Java changes only, no pom change; the logging, set, 
failure-batching and MIME-type code behaves the same.

*Downstream*: none.

*CI*: hadoop-common, applicationhistoryservice, yarn-client, resourcemanager, 
nodemanager.

*PR*: https://github.com/apache/hadoop/pull/8893

Regrouped on 2026-11-04 by kind of change, as suggested in the review: this 
issue now holds all the Java changes that were split between HADOOP-20015 
(YARN) and HADOOP-20016 (HADOOP); HADOOP-20016 holds all the pom changes.

  was:
*Scope*:
* hadoop-yarn-server-applicationhistoryservice/pom.xml: 
ApplicationHistoryServer uses org.eclipse.jetty.webapp.WebAppContext and 
org.eclipse.jetty.servlet.FilterHolder. Declare jetty-webapp and jetty-servlet 
with scope provided, the scope they already resolve at through the provided 
hadoop-common.
* hadoop-yarn-server-router/pom.xml: Router serves the UI2 war through 
WebAppContext. Declare jetty-webapp at compile scope. A test scope would 
override the inherited compile scope and take it off the Router's runtime 
classpath.
* hadoop-yarn-server-resourcemanager/pom.xml: ResourceManager hosts UI2 through 
WebAppContext. Declare jetty-webapp with scope provided, the scope it already 
resolves at.
* hadoop-yarn-common/pom.xml: WebApps, which Router and the ResourceManager 
call, exposes WebAppContext in its API. Declare jetty-webapp with scope 
provided, the scope it already resolves at.
* TestRollingLevelDBTimelineStore (applicationhistoryservice), TestAMRMClient, 
TestYarnCLI (yarn-client) and MockNM (resourcemanager): they logged through 
org.eclipse.jetty.util.log.Log, which Jetty 10 and later no longer have. Log 
through SLF4J instead.
* TestDockerCommandExecutor (nodemanager): it borrowed a logger from Jetty's 
GzipHttpOutputInterceptor. Give it its own.
* FederationInterceptor (nodemanager): replace Jetty's ConcurrentHashSet, which 
Jetty 12 no longer has, with ConcurrentHashMap.newKeySet().

*Why*: these modules compile against Jetty that they only get transitively. 
Declaring it makes the HADOOP-19972 change a rename of these entries to 
jetty-ee8-*.

*Impact on Jetty 9*: none. Same artifacts, version and scope as today, and the 
logging and set changes behave the same.

*Downstream*: none.

*CI*: six modules (applicationhistoryservice, router, resourcemanager, 
yarn-common, yarn-client, nodemanager).

*PR*: https://github.com/apache/hadoop/pull/8893

        Summary: Stop using Jetty 9.4 APIs that Jetty 12 removes  (was: YARN - 
Declare the Jetty web artifacts in use, and drop Jetty's Log and 
ConcurrentHashSet)

> Stop using Jetty 9.4 APIs that Jetty 12 removes
> -----------------------------------------------
>
>                 Key: HADOOP-20015
>                 URL: https://issues.apache.org/jira/browse/HADOOP-20015
>             Project: Hadoop Common
>          Issue Type: Sub-task
>            Reporter: Jose Luis López
>            Assignee: Jose Luis López
>            Priority: Major
>              Labels: pull-request-available
>
> *Scope*: every use, in main and test code across the repository, of a Jetty 
> 9.4 class that Jetty 12 no longer has, where the JDK, SLF4J or the servlet 
> API does the same job:
> * FSMainOperationsBaseTest, ViewFileSystemTestSetup, ViewFsTestSetup, 
> TestAuthenticationSessionCookie (hadoop-common), 
> TestRollingLevelDBTimelineStore (applicationhistoryservice), TestAMRMClient, 
> TestYarnCLI (yarn-client) and MockNM (resourcemanager): they logged through 
> org.eclipse.jetty.util.log.Log, which Jetty 10 and later no longer have. Log 
> through SLF4J instead.
> * TestDockerCommandExecutor (nodemanager): it borrowed a logger from Jetty's 
> GzipHttpOutputInterceptor. Give it its own.
> * FederationInterceptor (nodemanager): replace Jetty's ConcurrentHashSet, 
> which Jetty 12 no longer has, with ConcurrentHashMap.newKeySet().
> * TestLogAggregationService (nodemanager): it batched assertion failures in 
> Jetty's MultiException, which Jetty 12 no longer has. Collect them in a list 
> and throw one AssertionError carrying all of them.
> * HttpServer2#inferMimeType (hadoop-common): drop the cast to a Jetty 
> context, since ServletContext has getMimeType.
> *Out of scope*: classes that Jetty 12 moves to the org.eclipse.jetty.ee8 
> packages, and uses whose only replacement is another Jetty API (such as 
> MultiException in HttpServer2). Those are the upgrade itself, HADOOP-19972. 
> Every other Jetty class the code imports still exists in Jetty 12.
> *Why*: these uses would not compile on Jetty 12, and none of them needs 
> Jetty. Removing them now keeps HADOOP-19972 to the changes the upgrade really 
> requires.
> *Impact on Jetty 9*: none. Java changes only, no pom change; the logging, 
> set, failure-batching and MIME-type code behaves the same.
> *Downstream*: none.
> *CI*: hadoop-common, applicationhistoryservice, yarn-client, resourcemanager, 
> nodemanager.
> *PR*: https://github.com/apache/hadoop/pull/8893
> Regrouped on 2026-11-04 by kind of change, as suggested in the review: this 
> issue now holds all the Java changes that were split between HADOOP-20015 
> (YARN) and HADOOP-20016 (HADOOP); HADOOP-20016 holds all the pom changes.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

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

Reply via email to