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 2017/04/06 11:33:57 UTC
[30/50] tinkerpop git commit: Merge branch 'tp32'
Merge branch 'tp32'
Conflicts:
gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/a0bcf495
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a0bcf495
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a0bcf495
Branch: refs/heads/TINKERPOP-1443
Commit: a0bcf4959a0e902272a9a822fd0b73b7aeafa066
Parents: ff09a46 1145917
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Mar 29 12:01:13 2017 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Mar 29 12:01:13 2017 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 11 +-
.../gremlin/jsr223/GremlinScriptContext.java | 234 +++++++++++++++++++
.../jsr223/GremlinGroovyScriptEngine.java | 22 ++
3 files changed, 262 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a0bcf495/CHANGELOG.asciidoc
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a0bcf495/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
----------------------------------------------------------------------
diff --cc gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
index 703be70,d52e104..fe12b1c
--- 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
@@@ -29,9 -30,21 +29,10 @@@ import groovy.lang.MissingMethodExcepti
import groovy.lang.MissingPropertyException;
import groovy.lang.Script;
import groovy.lang.Tuple;
-import org.apache.tinkerpop.gremlin.groovy.CompilerCustomizerProvider;
-import org.apache.tinkerpop.gremlin.groovy.DefaultImportCustomizerProvider;
-import org.apache.tinkerpop.gremlin.groovy.EmptyImportCustomizerProvider;
-import org.apache.tinkerpop.gremlin.groovy.ImportCustomizerProvider;
-import org.apache.tinkerpop.gremlin.groovy.NoImportCustomizerProvider;
-import org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.CompilationOptionsCustomizerProvider;
-import org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.ConfigurationCustomizerProvider;
-import org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.InterpreterModeCustomizerProvider;
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.GremlinScriptContext;
import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngine;
import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngineFactory;
import org.apache.tinkerpop.gremlin.jsr223.ImportCustomizer;
@@@ -303,7 -475,30 +304,28 @@@ public class GremlinGroovyScriptEngine
}
/**
+ * Creates the {@code ScriptContext} using a {@link GremlinScriptContext} which avoids a significant amount of
+ * additional object creation on script evaluation.
+ */
+ @Override
+ protected ScriptContext getScriptContext(final Bindings nn) {
+ final GremlinScriptContext ctxt = new GremlinScriptContext(context.getReader(), context.getWriter(), context.getErrorWriter());
+ final Bindings gs = getBindings(ScriptContext.GLOBAL_SCOPE);
+
+ if (gs != null) ctxt.setBindings(gs, ScriptContext.GLOBAL_SCOPE);
+
+ if (nn != null) {
+ ctxt.setBindings(nn,
+ ScriptContext.ENGINE_SCOPE);
+ } else {
+ throw new NullPointerException("Engine scope Bindings may not be null.");
+ }
+
+ return ctxt;
+ }
+
+ /**
- * Resets the {@code ScriptEngine} but does not clear the loaded plugins or bindings. Typically called by
- * {@link DependencyManager} methods that need to just force the classloader to be recreated and script caches
- * cleared.
+ * Resets the {@code ScriptEngine} but does not clear the loaded plugins or bindings.
*/
private void internalReset() {
createClassLoader();