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/01/24 20:14:12 UTC

[1/2] tinkerpop git commit: GremlinExecutor wasn't constructing plugins properly

Repository: tinkerpop
Updated Branches:
  refs/heads/tp32 e3889bf24 -> d08a68f32


GremlinExecutor wasn't constructing plugins properly

Wasn't properly doing type comparisons properly to deal with primitive arguments. CTR


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

Branch: refs/heads/tp32
Commit: 470c656ac2ac0822d5b561eadef3b25eaacef558
Parents: e3889bf
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Jan 24 15:08:07 2017 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Jan 24 15:08:07 2017 -0500

----------------------------------------------------------------------
 .../tinkerpop/gremlin/groovy/engine/GremlinExecutor.java       | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/470c656a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
index 567a248..349af8e 100644
--- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
+++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
@@ -18,11 +18,11 @@
  */
 package org.apache.tinkerpop.gremlin.groovy.engine;
 
+import org.apache.commons.lang.ClassUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine;
 import org.apache.commons.lang3.concurrent.BasicThreadFactory;
 import org.apache.tinkerpop.gremlin.jsr223.CachedGremlinScriptEngineManager;
-import org.apache.tinkerpop.gremlin.jsr223.DefaultBindingsCustomizer;
 import org.apache.tinkerpop.gremlin.jsr223.GremlinPlugin;
 import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngineManager;
 import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
@@ -469,9 +469,9 @@ public class GremlinExecutor implements AutoCloseable {
                             final Method configMethod = Stream.of(methods).filter(m -> {
                                 final Class<?> type = customizerConfig.getValue().getClass();
                                 return m.getName().equals(customizerConfig.getKey()) && m.getParameters().length <= 1
-                                        && m.getParameters()[0].getType().isAssignableFrom(type);
+                                        && ClassUtils.isAssignable(type, m.getParameters()[0].getType(), true);
                             }).findFirst()
-                                    .orElseThrow(() -> new IllegalStateException("Could not find builder method on " + builderClazz.getCanonicalName()));
+                                    .orElseThrow(() -> new IllegalStateException("Could not find builder method '" + customizerConfig.getKey() + "' on " + builderClazz.getCanonicalName()));
                             if (null == customizerConfig.getValue())
                                 pluginBuilder = configMethod.invoke(pluginBuilder);
                             else


[2/2] tinkerpop git commit: Sessions were not constucting GremlinExecutor with new plugin system CTR

Posted by sp...@apache.org.
Sessions were not constucting GremlinExecutor with new plugin system CTR


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

Branch: refs/heads/tp32
Commit: d08a68f32c4ad497b6dbbdad5ae916cb659ff019
Parents: 470c656
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Jan 24 15:11:50 2017 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Jan 24 15:11:50 2017 -0500

----------------------------------------------------------------------
 .../gremlin/server/op/session/Session.java         | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d08a68f3/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/Session.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/Session.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/Session.java
index 8f4da66..9b16a3b 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/Session.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/Session.java
@@ -228,11 +228,18 @@ public class Session {
                 .scheduledExecutorService(scheduledExecutorService);
 
         settings.scriptEngines.forEach((k, v) -> {
-            // make sure that server related classes are available at init - not really necessary here because
-            // lifecycle hooks are not executed per session, but there should be some consistency .... i guess
-            v.imports.add(LifeCycleHook.class.getCanonicalName());
-            v.imports.add(LifeCycleHook.Context.class.getCanonicalName());
-            gremlinExecutorBuilder.addEngineSettings(k, v.imports, v.staticImports, v.scripts, v.config);
+            // use plugins if they are present and the old approach if not
+            if (v.plugins.isEmpty()) {
+                // make sure that server related classes are available at init - ultimately this body of code will be
+                // deleted when deprecation is removed
+                v.imports.add(LifeCycleHook.class.getCanonicalName());
+                v.imports.add(LifeCycleHook.Context.class.getCanonicalName());
+                gremlinExecutorBuilder.addEngineSettings(k, v.imports, v.staticImports, v.scripts, v.config);
+            } else {
+                // make sure that server related classes are available at init - new approach. the LifeCycleHook stuff
+                // will be added explicitly via configuration using GremlinServerGremlinModule in the yaml
+                gremlinExecutorBuilder.addPlugins(k, v.plugins);
+            }
         });
 
         return gremlinExecutorBuilder;