You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/06/20 15:25:19 UTC
tinkerpop git commit: TINKERPOP-1989 Enforce order of plugin load in
Gremlin Console
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1989 [created] 6c75ceb25
TINKERPOP-1989 Enforce order of plugin load in Gremlin Console
Use the order presented in the configuration file to enforce the load order.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/6c75ceb2
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/6c75ceb2
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/6c75ceb2
Branch: refs/heads/TINKERPOP-1989
Commit: 6c75ceb25d6a828489f29b883be99ae7739e09e0
Parents: 7c7dddb
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Jun 20 11:24:34 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Jun 20 11:24:34 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
.../apache/tinkerpop/gremlin/console/Console.groovy | 16 +++++++++-------
2 files changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6c75ceb2/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 05b74da..33fe5c4 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -31,6 +31,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
* Improved performance of `TraversalVertexProgram` and related infrastructure.
* Added `createGratefulDead()`to `TinkerFactory` to help make it easier to try to instantiate that toy graph.
* Added identifiers to edges in the Kitchen Sink toy graph.
+* Ordered the loading of plugins in the Gremlin Console by their position in the configuration file.
* Refactored the Gremlin Server integration testing framework and streamlined that infrastructure.
* Fixed bug in `GroovyTranslator` that didn't properly handle empty `Map` objects.
* Added concrete configuration methods to `SparkGraphComputer` to make a more clear API for configuring it.
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6c75ceb2/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
----------------------------------------------------------------------
diff --git a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
index 4e54a42..ad41d6c 100644
--- a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
+++ b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
@@ -127,7 +127,7 @@ class Console {
GremlinLoader.load()
- // check for available plugins. if they are in the "active" plugins strategies then "activate" them
+ // check for available plugins on the path and track them by plugin class name
def activePlugins = Mediator.readPluginState()
def pluginClass = mediator.useV3d3 ? org.apache.tinkerpop.gremlin.jsr223.GremlinPlugin : GremlinPlugin
ServiceLoader.load(pluginClass, groovy.getInterp().getClassLoader()).each { plugin ->
@@ -141,14 +141,16 @@ class Console {
}
mediator.availablePlugins.put(plugin.class.name, pluggedIn)
+ }
+ }
- if (activePlugins.contains(plugin.class.name)) {
- pluggedIn.activate()
+ // if there are active plugins then initialize them in the order that they are listed
+ activePlugins.each { pluginName ->
+ def pluggedIn = mediator.availablePlugins[pluginName]
+ pluggedIn.activate()
- if (!io.quiet)
- io.out.println(Colorizer.render(Preferences.infoColor, "plugin activated: " + plugin.getName()))
- }
- }
+ if (!io.quiet)
+ io.out.println(Colorizer.render(Preferences.infoColor, "plugin activated: " + pluggedIn.getPlugin().getName()))
}
// remove any "uninstalled" plugins from plugin state as it means they were installed, activated, but not