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)