You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2016/08/23 20:21:41 UTC

tinkerpop git commit: The Operator.enum bug has been fixed by Kevin. One line fix -- all day issue. dah. Anywho, GraphSON 2.0 and Bytecode are happy happy long time and Gremlin-Python is all sup'd up too.

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1278 9bf0eadf3 -> 8761ddb18


The Operator.enum bug has been fixed by Kevin. One line fix -- all day issue. dah. Anywho, GraphSON 2.0 and Bytecode are happy happy long time and Gremlin-Python is all sup'd up too.


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

Branch: refs/heads/TINKERPOP-1278
Commit: 8761ddb18f2fb84f67a0619c4f6c7c0a10c2b309
Parents: 9bf0ead
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Aug 23 14:21:36 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Aug 23 14:21:36 2016 -0600

----------------------------------------------------------------------
 .../structure/io/graphson/GraphSONModule.java   |  4 ++--
 .../GraphSONTraversalSerializersV2d0.java       |  9 +++-----
 .../io/graphson/GraphSONTypeDeserializer.java   |  2 +-
 .../jsr223/GremlinJythonScriptEngine.java       | 24 ++++++++++----------
 .../gremlin/python/jsr223/JythonTranslator.java |  8 +++----
 .../jython/gremlin_python/process/graphson.py   |  4 +++-
 6 files changed, 25 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8761ddb1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
index b7678fc..4abca44 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
@@ -133,7 +133,7 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
                             VertexProperty.Cardinality.values(),
                             Column.values(),
                             Direction.values(),
-                            //Operator.values(),
+                            Operator.values(),
                             Order.values(),
                             Pop.values(),
                             SackFunctions.Barrier.values(),
@@ -239,7 +239,7 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
                     Pop.values(),
                     SackFunctions.Barrier.values(),
                     Scope.values(),
-                    T.values()).flatMap(Stream::of).forEach(e -> addDeserializer(e.getClass(), new GraphSONTraversalSerializersV2d0.EnumJacksonDeserializer(e)));
+                    T.values()).flatMap(Stream::of).forEach(e -> addDeserializer(e.getClass(), new GraphSONTraversalSerializersV2d0.EnumJacksonDeserializer(e.getDeclaringClass())));
             addDeserializer(P.class, new GraphSONTraversalSerializersV2d0.PJacksonDeserializer());
             addDeserializer(Lambda.class, new GraphSONTraversalSerializersV2d0.LambdaJacksonDeserializer());
             addDeserializer(Traverser.class, new GraphSONTraversalSerializersV2d0.TraverserJacksonDeserializer());

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8761ddb1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
index a9c1731..d2bad29 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
@@ -241,16 +241,13 @@ final class GraphSONTraversalSerializersV2d0 {
 
     final static class EnumJacksonDeserializer<A extends Enum> extends StdDeserializer<A> {
 
-        private final A enumInstance;
-
-        public EnumJacksonDeserializer(final A enumInstance) {
-            super(enumInstance.getClass());
-            this.enumInstance = enumInstance;
+        public EnumJacksonDeserializer(final Class<A> enumClass) {
+            super(enumClass);
         }
 
         @Override
         public A deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
-            final Class<A> enumClass = (Class<A>) this.enumInstance.getDeclaringClass();
+            final Class<A> enumClass = (Class<A>) this._valueClass;
             final String enumName = jsonParser.getText();
             for (final Enum a : enumClass.getEnumConstants()) {
                 if (a.name().equals(enumName))

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8761ddb1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeDeserializer.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeDeserializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeDeserializer.java
index 1950834..de51490 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeDeserializer.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeDeserializer.java
@@ -150,7 +150,7 @@ public class GraphSONTypeDeserializer extends TypeDeserializerBase {
                     // Type pattern detected.
                     final JavaType typeFromId = idRes.typeFromId(typeName);
 
-                    if (!baseType.isJavaLangObject() && baseType != typeFromId) {
+                    if (!baseType.isJavaLangObject() && !baseType.equals(typeFromId)) {
                         throw new InstantiationException(
                                 String.format("Cannot deserialize the value with the detected type contained in the JSON ('%s') " +
                                         "to the type specified in parameter to the object mapper (%s). " +

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8761ddb1/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 8d1ade4..951b82a 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
@@ -78,27 +78,27 @@ public class GremlinJythonScriptEngine implements GremlinScriptEngine {
                     "from org.apache.tinkerpop.gremlin.util.function.Lambda import TwoArgLambda\n\n" +
 
                     "class JythonUnknownArgLambda(UnknownArgLambda):\n" +
-                    "  def __init__(self,func,lang='gremlin-jython'):\n" +
-                    "    UnknownArgLambda.__init__(self, 'nothing', lang, -1)\n" +
+                    "  def __init__(self,func,script,lang='gremlin-jython'):\n" +
+                    "    UnknownArgLambda.__init__(self, script, lang, -1)\n" +
                     "    self.func = func\n" +
                     "  def __repr__(self):\n" +
-                    "    return 'JythonUnknownArgLambda'\n\n" +
+                    "    return self.getLambdaScript()\n\n" +
 
                     "class JythonZeroArgLambda(ZeroArgLambda):\n" +
-                    "  def __init__(self,func,lang='gremlin-jython'):\n" +
-                    "    ZeroArgLambda.__init__(self, 'nothing', lang)\n" +
+                    "  def __init__(self,func,script,lang='gremlin-jython'):\n" +
+                    "    ZeroArgLambda.__init__(self, script, lang)\n" +
                     "    self.func = func\n" +
                     "  def __repr__(self):\n" +
-                    "    return 'JythonZeroArgLambda'\n" +
+                    "    return self.getLambdaScript()\n" +
                     "  def get(self):\n" +
                     "    return self.func()\n\n" +
 
                     "class JythonOneArgLambda(OneArgLambda):\n" +
-                    "  def __init__(self,func,lang='gremlin-jython'):\n" +
-                    "    OneArgLambda.__init__(self, 'nothing', lang)\n" +
+                    "  def __init__(self,func,script,lang='gremlin-jython'):\n" +
+                    "    OneArgLambda.__init__(self, script, lang)\n" +
                     "    self.func = func\n" +
                     "  def __repr__(self):\n" +
-                    "    return 'JythonOneArgLambda'\n" +
+                    "    return self.getLambdaScript()\n" +
                     "  def test(self,a):\n" +
                     "    return self.func(a)\n" +
                     "  def apply(self,a):\n" +
@@ -109,11 +109,11 @@ public class GremlinJythonScriptEngine implements GremlinScriptEngine {
                     "    return self.func(a,b)\n\n" +
 
                     "class JythonTwoArgLambda(TwoArgLambda):\n" +
-                    "  def __init__(self,func,lang='gremlin-jython'):\n" +
-                    "    TwoArgLambda.__init__(self, 'nothing', lang)\n" +
+                    "  def __init__(self,func,script,lang='gremlin-jython'):\n" +
+                    "    TwoArgLambda.__init__(self, script, lang)\n" +
                     "    self.func = func\n" +
                     "  def __repr__(self):\n" +
-                    "    return 'JythonTwoArgLambda'\n" +
+                    "    return self.getLambdaScript()\n" +
                     "  def apply(self,a,b):\n" +
                     "    return self.func(a,b)\n" +
                     "  def compare(self,a,b):\n" +

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8761ddb1/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/JythonTranslator.java
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/JythonTranslator.java b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/JythonTranslator.java
index 0eb8961..8b21704 100644
--- a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/JythonTranslator.java
+++ b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/JythonTranslator.java
@@ -46,12 +46,12 @@ public final class JythonTranslator extends PythonTranslator {
                 lambdaString :
                 "lambda " + lambdaString;
         if (0 == lambda.getLambdaArguments())
-            return "JythonZeroArgLambda(" + lambdaString + ")";
+            return "JythonZeroArgLambda(" + lambdaString + ", \"" + lambdaString.replaceAll("\"","\\\\\"") + "\")";
         else if (1 == lambda.getLambdaArguments())
-            return "JythonOneArgLambda(" + lambdaString + ")";
+            return "JythonOneArgLambda(" + lambdaString + ", \"" + lambdaString.replaceAll("\"","\\\\\"") + "\")";
         else if (2 == lambda.getLambdaArguments())
-            return "JythonTwoArgLambda(" + lambdaString + ")";
+            return "JythonTwoArgLambda(" + lambdaString + ", \"" + lambdaString.replaceAll("\"","\\\\\"") + "\")";
         else
-            return "JythonUnknownArgLambda(" + lambdaString + ")";
+            return "JythonUnknownArgLambda(" + lambdaString + ", \"" + lambdaString.replaceAll("\"","\\\\\"") + "\")";
     }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8761ddb1/gremlin-python/src/main/jython/gremlin_python/process/graphson.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/process/graphson.py b/gremlin-python/src/main/jython/gremlin_python/process/graphson.py
index 884b805..80b1087 100644
--- a/gremlin-python/src/main/jython/gremlin_python/process/graphson.py
+++ b/gremlin-python/src/main/jython/gremlin_python/process/graphson.py
@@ -126,7 +126,9 @@ class LambdaSerializer(GraphSONSerializer):
 
 class NumberSerializer(GraphSONSerializer):
     def _dictify(self, number):
-        if isinstance(number, long):
+        if isinstance(number, bool): # python thinks that 0/1 integers are booleans
+            return number
+        elif isinstance(number, long):
             return _SymbolHelper.objectify("int64", number)
         elif isinstance(number, int):
             return _SymbolHelper.objectify("int32", number)