You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Jetty 12 is currently in alpha but expected to enter its beta phase soon, as the first generation of Jetty to provide Servlet 6.0 (Jakarta EE 10) support.
While Spring MVC should be naturally compatible with it as a Servlet 6.0 container and the standard Jakarta WebSocket upgrade strategy (also from EE 10) should kick in for WebSocket request upgrades without specific changes on Spring's side, explicit adaptations will be necessary for Jetty 12 in core WebFlux:
Additionally, HttpFields.Mutable has been changed from a class to an interface as well, making our JettyHeadersAdapter binary incompatible with it. Given the amount of reflection required here, it seems better to avoid the HttpFields optimization completely and rely on Servlet header access instead.
HttpOutput.write(ByteBuffer) has been relocated to a different package. We can support both variants of HttpOutput in their different locations side by side through compiling against the Jetty 11 BOM plus the Jetty 12 EE 10 Servlet artifact.
Beyond that, our JettyWebSocketClient variants are tied to Jetty 11. They would have to work with a relocated API in Jetty 12, even in EE-version-specific jetty.ee10.websocket.client packages. Since they are superseded by the Jakarta WebSocket based StandardWebSocketClient already, we intend to deprecate them in 6.0.3 and never upgrade them for Jetty 12 to begin with: #29576
Jetty 12 is currently in alpha but expected to enter its beta phase soon, as the first generation of Jetty to provide Servlet 6.0 (Jakarta EE 10) support.
While Spring MVC should be naturally compatible with it as a Servlet 6.0 container and the standard Jakarta WebSocket upgrade strategy (also from EE 10) should kick in for WebSocket request upgrades without specific changes on Spring's side, explicit adaptations will be necessary for Jetty 12 in core WebFlux:
org.eclipse.jetty.server.Request/Response#getHttpFields()has been changed to#getHeaders(), withRequest/Responsethemselves being interfaces instead of classes now (not binary compatible): API compatibility between Jetty 11 and 12: org.eclipse.jetty.server.Request/Response#getHeaders() jetty/jetty.project#8938HttpFields.Mutablehas been changed from a class to an interface as well, making ourJettyHeadersAdapterbinary incompatible with it. Given the amount of reflection required here, it seems better to avoid the HttpFields optimization completely and rely on Servlet header access instead.HttpOutput.write(ByteBuffer)has been relocated to a different package. We can support both variants ofHttpOutputin their different locations side by side through compiling against the Jetty 11 BOM plus the Jetty 12 EE 10 Servlet artifact.Beyond that, our
JettyWebSocketClientvariants are tied to Jetty 11. They would have to work with a relocated API in Jetty 12, even in EE-version-specificjetty.ee10.websocket.clientpackages. Since they are superseded by the Jakarta WebSocket basedStandardWebSocketClientalready, we intend to deprecate them in 6.0.3 and never upgrade them for Jetty 12 to begin with: #29576