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

GH-4603 Upgrade to JavaEE/JakartaEE 8 #4604

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

erikgb
Copy link
Contributor

@erikgb erikgb commented May 27, 2023

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):

  • my pull request is self-contained
  • I've added tests for the changes I made
  • I've applied code formatting (you can use mvn process-resources to format from the command line)
  • I've squashed my commits where necessary
  • every commit message starts with the issue number (GH-xxxx) followed by a meaningful description of the change

@erikgb erikgb mentioned this pull request May 27, 2023
5 tasks
Copy link
Contributor

@abrokenjester abrokenjester left a 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!

Copy link
Contributor

@hmottestad hmottestad left a 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>
Copy link
Contributor

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.

Copy link
Contributor Author

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 -->
Copy link
Contributor

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.

Copy link
Contributor Author

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.

@erikgb
Copy link
Contributor Author

erikgb commented Jun 11, 2023

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?

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.

@hmottestad
Copy link
Contributor

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?

@erikgb
Copy link
Contributor Author

erikgb commented Jun 11, 2023

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.

@hmottestad
Copy link
Contributor

hmottestad commented Jun 11, 2023

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.

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

Successfully merging this pull request may close these issues.

None yet

3 participants