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;