Skip to content

Upgrade to JDK 17 for ARM Architecture #5976

Closed

Description

@halibobo1205

Background

Java-Tron currently only supports Oracle JDK 8. However, despite the wide usage of JDK 8, it is no longer the most preferable option for development for multiple reasons and limitations. For instance, the End of Public Updates process for legacy releases and the End of Commercial Use under the Oracle Technology Network License Agreement for Java SE both hold that. On the contrary, JDK 17 is the LTS (Long Term Support) version of Oracle announced for free commercial use in 2021. It has significant improvements in performance, stability, and security, with advantages as follows:

Caution

Oracle JDK Development Kit 17.0.12 is the last planned update of JDK 17 under the NFTC. Updates after September 2024 will be licensed under the Java SE OTN License (OTN) and production use beyond the limited free grants of the OTN license will require a fee. I suggest moving to OpenJDK 17, see more distributions.

  • LTS: Long-Term-Support, Premier Support Until September 2026 or later.
  • AArch64 Port
  • Garbage Collectors
  • Language

Related Issues and PRs

Scope of Impact

  • Build and deployment processes
  • Core application codes
  • Third-party dependencies
  • Development and testing environments

Activity

  1. deleted a comment from on Aug 28, 2024
  2. CarlChaoCarl commented on Aug 28, 2024

    @CarlChaoCarl
    Contributor

    @halibobo1205

    As far as I know
    For besu, Java 21 or later is required to build Besu
    Will java-tron limit the java version, or is it still compatible with java8

  3. deleted a comment from on Aug 28, 2024
  4. abn2357 commented on Aug 28, 2024

    @abn2357
    Contributor

    When do you plan to begin this upgrade?JDK 8 is unable to keep up with the times.

  5. thuthu24 commented on Aug 28, 2024

    @thuthu24

    Background

    Java-Tron currently only supports Oracle JDK 8. However, despite the wide usage of JDK 8, it is no longer the most preferable option for development for multiple reasons and limitations. For instance, the End of Public Updates process for legacy releases and the End of Commercial Use under the Oracle Technology Network License Agreement for Java SE both hold that. On the contrary, JDK 17 is the LTS (Long Term Support) version of Oracle announced for free commercial use in 2021. It has significant improvements in performance, stability, and security, with advantages as follows:

    [!CAUTION]
    Oracle JDK Development Kit 17.0.12 is the last planned update of JDK 17 under the NFTC. Updates after September 2024 will be licensed under the Java SE OTN License (OTN) and production use beyond the limited free grants of the OTN license will require a fee. I suggest moving to OpenJDK 17, see more distributions.

    • LTS: Long-Term-Support, Premier Support Until September 2026 or later.
    • AArch64 Port

    [!IMPORTANT]

    • Garbage Collectors

    [!IMPORTANT]

    • Language

    [!IMPORTANT]

    Related Issues and PRs

    Scope of Impact

    • Build and deployment processes
    • Core application codes
    • Third-party dependencies
    • Development and testing environments
  6. halibobo1205 commented on Aug 29, 2024

    @halibobo1205
    CollaboratorAuthor

    Java 21 or later is required to build

    @CarlChaoCarl Java 17 or later is required to build Java-Tron.

  7. halibobo1205 commented on Aug 29, 2024

    @halibobo1205
    CollaboratorAuthor

    When do you plan to begin this upgrade?JDK 8 is unable to keep up with the times.

    @abn2357 The current phase is under discussion, and the evaluation will be based on the workload.

  8. halibobo1205 commented on Sep 3, 2024

    @halibobo1205
    CollaboratorAuthor

    Try to work with both JDK8 and JDK17.

  9. halibobo1205 commented on Sep 3, 2024

    @halibobo1205
    CollaboratorAuthor

    Here are some common considerations:

    Caution

    1. Floating-point arithmetic
      Jdk17 may have subtle differences in floating-point precision and behavior.
      Comprehensive testing is necessary for applications that rely on precise floating-point calculations.

    Important

    2. Default Behavior Changes

    Important

    3. JVM options Changes

    • log JVM options
    • Garbage options
    • ... ...

    Important

    4. Third-party dependencies
    Ensure all third-party libraries and dependencies support JDK17.
    Some incompatible dependencies may need to be updated or replaced.

    • springframework
    • lombok
    • javax
    • mockito
    • ... ...

    Important

    5. Gradle plugins
    Ensure all Gradle plugins support JDK17.
    Some incompatible plugins may need to be updated or replaced.

    • jacoco
    • checkstyle
    • ... ...

    Important

    6. Build and deployment process:

    • Update build scripts to support JDK17.
    • Ensure CI/CD pipelines can be built and tested in JDK17 environments.
    • Docker support

    Important

    7. Cross-JDK testing

    • Establish comprehensive test suites to ensure the functionality works correctly on JDK.
    • Conduct performance benchmarking to compare JKD8 and JDK17 performance differences.
  10. Murphytron commented on Sep 3, 2024

    @Murphytron

    This issue has been added to the core devs community call #23, welcome to share the latest progress @halibobo1205, and discuss together with @CarlChaoCarl @abn2357 @thuthu24.

  11. halibobo1205 commented on Sep 4, 2024

    @halibobo1205
    CollaboratorAuthor

    Caution

    8. Strong data consistency and finality
    Final data consistency is required for blockchain, and the world state usually guarantees it. Unfortunately, Java-Tron doesn't have a world state.
    We need to think about how to ensure final data consistency.

  12. halibobo1205 commented on Sep 4, 2024

    @halibobo1205
    CollaboratorAuthor

    Caution

    1. Floating-point arithmetic
      Jdk17 may have subtle differences in floating-point precision and behavior.
      Comprehensive testing is necessary for applications that rely on precise floating-point calculations.
  13. halibobo1205 commented on Sep 5, 2024

    @halibobo1205
    CollaboratorAuthor

    Important

    Commercial Use
    under the Java SE OTN License (OTN), only free for:
    ( i) Personal Use,
    (ii) Development Use,
    (iii) Oracle Approved Product Use, and/or
    (iv) Oracle Cloud Infrastructure Use.

    Tron's other behavior should be identified as Commercial Use.

  14. halibobo1205 commented on Sep 5, 2024

    @halibobo1205
    CollaboratorAuthor

    Important

    JDK version compatibility

    • Java 17 or later is required to build Java-Tron?
    • Compatible with JDK8 and JDK17+?
  15. 7 remaining items

  16. moved this from In progress to Todo in java-tronon Apr 22, 2025
  17. moved this from Todo to In progress in java-tronon Apr 22, 2025
  18. halibobo1205 commented on May 12, 2025

    @halibobo1205
    CollaboratorAuthor

    JDK 9-17 release checklist

  19. halibobo1205 commented on May 16, 2025

    @halibobo1205
    CollaboratorAuthor

    Traced by #5954

  20. moved this from In Progress to In Review in java-tronon Jun 30, 2025
  21. moved this from In Review to Done in java-tronon Jul 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions