Skip to content

feat: upgrade TinkerPop to 3.8.1 and support JDK 21#3078

Closed
xf20054658 wants to merge 3 commits into
apache:masterfrom
xf20054658:upgrade/tinkerpop-3.8.1-jdk21
Closed

feat: upgrade TinkerPop to 3.8.1 and support JDK 21#3078
xf20054658 wants to merge 3 commits into
apache:masterfrom
xf20054658:upgrade/tinkerpop-3.8.1-jdk21

Conversation

@xf20054658

Copy link
Copy Markdown

Changes

1. Upgrade TinkerPop 3.5.1 → 3.8.1

  • Update tinkerpop.version and GREMLIN_VERSION
  • Add gremlin-util dependency
  • Adapt all API breaking changes:
    • BiPredicatePBiPredicate
    • AggregateGlobalStep/AggregateLocalStepAggregateStep
    • HasContainerHolderHasContainerHolder<S, E> (generic)
    • MutatingConfiguring
    • RequestMessage/ResponseMessage/ResponseStatusCode package migration
    • Tokens class removed → string literals
    • StoreTest removed
  • Upgrade maven-compiler-plugin 3.1 → 3.11.0
  • Upgrade lombok 1.18.30 → 1.18.34

2. Support JDK 21

  • Update maven.compiler.source/target from 11 to 21
  • Add JDK 21 to CI matrix (keep JDK 11)
  • Upgrade actions/setup-java from v3 to v4
  • Upgrade Docker base images to eclipse-temurin:21

Verification

  • All 40 modules compile successfully on JDK 21
  • mvn clean compile -DskipTests passed

Related Files

27 files changed, detailed changelog in hugegraph-server/update.md

1. Upgrade TinkerPop from 3.5.1 to 3.8.1:
   - Update tinkerpop.version in pom.xml files
   - Update GREMLIN_VERSION constant in CoreVersion.java
   - Add gremlin-util dependency
   - Adapt API breaking changes:
     * BiPredicate -> PBiPredicate (ConditionP, Condition)
     * AggregateGlobalStep/AggregateLocalStep -> AggregateStep
     * HasContainerHolder -> HasContainerHolder<S, E>
     * Mutating -> Configuring (HugePrimaryKeyStrategy)
     * RequestMessage/ResponseMessage migrated to gremlin.util.message
     * Tokens constants replaced with string literals
     * StoreTest removed (ProcessBasicSuite)
   - Upgrade maven-compiler-plugin 3.1 -> 3.11.0
   - Upgrade lombok 1.18.30 -> 1.18.34

2. Support JDK 21 (keep JDK 11 compatibility):
   - Update maven.compiler.source/target from 11 to 21
   - Add JDK 21 to CI matrix in all workflows
   - Upgrade actions/setup-java from v3 to v4
   - Upgrade Docker base images from eclipse-temurin:11 to eclipse-temurin:21

All 40 modules compile successfully on JDK 21.
@dosubot dosubot Bot added size:L This PR changes 100-499 lines, ignoring generated files. api Changes of API ci-cd Build or deploy dependencies Incompatible dependencies of package gremlin TinkerPop gremlin labels Jun 30, 2026

@imbajin imbajin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Blocking: yes. Summary: The PR has release-blocking build and dependency-metadata issues: Java 11 matrix jobs cannot compile a Java 21 target, and the upgraded TinkerPop/Lombok dependency set is not reflected in distribution metadata. Evidence: static diff shows source/target 21 with JDK 11 CI matrices; current install-dist metadata still lists TinkerPop 3.5.1/Lombok 1.18.24 and lacks gremlin-util; JDK 21 scoped compile passed locally; GitHub reports no checks.

Comment thread pom.xml
<release.name>hugegraph</release.name>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.source>21</maven.compiler.source>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Blocking: yes. This changes the whole reactor to Java 21 bytecode while several workflows still run Java 11 matrix legs. Those jobs will invoke Maven under JDK 11 with source/target 21, which javac 11 cannot compile; either keep the compiler release/source/target compatible with Java 11, or remove the JDK 11 matrix entries and update the compatibility claim.

Comment thread hugegraph-server/pom.xml
</dependency>
<dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-util</artifactId>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Blocking: yes. Adding gremlin-util and upgrading TinkerPop/Lombok changes the third-party dependency set, but no install-dist release metadata changed. The current known-dependencies/LICENSE entries still list TinkerPop 3.5.1 and Lombok 1.18.24 and have no gremlin-util entry, so refresh known-dependencies plus LICENSE/NOTICE/licenses before merge.

@contrueCT

Copy link
Copy Markdown
Contributor

Hi, thanks for your attention and contribution to this upgrade work.

I’m currently working on the TinkerPop and JDK upgrade as well, although I haven’t opened a PR against the main HugeGraph repository yet. I have created an issue to track the related work and discussion here: #3069

Maybe we can align on the upgrade scope and avoid duplicated work. Thanks again for taking the time to work on this!

@imbajin
imbajin marked this pull request as draft July 3, 2026 12:34
@xf20054658

Copy link
Copy Markdown
Author

thanks

@xf20054658 xf20054658 closed this Jul 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api Changes of API ci-cd Build or deploy dependencies Incompatible dependencies of package gremlin TinkerPop gremlin size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants