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
GH-4603 Upgrade to JavaEE/JakartaEE 8 #4604
base: develop
Are you sure you want to change the base?
Conversation
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.
Still on holiday, but just quickly dropping by to say this looks ace to me!
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.
I'm not sure what the implications of the jetty issue is. Does it mean that we are shipping with one version in one part of our code and another version somewhere else?
Edit: I'm also wondering if our users could run into any conflicts in their own code.
@@ -10,6 +10,10 @@ | |||
<name>RDF4J: Solr Sail Tests</name> | |||
<description>Tests for Solr Sail.</description> | |||
<properties> | |||
<!-- FIXME: Delete; Jetty 10.x requires Solr 9.x --> | |||
<jetty.version>9.4.50.v20221201</jetty.version> |
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.
I'm still not sure what this means for us.
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.
It means what it says in the comment. 😉 Some of the Solr dependencies used for testing are hard-locked to Jetty 9. I hope we can fix this by upgrading Solr before rdf4j 5 is released. Or even better: find a way to avoid being dictated by legacy transitive dependencies.
<!--exclusion> | ||
<groupId>javax.servlet</groupId> | ||
<artifactId>javax.servlet-api</artifactId> | ||
</exclusion --> |
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.
Also not sure what this means for us.
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.
We must choose to have jakarta.* or javax.* dependencies. Never both. As there is a BOM for Jakarta dependencies, I would prefer to use that one.
If this is merged and released, we would use Jetty 9 in the Solr compliance module and Jetty 10 in the other modules. I am assuming a very little percentage of our users are actually using the compliance modules, as it appears to be a mostly internal module containing tests. But please correct me if I am wrong. |
If we need to use Jetty 9 in the Solr compliance module, wouldn't our users run into issues if they rely on the Solr module (not compliance) together with another module? Would they end up with a having to exclude Jetty 10 to get Solr working? |
I think you are right that this might be an issue. The embedded Solr pulls in Jetty dependencies. I thought it was just test dependencies, but sadly not. Any suggestions for a workaround? Doing everything in one PR does not seem right to me. |
d198f19
to
6c90c56
Compare
Probably need to update Solr, unfortunately. Which entails updating Lucene and probably Elasticsearch. I think it's worth double checking how jetty impacts our use of Solr. I assume that our Solr code is just client stuff and that the server stuff is only used for the embedded Solr during testing. Maybe the client code doesn't depend so heavily on Jetty? Updating the elasticsearch stuff is a true pain due to their licensing, multiple breaking changes and them changing up their client every few months. |
GitHub issue resolved: #4603 #4252
Briefly describe the changes proposed in this PR:
Upgrades JavaEE/JakartaEE dependencies to version 8 using the Jakarta dependencies managed by the Jakarta EE 8 BOM. Jetty also needs to be upgraded to version 10 to be compatible with JavaEE/JakartaEE, and is also included in this PR.
PR Author Checklist (see the contributor guidelines for more details):
mvn process-resources
to format from the command line)