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/03/20 18:10:04 UTC

[31/45] tinkerpop git commit: Quick fix to logging and to init script execution

Quick fix to logging and to init script execution

Init scripts weren't working right for scriptengines because they weren't getting the bindings set to the engine scope (which was happening under the old model of initialization). Without that setting, the types couldn't be identified and type checking features of Groovy wouldn't work if configured. CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/38217929
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/38217929
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/38217929

Branch: refs/heads/TINKERPOP-1642
Commit: 38217929138ffe9e5ff391d33a42b92d8ca5700e
Parents: 7b234b4
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Mar 15 17:18:07 2017 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Mar 15 17:18:07 2017 -0400

----------------------------------------------------------------------
 .../gremlin/jsr223/DefaultGremlinScriptEngineManager.java     | 7 ++++++-
 .../gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java      | 2 --
 .../tinkerpop/gremlin/server/util/ServerGremlinExecutor.java  | 5 +++--
 3 files changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/38217929/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 b3025ec..c8b77e6 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
@@ -474,7 +474,12 @@ public class DefaultGremlinScriptEngineManager implements GremlinScriptEngineMan
         scriptCustomizers.stream().flatMap(sc -> sc.getScripts().stream()).
                 map(l -> String.join(System.lineSeparator(), l)).forEach(initScript -> {
             try {
-                final Object initializedBindings = engine.eval(initScript);
+                // need to apply global bindings here as part of the engine or else they don't get their binding types
+                // registered by certain GremlinScriptEngine instances (pretty much talking about gremlin-groovy here)
+                // where type checking is made important. this may not be a good generic way to handled this in the
+                // long run, but for now we only have two GremlinScriptEngines to be concerned about so thus far it
+                // presents no real pains
+                final Object initializedBindings = engine.eval(initScript, getBindings());
                 if (initializedBindings != null && initializedBindings instanceof Map)
                     ((Map<String,Object>) initializedBindings).forEach((k,v) -> put(k,v));
             } catch (Exception ex) {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/38217929/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 4b27180..7a39f43 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
@@ -720,8 +720,6 @@ public class GremlinGroovyScriptEngine extends GroovyScriptEngineImpl
             //This should never happen as the future should completed before it is returned to the us.
             throw new AssertionError();
         }
-
-
     }
 
     boolean isCached(final String script) {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/38217929/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/ServerGremlinExecutor.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/ServerGremlinExecutor.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/ServerGremlinExecutor.java
index e3c0cae..56e78fb 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/ServerGremlinExecutor.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/ServerGremlinExecutor.java
@@ -149,7 +149,7 @@ public class ServerGremlinExecutor<T extends ScheduledExecutorService> {
 
         gremlinExecutor = gremlinExecutorBuilder.create();
 
-        logger.info("Initialized GremlinExecutor and configured ScriptEngines.");
+        logger.info("Initialized GremlinExecutor and preparing GremlinScriptEngines instances.");
 
         // force each scriptengine to process something so that the init scripts will fire (this is necessary if
         // the GremlinExecutor is using the GremlinScriptEngineManager. this is a bit of hack, but it at least allows
@@ -159,8 +159,9 @@ public class ServerGremlinExecutor<T extends ScheduledExecutorService> {
             try {
                 gremlinExecutor.eval("1+1", engineName, Collections.emptyMap()).join();
                 registerMetrics(engineName);
+                logger.info("Initialized {} GremlinScriptEngine and registered metrics", engineName);
             } catch (Exception ex) {
-                logger.warn(String.format("Could not initialize {} ScriptEngine as script could not be evaluated - %s", engineName), ex);
+                logger.warn(String.format("Could not initialize %s GremlinScriptEngine as init script could not be evaluated", engineName), ex);
             }
         });