chore(server): upgrade tinkerpop from 3.5 → 3.7.2 by n-WN · Pull Request #2884 · apache/hugegraph
added 3 commits
September 30, 2025 19:26Upgrade Apache TinkerPop dependency to 3.7.2 to support Java 17 compatibility
while maintaining Java 11 backward compatibility.
Changes:
- Upgrade tinkerpop.version from 3.5.1 to 3.7.2 in hugegraph-server/pom.xml
- Update BiPredicate to PBiPredicate in query condition implementations
(Condition.java, ConditionP.java, TraversalUtil.java)
- Fix package relocations: org.apache.tinkerpop.gremlin.driver.* -> org.apache.tinkerpop.gremlin.util.*
- Update serializer class names: GraphSONMessageSerializerV{1,2,3}d0 -> GraphSONMessageSerializerV{1,2,3}
- Migrate all Gremlin server and driver configuration files
This upgrade addresses the main blocking issue for Java 17 migration.
This commit fixes the remaining issues found after the initial TinkerPop 3.7.2 upgrade:
1. Update CoreVersion.GREMLIN_VERSION constant from "3.5.1" to "3.7.2"
- Fixes version API returning incorrect Gremlin version
- Located in hugegraph-server/hugegraph-core/.../CoreVersion.java
2. Update Docker multi-node deployment configurations (12 files)
- Fix package path: org.apache.tinkerpop.gremlin.driver.ser.* -> org.apache.tinkerpop.gremlin.util.ser.*
- Remove deprecated "d0" suffix: GraphSONMessageSerializerV{1,2,3}d0 -> GraphSONMessageSerializerV{1,2,3}
- Affects docker/configs/server{1,2,3}-conf/*.yaml
- Required for Docker Compose multi-server cluster deployment
These files were missed in the initial upgrade (commit 44a6c3a) but are now
required for complete TinkerPop 3.7.2 compatibility across all deployment scenarios.
Remove gremlin-groovy-test 3.2.11 from test dependencies. This module was officially deprecated in TinkerPop 3.2.4 and removed in 3.3.0 (March 2017). The test functionality has been consolidated into gremlin-test module. Verified that: - No code references to gremlin-groovy-test in the codebase - Project compiles successfully without this dependency - TinkerPop 3.7.2 does not provide gremlin-groovy-test References: - TinkerPop 3.3.0 Upgrade Guide: https://tinkerpop.apache.org/docs/3.3.0/upgrade/ - JIRA TINKERPOP-1612: https://issues.apache.org/jira/browse/TINKERPOP-1612
Add --add-opens JVM argument to allow reflection access to java.base/java.util for CollectionFactoryTest. This follows Apache TinkerPop's approach for handling deep reflection in tests when running on Java 17+. Issue: CollectionFactoryTest uses Whitebox.getInternalState() to verify internal capacity of JDK collection classes (ArrayList, HashMap), which requires opening the java.util module in Java 17 due to strong encapsulation. Solution: Add argLine with --add-opens java.base/java.util=ALL-UNNAMED to the unit-test execution in surefire plugin configuration. Verified: - Java 17: 398 tests passed, 0 failed - Java 11: backward compatible (parameter ignored) Reference: https://github.com/apache/tinkerpop/blob/384e9a730c735cd386812d463c6f6922da847988/pom.xml#L214
imbajin
changed the title
Upgrade/tinkerpop 3.7.2
chore(server): upgrade tinkerpop from3.7.2
imbajin
changed the title
chore(server): upgrade tinkerpop from3.7.2
chore(server): upgrade tinkerpop from 3.5 → 3.7.2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters