Add Java 25 build compatibility for TinkerPop 3.8 #3283
+43
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Enables building TinkerPop with Java 25 by updating Groovy and fixing annotation processor configuration.
Changes
Build Configuration
pom.xml: Updatedgroovy.versionto4.0.30-SNAPSHOT(includes ASM 9.9 for Java 25 support)gremlin-groovy/pom.xml: Added explicitannotationProcessorPathsforGremlinDslProcessorTest Fixes
LambdaRestrictionStrategy.java: Use case-insensitive lambda detection (Java 25 changed class naming from$$Lambda$N/...to$$Lambda/0x...)ImportGremlinPluginTest.java: HandleMath.TAUfield added in Java 19Build Instructions
Prerequisites: Local Groovy 4.0.30-SNAPSHOT with ASM 9.9 - see apache/groovy#2346
Test Results
Note: hadoop-gremlin failures are pre-existing Hadoop + Java 25 incompatibility issues, not related to this PR.
Blocking Dependency
The linked Groovy PR updates ASM from 9.7 to 9.9, which is required to parse Java 25 class files (class file version 69). Without this ASM update, Groovy cannot compile or load classes built with Java 25, causing
IllegalArgumentExceptionerrors during bytecode analysis.Once that Groovy PR is released (likely as 4.0.25 or later), update the
groovy.versioninpom.xmlfrom4.0.30-SNAPSHOTto the actual release version.Notes for Maintainers
annotationProcessorPathschange is backward compatible and follows Maven best practices[11,18)will need updating for official Java 25 support