Upgrade Jetty 11.0.25 to 12.0.16 (EE10)#6144
Open
joewiz wants to merge 6 commits intoeXist-db:developfrom
Open
Upgrade Jetty 11.0.25 to 12.0.16 (EE10)#6144joewiz wants to merge 6 commits intoeXist-db:developfrom
joewiz wants to merge 6 commits intoeXist-db:developfrom
Conversation
76be363 to
54b6660
Compare
Dependency version changes: - Jetty: 11.0.25 -> 12.0.16 - Jakarta Servlet API: 5.0.0 -> 6.0.0 (EE10) - Milton servlet: 1.8.1.3-jakarta5 -> 1.8.1.3-jakarta-ee10 (fixes setStatus(int,String) removal in Servlet 6.0; temporarily uses com.evolvedbinary.thirdparty groupId — needs republishing under org.exist-db.thirdparty) Jetty 12 artifact coordinate changes: - Servlet-layer: org.eclipse.jetty -> org.eclipse.jetty.ee10 (annotations, servlet, webapp, plus, jndi) - WebSocket: org.eclipse.jetty.websocket -> org.eclipse.jetty.ee10.websocket - JAAS: removed as separate dep (now in jetty-security core module) Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Handler model: - HandlerCollection -> Handler$Sequence (constructor takes Array arg) - Server constructor arg: threadpool -> threadPool (case-sensitive) Deployment: - Replaced ContextProvider/scanner with inline addHandler on ContextHandlerCollection Security and class paths: - ConstraintSecurityHandler -> org.eclipse.jetty.ee10.servlet.security - JAASLoginService -> org.eclipse.jetty.security.jaas - DefaultServlet/IntrospectorCleaner -> ee10 packages - ELContextCleaner removed (obsolete) Compliance and other: - MultiPartFormDataCompliance -> MultiPartCompliance - UriCompliance: LEGACY -> UNSAFE (non-ASCII path support) - SecureRequestCustomizer: constructor args -> setter-based - GzipHandler: use addIncludedMethods - Removed org.eclipse.jetty.util.log.Log references Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
JettyStart.java: Handler model rewrite, ResourceFactory, ee10 packages WebAppContext.java: extends ee10 WebAppContext HttpServletRequestWrapper.java: Servlet 6.0 additions/removals XQueryURLRewrite.java, HttpServletResponseAdapter.java: removed setStatus(int, String) Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
- All web-app version="5.0" -> "6.0" with Servlet 6.0 schema refs - Distribution XSDs: real Jakarta EE 10 schemas from jakarta.ee - @ignore GetDataTest HTTP/0.9 and HTTP/1.0 tests (Jetty 12) - DbStore2Test: Jetty 12 ResourceHandler/Handler.Sequence API Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
54b6660 to
00941f2
Compare
New LockTest with 3 tests: - lockAndUnlockXmlDocument: LOCK returns token, UNLOCK succeeds - lockAndUnlockBinDocument: same for binary documents - relockReturnsFreshToken: re-LOCK by same user replaces the lock Ensures LOCK support (Milton 1.x LockableResource) is preserved across the Jetty 12 upgrade. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
This was referenced Mar 17, 2026
Replace toUpperCase().equals() with equalsIgnoreCase(), remove dead instanceof check, collapse nested ifs, fix parameter reassignments, remove unnecessary constructor, and suppress false-positive UnusedPrivateMethod warnings (PMD doesn't detect switch expression calls). Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrades Jetty from 11.0.25 (EOL since Jan 2025) to 12.0.16 with EE10 (Jakarta EE 10, Servlet 6.0).
Commits
Key Changes
Jetty 12
org.eclipse.jetty.ee10namespace; JAAS →jetty-securityHandlerCollection→Handler$Sequence;PathResource→ResourceFactoryaddHandlerdeployment replacesContextProviderscannerUriCompliance→UNSAFEfor non-ASCII path supportwebdefault.xml:DefaultServlet/IntrospectorCleaner→ ee10 packagesServlet 6.0
getServletConnection(),getRequestId(),getProtocolRequestId()setStatus(int, String),isRequestedSessionIdFromUrl(),getRealPath(String)web.xmldescriptors →version="6.0"; distribution XSDs → Jakarta EE 10Milton servlet compatibility
Milton 1.8.1.3-jakarta5 calls
HttpServletResponse.setStatus(int, String)which was removed in Servlet 6.0. This PR temporarily uses thecom.evolvedbinary.thirdparty.com.ettrema:milton-servlet:1.8.1.3-jakarta-ee10variant which fixes this one-line call. TODO: Republish this fix under theorg.exist-db.thirdpartygroupId to eliminate the Evolved Binary dependency.Test Results
🤖 Generated with Claude Code