Emanuele Tagliaferri created TINKERPOP-3117:
-----------------------------------------------
Summary: gremlin groovy tests fail with `Unsupported class file
major version 65` with JDKs 21 forward
Key: TINKERPOP-3117
URL: https://issues.apache.org/jira/browse/TINKERPOP-3117
Project: TinkerPop
Issue Type: Bug
Components: language
Affects Versions: 3.7.2
Reporter: Emanuele Tagliaferri
Running tests with java version cause exceptions with error: `Unsupported class
file major version 65` I did investigate this error myself and I could identify
the reason in some analyzer of the groovy language, so I could work around the
problem disabling the analyzer with some groovy compiler settings.
I've done it both from code:
{code:java}
GremlinGroovyScriptEngineFactory factory = new
GremlinGroovyScriptEngineFactory();
CachedGremlinScriptEngineManager customizationManager = new
CachedGremlinScriptEngineManager();
Map<String, Object> compilerConfigs = new HashMap<>();
Map<String, Object> optimizationConfigs = new HashMap<>();
optimizationConfigs.put("asmResolving", false);
compilerConfigs.put("OptimizationOptions", optimizationConfigs);
customizationManager.addPlugin(GroovyCompilerGremlinPlugin.build().compilerConfigurationOptions(compilerConfigs).create());
factory.setCustomizerManager(customizationManager);
{code}
and from configuration:
{code:yaml}
scriptEngines: {
gremlin-groovy: {
plugins: {
# ... other configs
org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyCompilerGremlinPlugin:
{compilerConfigurationOptions: { OptimizationOptions: { asmResolving: false}}}
}
}
}
{code}
this could be done directly in a generic way for all the implementations adding
the setting here:
https://github.com/apache/tinkerpop/blob/master/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java#L756
This is a follow up of a conversation in the discord channel
--
This message was sent by Atlassian Jira
(v8.20.10#820010)