-
Notifications
You must be signed in to change notification settings - Fork 670
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
[WIP] Jetty12 + EE10 #2876
base: main
Are you sure you want to change the base?
[WIP] Jetty12 + EE10 #2876
Conversation
Remove links to old pages that no longer exist, but leave the major changes references alone.
Saw errors in tests when these are missing.
# Conflicts: # solr/modules/hadoop-auth/build.gradle # versions.lock # versions.props
Recent commit fix the test cases related to V2 api. For now, it's just a workaround and I'll discuss with Jason to come up with a better solution. Earlier we were setting all the headers null, however the change in library does not provide one universal method Not valid anymore:
Changed to:
|
Next, there is one issue with the |
response.getHeaderNames().stream().forEach(name -> response.setHeader(name, null)); | ||
// Skip specific headers | ||
// workaround for response.setHeader(name, null) | ||
response.getHeaderNames().stream() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good for now IMO.
Longer term I'd love to see this code go away in favor of having the v2 API stuff get handled by its own servlet, but we're pretty far from that being workable for now. It is a little hacky in the interim though 😦
https://issues.apache.org/jira/browse/SOLR-17503 (also linked from the ticket referenced above ticket). I don't have anything against continued support for javax per se, but there are definitely folks I've worked with that would benefit from being able to eliminate javax classes from their stack. Specifically they got tripped up by the appearance of jakarta based jetty versions (upgraded from other dependencies), which were then providing jakarta HttpServletRequests to tests based on our cloud solr test classes... boom. The goal with 17503 is to enable folks that integrate with our core code to use jakarta based servlet classes without explosion. If we do additional work to also continue to handle javax that's not a problem so long as Solr stops being the reason people can't upgrade their dependencies that also pull in jetty (or other jakarta based classes). One thing that's already sticky about our situation is our rest api stuff is already on jakarta packages ('jakarta.ws.rs:jakarta.ws.rs-api'). So IIUC, EE10 is simple to satisfy SOLR-17503 too, if we do more ok, but how important is that? is it worth the effort? I have a suspicion that we would involve separate artifacts and/or significant config gymnastics. |
I picked changes from #2835 i.e. Hadoop-auth module being removed and this one and pushed a new branch to my fork. Branch contains code for Jetty 12 + EE10 (Jakarta servlet api) https://github.com/iamsanjay/solr/tree/jetty12_ee10 I started working on ee8 because hadoop-auth module does not have any jakarta api support, however If #2835 will be merged then I believe we can transitioned to ee10 without any issue. |
I've been sitting on merging the code, for no really good reason.. Thanks for highlighting that it's a bit of a blocker to your progress, I will update the PR and merge it today. |
Merge is done! |
https://issues.apache.org/jira/browse/SOLR-17069
Currently, Jetty supports several environments:
In my opinion, Jetty12 + EE8 is the best next step. It retains compatibility with javax.servlet without forcing the removal of modules that haven’t transitioned to jakarta.* yet, while benefiting from all the new features introduced in Jetty12.
#1509