-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Java 21 compatibility #14502
Comments
I'll share my notes since I've been slowly working my way through this! Equalsverifier based tests fail with:
which is resolved by manually adding the newest version of byte-buddy to the pom (I also updated both equalsverifier and mockito to latest versions which also have transient dependencies on byte-buddy, but that wasn't enough to fix on its own). Before updating easymock we also see some failures of this form
which go away after updating easymock, however I am still seeing a failure on the latest version of easymock:
which is as far as i've got so far, I think maybe easymock hasn't been updated to be cool with java 20, as https://github.com/easymock/easymock/releases has an older version of bytebuddy than i added in my tests to our pom |
For |
Want to make a branch on |
Yeah, will try to do later today 👍 fwiw druid itself seems to run fine in java 20, i've been using it for all of my dev work running a local cluster for a couple of months now (though disclaimer i mainly use indexers instead of middle managers since easier to debug stuff), so i think it is just test problems. I let some more tests run while i was eating lunch and the next failure is in druid-server:
and later in druid-sql are some failures like:
|
For
|
The IMO a good option would be to adjust |
I was able to make unit tests pass in #15014. The biggest issue I see is that we need mockito 5.x to run tests with Java 21, however that version no longer supports Java 8. We might be able to do some workaround where we run tests with different mockito versions and restrict ourselves to the shared APIs, but that is also somewhat tricky since mockito-inline is now merged into mockito-core. |
Now that we've dropped support for Hadoop 2, maybe we can consider doing the same for Java 8? Afaik that was the primary reason we needed to keep supporting it... though we'd need to decide on a new minimum version. |
IMO we should only target LTS Java versions, so 11 should be the new minimum version |
Current versions of Kafka and Spark still support Java 8; I'd rather not be on the vanguard of dropping support, unless we get something big in return. Kafka has deprecated it for removal in Kafka 4.0. Maybe we can do something similar? |
Java 21 is the next LTS release, expected September 2023. We'd like to officially support this.
It isn't out yet, but we can start with Java 20.
The text was updated successfully, but these errors were encountered: