Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1278 0e758ec59 -> 0a1b46ce0


Jython was selecting the wrong GraphTraversal.property() method and thus, 
updated GraphTraversal and __ to do a check on the first argument to see if a 
reroute is needed. Similar things have been done to both GraphTraversal and __ 
methods for Groovy as well, so its okay to cater. With this, two more tests 
that were Ignored are now opened up. GremlinJythonScriptEngineFactory now 
extends PyScriptEngineFactory and overwrites only necessary methods.


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

Branch: refs/heads/TINKERPOP-1278
Commit: 0a1b46ce0d436002e8abf9ae74a7ba7324fe093e
Parents: 0e758ec
Author: Marko A. Rodriguez <okramma...@gmail.com>
Authored: Mon Jun 27 16:32:35 2016 -0600
Committer: Marko A. Rodriguez <okramma...@gmail.com>
Committed: Mon Jun 27 16:32:35 2016 -0600

----------------------------------------------------------------------
 .../traversal/dsl/graph/GraphTraversal.java     |  7 ++++-
 .../jsr223/GremlinJythonScriptEngine.java       |  2 +-
 .../GremlinJythonScriptEngineFactory.java       | 27 +++-----------------
 .../translator/PythonTranslatorProvider.java    |  2 --
 .../jsr223/GremlinJythonScriptEngineTest.java   |  5 ++--
 5 files changed, 12 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0a1b46ce/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
index 8d89c10..170c1a9 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
@@ -1224,7 +1224,12 @@ public interface GraphTraversal<S, E> extends 
Traversal<S, E> {
      * @param keyValues any meta properties to be assigned to this property
      */
     public default GraphTraversal<S, E> property(final Object key, final 
Object value, final Object... keyValues) {
-        return this.property(null, key, value, keyValues);
+        return key instanceof VertexProperty.Cardinality ?
+                this.property((VertexProperty.Cardinality) key, value, 
keyValues[0],
+                        keyValues.length > 1 ?
+                                Arrays.copyOfRange(keyValues, 1, 
keyValues.length) :
+                                new Object[]{}) :
+                this.property(null, key, value, keyValues);
     }
 
     ///////////////////// BRANCH STEPS /////////////////////

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0a1b46ce/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
----------------------------------------------------------------------
diff --git 
a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
 
b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
index 3f78a97..4c94049 100644
--- 
a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
+++ 
b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
@@ -67,7 +67,7 @@ public class GremlinJythonScriptEngine implements 
ScriptEngine {
 
             this.pyScriptEngine.eval("\n" +
                     "from java.lang import Long\n" +
-                    "import 
org.apache.tinkerpop.gremlin.util.function.Lambda\n" +
+                    "import 
org.apache.tinkerpop.gremlin.util.function.Lambda\n" + // todo: remove or 
remove imported subclass names? (choose)
                     "from org.apache.tinkerpop.gremlin.util.function.Lambda 
import AbstractLambda\n" +
                     "from org.apache.tinkerpop.gremlin.util.function.Lambda 
import ZeroArgLambda\n" +
                     "from org.apache.tinkerpop.gremlin.util.function.Lambda 
import OneArgLambda\n" +

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0a1b46ce/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngineFactory.java
----------------------------------------------------------------------
diff --git 
a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngineFactory.java
 
b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngineFactory.java
index 81256ea..4150af5 100644
--- 
a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngineFactory.java
+++ 
b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngineFactory.java
@@ -20,16 +20,16 @@
 package org.apache.tinkerpop.gremlin.python.jsr223;
 
 import org.apache.tinkerpop.gremlin.util.Gremlin;
+import org.python.jsr223.PyScriptEngineFactory;
 
 import javax.script.ScriptEngine;
-import javax.script.ScriptEngineFactory;
 import java.util.Arrays;
 import java.util.List;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class GremlinJythonScriptEngineFactory implements ScriptEngineFactory {
+public class GremlinJythonScriptEngineFactory extends PyScriptEngineFactory {
 
     private static final String ENGINE_NAME = "gremlin-jython";
     private static final String LANGUAGE_NAME = "gremlin-jython";
@@ -62,11 +62,6 @@ public class GremlinJythonScriptEngineFactory implements 
ScriptEngineFactory {
     }
 
     @Override
-    public String getMethodCallSyntax(final String obj, final String m, final 
String... args) {
-        return null;
-    }
-
-    @Override
     public List<String> getMimeTypes() {
         return Arrays.asList(PLAIN);
     }
@@ -77,11 +72,6 @@ public class GremlinJythonScriptEngineFactory implements 
ScriptEngineFactory {
     }
 
     @Override
-    public String getOutputStatement(final String toDisplay) {
-        return "println " + toDisplay;
-    }
-
-    @Override
     public Object getParameter(final String key) {
         if (key.equals(ScriptEngine.ENGINE)) {
             return this.getEngineName();
@@ -94,18 +84,7 @@ public class GremlinJythonScriptEngineFactory implements 
ScriptEngineFactory {
         } else if (key.equals(ScriptEngine.LANGUAGE_VERSION)) {
             return this.getLanguageVersion();
         } else
-            return null;
-    }
-
-    @Override
-    public String getProgram(final String... statements) {
-        String program = "";
-
-        for (String statement : statements) {
-            program = program + statement + "\n";
-        }
-
-        return program;
+            return super.getParameter(key);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0a1b46ce/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslatorProvider.java
----------------------------------------------------------------------
diff --git 
a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslatorProvider.java
 
b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslatorProvider.java
index 6e2f05d..7f469f5 100644
--- 
a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslatorProvider.java
+++ 
b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslatorProvider.java
@@ -65,8 +65,6 @@ public abstract class PythonTranslatorProvider extends 
AbstractGraphProvider {
             "testProfileStrategyCallbackSideEffect",
             "g_withSideEffectXa_setX_V_both_name_storeXaX_capXaX",
             "g_VX1X_out_injectXv2X_name",
-            
"g_addVXpersonX_propertyXsingle_name_stephenX_propertyXsingle_name_stephenmX", 
// jython gets confused about the method to call in Java :|
-            
"g_addVXpersonX_propertyXsingle_name_stephenX_propertyXsingle_name_stephenm_since_2010X",
 // jython gets confused about the method to call in Java :|
             "shouldSupportGraphFilter", // need to get Computer implemented as 
a class in Gremlin-Python
             "shouldNeverPropagateANoBulkTraverser",
             "shouldNeverPropagateANullValuedTraverser",

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0a1b46ce/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngineTest.java
----------------------------------------------------------------------
diff --git 
a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngineTest.java
 
b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngineTest.java
index 819c722..28b407b 100644
--- 
a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngineTest.java
+++ 
b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngineTest.java
@@ -25,10 +25,8 @@ import org.apache.tinkerpop.gremlin.structure.Column;
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
-import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
 import org.junit.Test;
 
-import javax.script.Bindings;
 import javax.script.ScriptContext;
 import javax.script.ScriptEngine;
 import javax.script.ScriptEngineManager;
@@ -69,7 +67,8 @@ public class GremlinJythonScriptEngineTest {
         assertEquals(VertexProperty.Cardinality.single, 
engine.eval("Cardinality.valueOf(\'single\')"));
         assertTrue(engine.eval("out()") instanceof GraphTraversal);
         assertTrue(engine.eval("__.out()") instanceof GraphTraversal);
-        // assertTrue(engine.eval("__.property(Cardinality.single, 
'name','marko')") instanceof GraphTraversal);
+        assertTrue(engine.eval("__.property(VertexProperty.Cardinality.single, 
'name','marko')") instanceof GraphTraversal);
+        assertTrue(engine.eval("__.property(Cardinality.single, 
'name','marko')") instanceof GraphTraversal);
     }
 
 

Reply via email to