We've relied on ScriptEngine since the early days of TinkerPop and it has
always been just a construct for usage with Groovy. We now find in a world
of GLVs that other ScriptEngine implementations are important and require
similar attention that we've given to GremlinGroovyScriptEngine.
Unfortunately, so much of the logic and code that is tied to ScriptEngines,
like the Plugin system,Gremlin Server, Gremlin Console is trapped inside
the gremlin-groovy module. Ultimately that stuff needs to move to
gremlin-core so that other GLVs that are JVM-based can take advantage of
that.

If you recall, I started this work on 3.2.2 and 3.2.3 but then got blocked
for a number of reasons and decided to hang up the effort for a while to
clear my head. Anyway, I'm trying to get back into it again so that a
number of different dominoes can fall (all things we've discussed on this
list - like getting rid of gremlin-groovy-test. Yes, even doing that isn't
possible without these changes). I'm not completely sure where this work
will take me but expect some big changes in 3.3.0 - specifically I can see
where:

1. GremlinModule will be the new thing that configures ScriptEngines - they
are quite similar to GremlinPlugins but are not bound to groovy.
2. Not sure what will happen to GremlinPlugins - they may stay a groovy
construct and remain bound to Gremlin Console for now. Though we've had
other discussions here about a more generalized Gremlin Console not bound
just to groovy sooooo......
3. Gremlin Server yaml configuration file will change format around how
ScriptEngines are configured.

So far, I have the beginnings of this work all happening without any
breaking changes - meaning lots of deprecation and adapter code that allows
new stuff to work with old stuff. I prefer this approach as it allows the
code base to continue to work and I don't have to blast it back to the
stone age to get the new changes in (though it is more frustrating and
slower).

Anyway, please let me know if there are any questions.

Reply via email to