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 2016/11/28 21:53:10 UTC
tinkerpop git commit: TINKERPOP=1562 Loaded "gremlin" imports in the
scriptengines
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1562 6b85242ed -> b1413c2fa
TINKERPOP=1562 Loaded "gremlin" imports in the scriptengines
Rather than load them in the DefaultGremlinScriptEngineManager it seemed better to get them loaded in the engines themselves that way if someone opted to construct the GremlinScriptEngine directly the imports would be present.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b1413c2f
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b1413c2f
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b1413c2f
Branch: refs/heads/TINKERPOP-1562
Commit: b1413c2fa04892e4ff21670b9f48edee598ffb37
Parents: 6b85242
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Nov 28 16:51:12 2016 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Nov 28 16:51:12 2016 -0500
----------------------------------------------------------------------
.../tinkerpop/gremlin/jsr223/CoreGremlinPlugin.java | 3 ++-
.../jsr223/DefaultGremlinScriptEngineManager.java | 3 ---
.../gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java | 8 ++++++--
.../gremlin/python/jsr223/GremlinJythonScriptEngine.java | 11 ++++++-----
.../gremlin/jsr223/GremlinEnabledScriptEngineTest.java | 5 ++---
5 files changed, 16 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b1413c2f/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreGremlinPlugin.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreGremlinPlugin.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreGremlinPlugin.java
index d579691..a3063cf 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreGremlinPlugin.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreGremlinPlugin.java
@@ -24,7 +24,8 @@ import java.util.Optional;
/**
* This module is required for a {@code ScriptEngine} to be Gremlin-enabled. This {@link GremlinPlugin} is not enabled
- * for the {@code ServiceLoader}. It is designed to be instantiated manually.
+ * for the {@code ServiceLoader}. It is designed to be instantiated manually and compliant {@link GremlinScriptEngine}
+ * instances will automatically install it by default when created.
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b1413c2f/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultGremlinScriptEngineManager.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultGremlinScriptEngineManager.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultGremlinScriptEngineManager.java
index 1484f90..34ef995 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultGremlinScriptEngineManager.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultGremlinScriptEngineManager.java
@@ -404,9 +404,6 @@ public class DefaultGremlinScriptEngineManager implements GremlinScriptEngineMan
}
private void initEngines(final ClassLoader loader) {
- // always need this module for a scriptengine to be "Gremlin-enabled"
- plugins.add(CoreGremlinPlugin.instance());
-
Iterator<GremlinScriptEngineFactory> itty;
try {
final ServiceLoader<GremlinScriptEngineFactory> sl = AccessController.doPrivileged(
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b1413c2f/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
index 3ce400e..264587a 100644
--- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
+++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
@@ -38,6 +38,7 @@ import org.apache.tinkerpop.gremlin.groovy.loaders.GremlinLoader;
import org.apache.tinkerpop.gremlin.groovy.plugin.Artifact;
import org.apache.tinkerpop.gremlin.groovy.plugin.GremlinPlugin;
import org.apache.tinkerpop.gremlin.groovy.plugin.GremlinPluginException;
+import org.apache.tinkerpop.gremlin.jsr223.CoreGremlinPlugin;
import org.apache.tinkerpop.gremlin.jsr223.Customizer;
import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngine;
import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngineFactory;
@@ -184,7 +185,7 @@ public class GremlinGroovyScriptEngine extends GroovyScriptEngineImpl
* Creates a new instance using the {@link DefaultImportCustomizerProvider}.
*/
public GremlinGroovyScriptEngine() {
- this((CompilerCustomizerProvider) new DefaultImportCustomizerProvider());
+ this(new Customizer[0]);
}
/**
@@ -196,7 +197,10 @@ public class GremlinGroovyScriptEngine extends GroovyScriptEngineImpl
}
public GremlinGroovyScriptEngine(final Customizer... customizers) {
- final List<Customizer> listOfCustomizers = Arrays.asList(customizers);
+ final List<Customizer> listOfCustomizers = new ArrayList<>(Arrays.asList(customizers));
+
+ // always need this plugin for a scriptengine to be "Gremlin-enabled"
+ CoreGremlinPlugin.instance().getCustomizers("gremlin-groovy").ifPresent(c -> listOfCustomizers.addAll(Arrays.asList(c)));
GremlinLoader.load();
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b1413c2f/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
index 1b95a02..1a4b57a 100644
--- a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
+++ b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
@@ -19,6 +19,7 @@
package org.apache.tinkerpop.gremlin.python.jsr223;
+import org.apache.tinkerpop.gremlin.jsr223.CoreGremlinPlugin;
import org.apache.tinkerpop.gremlin.jsr223.Customizer;
import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngine;
import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngineFactory;
@@ -27,7 +28,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import org.apache.tinkerpop.gremlin.util.CoreImports;
import org.python.jsr223.PyScriptEngine;
import org.python.jsr223.PyScriptEngineFactory;
@@ -37,12 +37,10 @@ import javax.script.ScriptContext;
import javax.script.ScriptException;
import java.io.Reader;
import java.lang.reflect.Method;
+import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.stream.Collectors;
/**
@@ -82,7 +80,10 @@ public class GremlinJythonScriptEngine implements GremlinScriptEngine {
public GremlinJythonScriptEngine(final Customizer... customizers) {
this.pyScriptEngine = (PyScriptEngine) new PyScriptEngineFactory().getScriptEngine();
- final List<Customizer> listOfCustomizers = Arrays.asList(customizers);
+ final List<Customizer> listOfCustomizers = new ArrayList<>(Arrays.asList(customizers));
+
+ // always need this plugin for a scriptengine to be "Gremlin-enabled"
+ CoreGremlinPlugin.instance().getCustomizers("gremlin-groovy").ifPresent(c -> listOfCustomizers.addAll(Arrays.asList(c)));
final List<ImportCustomizer> importCustomizers = listOfCustomizers.stream()
.filter(p -> p instanceof ImportCustomizer)
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b1413c2f/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinEnabledScriptEngineTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinEnabledScriptEngineTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinEnabledScriptEngineTest.java
index 8fa70b0..5a880f8 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinEnabledScriptEngineTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinEnabledScriptEngineTest.java
@@ -82,12 +82,11 @@ public class GremlinEnabledScriptEngineTest {
}
@Test
- public void shouldReturnOneCustomizers() {
- // just returns the core plugin as the other assigned plugin doesn't match the tested engine
+ public void shouldReturnNoCustomizers() {
final GremlinScriptEngineManager mgr = new DefaultGremlinScriptEngineManager();
mgr.addPlugin(ImportGremlinPlugin.build()
.classImports(java.awt.Color.class)
.appliesTo(Collections.singletonList("fake-script-engine")).create());
- assertEquals(1, mgr.getCustomizers(ENGINE_TO_TEST).size());
+ assertEquals(0, mgr.getCustomizers(ENGINE_TO_TEST).size());
}
}