HADOOP-19912. Upgrade to Jetty 12.0 - #8653
Conversation
|
This is kind of a breaking change, but it's a thing we must do eventually. One major concern: how can we ensure that we migrate everything from Java EE to Jakarta EE in bulk? |
|
@pan3793 this is targeted at 3.6.0. I have no intention of seeing this backported to 3.5. This PR includes migration of the most important javax to jakarta changes. Latest versions of Jetty and Jersey require Jakarta dependencies as opposed to Javax. It's not really feasible to split these into separate upgrades. The only change in here in here that would possibly be split out is dealing with the abandonment of org.eclipse.jetty:jetty-util-ajax. Some Hadoop tests use it for JSON parsing and writing and this PR uses Jackson instead. |
setStatusWithReason removed in jetty AllowedResourceAliasChecker pom fixes Update LICENSE-binary fixes more fixes remove jetty logging servlet 6 compile
rework HadoopJsonUtils HadoopJsonUtils.toStrin
setBaseResource setBaseResourceAsString websocket code issues more websocket compile issues Update ContainerShellWebSocket.java more websocket fixes Update pom.xml Update ContainerShellWebSocket.java Update ContainerShellWebSocket.java Update NotificationTestCase.java build issues Update pom.xml Update SLSWebApp.java pom exclusions more
@pjfanning I also suppose so.
I actually mean the opposite thing - as you know, Java/Jakarta EE is composed of a lot of components, we should upgrade them all (use Spring as an example, Spring Framework 6.0 migrated to Jakarta EE 9 entirely), or none, otherwise, it might put downstream projects that pull Hadoop as a dependency in an awkward situation |
|
This Pr is large already but there is no reason not to upgrade to Jakarta for other libs separately. |
|
Could we use LLM to search the codebase and list all components that might need to be migrated? As you know, we went through a painful Jersey 1.x => 2.x upgrade process, and even now, we're still receiving some issues caused by the Jersey upgrade. This means that the current branch-3.5 is unstable (branch-3.5 has only released one version, 3.5.0), and we're still far from 3.6.0. Merging this change now might not be a good time (meaning the 3.5 backport could have a lot of conflicts). This change will be a breaking change for all downstream projects of Hadoop (perhaps Spark is an exception because it uses the Hadoop Shaded Client). We may need to initiate a cross-project discussion on the mailing list and try to reach a consensus before moving forward. |
|
Jersey 9.4 is abandoned with open CVEs. But discussing this with downstream projects makes sense. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
Description of PR
Contains content generated by Claude and Xiaomi Mimo.
Also updates to Jersey 3 and switches from Javax to Jakarta as these changes are needed for the Jetty 12 migration.
Still some build issues with the 'invariant' checks at the end of the maven build and if anyone has some pointers that would be great.
How was this patch tested?
CI Build
For code changes:
LICENSE,LICENSE-binary,NOTICE-binaryfiles?AI Tooling
If an AI tool was used:
where is the name of the AI tool used.
https://www.apache.org/legal/generative-tooling.html