Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Jetty 9.4 (and 9.3.15+) [SPR-14940] #19507

Closed
spring-projects-issues opened this issue Nov 23, 2016 · 6 comments
Closed

Support for Jetty 9.4 (and 9.3.15+) [SPR-14940] #19507

spring-projects-issues opened this issue Nov 23, 2016 · 6 comments
Assignees
Milestone

Comments

@spring-projects-issues
Copy link
Collaborator

@spring-projects-issues spring-projects-issues commented Nov 23, 2016

Juergen Hoeller opened SPR-14940 and commented

While Jetty 9.4 RC1 worked fine, RC2 seems to have broken HEAD handling (closing the HTTP connection too early for HEAD requests) which makes our AsyncRestTemplateIntegrationTests fail.

More importantly, Jetty 9.4 RC3 breaks our JettyRequestUpgradeStrategy now which turns this ticket into more than just a compatibility target. The underlying WebSocketServerFactory configuration changes seem to have been backported to Jetty 9.3.15 (even if not released yet), so we have to immediately backport them to Spring Framework 4.3.5 as well. That aside, we want Spring Framework 4.3.x to be compatible with Jetty 9.4 going forward in any case.

Due to those WebSocketServerFactory changes, we are technically unable to support WebSockets on Jetty 9.0.x any longer (but that branch got phased out in 2013 already). The support range is Jetty 9.1+ for Spring Framework 4.3.5+ now, and remains at Jetty 9.3+ for Spring Framework 5.0.


Issue Links:

  • #19594 Release of 4.3.x supporting Jetty 9.4.0.v20161208+ ("is duplicated by")
  • #19426 RestTemplate POST and PUT don't work with Netty4ClientHttpRequestFactory
  • #18900 Compatibility with Undertow 1.4
  • #17731 Support for Jetty 9.3
  • #19604 Revisit dependency baseline: Jetty 9.4+, OkHttp 3+

0 votes, 5 watchers

@spring-projects-issues
Copy link
Collaborator Author

@spring-projects-issues spring-projects-issues commented Dec 6, 2016

Juergen Hoeller commented

Brian Clozel, since Jetty 9.4 RC3 is out now and still seems to have broken HEAD handling with AsyncRestTemplate, could you have a look at this one please and potentially create a bug report for the Jetty guys?

On a related note, we also have #19426 where POST and PUT don't work with Netty4ClientHttpRequestFactory.

@spring-projects-issues
Copy link
Collaborator Author

@spring-projects-issues spring-projects-issues commented Dec 7, 2016

Brian Clozel commented

Juergen Hoeller
I'm in the process of updating master to RC3; no problem with our client tests since in the meantime I updated them to use mockwebserver (we're already using this for the reactive client). I'll try to reproduce the issue anyway and see report it if necessary.

RC3 introduced a compatibility issue with our websocket support, I'm working on it.

@spring-projects-issues
Copy link
Collaborator Author

@spring-projects-issues spring-projects-issues commented Dec 7, 2016

Juergen Hoeller commented

Alright, let's see whether that HEAD issue shows up in other tests. It always reported "connection closed" before us being able to parse the HTTP response there, with AsyncRestTemplate at least.

As for the 4.3.x branch, indeed, let's leave that on the Jetty 9.3 line. I've only marked this issue for 4.3.5 for potential Jetty 9.4 compatiblity fixes which we should backport, if any. Otherwise it's just a statement that we tested runtime compatibility with Jetty 9.4 in general and are happy to support its use with Spring Framework 4.3.5+ as well.

@spring-projects-issues
Copy link
Collaborator Author

@spring-projects-issues spring-projects-issues commented Dec 7, 2016

Juergen Hoeller commented

Ouch, so they broke WebSocketServerFactory's initialization signatures... again :-( We've had to adapt between Jetty 9.0 vs 9.3 there already when the init method started taking a ServletContext, and now it seems to be the constructor taking it instead.

So this is not just a compatibility ticket anymore but rather an actual support ticket like #17731 was for Jetty 9.3.

@spring-projects-issues
Copy link
Collaborator Author

@spring-projects-issues spring-projects-issues commented Dec 7, 2016

Brian Clozel commented

This change has been backported on their 9.3 branch as well, so we should backport our adaptation on 4.3.x as well.
In the meantime, a new version has been released "9.3.14.v20161028" but does not contain those changes.

@spring-projects-issues
Copy link
Collaborator Author

@spring-projects-issues spring-projects-issues commented Dec 8, 2016

Brian Clozel commented

Just committed some changes - I'll close the issue when Jetty 9.4 will hit maven central so we can get proper releases as dependencies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.