feat: upgrade TinkerPop to 3.8.1 and support JDK 21#3078
Conversation
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.
imbajin
left a comment
There was a problem hiding this comment.
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.
| <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> |
There was a problem hiding this comment.
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.
| </dependency> | ||
| <dependency> | ||
| <groupId>org.apache.tinkerpop</groupId> | ||
| <artifactId>gremlin-util</artifactId> |
There was a problem hiding this comment.
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.
|
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! |
Changes
1. Upgrade TinkerPop 3.5.1 → 3.8.1
tinkerpop.versionandGREMLIN_VERSIONgremlin-utildependencyBiPredicate→PBiPredicateAggregateGlobalStep/AggregateLocalStep→AggregateStepHasContainerHolder→HasContainerHolder<S, E>(generic)Mutating→ConfiguringRequestMessage/ResponseMessage/ResponseStatusCodepackage migrationTokensclass removed → string literalsStoreTestremovedmaven-compiler-plugin3.1 → 3.11.0lombok1.18.30 → 1.18.342. Support JDK 21
maven.compiler.source/targetfrom 11 to 21actions/setup-javafrom v3 to v4eclipse-temurin:21Verification
mvn clean compile -DskipTestspassedRelated Files
27 files changed, detailed changelog in
hugegraph-server/update.md