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();