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 2018/07/25 13:46:32 UTC
[1/3] tinkerpop git commit: Added Date GraphSON serialization for
Javascript CTR
Repository: tinkerpop
Updated Branches:
refs/heads/master a14cf28f4 -> 7d4fb343e
Added Date GraphSON serialization for Javascript CTR
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/db46c0f6
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/db46c0f6
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/db46c0f6
Branch: refs/heads/master
Commit: db46c0f67fb1f93b9ea76032dbd2a852c24effd4
Parents: f56a3e7
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Jul 25 09:45:30 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Jul 25 09:45:30 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
.../lib/structure/io/graph-serializer.js | 2 ++
.../lib/structure/io/type-serializers.js | 18 ++++++++++++++++++
.../gremlin-javascript/test/unit/graphson-test.js | 8 ++++++++
4 files changed, 29 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/db46c0f6/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index f076ba1..0f2b18b 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -24,6 +24,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
=== TinkerPop 3.2.10 (Release Date: NOT OFFICIALLY RELEASED YET)
* Match numbers in `choose()` options using `NumberHelper` (match values, ignore data type).
+* Added support for GraphSON serialization of `Date` in Javascript.
* Fixed bug in Java driver where an disorderly shutdown of the server would cause the client to hang.
* Added a dotnet template project that should make it easier to get started with Gremlin.Net.
* Removed `ThreadInterruptCustomizerProvider` from documentation as a way to timeout.
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/db46c0f6/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js
index df05659..55b0265 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js
@@ -155,6 +155,7 @@ const deserializers = {
'g:Int64': typeSerializers.NumberSerializer,
'g:Float': typeSerializers.NumberSerializer,
'g:Double': typeSerializers.NumberSerializer,
+ 'g:Date': typeSerializers.DateSerializer,
'g:Vertex': typeSerializers.VertexSerializer,
'g:Edge': typeSerializers.EdgeSerializer,
'g:VertexProperty': typeSerializers.VertexPropertySerializer,
@@ -165,6 +166,7 @@ const deserializers = {
const serializers = [
typeSerializers.NumberSerializer,
+ typeSerializers.DateSerializer,
typeSerializers.BytecodeSerializer,
typeSerializers.TraverserSerializer,
typeSerializers.PSerializer,
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/db46c0f6/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js
index 304888f..4bc2935 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js
@@ -61,6 +61,23 @@ class NumberSerializer extends TypeSerializer {
}
}
+class DateSerializer extends TypeSerializer {
+ serialize(item) {
+ return {
+ [typeKey]: 'g:Date',
+ [valueKey]: item.value.getTime()
+ };
+ }
+
+ deserialize(obj) {
+ return new Date(obj[valueKey]);
+ }
+
+ canBeUsedFor(value) {
+ return (value instanceof Date);
+ }
+}
+
class LongSerializer extends TypeSerializer {
serialize(item) {
return {
@@ -278,6 +295,7 @@ class TSerializer extends TypeSerializer {
module.exports = {
BytecodeSerializer,
+ DateSerializer,
EdgeSerializer,
EnumSerializer,
LambdaSerializer,
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/db46c0f6/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/graphson-test.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/graphson-test.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/graphson-test.js
index 8bc7571..8f749f7 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/graphson-test.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/graphson-test.js
@@ -46,6 +46,14 @@ describe('GraphSONReader', function () {
assert.strictEqual(result, item[1]);
});
});
+ it('should parse Date', function() {
+ const obj = { "@type" : "g:Date", "@value" : 1481750076295 };
+ const reader = new GraphSONReader();
+ const result = reader.read(obj);
+ console.log("++++++++++++++++++++++++++" + obj);
+ console.log("++++++++++++++++++++++++++" + result);
+ assert.ok(result instanceof Date);
+ });
it('should parse vertices from GraphSON', function () {
const obj = {
"@type":"g:Vertex", "@value":{"id":{"@type":"g:Int32","@value":1},"label":"person",
[2/3] tinkerpop git commit: Merge branch 'tp32' into tp33
Posted by sp...@apache.org.
Merge branch 'tp32' into tp33
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1bd35dcc
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1bd35dcc
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1bd35dcc
Branch: refs/heads/master
Commit: 1bd35dcc5383373ed07fb72fdba7da274f982497
Parents: 421839d db46c0f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Jul 25 09:46:11 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Jul 25 09:46:11 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
.../lib/structure/io/graph-serializer.js | 2 ++
.../lib/structure/io/type-serializers.js | 18 ++++++++++++++++++
.../gremlin-javascript/test/unit/graphson-test.js | 8 ++++++++
4 files changed, 29 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1bd35dcc/CHANGELOG.asciidoc
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1bd35dcc/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1bd35dcc/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js
----------------------------------------------------------------------
diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js
index 3b2b9e6,4bc2935..5044ee7
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js
@@@ -283,78 -293,9 +300,79 @@@ class TSerializer extends TypeSerialize
}
}
+class ArraySerializer extends TypeSerializer {
+ constructor(typeKey) {
+ super();
+ this.typeKey = typeKey;
+ }
+
+ deserialize(obj) {
+ const value = obj[valueKey];
+ if (!Array.isArray(value)) {
+ throw new Error('Expected Array, obtained: ' + value);
+ }
+ return value.map(x => this.reader.read(x));
+ }
+
+ /** @param {Array} item */
+ serialize(item) {
+ return {
+ [typeKey]: this.typeKey,
+ [valueKey]: item.map(x => this.writer.adaptObject(x))
+ };
+ }
+
+ canBeUsedFor(value) {
+ return Array.isArray(value);
+ }
+}
+
+class MapSerializer extends TypeSerializer {
+ deserialize(obj) {
+ const value = obj[valueKey];
+ if (!Array.isArray(value)) {
+ throw new Error('Expected Array, obtained: ' + value);
+ }
+ const result = new Map();
+ for (let i = 0; i < value.length; i += 2) {
+ result.set(this.reader.read(value[i]), this.reader.read(value[i + 1]));
+ }
+ return result;
+ }
+
+ /** @param {Map} map */
+ serialize(map) {
+ const arr = [];
+ map.forEach((v, k) => {
+ arr.push(this.writer.adaptObject(k));
+ arr.push(this.writer.adaptObject(v));
+ });
+ return {
+ [typeKey]: 'g:Map',
+ [valueKey]: arr
+ };
+ }
+
+ canBeUsedFor(value) {
+ return value instanceof Map;
+ }
+}
+
+class ListSerializer extends ArraySerializer {
+ constructor() {
+ super('g:List');
+ }
+}
+
+class SetSerializer extends ArraySerializer {
+ constructor() {
+ super('g:Set');
+ }
+}
+
module.exports = {
BytecodeSerializer,
+ DateSerializer,
EdgeSerializer,
EnumSerializer,
LambdaSerializer,
[3/3] tinkerpop git commit: Merge branch 'tp33'
Posted by sp...@apache.org.
Merge branch 'tp33'
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/7d4fb343
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/7d4fb343
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/7d4fb343
Branch: refs/heads/master
Commit: 7d4fb343e36becfeebc4f08b8cd8a464268b6d24
Parents: a14cf28 1bd35dc
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Jul 25 09:46:23 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Jul 25 09:46:23 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
.../lib/structure/io/graph-serializer.js | 2 ++
.../lib/structure/io/type-serializers.js | 18 ++++++++++++++++++
.../gremlin-javascript/test/unit/graphson-test.js | 8 ++++++++
4 files changed, 29 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7d4fb343/CHANGELOG.asciidoc
----------------------------------------------------------------------