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

KAFKA-13273: Add support for Java 17 #11296

Merged
merged 21 commits into from
Sep 6, 2021
Merged

KAFKA-13273: Add support for Java 17 #11296

merged 21 commits into from
Sep 6, 2021

Conversation

ijuma
Copy link
Contributor

@ijuma ijuma commented Sep 4, 2021

Java 17 is at release candidate stage and it will be a LTS release once
it's out (previous LTS release was Java 11).

Details:

  • Replace Java 16 with Java 17 in Jenkins and Readme.
  • Replace --illegal-access=permit (which was removed from Java 17)
    with --add-opens for the packages we require internal access to.
    Filed KAFKA-13275 for updating the tests not to require --add-opens
    (where possible).
  • Update release.py to use JDK8. and JDK 17 (instead of JDK 8 and JDK 15).
  • Removed all but one Streams test from testsToExclude. The
    Connect test exclusion list remains the same.
  • Add notable change to upgrade.html
  • Upgrade to Gradle 7.2 as it's required for proper Java 17 support.
  • Upgrade mockito to 3.12.4 for better Java 17 support.
  • Adjusted KafkaRaftClientTest and QuorumStateTest not to require
    private access to jdk.internal.util.random.

Committer Checklist (excluded from commit message)

  • Verify design and implementation
  • Verify test coverage and CI build status
  • Verify documentation (including upgrade notes)

Java 17 is at release candidate stage and it will be a LTS release
(first one since Java 11).
@ijuma
Copy link
Contributor Author

ijuma commented Sep 4, 2021

I expect that this will require some work before it can be merged.

@ijuma ijuma changed the title MINOR: Replace Java 16 with Java 17 in Jenkins build KAFKA-13273 Add support for Java 17 Sep 5, 2021
@ijuma ijuma changed the title KAFKA-13273 Add support for Java 17 KAFKA-13273: Add support for Java 17 Sep 5, 2021
build.gradle Outdated Show resolved Hide resolved
@ijuma
Copy link
Contributor Author

ijuma commented Sep 5, 2021

Build 6 (including Java 16) passed: https://ci-builds.apache.org/job/Kafka/job/kafka-pr/job/PR-11296/6/

I will now remove Java 16 from Jenkinsfile.

@ijuma
Copy link
Contributor Author

ijuma commented Sep 5, 2021

@chia7712 @omkreddy Any of you have the cycles to review this? Thanks!

@ijuma
Copy link
Contributor Author

ijuma commented Sep 6, 2021

And we have a green build. :)

Copy link
Contributor

@omkreddy omkreddy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ijuma Thanks for the PR. Changes LGTM.

Copy link
Contributor

@chia7712 chia7712 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This patch is great to me! a couple of comments below.

@ijuma ijuma merged commit 0118330 into apache:trunk Sep 6, 2021
@ijuma ijuma deleted the jdk-17 branch September 6, 2021 15:55
xdgrulez pushed a commit to xdgrulez/kafka that referenced this pull request Dec 22, 2021
Java 17 is at release candidate stage and it will be a LTS release once
it's out (previous LTS release was Java 11).

Details:
* Replace Java 16 with Java 17 in Jenkins and Readme.
* Replace `--illegal-access=permit` (which was removed from Java 17)
   with  `--add-opens` for the packages we require internal access to.
   Filed KAFKA-13275 for updating the tests not to require `--add-opens`
   (where possible).
* Update `release.py` to use JDK8. and JDK 17 (instead of JDK 8 and JDK 15).
* Removed all but one Streams test from `testsToExclude`. The
   Connect test exclusion list remains the same.
* Add notable change to upgrade.html
* Upgrade to Gradle 7.2 as it's required for proper Java 17 support.
* Upgrade mockito to 3.12.4 for better Java 17 support.
* Adjusted `KafkaRaftClientTest` and `QuorumStateTest` not to require
   private access to `jdk.internal.util.random`.

Reviewers: Manikumar Reddy <[email protected]>, Chia-Ping Tsai <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants