[4/5] tinkerpop git commit: Merge branch 'tp32' into tp33
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/86b1be53 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/86b1be53 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/86b1be53 Branch: refs/heads/master Commit: 86b1be53538def07deb337025467ee4b5e04dd37 Parents: 5b9b81f ca034f1 Author: Stephen Mallette Authored: Thu Oct 4 16:47:46 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 16:47:46 2018 -0400 -- .../apache/tinkerpop/gremlin/process/computer/GraphFilter.java | 5 +++-- .../traversal/strategy/optimization/GraphFilterStrategy.java| 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) --
[2/4] tinkerpop git commit: reverts class StarGraphGryoSerializer
reverts class StarGraphGryoSerializer Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/48d5d1d4 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/48d5d1d4 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/48d5d1d4 Branch: refs/heads/tp33 Commit: 48d5d1d4d33cd1d95354062764858e1a1b4e5d38 Parents: 9e1865a Author: Otavio Santana Authored: Wed Oct 3 15:11:00 2018 -0300 Committer: Otavio Santana Committed: Wed Oct 3 15:11:00 2018 -0300 -- .../gremlin/structure/util/star/StarGraphGryoSerializer.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/48d5d1d4/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java index 86bbf98..b2379ce 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java @@ -18,7 +18,6 @@ */ package org.apache.tinkerpop.gremlin.structure.util.star; -import java.util.EnumMap; import java.util.HashMap; import java.util.Map; @@ -35,7 +34,7 @@ import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.shaded.ShadedSeri */ public final class StarGraphGryoSerializer extends ShadedSerializerAdapter { -private static final Map CACHE = new EnumMap<>(Direction.class); +private static final Map CACHE = new HashMap<>(); static { CACHE.put(Direction.BOTH, new StarGraphGryoSerializer(Direction.BOTH));
[3/5] tinkerpop git commit: Merge branch 'pr-948' into tp32
Merge branch 'pr-948' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/ca034f12 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/ca034f12 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/ca034f12 Branch: refs/heads/master Commit: ca034f12aa2103e2b718ce52859cb51b52c3728a Parents: 80fa89b 48d5d1d Author: Stephen Mallette Authored: Thu Oct 4 16:47:33 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 16:47:33 2018 -0400 -- .../apache/tinkerpop/gremlin/process/computer/GraphFilter.java | 5 +++-- .../traversal/strategy/optimization/GraphFilterStrategy.java| 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) --
[4/4] tinkerpop git commit: Merge branch 'tp32' into tp33
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/86b1be53 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/86b1be53 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/86b1be53 Branch: refs/heads/tp33 Commit: 86b1be53538def07deb337025467ee4b5e04dd37 Parents: 5b9b81f ca034f1 Author: Stephen Mallette Authored: Thu Oct 4 16:47:46 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 16:47:46 2018 -0400 -- .../apache/tinkerpop/gremlin/process/computer/GraphFilter.java | 5 +++-- .../traversal/strategy/optimization/GraphFilterStrategy.java| 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) --
[2/3] tinkerpop git commit: reverts class StarGraphGryoSerializer
reverts class StarGraphGryoSerializer Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/48d5d1d4 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/48d5d1d4 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/48d5d1d4 Branch: refs/heads/tp32 Commit: 48d5d1d4d33cd1d95354062764858e1a1b4e5d38 Parents: 9e1865a Author: Otavio Santana Authored: Wed Oct 3 15:11:00 2018 -0300 Committer: Otavio Santana Committed: Wed Oct 3 15:11:00 2018 -0300 -- .../gremlin/structure/util/star/StarGraphGryoSerializer.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/48d5d1d4/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java index 86bbf98..b2379ce 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java @@ -18,7 +18,6 @@ */ package org.apache.tinkerpop.gremlin.structure.util.star; -import java.util.EnumMap; import java.util.HashMap; import java.util.Map; @@ -35,7 +34,7 @@ import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.shaded.ShadedSeri */ public final class StarGraphGryoSerializer extends ShadedSerializerAdapter { -private static final Map CACHE = new EnumMap<>(Direction.class); +private static final Map CACHE = new HashMap<>(); static { CACHE.put(Direction.BOTH, new StarGraphGryoSerializer(Direction.BOTH));
[3/3] tinkerpop git commit: Merge branch 'pr-948' into tp32
Merge branch 'pr-948' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/ca034f12 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/ca034f12 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/ca034f12 Branch: refs/heads/tp32 Commit: ca034f12aa2103e2b718ce52859cb51b52c3728a Parents: 80fa89b 48d5d1d Author: Stephen Mallette Authored: Thu Oct 4 16:47:33 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 16:47:33 2018 -0400 -- .../apache/tinkerpop/gremlin/process/computer/GraphFilter.java | 5 +++-- .../traversal/strategy/optimization/GraphFilterStrategy.java| 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) --
[3/4] tinkerpop git commit: Merge branch 'pr-948' into tp32
Merge branch 'pr-948' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/ca034f12 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/ca034f12 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/ca034f12 Branch: refs/heads/tp33 Commit: ca034f12aa2103e2b718ce52859cb51b52c3728a Parents: 80fa89b 48d5d1d Author: Stephen Mallette Authored: Thu Oct 4 16:47:33 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 16:47:33 2018 -0400 -- .../apache/tinkerpop/gremlin/process/computer/GraphFilter.java | 5 +++-- .../traversal/strategy/optimization/GraphFilterStrategy.java| 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) --
[1/4] tinkerpop git commit: Optimazes Map with enum using the EnumMap implementation
Repository: tinkerpop Updated Branches: refs/heads/tp33 5b9b81fde -> 86b1be535 Optimazes Map with enum using the EnumMap implementation Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/9e1865a9 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9e1865a9 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9e1865a9 Branch: refs/heads/tp33 Commit: 9e1865a98d9350451d29dc837e053109d714d7e3 Parents: fcbce50 Author: Otavio Santana Authored: Wed Oct 3 14:17:07 2018 -0300 Committer: Otavio Santana Committed: Wed Oct 3 14:17:07 2018 -0300 -- .../apache/tinkerpop/gremlin/process/computer/GraphFilter.java | 5 +++-- .../traversal/strategy/optimization/GraphFilterStrategy.java| 4 ++-- .../gremlin/structure/util/star/StarGraphGryoSerializer.java| 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e1865a9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java index 3718d16..65d74d2 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java @@ -31,6 +31,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import java.io.Serializable; import java.util.Collections; +import java.util.EnumMap; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -80,7 +81,7 @@ public final class GraphFilter implements Cloneable, Serializable { private Traversal.Admin vertexFilter = null; private Traversal.Admin edgeFilter = null; -private Map> edgeLegality = new HashMap<>(); +private Map> edgeLegality = new EnumMap<>(Direction.class); private boolean allowNoEdges = false; public GraphFilter() { @@ -118,7 +119,7 @@ public final class GraphFilter implements Cloneable, Serializable { throw GraphComputer.Exceptions.edgeFilterAccessesAdjacentVertices(edgeFilter); this.edgeFilter = edgeFilter.asAdmin().clone(); -this.edgeLegality = new HashMap<>(); +this.edgeLegality = new EnumMap<>(Direction.class); this.edgeLegality.put(Direction.OUT, new HashMap<>()); this.edgeLegality.put(Direction.IN, new HashMap<>()); this.edgeLegality.put(Direction.BOTH, new HashMap<>()); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e1865a9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java index c32777b..cc0e6b4 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java @@ -39,7 +39,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; import java.util.Collections; -import java.util.HashMap; +import java.util.EnumMap; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -77,7 +77,7 @@ public final class GraphFilterStrategy extends AbstractTraversalStrategy> directionLabels = new HashMap<>(); +final Map> directionLabels = new EnumMap<>(Direction.class); final Set outLabels = new HashSet<>(); final Set inLabels = new HashSet<>(); final Set bothLabels = new HashSet<>(); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e1865a9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java index b2379ce..86bbf98 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java +++
[1/3] tinkerpop git commit: Optimazes Map with enum using the EnumMap implementation
Repository: tinkerpop Updated Branches: refs/heads/tp32 80fa89bdf -> ca034f12a Optimazes Map with enum using the EnumMap implementation Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/9e1865a9 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9e1865a9 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9e1865a9 Branch: refs/heads/tp32 Commit: 9e1865a98d9350451d29dc837e053109d714d7e3 Parents: fcbce50 Author: Otavio Santana Authored: Wed Oct 3 14:17:07 2018 -0300 Committer: Otavio Santana Committed: Wed Oct 3 14:17:07 2018 -0300 -- .../apache/tinkerpop/gremlin/process/computer/GraphFilter.java | 5 +++-- .../traversal/strategy/optimization/GraphFilterStrategy.java| 4 ++-- .../gremlin/structure/util/star/StarGraphGryoSerializer.java| 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e1865a9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java index 3718d16..65d74d2 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java @@ -31,6 +31,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import java.io.Serializable; import java.util.Collections; +import java.util.EnumMap; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -80,7 +81,7 @@ public final class GraphFilter implements Cloneable, Serializable { private Traversal.Admin vertexFilter = null; private Traversal.Admin edgeFilter = null; -private Map> edgeLegality = new HashMap<>(); +private Map> edgeLegality = new EnumMap<>(Direction.class); private boolean allowNoEdges = false; public GraphFilter() { @@ -118,7 +119,7 @@ public final class GraphFilter implements Cloneable, Serializable { throw GraphComputer.Exceptions.edgeFilterAccessesAdjacentVertices(edgeFilter); this.edgeFilter = edgeFilter.asAdmin().clone(); -this.edgeLegality = new HashMap<>(); +this.edgeLegality = new EnumMap<>(Direction.class); this.edgeLegality.put(Direction.OUT, new HashMap<>()); this.edgeLegality.put(Direction.IN, new HashMap<>()); this.edgeLegality.put(Direction.BOTH, new HashMap<>()); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e1865a9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java index c32777b..cc0e6b4 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java @@ -39,7 +39,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; import java.util.Collections; -import java.util.HashMap; +import java.util.EnumMap; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -77,7 +77,7 @@ public final class GraphFilterStrategy extends AbstractTraversalStrategy> directionLabels = new HashMap<>(); +final Map> directionLabels = new EnumMap<>(Direction.class); final Set outLabels = new HashSet<>(); final Set inLabels = new HashSet<>(); final Set bothLabels = new HashSet<>(); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e1865a9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java index b2379ce..86bbf98 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java +++
[1/5] tinkerpop git commit: Optimazes Map with enum using the EnumMap implementation
Repository: tinkerpop Updated Branches: refs/heads/master e330ad67d -> 2d69efd50 Optimazes Map with enum using the EnumMap implementation Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/9e1865a9 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9e1865a9 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9e1865a9 Branch: refs/heads/master Commit: 9e1865a98d9350451d29dc837e053109d714d7e3 Parents: fcbce50 Author: Otavio Santana Authored: Wed Oct 3 14:17:07 2018 -0300 Committer: Otavio Santana Committed: Wed Oct 3 14:17:07 2018 -0300 -- .../apache/tinkerpop/gremlin/process/computer/GraphFilter.java | 5 +++-- .../traversal/strategy/optimization/GraphFilterStrategy.java| 4 ++-- .../gremlin/structure/util/star/StarGraphGryoSerializer.java| 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e1865a9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java index 3718d16..65d74d2 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphFilter.java @@ -31,6 +31,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import java.io.Serializable; import java.util.Collections; +import java.util.EnumMap; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -80,7 +81,7 @@ public final class GraphFilter implements Cloneable, Serializable { private Traversal.Admin vertexFilter = null; private Traversal.Admin edgeFilter = null; -private Map> edgeLegality = new HashMap<>(); +private Map> edgeLegality = new EnumMap<>(Direction.class); private boolean allowNoEdges = false; public GraphFilter() { @@ -118,7 +119,7 @@ public final class GraphFilter implements Cloneable, Serializable { throw GraphComputer.Exceptions.edgeFilterAccessesAdjacentVertices(edgeFilter); this.edgeFilter = edgeFilter.asAdmin().clone(); -this.edgeLegality = new HashMap<>(); +this.edgeLegality = new EnumMap<>(Direction.class); this.edgeLegality.put(Direction.OUT, new HashMap<>()); this.edgeLegality.put(Direction.IN, new HashMap<>()); this.edgeLegality.put(Direction.BOTH, new HashMap<>()); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e1865a9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java index c32777b..cc0e6b4 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/GraphFilterStrategy.java @@ -39,7 +39,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; import java.util.Collections; -import java.util.HashMap; +import java.util.EnumMap; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -77,7 +77,7 @@ public final class GraphFilterStrategy extends AbstractTraversalStrategy> directionLabels = new HashMap<>(); +final Map> directionLabels = new EnumMap<>(Direction.class); final Set outLabels = new HashSet<>(); final Set inLabels = new HashSet<>(); final Set bothLabels = new HashSet<>(); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e1865a9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java index b2379ce..86bbf98 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java +++
[2/5] tinkerpop git commit: reverts class StarGraphGryoSerializer
reverts class StarGraphGryoSerializer Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/48d5d1d4 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/48d5d1d4 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/48d5d1d4 Branch: refs/heads/master Commit: 48d5d1d4d33cd1d95354062764858e1a1b4e5d38 Parents: 9e1865a Author: Otavio Santana Authored: Wed Oct 3 15:11:00 2018 -0300 Committer: Otavio Santana Committed: Wed Oct 3 15:11:00 2018 -0300 -- .../gremlin/structure/util/star/StarGraphGryoSerializer.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/48d5d1d4/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java index 86bbf98..b2379ce 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGryoSerializer.java @@ -18,7 +18,6 @@ */ package org.apache.tinkerpop.gremlin.structure.util.star; -import java.util.EnumMap; import java.util.HashMap; import java.util.Map; @@ -35,7 +34,7 @@ import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.shaded.ShadedSeri */ public final class StarGraphGryoSerializer extends ShadedSerializerAdapter { -private static final Map CACHE = new EnumMap<>(Direction.class); +private static final Map CACHE = new HashMap<>(); static { CACHE.put(Direction.BOTH, new StarGraphGryoSerializer(Direction.BOTH));
[5/5] tinkerpop git commit: Merge branch 'tp33'
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/2d69efd5 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2d69efd5 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2d69efd5 Branch: refs/heads/master Commit: 2d69efd50373835a2962c48b42f6b81935d24152 Parents: e330ad6 86b1be5 Author: Stephen Mallette Authored: Thu Oct 4 16:47:56 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 16:47:56 2018 -0400 -- .../apache/tinkerpop/gremlin/process/computer/GraphFilter.java | 5 +++-- .../traversal/strategy/optimization/GraphFilterStrategy.java| 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) --
tinkerpop git commit: TINKERPOP-2056 Made use of `NumberHelper` in `Compare` predicates. [Forced Update!]
Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-2056 8759b39ce -> 99d836b35 (forced update) TINKERPOP-2056 Made use of `NumberHelper` in `Compare` predicates. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/99d836b3 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/99d836b3 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/99d836b3 Branch: refs/heads/TINKERPOP-2056 Commit: 99d836b357c6036d7f0c175537f0d1d8720fecdf Parents: fcbce50 Author: Daniel Kuppitz Authored: Thu Oct 4 07:07:27 2018 -0700 Committer: Daniel Kuppitz Committed: Thu Oct 4 13:00:35 2018 -0700 -- .../gremlin/process/traversal/Compare.java | 63 ++-- .../gremlin/process/traversal/PTest.java| 10 +++- 2 files changed, 27 insertions(+), 46 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/99d836b3/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Compare.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Compare.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Compare.java index 7d0d071..4b9063f 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Compare.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Compare.java @@ -18,7 +18,6 @@ */ package org.apache.tinkerpop.gremlin.process.traversal; -import java.math.BigDecimal; import java.util.function.BiPredicate; /** @@ -28,14 +27,13 @@ import java.util.function.BiPredicate; * @author Marko A. Rodriguez (http://markorodriguez.com) * @author Stephen Mallette (http://stephen.genoprime.com) * @author Matt Frantz (http://github.com/mhfrantz) + * @author Daniel Kuppitz (http://gemlin.guru) */ public enum Compare implements BiPredicate { + /** - * Evaluates if the first object is equal to the second. If both are of type {@link Number} but not of the - * same class (i.e. double for the first object and long for the second object) both values are converted to - * {@link BigDecimal} so that it can be evaluated via {@link BigDecimal#compareTo}. Otherwise they are evaluated - * via {@link Object#equals(Object)}. Testing against {@link Number#doubleValue()} enables the compare - * operations to be a bit more forgiving with respect to comparing different number types. + * Evaluates if the first object is equal to the second. If both are of type {@link Number}, {@link NumberHelper} + * will be used for the comparison, thus enabling the comparison of only values, ignoring the number types. * * @since 3.0.0-incubating */ @@ -43,8 +41,7 @@ public enum Compare implements BiPredicate { @Override public boolean test(final Object first, final Object second) { return null == first ? null == second : (first instanceof Number && second instanceof Number -&& !first.getClass().equals(second.getClass()) -? big((Number) first).compareTo(big((Number) second)) == 0 +? NumberHelper.compare((Number) first, (Number) second) == 0 : first.equals(second)); } @@ -58,11 +55,8 @@ public enum Compare implements BiPredicate { }, /** - * Evaluates if the first object is not equal to the second. If both are of type {@link Number} but not of the - * same class (i.e. double for the first object and long for the second object) both values are converted to - * {@link BigDecimal} so that it can be evaluated via {@link BigDecimal#equals}. Otherwise they are evaluated - * via {@link Object#equals(Object)}. Testing against {@link Number#doubleValue()} enables the compare - * operations to be a bit more forgiving with respect to comparing different number types. + * Evaluates if the first object is not equal to the second. If both are of type {@link Number}, {@link NumberHelper} + * will be used for the comparison, thus enabling the comparison of only values, ignoring the number types. * * @since 3.0.0-incubating */ @@ -82,11 +76,8 @@ public enum Compare implements BiPredicate { }, /** - * Evaluates if the first object is greater than the second. If both are of type {@link Number} but not of the - * same class (i.e. double for the first object and long for the second object) both values are converted to - * {@link BigDecimal} so that it can be evaluated via {@link BigDecimal#compareTo}. Otherwise they are evaluated - * via {@link Comparable#compareTo(Object)}. Testing against {@link BigDecimal#compareTo}
[1/7] tinkerpop git commit: TINKERPOP-2055 Added support for special Double values
Repository: tinkerpop Updated Branches: refs/heads/tp32 b510613b1 -> 80fa89bdf TINKERPOP-2055 Added support for special Double values Includes Nan and the infinity values. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/afc12bd2 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/afc12bd2 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/afc12bd2 Branch: refs/heads/tp32 Commit: afc12bd27bc9c4c26b3ba2594c4c0810d5d76421 Parents: e7af98b Author: Stephen Mallette Authored: Tue Oct 2 15:35:53 2018 -0400 Committer: Stephen Mallette Committed: Tue Oct 2 15:35:53 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../io/graphson/GraphSONSerializersV2d0.java | 19 --- .../graphson/GraphSONMapperEmbeddedTypeTest.java | 15 +++ 3 files changed, 32 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/afc12bd2/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index e93c1c9..33d35d3 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -37,6 +37,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. +* Added support for `Double.NaN`, `Double.POSITIVE_INFINITY` and `Double.NEGATIVE_INFINITY`. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. * Added better internal processing of `Column` in `by(Function)`. * Added `hasNext()` support on `Traversal` for `gremlin-python`. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/afc12bd2/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java index 2ddb37a..177e2d0 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java @@ -677,7 +677,7 @@ class GraphSONSerializersV2d0 { } @Override -public Integer deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { +public Integer deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException { return jsonParser.getIntValue(); } @@ -694,8 +694,21 @@ class GraphSONSerializersV2d0 { } @Override -public Double deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { -return jsonParser.getDoubleValue(); +public Double deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException { +if (jsonParser.getCurrentToken().isNumeric()) +return jsonParser.getDoubleValue(); +else { +final String numberText = jsonParser.getValueAsString(); +if ("NaN".equalsIgnoreCase(numberText)) +return Double.NaN; +else if ("-Infinity".equals(numberText) || "-INF".equalsIgnoreCase(numberText)) +return Double.NEGATIVE_INFINITY; +else if ("Infinity".equals(numberText) || "INF".equals(numberText)) +return Double.POSITIVE_INFINITY; +else +throw new IllegalStateException("Double value unexpected: " + numberText); +} + } @Override http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/afc12bd2/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java -- diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java index 9079c8a..e5f2693 100644 ---
[7/7] tinkerpop git commit: Merge branch 'TINKERPOP-2055' into tp32
Merge branch 'TINKERPOP-2055' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/80fa89bd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/80fa89bd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/80fa89bd Branch: refs/heads/tp32 Commit: 80fa89bdff687f4dcd3c48965be7cb9478fadccc Parents: b510613 bd7048d Author: Stephen Mallette Authored: Thu Oct 4 14:03:44 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:03:44 2018 -0400 -- CHANGELOG.asciidoc | 1 + docs/src/dev/io/graphson.asciidoc | 2 + .../io/graphson/GraphSONSerializersV2d0.java| 19 -- .../GraphSONMapperEmbeddedTypeTest.java | 15 .../IO/GraphSON/GraphSONReaderTests.cs | 38 ++- .../IO/GraphSON/GraphSONWriterTests.cs | 30 +++ .../lib/structure/io/type-serializers.js| 30 ++- .../test/unit/graphson-test.js | 39 .../gremlin_python/structure/io/graphson.py | 26 + .../jython/tests/structure/io/test_graphson.py | 25 + 10 files changed, 218 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/80fa89bd/CHANGELOG.asciidoc -- diff --cc CHANGELOG.asciidoc index f3340cc,33d35d3..a7e6388 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@@ -38,10 -37,8 +38,11 @@@ image::https://raw.githubusercontent.co * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. + * Added support for `Double.NaN`, `Double.POSITIVE_INFINITY` and `Double.NEGATIVE_INFINITY`. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. +* Added `Cluster` configuration option to set a custom validation script to use to test server connectivity in the Java driver. +* Improved ability of `GroovyTranslator` to handle more types supported by GraphSON. +* Improved ability of `GroovyTranslator` to handle custom types. * Added better internal processing of `Column` in `by(Function)`. * Added `hasNext()` support on `Traversal` for `gremlin-python`. * Added support for additional extended types in Gremlin.Net with `decimal`, `TimeSpan`, `BigInteger`, `byte`, `byte[]`, `char` and `short`.
[2/7] tinkerpop git commit: TINKERPOP-2055 Support for special numbers in python
TINKERPOP-2055 Support for special numbers in python Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/854914e6 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/854914e6 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/854914e6 Branch: refs/heads/tp32 Commit: 854914e6e3adbf7f0854eb0fec0c3a38b61d4644 Parents: afc12bd Author: Stephen Mallette Authored: Tue Oct 2 16:55:50 2018 -0400 Committer: Stephen Mallette Committed: Tue Oct 2 16:55:50 2018 -0400 -- .../gremlin_python/structure/io/graphson.py | 26 .../jython/tests/structure/io/test_graphson.py | 25 +++ 2 files changed, 51 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/854914e6/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py -- diff --git a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py index 24e86bb..f3411ba 100644 --- a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py +++ b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py @@ -20,6 +20,7 @@ import datetime import json import time import uuid +import math from collections import OrderedDict import six @@ -381,6 +382,31 @@ class FloatIO(_NumberIO): graphson_type = "g:Float" graphson_base_type = "Float" +@classmethod +def dictify(cls, n, writer): +if isinstance(n, bool): # because isinstance(False, int) and isinstance(True, int) +return n +elif math.isnan(n): +return GraphSONUtil.typedValue(cls.graphson_base_type, "NaN") +elif math.isinf(n) and n > 0: +return GraphSONUtil.typedValue(cls.graphson_base_type, "Infinity") +elif math.isinf(n) and n < 0: +return GraphSONUtil.typedValue(cls.graphson_base_type, "-Infinity") +else: +return GraphSONUtil.typedValue(cls.graphson_base_type, n) + +@classmethod +def objectify(cls, v, _): +if isinstance(v, str): +if v == 'NaN': +return float('nan') +elif v == "Infinity": +return float('inf') +elif v == "-Infinity": +return float('-inf') + +return cls.python_type(v) + class DoubleIO(FloatIO): graphson_type = "g:Double" http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/854914e6/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py -- diff --git a/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py b/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py index 928b33f..37e99c6 100644 --- a/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py +++ b/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py @@ -22,6 +22,7 @@ import datetime import time import json import uuid +import math from mock import Mock @@ -70,6 +71,27 @@ class TestGraphSONReader(object): })) assert isinstance(x, float) assert 31.2 == x +## +x = self.graphson_reader.readObject(json.dumps({ +"@type": "g:Double", +"@value": "NaN" +})) +assert isinstance(x, float) +assert math.isnan(x) +## +x = self.graphson_reader.readObject(json.dumps({ +"@type": "g:Double", +"@value": "Infinity" +})) +assert isinstance(x, float) +assert math.isinf(x) and x > 0 +## +x = self.graphson_reader.readObject(json.dumps({ +"@type": "g:Double", +"@value": "-Infinity" +})) +assert isinstance(x, float) +assert math.isinf(x) and x < 0 def test_graph(self): vertex = self.graphson_reader.readObject( @@ -163,6 +185,9 @@ class TestGraphSONWriter(object): assert {"@type": "g:Int64", "@value": 2} == json.loads(self.graphson_writer.writeObject(long(2))) assert {"@type": "g:Int32", "@value": 1} == json.loads(self.graphson_writer.writeObject(1)) assert {"@type": "g:Double", "@value": 3.2} == json.loads(self.graphson_writer.writeObject(3.2)) +assert {"@type": "g:Double", "@value": "NaN"} == json.loads(self.graphson_writer.writeObject(float('nan'))) +assert {"@type": "g:Double", "@value": "Infinity"} == json.loads(self.graphson_writer.writeObject(float('inf'))) +assert {"@type": "g:Double", "@value": "-Infinity"} == json.loads(self.graphson_writer.writeObject(float('-inf'))) assert """true""" ==
[6/7] tinkerpop git commit: TINKERPOP-2055 Minor comment fixes
TINKERPOP-2055 Minor comment fixes Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/bd7048dd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/bd7048dd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/bd7048dd Branch: refs/heads/tp32 Commit: bd7048dda3e9fb20b717412ee708cffc62f2ca41 Parents: a083fbf Author: Stephen Mallette Authored: Thu Oct 4 14:02:08 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:02:19 2018 -0400 -- .../javascript/gremlin-javascript/test/unit/graphson-test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bd7048dd/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 a1ac0d6..66a36c6 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,7 +46,7 @@ describe('GraphSONReader', function () { assert.strictEqual(result, item[1]); }); }); - it('should parse GraphSON Nan from GraphSON', function () { + it('should parse GraphSON NaN from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double", @@ -54,7 +54,7 @@ describe('GraphSONReader', function () { }); assert.ok(isNaN(result)); }); - it('should parse GraphSON -Infinity and Nan from GraphSON', function () { + it('should parse GraphSON -Infinity from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double", @@ -62,7 +62,7 @@ describe('GraphSONReader', function () { }); assert.strictEqual(result, Number.NEGATIVE_INFINITY); }); - it('should parse GraphSON Infinity and Nan from GraphSON', function () { + it('should parse GraphSON Infinity from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double",
[4/7] tinkerpop git commit: TINKERPOP-2055 Added tests for .Net on special numbers
TINKERPOP-2055 Added tests for .Net on special numbers Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b5420278 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b5420278 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b5420278 Branch: refs/heads/tp32 Commit: b542027825fe905c0c46b81a00fe7dfd5275e8c6 Parents: 2d3041f Author: Stephen Mallette Authored: Wed Oct 3 05:11:56 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 05:11:56 2018 -0400 -- .../IO/GraphSON/GraphSONReaderTests.cs | 38 ++-- .../IO/GraphSON/GraphSONWriterTests.cs | 30 2 files changed, 66 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b5420278/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs -- diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs index 74bf385..08a91ae 100644 --- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs @@ -24,11 +24,9 @@ using System; using System.Collections.Generic; using System.Numerics; -using Gremlin.Net.Process.Traversal; using Gremlin.Net.Structure; using Gremlin.Net.Structure.IO.GraphSON; using Moq; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Xunit; @@ -178,6 +176,42 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON } [Fact] +public void ShouldDeserializeNaN() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'NaN'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.NaN, deserializedValue); +} + +[Fact] +public void ShouldDeserializePositiveInfinity() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'Infinity'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.PositiveInfinity, deserializedValue); +} + +[Fact] +public void ShouldDeserializeNegativeInfinity() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'-Infinity'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.NegativeInfinity, deserializedValue); +} + +[Fact] public void ShouldDeserializeDecimal() { var serializedValue = "{\"@type\":\"gx:BigDecimal\",\"@value\":-8.201}"; http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b5420278/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs -- diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs index a544fb3..13fbddc 100644 --- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs @@ -81,6 +81,36 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON } [Fact] +public void ShouldSerializeNaN() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.NaN); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"NaN\"}", graphSon); +} + +[Fact] +public void ShouldSerializePositiveInfinity() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.PositiveInfinity); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"Infinity\"}", graphSon); +} + +[Fact] +public void ShouldSerializeNegativeInfinity() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.NegativeInfinity); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"-Infinity\"}", graphSon); +} + +
[5/7] tinkerpop git commit: TINKERPOP-2055 Updated IO docs to include special numbers
TINKERPOP-2055 Updated IO docs to include special numbers Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/a083fbff Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a083fbff Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a083fbff Branch: refs/heads/tp32 Commit: a083fbff62fcc38a3dae9b138f56b0d052e0c143 Parents: b542027 Author: Stephen Mallette Authored: Wed Oct 3 05:30:27 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 05:30:27 2018 -0400 -- docs/src/dev/io/graphson.asciidoc | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a083fbff/docs/src/dev/io/graphson.asciidoc -- diff --git a/docs/src/dev/io/graphson.asciidoc b/docs/src/dev/io/graphson.asciidoc index c120634..064ac2e 100644 --- a/docs/src/dev/io/graphson.asciidoc +++ b/docs/src/dev/io/graphson.asciidoc @@ -1491,6 +1491,8 @@ types. By default, TinkerPop types will have the namespace "g" (or "gx" for "ext Double +While the `@value` is expected to be a JSON number, it might also be a `String` of `NaN`, `Infinity` or `-Infinity`. + [source,json] {
[3/7] tinkerpop git commit: TINKERPOP-2055 Added special number handling in javascript
TINKERPOP-2055 Added special number handling in javascript Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2d3041f2 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2d3041f2 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2d3041f2 Branch: refs/heads/tp32 Commit: 2d3041f226310379c966214461c79cf47432f4c9 Parents: 854914e Author: Stephen Mallette Authored: Wed Oct 3 04:33:40 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 04:33:40 2018 -0400 -- .../lib/structure/io/type-serializers.js| 30 ++- .../test/unit/graphson-test.js | 39 2 files changed, 67 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2d3041f2/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 fdf049f..5583c47 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 @@ -49,11 +49,37 @@ class TypeSerializer { class NumberSerializer extends TypeSerializer { serialize(item) { -return item; +if (isNaN(item)) { + return { +[typeKey]: 'g:Double', +[valueKey]: 'NaN' + }; +} else if (item === Number.POSITIVE_INFINITY) { + return { +[typeKey]: 'g:Double', +[valueKey]: 'Infinity' + }; +} else if (item === Number.NEGATIVE_INFINITY) { + return { +[typeKey]: 'g:Double', +[valueKey]: '-Infinity' + }; +} else { + return item; +} } deserialize(obj) { -return parseFloat(obj[valueKey]); +var val = obj[valueKey]; +if (val === 'NaN') { + return NaN; +} else if (val === 'Infinity') { + return Number.POSITIVE_INFINITY; +} else if (val === '-Infinity') { + return Number.NEGATIVE_INFINITY; +} else { + return parseFloat(val); +} } canBeUsedFor(value) { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2d3041f2/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 b459407..a1ac0d6 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,30 @@ describe('GraphSONReader', function () { assert.strictEqual(result, item[1]); }); }); + it('should parse GraphSON Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "NaN" + }); + assert.ok(isNaN(result)); + }); + it('should parse GraphSON -Infinity and Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "-Infinity" + }); + assert.strictEqual(result, Number.NEGATIVE_INFINITY); + }); + it('should parse GraphSON Infinity and Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "Infinity" + }); + assert.strictEqual(result, Number.POSITIVE_INFINITY); + }); it('should parse Date', function() { const obj = { "@type" : "g:Date", "@value" : 1481750076295 }; const reader = new GraphSONReader(); @@ -102,6 +126,21 @@ describe('GraphSONWriter', function () { const writer = new GraphSONWriter(); assert.strictEqual(writer.write(2), '2'); }); + it('should write NaN', function () { +const writer = new GraphSONWriter(); +const expected = JSON.stringify({ "@type" : "g:Double", "@value" : "NaN" }); +assert.strictEqual(writer.write(NaN), expected); + }); + it('should write Infinity', function () { +const writer = new GraphSONWriter(); +const expected = JSON.stringify({ "@type" : "g:Double", "@value" : "Infinity" }); +assert.strictEqual(writer.write(Number.POSITIVE_INFINITY), expected); + }); + it('should write -Infinity',
[9/9] tinkerpop git commit: TINKERPOP-2055 Support NaN/Infinity on GraphSON 3.0
TINKERPOP-2055 Support NaN/Infinity on GraphSON 3.0 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/5b9b81fd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/5b9b81fd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/5b9b81fd Branch: refs/heads/tp33 Commit: 5b9b81fdea9778f777a01aa2a70bc93510f16399 Parents: 28bf304 Author: Stephen Mallette Authored: Thu Oct 4 14:53:04 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:53:04 2018 -0400 -- .../structure/io/graphson/GraphSONModule.java | 2 +- .../io/graphson/GraphSONSerializersV3d0.java| 23 - .../IO/GraphSON/GraphSONReaderTests.cs | 7 +++--- .../IO/GraphSON/GraphSONWriterTests.cs | 2 +- .../gremlin_python/structure/io/graphsonV3d0.py | 26 .../tests/structure/io/test_graphsonV3d0.py | 22 + 6 files changed, 71 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5b9b81fd/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 2e795a5..39f1927 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 @@ -254,7 +254,7 @@ abstract class GraphSONModule extends TinkerPopJacksonModule { // numbers addDeserializer(Integer.class, new GraphSONSerializersV3d0.IntegerJackonsDeserializer()); -addDeserializer(Double.class, new GraphSONSerializersV3d0.DoubleJackonsDeserializer()); +addDeserializer(Double.class, new GraphSONSerializersV3d0.DoubleJacksonDeserializer()); // traversal addDeserializer(Bytecode.class, new TraversalSerializersV3d0.BytecodeJacksonDeserializer()); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5b9b81fd/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV3d0.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV3d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV3d0.java index 8c601b1..8d80478 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV3d0.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV3d0.java @@ -47,11 +47,9 @@ import org.apache.tinkerpop.shaded.jackson.core.JsonProcessingException; import org.apache.tinkerpop.shaded.jackson.core.JsonToken; import org.apache.tinkerpop.shaded.jackson.databind.DeserializationContext; import org.apache.tinkerpop.shaded.jackson.databind.JavaType; -import org.apache.tinkerpop.shaded.jackson.databind.JsonNode; import org.apache.tinkerpop.shaded.jackson.databind.SerializerProvider; import org.apache.tinkerpop.shaded.jackson.databind.deser.std.StdDeserializer; import org.apache.tinkerpop.shaded.jackson.databind.jsontype.TypeSerializer; -import org.apache.tinkerpop.shaded.jackson.databind.node.ArrayNode; import org.apache.tinkerpop.shaded.jackson.databind.ser.std.StdKeySerializer; import org.apache.tinkerpop.shaded.jackson.databind.ser.std.StdScalarSerializer; import org.apache.tinkerpop.shaded.jackson.databind.ser.std.StdSerializer; @@ -705,15 +703,28 @@ class GraphSONSerializersV3d0 { } } -static class DoubleJackonsDeserializer extends StdDeserializer { +static class DoubleJacksonDeserializer extends StdDeserializer { -protected DoubleJackonsDeserializer() { +protected DoubleJacksonDeserializer() { super(Double.class); } @Override -public Double deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { -return jsonParser.getDoubleValue(); +public Double deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException { +if (jsonParser.getCurrentToken().isNumeric()) +return jsonParser.getDoubleValue(); +else { +final String numberText = jsonParser.getValueAsString(); +if
[2/9] tinkerpop git commit: TINKERPOP-2055 Support for special numbers in python
TINKERPOP-2055 Support for special numbers in python Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/854914e6 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/854914e6 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/854914e6 Branch: refs/heads/tp33 Commit: 854914e6e3adbf7f0854eb0fec0c3a38b61d4644 Parents: afc12bd Author: Stephen Mallette Authored: Tue Oct 2 16:55:50 2018 -0400 Committer: Stephen Mallette Committed: Tue Oct 2 16:55:50 2018 -0400 -- .../gremlin_python/structure/io/graphson.py | 26 .../jython/tests/structure/io/test_graphson.py | 25 +++ 2 files changed, 51 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/854914e6/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py -- diff --git a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py index 24e86bb..f3411ba 100644 --- a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py +++ b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py @@ -20,6 +20,7 @@ import datetime import json import time import uuid +import math from collections import OrderedDict import six @@ -381,6 +382,31 @@ class FloatIO(_NumberIO): graphson_type = "g:Float" graphson_base_type = "Float" +@classmethod +def dictify(cls, n, writer): +if isinstance(n, bool): # because isinstance(False, int) and isinstance(True, int) +return n +elif math.isnan(n): +return GraphSONUtil.typedValue(cls.graphson_base_type, "NaN") +elif math.isinf(n) and n > 0: +return GraphSONUtil.typedValue(cls.graphson_base_type, "Infinity") +elif math.isinf(n) and n < 0: +return GraphSONUtil.typedValue(cls.graphson_base_type, "-Infinity") +else: +return GraphSONUtil.typedValue(cls.graphson_base_type, n) + +@classmethod +def objectify(cls, v, _): +if isinstance(v, str): +if v == 'NaN': +return float('nan') +elif v == "Infinity": +return float('inf') +elif v == "-Infinity": +return float('-inf') + +return cls.python_type(v) + class DoubleIO(FloatIO): graphson_type = "g:Double" http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/854914e6/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py -- diff --git a/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py b/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py index 928b33f..37e99c6 100644 --- a/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py +++ b/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py @@ -22,6 +22,7 @@ import datetime import time import json import uuid +import math from mock import Mock @@ -70,6 +71,27 @@ class TestGraphSONReader(object): })) assert isinstance(x, float) assert 31.2 == x +## +x = self.graphson_reader.readObject(json.dumps({ +"@type": "g:Double", +"@value": "NaN" +})) +assert isinstance(x, float) +assert math.isnan(x) +## +x = self.graphson_reader.readObject(json.dumps({ +"@type": "g:Double", +"@value": "Infinity" +})) +assert isinstance(x, float) +assert math.isinf(x) and x > 0 +## +x = self.graphson_reader.readObject(json.dumps({ +"@type": "g:Double", +"@value": "-Infinity" +})) +assert isinstance(x, float) +assert math.isinf(x) and x < 0 def test_graph(self): vertex = self.graphson_reader.readObject( @@ -163,6 +185,9 @@ class TestGraphSONWriter(object): assert {"@type": "g:Int64", "@value": 2} == json.loads(self.graphson_writer.writeObject(long(2))) assert {"@type": "g:Int32", "@value": 1} == json.loads(self.graphson_writer.writeObject(1)) assert {"@type": "g:Double", "@value": 3.2} == json.loads(self.graphson_writer.writeObject(3.2)) +assert {"@type": "g:Double", "@value": "NaN"} == json.loads(self.graphson_writer.writeObject(float('nan'))) +assert {"@type": "g:Double", "@value": "Infinity"} == json.loads(self.graphson_writer.writeObject(float('inf'))) +assert {"@type": "g:Double", "@value": "-Infinity"} == json.loads(self.graphson_writer.writeObject(float('-inf'))) assert """true""" ==
[7/9] tinkerpop git commit: Merge branch 'TINKERPOP-2055' into tp32
Merge branch 'TINKERPOP-2055' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/80fa89bd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/80fa89bd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/80fa89bd Branch: refs/heads/tp33 Commit: 80fa89bdff687f4dcd3c48965be7cb9478fadccc Parents: b510613 bd7048d Author: Stephen Mallette Authored: Thu Oct 4 14:03:44 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:03:44 2018 -0400 -- CHANGELOG.asciidoc | 1 + docs/src/dev/io/graphson.asciidoc | 2 + .../io/graphson/GraphSONSerializersV2d0.java| 19 -- .../GraphSONMapperEmbeddedTypeTest.java | 15 .../IO/GraphSON/GraphSONReaderTests.cs | 38 ++- .../IO/GraphSON/GraphSONWriterTests.cs | 30 +++ .../lib/structure/io/type-serializers.js| 30 ++- .../test/unit/graphson-test.js | 39 .../gremlin_python/structure/io/graphson.py | 26 + .../jython/tests/structure/io/test_graphson.py | 25 + 10 files changed, 218 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/80fa89bd/CHANGELOG.asciidoc -- diff --cc CHANGELOG.asciidoc index f3340cc,33d35d3..a7e6388 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@@ -38,10 -37,8 +38,11 @@@ image::https://raw.githubusercontent.co * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. + * Added support for `Double.NaN`, `Double.POSITIVE_INFINITY` and `Double.NEGATIVE_INFINITY`. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. +* Added `Cluster` configuration option to set a custom validation script to use to test server connectivity in the Java driver. +* Improved ability of `GroovyTranslator` to handle more types supported by GraphSON. +* Improved ability of `GroovyTranslator` to handle custom types. * Added better internal processing of `Column` in `by(Function)`. * Added `hasNext()` support on `Traversal` for `gremlin-python`. * Added support for additional extended types in Gremlin.Net with `decimal`, `TimeSpan`, `BigInteger`, `byte`, `byte[]`, `char` and `short`.
[5/9] tinkerpop git commit: TINKERPOP-2055 Updated IO docs to include special numbers
TINKERPOP-2055 Updated IO docs to include special numbers Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/a083fbff Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a083fbff Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a083fbff Branch: refs/heads/tp33 Commit: a083fbff62fcc38a3dae9b138f56b0d052e0c143 Parents: b542027 Author: Stephen Mallette Authored: Wed Oct 3 05:30:27 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 05:30:27 2018 -0400 -- docs/src/dev/io/graphson.asciidoc | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a083fbff/docs/src/dev/io/graphson.asciidoc -- diff --git a/docs/src/dev/io/graphson.asciidoc b/docs/src/dev/io/graphson.asciidoc index c120634..064ac2e 100644 --- a/docs/src/dev/io/graphson.asciidoc +++ b/docs/src/dev/io/graphson.asciidoc @@ -1491,6 +1491,8 @@ types. By default, TinkerPop types will have the namespace "g" (or "gx" for "ext Double +While the `@value` is expected to be a JSON number, it might also be a `String` of `NaN`, `Infinity` or `-Infinity`. + [source,json] {
[4/9] tinkerpop git commit: TINKERPOP-2055 Added tests for .Net on special numbers
TINKERPOP-2055 Added tests for .Net on special numbers Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b5420278 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b5420278 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b5420278 Branch: refs/heads/tp33 Commit: b542027825fe905c0c46b81a00fe7dfd5275e8c6 Parents: 2d3041f Author: Stephen Mallette Authored: Wed Oct 3 05:11:56 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 05:11:56 2018 -0400 -- .../IO/GraphSON/GraphSONReaderTests.cs | 38 ++-- .../IO/GraphSON/GraphSONWriterTests.cs | 30 2 files changed, 66 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b5420278/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs -- diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs index 74bf385..08a91ae 100644 --- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs @@ -24,11 +24,9 @@ using System; using System.Collections.Generic; using System.Numerics; -using Gremlin.Net.Process.Traversal; using Gremlin.Net.Structure; using Gremlin.Net.Structure.IO.GraphSON; using Moq; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Xunit; @@ -178,6 +176,42 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON } [Fact] +public void ShouldDeserializeNaN() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'NaN'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.NaN, deserializedValue); +} + +[Fact] +public void ShouldDeserializePositiveInfinity() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'Infinity'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.PositiveInfinity, deserializedValue); +} + +[Fact] +public void ShouldDeserializeNegativeInfinity() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'-Infinity'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.NegativeInfinity, deserializedValue); +} + +[Fact] public void ShouldDeserializeDecimal() { var serializedValue = "{\"@type\":\"gx:BigDecimal\",\"@value\":-8.201}"; http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b5420278/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs -- diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs index a544fb3..13fbddc 100644 --- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs @@ -81,6 +81,36 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON } [Fact] +public void ShouldSerializeNaN() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.NaN); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"NaN\"}", graphSon); +} + +[Fact] +public void ShouldSerializePositiveInfinity() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.PositiveInfinity); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"Infinity\"}", graphSon); +} + +[Fact] +public void ShouldSerializeNegativeInfinity() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.NegativeInfinity); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"-Infinity\"}", graphSon); +} + +
[1/9] tinkerpop git commit: TINKERPOP-2055 Added support for special Double values
Repository: tinkerpop Updated Branches: refs/heads/tp33 650d1e84d -> 5b9b81fde TINKERPOP-2055 Added support for special Double values Includes Nan and the infinity values. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/afc12bd2 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/afc12bd2 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/afc12bd2 Branch: refs/heads/tp33 Commit: afc12bd27bc9c4c26b3ba2594c4c0810d5d76421 Parents: e7af98b Author: Stephen Mallette Authored: Tue Oct 2 15:35:53 2018 -0400 Committer: Stephen Mallette Committed: Tue Oct 2 15:35:53 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../io/graphson/GraphSONSerializersV2d0.java | 19 --- .../graphson/GraphSONMapperEmbeddedTypeTest.java | 15 +++ 3 files changed, 32 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/afc12bd2/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index e93c1c9..33d35d3 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -37,6 +37,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. +* Added support for `Double.NaN`, `Double.POSITIVE_INFINITY` and `Double.NEGATIVE_INFINITY`. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. * Added better internal processing of `Column` in `by(Function)`. * Added `hasNext()` support on `Traversal` for `gremlin-python`. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/afc12bd2/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java index 2ddb37a..177e2d0 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java @@ -677,7 +677,7 @@ class GraphSONSerializersV2d0 { } @Override -public Integer deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { +public Integer deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException { return jsonParser.getIntValue(); } @@ -694,8 +694,21 @@ class GraphSONSerializersV2d0 { } @Override -public Double deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { -return jsonParser.getDoubleValue(); +public Double deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException { +if (jsonParser.getCurrentToken().isNumeric()) +return jsonParser.getDoubleValue(); +else { +final String numberText = jsonParser.getValueAsString(); +if ("NaN".equalsIgnoreCase(numberText)) +return Double.NaN; +else if ("-Infinity".equals(numberText) || "-INF".equalsIgnoreCase(numberText)) +return Double.NEGATIVE_INFINITY; +else if ("Infinity".equals(numberText) || "INF".equals(numberText)) +return Double.POSITIVE_INFINITY; +else +throw new IllegalStateException("Double value unexpected: " + numberText); +} + } @Override http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/afc12bd2/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java -- diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java index 9079c8a..e5f2693 100644 ---
[3/9] tinkerpop git commit: TINKERPOP-2055 Added special number handling in javascript
TINKERPOP-2055 Added special number handling in javascript Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2d3041f2 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2d3041f2 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2d3041f2 Branch: refs/heads/tp33 Commit: 2d3041f226310379c966214461c79cf47432f4c9 Parents: 854914e Author: Stephen Mallette Authored: Wed Oct 3 04:33:40 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 04:33:40 2018 -0400 -- .../lib/structure/io/type-serializers.js| 30 ++- .../test/unit/graphson-test.js | 39 2 files changed, 67 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2d3041f2/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 fdf049f..5583c47 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 @@ -49,11 +49,37 @@ class TypeSerializer { class NumberSerializer extends TypeSerializer { serialize(item) { -return item; +if (isNaN(item)) { + return { +[typeKey]: 'g:Double', +[valueKey]: 'NaN' + }; +} else if (item === Number.POSITIVE_INFINITY) { + return { +[typeKey]: 'g:Double', +[valueKey]: 'Infinity' + }; +} else if (item === Number.NEGATIVE_INFINITY) { + return { +[typeKey]: 'g:Double', +[valueKey]: '-Infinity' + }; +} else { + return item; +} } deserialize(obj) { -return parseFloat(obj[valueKey]); +var val = obj[valueKey]; +if (val === 'NaN') { + return NaN; +} else if (val === 'Infinity') { + return Number.POSITIVE_INFINITY; +} else if (val === '-Infinity') { + return Number.NEGATIVE_INFINITY; +} else { + return parseFloat(val); +} } canBeUsedFor(value) { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2d3041f2/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 b459407..a1ac0d6 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,30 @@ describe('GraphSONReader', function () { assert.strictEqual(result, item[1]); }); }); + it('should parse GraphSON Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "NaN" + }); + assert.ok(isNaN(result)); + }); + it('should parse GraphSON -Infinity and Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "-Infinity" + }); + assert.strictEqual(result, Number.NEGATIVE_INFINITY); + }); + it('should parse GraphSON Infinity and Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "Infinity" + }); + assert.strictEqual(result, Number.POSITIVE_INFINITY); + }); it('should parse Date', function() { const obj = { "@type" : "g:Date", "@value" : 1481750076295 }; const reader = new GraphSONReader(); @@ -102,6 +126,21 @@ describe('GraphSONWriter', function () { const writer = new GraphSONWriter(); assert.strictEqual(writer.write(2), '2'); }); + it('should write NaN', function () { +const writer = new GraphSONWriter(); +const expected = JSON.stringify({ "@type" : "g:Double", "@value" : "NaN" }); +assert.strictEqual(writer.write(NaN), expected); + }); + it('should write Infinity', function () { +const writer = new GraphSONWriter(); +const expected = JSON.stringify({ "@type" : "g:Double", "@value" : "Infinity" }); +assert.strictEqual(writer.write(Number.POSITIVE_INFINITY), expected); + }); + it('should write -Infinity',
[8/9] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Conflicts: gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/28bf3046 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/28bf3046 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/28bf3046 Branch: refs/heads/tp33 Commit: 28bf30468cca9bbd5c95b3814619801348cfad96 Parents: 650d1e8 80fa89b Author: Stephen Mallette Authored: Thu Oct 4 14:10:54 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:10:54 2018 -0400 -- CHANGELOG.asciidoc | 1 + docs/src/dev/io/graphson.asciidoc | 2 + .../io/graphson/GraphSONSerializersV2d0.java| 19 ++-- .../GraphSONMapperEmbeddedTypeTest.java | 14 ++ .../IO/GraphSON/GraphSONReaderTests.cs | 49 +--- .../IO/GraphSON/GraphSONWriterTests.cs | 32 - .../lib/structure/io/type-serializers.js| 30 +++- .../test/unit/graphson-test.js | 39 .../gremlin_python/structure/io/graphsonV2d0.py | 26 +++ .../tests/structure/io/test_graphsonV2d0.py | 25 ++ 10 files changed, 224 insertions(+), 13 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28bf3046/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28bf3046/docs/src/dev/io/graphson.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28bf3046/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28bf3046/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java -- diff --cc gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java index a375e3b,e5f2693..c9400cd --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java @@@ -44,16 -44,8 +44,17 @@@ import java.time.ZoneOffset import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Map; +import java.util.Set; +import static org.hamcrest.CoreMatchers.any; +import static org.hamcrest.Matchers.either; ++import static org.hamcrest.core.IsNot.not; import static org.hamcrest.core.StringStartsWith.startsWith; import static org.junit.Assert.assertEquals; import static org.junit.Assume.assumeThat; @@@ -85,58 -74,21 +86,71 @@@ public class GraphSONMapperEmbeddedType public String version; @Test + public void shouldHandleNumberConstants() throws Exception { -assumeThat(version, startsWith("v2")); ++assumeThat(version, not(startsWith("v1"))); + + final List o = new ArrayList<>(); + o.add(123.321d); + o.add(Double.NaN); + o.add(Double.NEGATIVE_INFINITY); + o.add(Double.POSITIVE_INFINITY); + + assertEquals(o, serializeDeserialize(mapper, o, List.class)); + } + + @Test +public void shouldHandleMap() throws Exception { +assumeThat(version, startsWith("v3")); + +final Map o = new LinkedHashMap<>(); +o.put("string key", "string value"); +o.put(1, 1); +o.put(1L, 1L); + +final List l = Arrays.asList("test", 1, 5L); +o.put(l, "crazy"); + +assertEquals(o, serializeDeserialize(mapper, o, Map.class)); +} + +@Test +public void shouldHandleList() throws Exception { +assumeThat(version, startsWith("v3")); + +final List o = new ArrayList<>(); +o.add("test"); +o.add(1); +o.add(1); +o.add(1L); +o.add(1L); + +final List l = Arrays.asList("test", 1, 5L); +o.add(l); + +assertEquals(o, serializeDeserialize(mapper, o, List.class)); +} + +
[6/9] tinkerpop git commit: TINKERPOP-2055 Minor comment fixes
TINKERPOP-2055 Minor comment fixes Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/bd7048dd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/bd7048dd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/bd7048dd Branch: refs/heads/tp33 Commit: bd7048dda3e9fb20b717412ee708cffc62f2ca41 Parents: a083fbf Author: Stephen Mallette Authored: Thu Oct 4 14:02:08 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:02:19 2018 -0400 -- .../javascript/gremlin-javascript/test/unit/graphson-test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bd7048dd/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 a1ac0d6..66a36c6 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,7 +46,7 @@ describe('GraphSONReader', function () { assert.strictEqual(result, item[1]); }); }); - it('should parse GraphSON Nan from GraphSON', function () { + it('should parse GraphSON NaN from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double", @@ -54,7 +54,7 @@ describe('GraphSONReader', function () { }); assert.ok(isNaN(result)); }); - it('should parse GraphSON -Infinity and Nan from GraphSON', function () { + it('should parse GraphSON -Infinity from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double", @@ -62,7 +62,7 @@ describe('GraphSONReader', function () { }); assert.strictEqual(result, Number.NEGATIVE_INFINITY); }); - it('should parse GraphSON Infinity and Nan from GraphSON', function () { + it('should parse GraphSON Infinity from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double",
[05/10] tinkerpop git commit: TINKERPOP-2055 Updated IO docs to include special numbers
TINKERPOP-2055 Updated IO docs to include special numbers Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/a083fbff Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a083fbff Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a083fbff Branch: refs/heads/master Commit: a083fbff62fcc38a3dae9b138f56b0d052e0c143 Parents: b542027 Author: Stephen Mallette Authored: Wed Oct 3 05:30:27 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 05:30:27 2018 -0400 -- docs/src/dev/io/graphson.asciidoc | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a083fbff/docs/src/dev/io/graphson.asciidoc -- diff --git a/docs/src/dev/io/graphson.asciidoc b/docs/src/dev/io/graphson.asciidoc index c120634..064ac2e 100644 --- a/docs/src/dev/io/graphson.asciidoc +++ b/docs/src/dev/io/graphson.asciidoc @@ -1491,6 +1491,8 @@ types. By default, TinkerPop types will have the namespace "g" (or "gx" for "ext Double +While the `@value` is expected to be a JSON number, it might also be a `String` of `NaN`, `Infinity` or `-Infinity`. + [source,json] {
[02/10] tinkerpop git commit: TINKERPOP-2055 Support for special numbers in python
TINKERPOP-2055 Support for special numbers in python Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/854914e6 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/854914e6 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/854914e6 Branch: refs/heads/master Commit: 854914e6e3adbf7f0854eb0fec0c3a38b61d4644 Parents: afc12bd Author: Stephen Mallette Authored: Tue Oct 2 16:55:50 2018 -0400 Committer: Stephen Mallette Committed: Tue Oct 2 16:55:50 2018 -0400 -- .../gremlin_python/structure/io/graphson.py | 26 .../jython/tests/structure/io/test_graphson.py | 25 +++ 2 files changed, 51 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/854914e6/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py -- diff --git a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py index 24e86bb..f3411ba 100644 --- a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py +++ b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py @@ -20,6 +20,7 @@ import datetime import json import time import uuid +import math from collections import OrderedDict import six @@ -381,6 +382,31 @@ class FloatIO(_NumberIO): graphson_type = "g:Float" graphson_base_type = "Float" +@classmethod +def dictify(cls, n, writer): +if isinstance(n, bool): # because isinstance(False, int) and isinstance(True, int) +return n +elif math.isnan(n): +return GraphSONUtil.typedValue(cls.graphson_base_type, "NaN") +elif math.isinf(n) and n > 0: +return GraphSONUtil.typedValue(cls.graphson_base_type, "Infinity") +elif math.isinf(n) and n < 0: +return GraphSONUtil.typedValue(cls.graphson_base_type, "-Infinity") +else: +return GraphSONUtil.typedValue(cls.graphson_base_type, n) + +@classmethod +def objectify(cls, v, _): +if isinstance(v, str): +if v == 'NaN': +return float('nan') +elif v == "Infinity": +return float('inf') +elif v == "-Infinity": +return float('-inf') + +return cls.python_type(v) + class DoubleIO(FloatIO): graphson_type = "g:Double" http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/854914e6/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py -- diff --git a/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py b/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py index 928b33f..37e99c6 100644 --- a/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py +++ b/gremlin-python/src/main/jython/tests/structure/io/test_graphson.py @@ -22,6 +22,7 @@ import datetime import time import json import uuid +import math from mock import Mock @@ -70,6 +71,27 @@ class TestGraphSONReader(object): })) assert isinstance(x, float) assert 31.2 == x +## +x = self.graphson_reader.readObject(json.dumps({ +"@type": "g:Double", +"@value": "NaN" +})) +assert isinstance(x, float) +assert math.isnan(x) +## +x = self.graphson_reader.readObject(json.dumps({ +"@type": "g:Double", +"@value": "Infinity" +})) +assert isinstance(x, float) +assert math.isinf(x) and x > 0 +## +x = self.graphson_reader.readObject(json.dumps({ +"@type": "g:Double", +"@value": "-Infinity" +})) +assert isinstance(x, float) +assert math.isinf(x) and x < 0 def test_graph(self): vertex = self.graphson_reader.readObject( @@ -163,6 +185,9 @@ class TestGraphSONWriter(object): assert {"@type": "g:Int64", "@value": 2} == json.loads(self.graphson_writer.writeObject(long(2))) assert {"@type": "g:Int32", "@value": 1} == json.loads(self.graphson_writer.writeObject(1)) assert {"@type": "g:Double", "@value": 3.2} == json.loads(self.graphson_writer.writeObject(3.2)) +assert {"@type": "g:Double", "@value": "NaN"} == json.loads(self.graphson_writer.writeObject(float('nan'))) +assert {"@type": "g:Double", "@value": "Infinity"} == json.loads(self.graphson_writer.writeObject(float('inf'))) +assert {"@type": "g:Double", "@value": "-Infinity"} == json.loads(self.graphson_writer.writeObject(float('-inf'))) assert """true""" ==
[09/10] tinkerpop git commit: TINKERPOP-2055 Support NaN/Infinity on GraphSON 3.0
TINKERPOP-2055 Support NaN/Infinity on GraphSON 3.0 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/5b9b81fd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/5b9b81fd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/5b9b81fd Branch: refs/heads/master Commit: 5b9b81fdea9778f777a01aa2a70bc93510f16399 Parents: 28bf304 Author: Stephen Mallette Authored: Thu Oct 4 14:53:04 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:53:04 2018 -0400 -- .../structure/io/graphson/GraphSONModule.java | 2 +- .../io/graphson/GraphSONSerializersV3d0.java| 23 - .../IO/GraphSON/GraphSONReaderTests.cs | 7 +++--- .../IO/GraphSON/GraphSONWriterTests.cs | 2 +- .../gremlin_python/structure/io/graphsonV3d0.py | 26 .../tests/structure/io/test_graphsonV3d0.py | 22 + 6 files changed, 71 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5b9b81fd/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 2e795a5..39f1927 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 @@ -254,7 +254,7 @@ abstract class GraphSONModule extends TinkerPopJacksonModule { // numbers addDeserializer(Integer.class, new GraphSONSerializersV3d0.IntegerJackonsDeserializer()); -addDeserializer(Double.class, new GraphSONSerializersV3d0.DoubleJackonsDeserializer()); +addDeserializer(Double.class, new GraphSONSerializersV3d0.DoubleJacksonDeserializer()); // traversal addDeserializer(Bytecode.class, new TraversalSerializersV3d0.BytecodeJacksonDeserializer()); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5b9b81fd/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV3d0.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV3d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV3d0.java index 8c601b1..8d80478 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV3d0.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV3d0.java @@ -47,11 +47,9 @@ import org.apache.tinkerpop.shaded.jackson.core.JsonProcessingException; import org.apache.tinkerpop.shaded.jackson.core.JsonToken; import org.apache.tinkerpop.shaded.jackson.databind.DeserializationContext; import org.apache.tinkerpop.shaded.jackson.databind.JavaType; -import org.apache.tinkerpop.shaded.jackson.databind.JsonNode; import org.apache.tinkerpop.shaded.jackson.databind.SerializerProvider; import org.apache.tinkerpop.shaded.jackson.databind.deser.std.StdDeserializer; import org.apache.tinkerpop.shaded.jackson.databind.jsontype.TypeSerializer; -import org.apache.tinkerpop.shaded.jackson.databind.node.ArrayNode; import org.apache.tinkerpop.shaded.jackson.databind.ser.std.StdKeySerializer; import org.apache.tinkerpop.shaded.jackson.databind.ser.std.StdScalarSerializer; import org.apache.tinkerpop.shaded.jackson.databind.ser.std.StdSerializer; @@ -705,15 +703,28 @@ class GraphSONSerializersV3d0 { } } -static class DoubleJackonsDeserializer extends StdDeserializer { +static class DoubleJacksonDeserializer extends StdDeserializer { -protected DoubleJackonsDeserializer() { +protected DoubleJacksonDeserializer() { super(Double.class); } @Override -public Double deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { -return jsonParser.getDoubleValue(); +public Double deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException { +if (jsonParser.getCurrentToken().isNumeric()) +return jsonParser.getDoubleValue(); +else { +final String numberText = jsonParser.getValueAsString(); +if
[04/10] tinkerpop git commit: TINKERPOP-2055 Added tests for .Net on special numbers
TINKERPOP-2055 Added tests for .Net on special numbers Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b5420278 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b5420278 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b5420278 Branch: refs/heads/master Commit: b542027825fe905c0c46b81a00fe7dfd5275e8c6 Parents: 2d3041f Author: Stephen Mallette Authored: Wed Oct 3 05:11:56 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 05:11:56 2018 -0400 -- .../IO/GraphSON/GraphSONReaderTests.cs | 38 ++-- .../IO/GraphSON/GraphSONWriterTests.cs | 30 2 files changed, 66 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b5420278/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs -- diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs index 74bf385..08a91ae 100644 --- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs @@ -24,11 +24,9 @@ using System; using System.Collections.Generic; using System.Numerics; -using Gremlin.Net.Process.Traversal; using Gremlin.Net.Structure; using Gremlin.Net.Structure.IO.GraphSON; using Moq; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Xunit; @@ -178,6 +176,42 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON } [Fact] +public void ShouldDeserializeNaN() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'NaN'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.NaN, deserializedValue); +} + +[Fact] +public void ShouldDeserializePositiveInfinity() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'Infinity'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.PositiveInfinity, deserializedValue); +} + +[Fact] +public void ShouldDeserializeNegativeInfinity() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'-Infinity'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.NegativeInfinity, deserializedValue); +} + +[Fact] public void ShouldDeserializeDecimal() { var serializedValue = "{\"@type\":\"gx:BigDecimal\",\"@value\":-8.201}"; http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b5420278/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs -- diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs index a544fb3..13fbddc 100644 --- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs @@ -81,6 +81,36 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON } [Fact] +public void ShouldSerializeNaN() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.NaN); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"NaN\"}", graphSon); +} + +[Fact] +public void ShouldSerializePositiveInfinity() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.PositiveInfinity); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"Infinity\"}", graphSon); +} + +[Fact] +public void ShouldSerializeNegativeInfinity() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.NegativeInfinity); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"-Infinity\"}", graphSon); +} + +
[10/10] tinkerpop git commit: Merge branch 'tp33'
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/e330ad67 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e330ad67 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e330ad67 Branch: refs/heads/master Commit: e330ad67d142316276624617015d3cc477c1ecad Parents: 9e40789 5b9b81f Author: Stephen Mallette Authored: Thu Oct 4 14:53:46 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:53:46 2018 -0400 -- CHANGELOG.asciidoc | 1 + docs/src/dev/io/graphson.asciidoc | 2 + .../structure/io/graphson/GraphSONModule.java | 2 +- .../io/graphson/GraphSONSerializersV2d0.java| 19 ++-- .../io/graphson/GraphSONSerializersV3d0.java| 23 +++--- .../GraphSONMapperEmbeddedTypeTest.java | 14 ++ .../IO/GraphSON/GraphSONReaderTests.cs | 48 +--- .../IO/GraphSON/GraphSONWriterTests.cs | 32 - .../lib/structure/io/type-serializers.js| 30 +++- .../test/unit/graphson-test.js | 39 .../gremlin_python/structure/io/graphsonV2d0.py | 26 +++ .../gremlin_python/structure/io/graphsonV3d0.py | 26 +++ .../tests/structure/io/test_graphsonV2d0.py | 25 ++ .../tests/structure/io/test_graphsonV3d0.py | 22 + 14 files changed, 290 insertions(+), 19 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e330ad67/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e330ad67/docs/src/dev/io/graphson.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e330ad67/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e330ad67/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e330ad67/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e330ad67/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV2d0.py -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e330ad67/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e330ad67/gremlin-python/src/main/jython/tests/structure/io/test_graphsonV2d0.py -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e330ad67/gremlin-python/src/main/jython/tests/structure/io/test_graphsonV3d0.py --
[03/10] tinkerpop git commit: TINKERPOP-2055 Added special number handling in javascript
TINKERPOP-2055 Added special number handling in javascript Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2d3041f2 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2d3041f2 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2d3041f2 Branch: refs/heads/master Commit: 2d3041f226310379c966214461c79cf47432f4c9 Parents: 854914e Author: Stephen Mallette Authored: Wed Oct 3 04:33:40 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 04:33:40 2018 -0400 -- .../lib/structure/io/type-serializers.js| 30 ++- .../test/unit/graphson-test.js | 39 2 files changed, 67 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2d3041f2/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 fdf049f..5583c47 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 @@ -49,11 +49,37 @@ class TypeSerializer { class NumberSerializer extends TypeSerializer { serialize(item) { -return item; +if (isNaN(item)) { + return { +[typeKey]: 'g:Double', +[valueKey]: 'NaN' + }; +} else if (item === Number.POSITIVE_INFINITY) { + return { +[typeKey]: 'g:Double', +[valueKey]: 'Infinity' + }; +} else if (item === Number.NEGATIVE_INFINITY) { + return { +[typeKey]: 'g:Double', +[valueKey]: '-Infinity' + }; +} else { + return item; +} } deserialize(obj) { -return parseFloat(obj[valueKey]); +var val = obj[valueKey]; +if (val === 'NaN') { + return NaN; +} else if (val === 'Infinity') { + return Number.POSITIVE_INFINITY; +} else if (val === '-Infinity') { + return Number.NEGATIVE_INFINITY; +} else { + return parseFloat(val); +} } canBeUsedFor(value) { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2d3041f2/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 b459407..a1ac0d6 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,30 @@ describe('GraphSONReader', function () { assert.strictEqual(result, item[1]); }); }); + it('should parse GraphSON Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "NaN" + }); + assert.ok(isNaN(result)); + }); + it('should parse GraphSON -Infinity and Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "-Infinity" + }); + assert.strictEqual(result, Number.NEGATIVE_INFINITY); + }); + it('should parse GraphSON Infinity and Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "Infinity" + }); + assert.strictEqual(result, Number.POSITIVE_INFINITY); + }); it('should parse Date', function() { const obj = { "@type" : "g:Date", "@value" : 1481750076295 }; const reader = new GraphSONReader(); @@ -102,6 +126,21 @@ describe('GraphSONWriter', function () { const writer = new GraphSONWriter(); assert.strictEqual(writer.write(2), '2'); }); + it('should write NaN', function () { +const writer = new GraphSONWriter(); +const expected = JSON.stringify({ "@type" : "g:Double", "@value" : "NaN" }); +assert.strictEqual(writer.write(NaN), expected); + }); + it('should write Infinity', function () { +const writer = new GraphSONWriter(); +const expected = JSON.stringify({ "@type" : "g:Double", "@value" : "Infinity" }); +assert.strictEqual(writer.write(Number.POSITIVE_INFINITY), expected); + }); + it('should write
[06/10] tinkerpop git commit: TINKERPOP-2055 Minor comment fixes
TINKERPOP-2055 Minor comment fixes Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/bd7048dd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/bd7048dd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/bd7048dd Branch: refs/heads/master Commit: bd7048dda3e9fb20b717412ee708cffc62f2ca41 Parents: a083fbf Author: Stephen Mallette Authored: Thu Oct 4 14:02:08 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:02:19 2018 -0400 -- .../javascript/gremlin-javascript/test/unit/graphson-test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bd7048dd/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 a1ac0d6..66a36c6 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,7 +46,7 @@ describe('GraphSONReader', function () { assert.strictEqual(result, item[1]); }); }); - it('should parse GraphSON Nan from GraphSON', function () { + it('should parse GraphSON NaN from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double", @@ -54,7 +54,7 @@ describe('GraphSONReader', function () { }); assert.ok(isNaN(result)); }); - it('should parse GraphSON -Infinity and Nan from GraphSON', function () { + it('should parse GraphSON -Infinity from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double", @@ -62,7 +62,7 @@ describe('GraphSONReader', function () { }); assert.strictEqual(result, Number.NEGATIVE_INFINITY); }); - it('should parse GraphSON Infinity and Nan from GraphSON', function () { + it('should parse GraphSON Infinity from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double",
[01/10] tinkerpop git commit: TINKERPOP-2055 Added support for special Double values
Repository: tinkerpop Updated Branches: refs/heads/master 9e4078983 -> e330ad67d TINKERPOP-2055 Added support for special Double values Includes Nan and the infinity values. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/afc12bd2 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/afc12bd2 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/afc12bd2 Branch: refs/heads/master Commit: afc12bd27bc9c4c26b3ba2594c4c0810d5d76421 Parents: e7af98b Author: Stephen Mallette Authored: Tue Oct 2 15:35:53 2018 -0400 Committer: Stephen Mallette Committed: Tue Oct 2 15:35:53 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../io/graphson/GraphSONSerializersV2d0.java | 19 --- .../graphson/GraphSONMapperEmbeddedTypeTest.java | 15 +++ 3 files changed, 32 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/afc12bd2/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index e93c1c9..33d35d3 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -37,6 +37,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. +* Added support for `Double.NaN`, `Double.POSITIVE_INFINITY` and `Double.NEGATIVE_INFINITY`. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. * Added better internal processing of `Column` in `by(Function)`. * Added `hasNext()` support on `Traversal` for `gremlin-python`. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/afc12bd2/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java index 2ddb37a..177e2d0 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java @@ -677,7 +677,7 @@ class GraphSONSerializersV2d0 { } @Override -public Integer deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { +public Integer deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException { return jsonParser.getIntValue(); } @@ -694,8 +694,21 @@ class GraphSONSerializersV2d0 { } @Override -public Double deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { -return jsonParser.getDoubleValue(); +public Double deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException { +if (jsonParser.getCurrentToken().isNumeric()) +return jsonParser.getDoubleValue(); +else { +final String numberText = jsonParser.getValueAsString(); +if ("NaN".equalsIgnoreCase(numberText)) +return Double.NaN; +else if ("-Infinity".equals(numberText) || "-INF".equalsIgnoreCase(numberText)) +return Double.NEGATIVE_INFINITY; +else if ("Infinity".equals(numberText) || "INF".equals(numberText)) +return Double.POSITIVE_INFINITY; +else +throw new IllegalStateException("Double value unexpected: " + numberText); +} + } @Override http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/afc12bd2/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java -- diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java index 9079c8a..e5f2693 100644 ---
[08/10] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Conflicts: gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/28bf3046 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/28bf3046 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/28bf3046 Branch: refs/heads/master Commit: 28bf30468cca9bbd5c95b3814619801348cfad96 Parents: 650d1e8 80fa89b Author: Stephen Mallette Authored: Thu Oct 4 14:10:54 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:10:54 2018 -0400 -- CHANGELOG.asciidoc | 1 + docs/src/dev/io/graphson.asciidoc | 2 + .../io/graphson/GraphSONSerializersV2d0.java| 19 ++-- .../GraphSONMapperEmbeddedTypeTest.java | 14 ++ .../IO/GraphSON/GraphSONReaderTests.cs | 49 +--- .../IO/GraphSON/GraphSONWriterTests.cs | 32 - .../lib/structure/io/type-serializers.js| 30 +++- .../test/unit/graphson-test.js | 39 .../gremlin_python/structure/io/graphsonV2d0.py | 26 +++ .../tests/structure/io/test_graphsonV2d0.py | 25 ++ 10 files changed, 224 insertions(+), 13 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28bf3046/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28bf3046/docs/src/dev/io/graphson.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28bf3046/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28bf3046/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java -- diff --cc gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java index a375e3b,e5f2693..c9400cd --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java @@@ -44,16 -44,8 +44,17 @@@ import java.time.ZoneOffset import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Map; +import java.util.Set; +import static org.hamcrest.CoreMatchers.any; +import static org.hamcrest.Matchers.either; ++import static org.hamcrest.core.IsNot.not; import static org.hamcrest.core.StringStartsWith.startsWith; import static org.junit.Assert.assertEquals; import static org.junit.Assume.assumeThat; @@@ -85,58 -74,21 +86,71 @@@ public class GraphSONMapperEmbeddedType public String version; @Test + public void shouldHandleNumberConstants() throws Exception { -assumeThat(version, startsWith("v2")); ++assumeThat(version, not(startsWith("v1"))); + + final List o = new ArrayList<>(); + o.add(123.321d); + o.add(Double.NaN); + o.add(Double.NEGATIVE_INFINITY); + o.add(Double.POSITIVE_INFINITY); + + assertEquals(o, serializeDeserialize(mapper, o, List.class)); + } + + @Test +public void shouldHandleMap() throws Exception { +assumeThat(version, startsWith("v3")); + +final Map o = new LinkedHashMap<>(); +o.put("string key", "string value"); +o.put(1, 1); +o.put(1L, 1L); + +final List l = Arrays.asList("test", 1, 5L); +o.put(l, "crazy"); + +assertEquals(o, serializeDeserialize(mapper, o, Map.class)); +} + +@Test +public void shouldHandleList() throws Exception { +assumeThat(version, startsWith("v3")); + +final List o = new ArrayList<>(); +o.add("test"); +o.add(1); +o.add(1); +o.add(1L); +o.add(1L); + +final List l = Arrays.asList("test", 1, 5L); +o.add(l); + +assertEquals(o, serializeDeserialize(mapper, o, List.class)); +} + +
[07/10] tinkerpop git commit: Merge branch 'TINKERPOP-2055' into tp32
Merge branch 'TINKERPOP-2055' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/80fa89bd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/80fa89bd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/80fa89bd Branch: refs/heads/master Commit: 80fa89bdff687f4dcd3c48965be7cb9478fadccc Parents: b510613 bd7048d Author: Stephen Mallette Authored: Thu Oct 4 14:03:44 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:03:44 2018 -0400 -- CHANGELOG.asciidoc | 1 + docs/src/dev/io/graphson.asciidoc | 2 + .../io/graphson/GraphSONSerializersV2d0.java| 19 -- .../GraphSONMapperEmbeddedTypeTest.java | 15 .../IO/GraphSON/GraphSONReaderTests.cs | 38 ++- .../IO/GraphSON/GraphSONWriterTests.cs | 30 +++ .../lib/structure/io/type-serializers.js| 30 ++- .../test/unit/graphson-test.js | 39 .../gremlin_python/structure/io/graphson.py | 26 + .../jython/tests/structure/io/test_graphson.py | 25 + 10 files changed, 218 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/80fa89bd/CHANGELOG.asciidoc -- diff --cc CHANGELOG.asciidoc index f3340cc,33d35d3..a7e6388 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@@ -38,10 -37,8 +38,11 @@@ image::https://raw.githubusercontent.co * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. + * Added support for `Double.NaN`, `Double.POSITIVE_INFINITY` and `Double.NEGATIVE_INFINITY`. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. +* Added `Cluster` configuration option to set a custom validation script to use to test server connectivity in the Java driver. +* Improved ability of `GroovyTranslator` to handle more types supported by GraphSON. +* Improved ability of `GroovyTranslator` to handle custom types. * Added better internal processing of `Column` in `by(Function)`. * Added `hasNext()` support on `Traversal` for `gremlin-python`. * Added support for additional extended types in Gremlin.Net with `decimal`, `TimeSpan`, `BigInteger`, `byte`, `byte[]`, `char` and `short`.
tinkerpop git commit: TINKERPOP-2055 Minor comment fixes
Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-2055 a083fbff6 -> bd7048dda TINKERPOP-2055 Minor comment fixes Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/bd7048dd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/bd7048dd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/bd7048dd Branch: refs/heads/TINKERPOP-2055 Commit: bd7048dda3e9fb20b717412ee708cffc62f2ca41 Parents: a083fbf Author: Stephen Mallette Authored: Thu Oct 4 14:02:08 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 14:02:19 2018 -0400 -- .../javascript/gremlin-javascript/test/unit/graphson-test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bd7048dd/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 a1ac0d6..66a36c6 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,7 +46,7 @@ describe('GraphSONReader', function () { assert.strictEqual(result, item[1]); }); }); - it('should parse GraphSON Nan from GraphSON', function () { + it('should parse GraphSON NaN from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double", @@ -54,7 +54,7 @@ describe('GraphSONReader', function () { }); assert.ok(isNaN(result)); }); - it('should parse GraphSON -Infinity and Nan from GraphSON', function () { + it('should parse GraphSON -Infinity from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double", @@ -62,7 +62,7 @@ describe('GraphSONReader', function () { }); assert.strictEqual(result, Number.NEGATIVE_INFINITY); }); - it('should parse GraphSON Infinity and Nan from GraphSON', function () { + it('should parse GraphSON Infinity from GraphSON', function () { const reader = new GraphSONReader(); var result = reader.read({ "@type": "g:Double",
[2/2] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Conflicts: gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/650d1e84 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/650d1e84 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/650d1e84 Branch: refs/heads/tp33 Commit: 650d1e84d0b7d6f8a213a67df593c43134e156fe Parents: 2b4c993 b510613 Author: Stephen Mallette Authored: Thu Oct 4 12:11:28 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 12:11:28 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../src/reference/gremlin-applications.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 30 ++-- .../gremlin/driver/ConnectionPool.java | 3 +- .../tinkerpop/gremlin/driver/Settings.java | 15 +++--- .../tinkerpop/gremlin/driver/SettingsTest.java | 8 -- .../server/GremlinDriverIntegrateTest.java | 27 +- 7 files changed, 74 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/650d1e84/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/650d1e84/docs/src/reference/gremlin-applications.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/650d1e84/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java -- diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java index cee1309,c090584..fe1d896 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java @@@ -880,6 -900,28 +891,17 @@@ public final class Cluster } /** + * Specify a valid Gremlin script that can be used to test remote operations. This script should be designed + * to return quickly with the least amount of overhead possible. By default, the script sends an empty string. + * If the graph does not support that sort of script because it requires all scripts to include a reference + * to a graph then a good option might be {@code g.inject()}. + */ + public Builder validationRequest(final String script) { + validationRequest = script; + return this; + } + + /** - * Time in milliseconds to wait before attempting to reconnect to a dead host after it has been marked dead. - * - * @deprecated As of release 3.2.3, the value of the initial delay is now the same as the {@link #reconnectInterval}. - */ -@Deprecated -public Builder reconnectIntialDelay(final int initialDelay) { -this.reconnectInitialDelay = initialDelay; -return this; -} - -/** * Time in milliseconds to wait between retries when attempting to reconnect to a dead host. */ public Builder reconnectInterval(final int interval) { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/650d1e84/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java -- diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java index 37cecb4,c2ae045..61edd86 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java @@@ -409,6 -420,27 +411,11 @@@ final class Settings * {@link org.apache.tinkerpop.gremlin.driver.Channelizer.WebSocketChannelizer}. */ public String channelizer = Channelizer.WebSocketChannelizer.class.getName(); + + /** + * A valid Gremlin script that can be used to test remote operations. + */ + public String validationRequest = "''"; - -/** - * @deprecated as of 3.1.1-incubating, and not replaced as this property was never implemented internally - * as the way to establish sessions - */ -@Deprecated -public String sessionId = null; - -/** - * @deprecated as of 3.1.1-incubating, and not replaced as this property was never implemented internally - * as the way to establish sessions - */ -@Deprecated -public Optional
tinkerpop git commit: TINKERPOP-2044 Configurable traversal to validate host connectivity.
Repository: tinkerpop Updated Branches: refs/heads/tp32 88d6f7786 -> b510613b1 TINKERPOP-2044 Configurable traversal to validate host connectivity. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b510613b Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b510613b Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b510613b Branch: refs/heads/tp32 Commit: b510613b10962a3e8d95c3e590b5f58297227d0e Parents: 88d6f77 Author: Stephen Mallette Authored: Fri Sep 28 15:54:30 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 08:16:44 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../src/reference/gremlin-applications.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 30 ++-- .../gremlin/driver/ConnectionPool.java | 3 +- .../tinkerpop/gremlin/driver/Settings.java | 15 +++--- .../tinkerpop/gremlin/driver/SettingsTest.java | 8 -- .../server/GremlinDriverIntegrateTest.java | 27 +- 7 files changed, 74 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b510613b/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index c4523d8..f3340cc 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -39,6 +39,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. +* Added `Cluster` configuration option to set a custom validation script to use to test server connectivity in the Java driver. * Improved ability of `GroovyTranslator` to handle more types supported by GraphSON. * Improved ability of `GroovyTranslator` to handle custom types. * Added better internal processing of `Column` in `by(Function)`. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b510613b/docs/src/reference/gremlin-applications.asciidoc -- diff --git a/docs/src/reference/gremlin-applications.asciidoc b/docs/src/reference/gremlin-applications.asciidoc index 1cd9964..5607667 100644 --- a/docs/src/reference/gremlin-applications.asciidoc +++ b/docs/src/reference/gremlin-applications.asciidoc @@ -750,6 +750,7 @@ The following table describes the various configuration options for the Gremlin |connectionPool.sslSkipCertValidation |Configures the `TrustManager` to trust all certs without any validation. Should not be used in production.|false |connectionPool.trustStore |File location for a SSL Certificate Chain to use when SSL is enabled. If this value is not provided and SSL is enabled, the default `TrustManager` will be used. |_none_ |connectionPool.trustStorePassword |The password of the `trustStore` if it is password-protected |_none_ +|connectionPool.validationRequest |A script that is used to test server connectivity. A good script to use is one that evaluates quickly and returns no data. The default simply returns an empty string, but if a graph is required by a particular provider, a good traversal might be `g.inject()`. |_''_ |hosts |The list of hosts that the driver will connect to. |localhost |jaasEntry |Sets the `AuthProperties.Property.JAAS_ENTRY` properties for authentication to Gremlin Server. |_none_ |nioPoolSize |Size of the pool for handling request/response operations. |available processors http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b510613b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java -- diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java index 9adaaa1..c090584 100644 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java @@ -25,11 +25,16 @@ import io.netty.handler.ssl.SslContextBuilder; import io.netty.handler.ssl.SslProvider; import io.netty.handler.ssl.util.InsecureTrustManagerFactory; import org.apache.commons.configuration.Configuration; +import org.apache.tinkerpop.gremlin.driver.message.RequestMessage; import org.apache.tinkerpop.gremlin.driver.ser.Serializers; import io.netty.bootstrap.Bootstrap; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import org.apache.commons.lang3.concurrent.BasicThreadFactory; +import
[1/2] tinkerpop git commit: TINKERPOP-2044 Configurable traversal to validate host connectivity.
Repository: tinkerpop Updated Branches: refs/heads/tp33 2b4c993dd -> 650d1e84d TINKERPOP-2044 Configurable traversal to validate host connectivity. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b510613b Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b510613b Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b510613b Branch: refs/heads/tp33 Commit: b510613b10962a3e8d95c3e590b5f58297227d0e Parents: 88d6f77 Author: Stephen Mallette Authored: Fri Sep 28 15:54:30 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 08:16:44 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../src/reference/gremlin-applications.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 30 ++-- .../gremlin/driver/ConnectionPool.java | 3 +- .../tinkerpop/gremlin/driver/Settings.java | 15 +++--- .../tinkerpop/gremlin/driver/SettingsTest.java | 8 -- .../server/GremlinDriverIntegrateTest.java | 27 +- 7 files changed, 74 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b510613b/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index c4523d8..f3340cc 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -39,6 +39,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. +* Added `Cluster` configuration option to set a custom validation script to use to test server connectivity in the Java driver. * Improved ability of `GroovyTranslator` to handle more types supported by GraphSON. * Improved ability of `GroovyTranslator` to handle custom types. * Added better internal processing of `Column` in `by(Function)`. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b510613b/docs/src/reference/gremlin-applications.asciidoc -- diff --git a/docs/src/reference/gremlin-applications.asciidoc b/docs/src/reference/gremlin-applications.asciidoc index 1cd9964..5607667 100644 --- a/docs/src/reference/gremlin-applications.asciidoc +++ b/docs/src/reference/gremlin-applications.asciidoc @@ -750,6 +750,7 @@ The following table describes the various configuration options for the Gremlin |connectionPool.sslSkipCertValidation |Configures the `TrustManager` to trust all certs without any validation. Should not be used in production.|false |connectionPool.trustStore |File location for a SSL Certificate Chain to use when SSL is enabled. If this value is not provided and SSL is enabled, the default `TrustManager` will be used. |_none_ |connectionPool.trustStorePassword |The password of the `trustStore` if it is password-protected |_none_ +|connectionPool.validationRequest |A script that is used to test server connectivity. A good script to use is one that evaluates quickly and returns no data. The default simply returns an empty string, but if a graph is required by a particular provider, a good traversal might be `g.inject()`. |_''_ |hosts |The list of hosts that the driver will connect to. |localhost |jaasEntry |Sets the `AuthProperties.Property.JAAS_ENTRY` properties for authentication to Gremlin Server. |_none_ |nioPoolSize |Size of the pool for handling request/response operations. |available processors http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b510613b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java -- diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java index 9adaaa1..c090584 100644 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java @@ -25,11 +25,16 @@ import io.netty.handler.ssl.SslContextBuilder; import io.netty.handler.ssl.SslProvider; import io.netty.handler.ssl.util.InsecureTrustManagerFactory; import org.apache.commons.configuration.Configuration; +import org.apache.tinkerpop.gremlin.driver.message.RequestMessage; import org.apache.tinkerpop.gremlin.driver.ser.Serializers; import io.netty.bootstrap.Bootstrap; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import org.apache.commons.lang3.concurrent.BasicThreadFactory; +import
[2/3] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Conflicts: gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/650d1e84 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/650d1e84 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/650d1e84 Branch: refs/heads/master Commit: 650d1e84d0b7d6f8a213a67df593c43134e156fe Parents: 2b4c993 b510613 Author: Stephen Mallette Authored: Thu Oct 4 12:11:28 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 12:11:28 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../src/reference/gremlin-applications.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 30 ++-- .../gremlin/driver/ConnectionPool.java | 3 +- .../tinkerpop/gremlin/driver/Settings.java | 15 +++--- .../tinkerpop/gremlin/driver/SettingsTest.java | 8 -- .../server/GremlinDriverIntegrateTest.java | 27 +- 7 files changed, 74 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/650d1e84/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/650d1e84/docs/src/reference/gremlin-applications.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/650d1e84/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java -- diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java index cee1309,c090584..fe1d896 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java @@@ -880,6 -900,28 +891,17 @@@ public final class Cluster } /** + * Specify a valid Gremlin script that can be used to test remote operations. This script should be designed + * to return quickly with the least amount of overhead possible. By default, the script sends an empty string. + * If the graph does not support that sort of script because it requires all scripts to include a reference + * to a graph then a good option might be {@code g.inject()}. + */ + public Builder validationRequest(final String script) { + validationRequest = script; + return this; + } + + /** - * Time in milliseconds to wait before attempting to reconnect to a dead host after it has been marked dead. - * - * @deprecated As of release 3.2.3, the value of the initial delay is now the same as the {@link #reconnectInterval}. - */ -@Deprecated -public Builder reconnectIntialDelay(final int initialDelay) { -this.reconnectInitialDelay = initialDelay; -return this; -} - -/** * Time in milliseconds to wait between retries when attempting to reconnect to a dead host. */ public Builder reconnectInterval(final int interval) { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/650d1e84/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java -- diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java index 37cecb4,c2ae045..61edd86 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java @@@ -409,6 -420,27 +411,11 @@@ final class Settings * {@link org.apache.tinkerpop.gremlin.driver.Channelizer.WebSocketChannelizer}. */ public String channelizer = Channelizer.WebSocketChannelizer.class.getName(); + + /** + * A valid Gremlin script that can be used to test remote operations. + */ + public String validationRequest = "''"; - -/** - * @deprecated as of 3.1.1-incubating, and not replaced as this property was never implemented internally - * as the way to establish sessions - */ -@Deprecated -public String sessionId = null; - -/** - * @deprecated as of 3.1.1-incubating, and not replaced as this property was never implemented internally - * as the way to establish sessions - */ -@Deprecated -public Optional
[3/3] tinkerpop git commit: Merge branch 'tp33'
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/9e407898 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9e407898 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9e407898 Branch: refs/heads/master Commit: 9e4078983bb41a66f17cd33d599168a8ec78295b Parents: 8b69b34 650d1e8 Author: Stephen Mallette Authored: Thu Oct 4 12:12:02 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 12:12:02 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../src/reference/gremlin-applications.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 30 ++-- .../gremlin/driver/ConnectionPool.java | 3 +- .../tinkerpop/gremlin/driver/Settings.java | 15 +++--- .../tinkerpop/gremlin/driver/SettingsTest.java | 8 -- .../server/GremlinDriverIntegrateTest.java | 27 +- 7 files changed, 74 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e407898/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e407898/docs/src/reference/gremlin-applications.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9e407898/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java --
[1/3] tinkerpop git commit: TINKERPOP-2044 Configurable traversal to validate host connectivity.
Repository: tinkerpop Updated Branches: refs/heads/master 8b69b34b6 -> 9e4078983 TINKERPOP-2044 Configurable traversal to validate host connectivity. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b510613b Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b510613b Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b510613b Branch: refs/heads/master Commit: b510613b10962a3e8d95c3e590b5f58297227d0e Parents: 88d6f77 Author: Stephen Mallette Authored: Fri Sep 28 15:54:30 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 08:16:44 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../src/reference/gremlin-applications.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 30 ++-- .../gremlin/driver/ConnectionPool.java | 3 +- .../tinkerpop/gremlin/driver/Settings.java | 15 +++--- .../tinkerpop/gremlin/driver/SettingsTest.java | 8 -- .../server/GremlinDriverIntegrateTest.java | 27 +- 7 files changed, 74 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b510613b/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index c4523d8..f3340cc 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -39,6 +39,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. +* Added `Cluster` configuration option to set a custom validation script to use to test server connectivity in the Java driver. * Improved ability of `GroovyTranslator` to handle more types supported by GraphSON. * Improved ability of `GroovyTranslator` to handle custom types. * Added better internal processing of `Column` in `by(Function)`. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b510613b/docs/src/reference/gremlin-applications.asciidoc -- diff --git a/docs/src/reference/gremlin-applications.asciidoc b/docs/src/reference/gremlin-applications.asciidoc index 1cd9964..5607667 100644 --- a/docs/src/reference/gremlin-applications.asciidoc +++ b/docs/src/reference/gremlin-applications.asciidoc @@ -750,6 +750,7 @@ The following table describes the various configuration options for the Gremlin |connectionPool.sslSkipCertValidation |Configures the `TrustManager` to trust all certs without any validation. Should not be used in production.|false |connectionPool.trustStore |File location for a SSL Certificate Chain to use when SSL is enabled. If this value is not provided and SSL is enabled, the default `TrustManager` will be used. |_none_ |connectionPool.trustStorePassword |The password of the `trustStore` if it is password-protected |_none_ +|connectionPool.validationRequest |A script that is used to test server connectivity. A good script to use is one that evaluates quickly and returns no data. The default simply returns an empty string, but if a graph is required by a particular provider, a good traversal might be `g.inject()`. |_''_ |hosts |The list of hosts that the driver will connect to. |localhost |jaasEntry |Sets the `AuthProperties.Property.JAAS_ENTRY` properties for authentication to Gremlin Server. |_none_ |nioPoolSize |Size of the pool for handling request/response operations. |available processors http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b510613b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java -- diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java index 9adaaa1..c090584 100644 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java @@ -25,11 +25,16 @@ import io.netty.handler.ssl.SslContextBuilder; import io.netty.handler.ssl.SslProvider; import io.netty.handler.ssl.util.InsecureTrustManagerFactory; import org.apache.commons.configuration.Configuration; +import org.apache.tinkerpop.gremlin.driver.message.RequestMessage; import org.apache.tinkerpop.gremlin.driver.ser.Serializers; import io.netty.bootstrap.Bootstrap; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import org.apache.commons.lang3.concurrent.BasicThreadFactory; +import
[43/50] [abbrv] tinkerpop git commit: Merge branch 'TINKERPOP-2049'
Merge branch 'TINKERPOP-2049' Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/3a8f5808 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/3a8f5808 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/3a8f5808 Branch: refs/heads/TINKERPOP-2041 Commit: 3a8f580880796fb81619c3572ab2167088320026 Parents: 2ae8c5b 9b4cddb Author: Stephen Mallette Authored: Thu Oct 4 06:48:39 2018 -0400 Committer: Stephen Mallette Committed: Thu Oct 4 06:48:39 2018 -0400 -- CHANGELOG.asciidoc | 2 +- .../traversal/dsl/graph/GraphTraversal.java| 17 + .../traversal/dsl/graph/GraphTraversalTest.java| 15 +-- .../Process/Traversal/GraphTraversal.cs| 9 + gremlin-test/features/map/ShortestPath.feature | 4 ++-- .../traversal/step/map/ShortestPathTest.java | 4 ++-- 6 files changed, 44 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3a8f5808/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3a8f5808/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java --
[36/50] [abbrv] tinkerpop git commit: Merge branch 'tp32' into tp33
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/8ca27786 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8ca27786 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8ca27786 Branch: refs/heads/TINKERPOP-2041 Commit: 8ca277863861699ca2fa7913735687f6e65b486b Parents: c10bde3 b440742 Author: Florian Hockmann Authored: Wed Oct 3 12:31:08 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:31:08 2018 +0200 -- CHANGELOG.asciidoc | 1 + .../src/Gremlin.Net/Driver/Connection.cs| 6 +++-- .../src/Gremlin.Net/Driver/ConnectionFactory.cs | 7 -- .../src/Gremlin.Net/Driver/GremlinClient.cs | 11 +++-- .../Gremlin.Net/Driver/WebSocketConnection.cs | 9 +-- .../Driver/GremlinClientTests.cs| 25 6 files changed, 51 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ca27786/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ca27786/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs -- diff --cc gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs index 279c708,f63e20b..b79f0e6 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs @@@ -36,21 -37,21 +37,22 @@@ namespace Gremlin.Net.Drive { private readonly GraphSONReader _graphSONReader; private readonly GraphSONWriter _graphSONWriter; -private readonly JsonMessageSerializer _messageSerializer = new JsonMessageSerializer(); +private readonly JsonMessageSerializer _messageSerializer; private readonly Uri _uri; - private readonly WebSocketConnection _webSocketConnection = new WebSocketConnection(); + private readonly WebSocketConnection _webSocketConnection; private readonly string _username; private readonly string _password; public Connection(Uri uri, string username, string password, GraphSONReader graphSONReader, - GraphSONWriter graphSONWriter, string mimeType) -GraphSONWriter graphSONWriter, Action webSocketConfiguration) ++GraphSONWriter graphSONWriter, string mimeType, Action webSocketConfiguration) { _uri = uri; _username = username; _password = password; _graphSONReader = graphSONReader; _graphSONWriter = graphSONWriter; +_messageSerializer = new JsonMessageSerializer(mimeType); + _webSocketConnection = new WebSocketConnection(webSocketConfiguration); } public async Task> SubmitAsync(RequestMessage requestMessage) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ca27786/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs -- diff --cc gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs index e2ff5b7,8b14ed9..7a6c2d5 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs @@@ -30,22 -31,22 +31,24 @@@ namespace Gremlin.Net.Drive { private readonly GraphSONReader _graphSONReader; private readonly GraphSONWriter _graphSONWriter; + private readonly Action _webSocketConfiguration; private readonly GremlinServer _gremlinServer; +private readonly string _mimeType; public ConnectionFactory(GremlinServer gremlinServer, GraphSONReader graphSONReader, - GraphSONWriter graphSONWriter, string mimeType) -GraphSONWriter graphSONWriter, Action webSocketConfiguration) ++GraphSONWriter graphSONWriter, string mimeType, Action webSocketConfiguration) { _gremlinServer = gremlinServer; -_graphSONReader = graphSONReader; -_graphSONWriter = graphSONWriter; +_mimeType = mimeType; +_graphSONReader = graphSONReader ?? throw new ArgumentNullException(nameof(graphSONReader)); +_graphSONWriter = graphSONWriter ?? throw new ArgumentNullException(nameof(graphSONWriter)); + _webSocketConfiguration = webSocketConfiguration; } public Connection CreateConnection() { return new Connection(_gremlinServer.Uri, _gremlinServer.Username, _gremlinServer.Password, _graphSONReader, - _graphSONWriter, _mimeType); -
[14/50] [abbrv] tinkerpop git commit: Merge branch 'tp33'
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/2e2ed487 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2e2ed487 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2e2ed487 Branch: refs/heads/TINKERPOP-2041 Commit: 2e2ed487aa1320172f73ed931c88eaac342b8e74 Parents: 1e3d4d2 6150499 Author: Stephen Mallette Authored: Thu Sep 27 16:53:16 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 16:53:16 2018 -0400 -- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[28/50] [abbrv] tinkerpop git commit: Merge branch 'tp33'
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/3a917121 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/3a917121 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/3a917121 Branch: refs/heads/TINKERPOP-2041 Commit: 3a917121d86a9663ade1481a55c2e830ccd31344 Parents: 0d8cf16 7148a4b Author: Robert Dale Authored: Tue Oct 2 03:47:59 2018 -0400 Committer: Robert Dale Committed: Tue Oct 2 03:47:59 2018 -0400 -- CHANGELOG.asciidoc | 1 + gremlin-driver/pom.xml | 14 ++ gremlin-groovy/pom.xml | 21 + 3 files changed, 36 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3a917121/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3a917121/gremlin-driver/pom.xml -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3a917121/gremlin-groovy/pom.xml --
[41/50] [abbrv] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Conflicts: gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java gremlin-groovy/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2b4c993d Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2b4c993d Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2b4c993d Branch: refs/heads/TINKERPOP-2041 Commit: 2b4c993ddd16a4554858d480103952374897 Parents: 1faf762 88d6f77 Author: Stephen Mallette Authored: Wed Oct 3 16:09:06 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 16:09:06 2018 -0400 -- CHANGELOG.asciidoc | 2 + .../gremlin/jsr223/TranslatorCustomizer.java| 38 .../gremlin/process/traversal/Translator.java | 34 +++ .../jsr223/GremlinGroovyScriptEngine.java | 11 +- .../gremlin/groovy/jsr223/GroovyTranslator.java | 34 ++- .../groovy/jsr223/GroovyTranslatorTest.java | 215 +-- 6 files changed, 309 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2b4c993d/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2b4c993d/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java -- diff --cc gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java index 03ea883,b96b8b9..7785da6 --- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java +++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java @@@ -222,19 -236,27 +224,20 @@@ public class GremlinGroovyScriptEngine private final ImportGroovyCustomizer importGroovyCustomizer; private final List groovyCustomizers; -private final Set artifactsToUse = new HashSet<>(); private final boolean interpreterModeEnabled; private final long expectedCompilationTime; + private final Translator.ScriptTranslator.TypeTranslator typeTranslator; /** - * Creates a new instance using the {@link DefaultImportCustomizerProvider}. + * There is no need to require type checking infrastructure if type checking is not enabled. */ -public GremlinGroovyScriptEngine() { -this(new Customizer[0]); -} +private final boolean typeCheckingEnabled; /** - * @deprecated As of release 3.0.1, replaced by {@link #GremlinGroovyScriptEngine(CompilerCustomizerProvider...)} + * Creates a new instance using no {@link Customizer}. */ -@Deprecated -public GremlinGroovyScriptEngine(final ImportCustomizerProvider importCustomizerProvider) { -this((CompilerCustomizerProvider) importCustomizerProvider); +public GremlinGroovyScriptEngine() { +this(new Customizer[0]); } public GremlinGroovyScriptEngine(final Customizer... customizers) { @@@ -273,6 -289,58 +276,12 @@@ interpreterModeEnabled = groovyCustomizers.stream() .anyMatch(p -> p.getClass().equals(InterpreterModeGroovyCustomizer.class)); + final Optional translatorCustomizer = listOfCustomizers.stream(). + filter(p -> p instanceof TranslatorCustomizer). + map(p -> (TranslatorCustomizer) p).findFirst(); + typeTranslator = translatorCustomizer.isPresent() ? translatorCustomizer.get().createTypeTranslator() : + Translator.ScriptTranslator.TypeTranslator.identity(); + -// not using the old provider model so set that to empty list so that when createClassLoader is called -// it knows to use groovyCustomizers instead -customizerProviders = Collections.emptyList(); - -createClassLoader(); -} - -/** - * Creates a new instance with the specified {@link CompilerCustomizerProvider} objects. - * - * @deprecated As of release 3.2.4, replaced by {@link #GremlinGroovyScriptEngine(Customizer...)}. - */ -@Deprecated -public GremlinGroovyScriptEngine(final CompilerCustomizerProvider... compilerCustomizerProviders) { -final List providers = Arrays.asList(compilerCustomizerProviders); - -GremlinLoader.load(); - -importCustomizerProvider = providers.stream() -.filter(p -> p instanceof ImportCustomizerProvider) -.map(p -> (ImportCustomizerProvider) p) -
[6/7] tinkerpop git commit: renamed text predicates and added some javadoc comments
renamed text predicates and added some javadoc comments Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/9b965861 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9b965861 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9b965861 Branch: refs/heads/master Commit: 9b965861ed9504beaebe07f99f0ce427f702 Parents: f057fb3 Author: Daniel Kuppitz Authored: Tue Oct 2 13:11:23 2018 -0700 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- docs/src/reference/the-traversal.asciidoc | 12 +-- docs/src/upgrade/release-3.4.x.asciidoc | 4 +- .../gremlin/process/traversal/Text.java | 78 ++-- .../gremlin/process/traversal/TextP.java| 28 +++ .../gremlin/process/traversal/PTest.java| 28 +++ .../GraphSONMapperPartialEmbeddedTypeTest.java | 10 +-- .../src/Gremlin.Net/Process/Traversal/TextP.cs | 24 +++--- .../TraversalEvaluation/TextPParameter.cs | 2 +- gremlin-javascript/glv/TraversalSource.template | 4 +- .../gremlin-javascript/lib/process/traversal.js | 26 +++ .../jython/gremlin_python/process/traversal.py | 60 +++ gremlin-test/features/filter/Has.feature| 20 ++--- .../process/traversal/step/filter/HasTest.java | 50 ++--- 13 files changed, 191 insertions(+), 155 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9b965861/docs/src/reference/the-traversal.asciidoc -- diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc index fdd261a..85dc1c0 100644 --- a/docs/src/reference/the-traversal.asciidoc +++ b/docs/src/reference/the-traversal.asciidoc @@ -3376,12 +3376,12 @@ The provided predicates are outlined in the table below and are used in various | `P.between(number,number)` | Is the incoming number greater than or equal to the first provided number and less than the second? | `P.within(objects...)` | Is the incoming object in the array of provided objects? | `P.without(objects...)` | Is the incoming object not in the array of the provided objects? -| `TextP.startsWith(string)` | Does the incoming `String` start with the provided `String`? -| `TextP.endsWith(string)` | Does the incoming `String` end with the provided `String`? -| `TextP.contains(string)` | Does the incoming `String` contain the provided `String`? -| `TextP.startsNotWith(string)` | TODO: find a better name -| `TextP.endsNotWith(string)` | TODO: find a better name -| `TextP.absent(string)` | TODO: find a better name +| `TextP.startingWith(string)` | Does the incoming `String` start with the provided `String`? +| `TextP.endingWith(string)` | Does the incoming `String` end with the provided `String`? +| `TextP.containing(string)` | Does the incoming `String` contain the provided `String`? +| `TextP.notStartingWith(string)` | Does the incoming `String` not start with the provided `String`? +| `TextP.notEndingWith(string)` | Does the incoming `String` not end with the provided `String`? +| `TextP.notContaining(string)` | Does the incoming `String` not contain the provided `String`? |= [gremlin-groovy] http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9b965861/docs/src/upgrade/release-3.4.x.asciidoc -- diff --git a/docs/src/upgrade/release-3.4.x.asciidoc b/docs/src/upgrade/release-3.4.x.asciidoc index 213577a..21e1899 100644 --- a/docs/src/upgrade/release-3.4.x.asciidoc +++ b/docs/src/upgrade/release-3.4.x.asciidoc @@ -35,10 +35,10 @@ Gremlin now supports simple text predicates on top of the existing `P` predicate [source,groovy] -gremlin> g.V().has("person","name", contains("o")).valueMap() +gremlin> g.V().has("person","name", containing("o")).valueMap() ==>[name:[marko],age:[29]] ==>[name:[josh],age:[32]] -gremlin> g.V().has("person","name", contains("o").and(gte("j").and(endsWith("ko".valueMap() +gremlin> g.V().has("person","name", containing("o").and(gte("j").and(endingWith("ko".valueMap() ==>[name:[marko],age:[29]] http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9b965861/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Text.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Text.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Text.java index 5169309..9c25825 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Text.java +++
[1/7] tinkerpop git commit: TINKERPOP-2041 Added IO tests for TextP
Repository: tinkerpop Updated Branches: refs/heads/master 3a8f58088 -> 8b69b34b6 TINKERPOP-2041 Added IO tests for TextP Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/8b69b34b Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8b69b34b Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8b69b34b Branch: refs/heads/master Commit: 8b69b34b6393a3071c0cd491ea9ec0ca09a1e5ae Parents: 9b96586 Author: Stephen Mallette Authored: Wed Oct 3 15:01:40 2018 -0400 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- docs/src/dev/io/graphson.asciidoc | 26 .../scripts/generate-graphson-resources.groovy | 12 - .../tinkerpop/gremlin/structure/io/Model.java | 9 +++ .../io/AbstractTypedCompatibilityTest.java | 14 +++ .../io/graphson/_3_4_0/textp-v2d0-partial.json | 7 ++ .../io/graphson/_3_4_0/textp-v3d0.json | 7 ++ .../structure/io/gryo/_3_4_0/textp-v1d0.kryo| 1 + .../structure/io/gryo/_3_4_0/textp-v3d0.kryo| 1 + 8 files changed, 71 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8b69b34b/docs/src/dev/io/graphson.asciidoc -- diff --git a/docs/src/dev/io/graphson.asciidoc b/docs/src/dev/io/graphson.asciidoc index d140a2f..1c9081c 100644 --- a/docs/src/dev/io/graphson.asciidoc +++ b/docs/src/dev/io/graphson.asciidoc @@ -3014,6 +3014,19 @@ The following `Bytecode` example represents the traversal of `g.V().hasLabel('pe } + TextP + +[source,json] + +{ + "@type" : "g:TextP", + "@value" : { +"predicate" : "containing", +"value" : "ark" + } +} + + TraversalMetrics [source,json] @@ -5392,6 +5405,19 @@ Please see <<_p,P>> for additional information on `within`. } + TextP + +[source,json] + +{ + "@type" : "g:TextP", + "@value" : { +"predicate" : "containing", +"value" : "ark" + } +} + + TraversalMetrics [source,json] http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8b69b34b/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy -- diff --git a/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy b/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy index 55b4fa6..03112ed 100644 --- a/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy +++ b/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy @@ -59,19 +59,19 @@ toJson = { o, type, mapper, comment = "", suffix = "" -> writeSupportedV1Objects = { writer, mapper -> writer.write("=== Graph Structure\n\n") -model.entries("Graph Structure").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_3_0)}.each { +model.entries("Graph Structure").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_4_0)}.each { writer.write(toJsonV1d0NoTypes(it.getObject(), it.getTitle(), mapper, it.getDescription())) } writer.write("\n") writer.write("=== RequestMessage\n\n") - model.entries("RequestMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_3_0)}.each { + model.entries("RequestMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_4_0)}.each { writer.write(toJsonV1d0NoTypes(it.getObject(), it.getTitle(), mapper, it.getDescription())) } writer.write("\n") writer.write("=== ResponseMessage\n\n") - model.entries("ResponseMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_3_0)}.each { + model.entries("ResponseMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_4_0)}.each { writer.write(toJsonV1d0NoTypes(it.getObject(), it.getTitle(), mapper, it.getDescription())) } } @@ -156,7 +156,7 @@ mapper = GraphSONMapper.build(). file = new File("${projectBuildDir}/dev-docs/out-graphson-2d0-partial.txt") if (file.exists()) file.delete() -file.withWriter { writeSupportedV2V3Objects(it, mapper, toJsonV2d0PartialTypes, {it.isCompatibleWith(GraphSONCompatibility.V2D0_PARTIAL_3_3_1)}, v2ExtendedDescription) } +file.withWriter { writeSupportedV2V3Objects(it, mapper, toJsonV2d0PartialTypes, {it.isCompatibleWith(GraphSONCompatibility.V2D0_PARTIAL_3_4_0)}, v2ExtendedDescription) } mapper = GraphSONMapper.build(). addRegistry(TinkerIoRegistryV2d0.instance()). @@ -167,7 +167,7 @@ mapper = GraphSONMapper.build(). file = new File("${projectBuildDir}/dev-docs/out-graphson-2d0-no-type.txt") if (file.exists()) file.delete() -file.withWriter { writeSupportedV2V3Objects(it, mapper, toJsonV2d0NoTypes,
[3/7] tinkerpop git commit: Renamed `TP` to `TextP` as proposed by @robertdale
Renamed `TP` to `TextP` as proposed by @robertdale Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/f057fb36 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/f057fb36 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/f057fb36 Branch: refs/heads/master Commit: f057fb3601ab12dfe8dc10361c9916c904fc5a0d Parents: 79d4a05 Author: Daniel Kuppitz Authored: Mon Oct 1 09:27:35 2018 -0700 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- docs/src/reference/the-traversal.asciidoc | 16 +-- docs/src/upgrade/release-3.4.x.asciidoc | 2 +- .../tinkerpop/gremlin/jsr223/CoreImports.java | 6 +- .../tinkerpop/gremlin/process/traversal/TP.java | 107 --- .../gremlin/process/traversal/TextP.java| 107 +++ .../structure/io/graphson/GraphSONModule.java | 10 +- .../io/graphson/TraversalSerializersV2d0.java | 12 +-- .../io/graphson/TraversalSerializersV3d0.java | 12 +-- .../structure/io/gryo/GryoSerializersV1d0.java | 10 +- .../structure/io/gryo/GryoSerializersV3d0.java | 10 +- .../gremlin/structure/io/gryo/GryoVersion.java | 6 +- .../gremlin/process/traversal/PTest.java| 28 ++--- .../GraphSONMapperPartialEmbeddedTypeTest.java | 16 +-- gremlin-dotnet/glv/TP.template | 71 gremlin-dotnet/glv/TextP.template | 71 gremlin-dotnet/glv/generate.groovy | 12 +-- .../src/Gremlin.Net/Process/Traversal/TP.cs | 96 - .../src/Gremlin.Net/Process/Traversal/TextP.cs | 96 + .../Structure/IO/GraphSON/GraphSONWriter.cs | 2 +- .../Structure/IO/GraphSON/TPSerializer.cs | 45 .../Structure/IO/GraphSON/TextPSerializer.cs| 45 .../Gherkin/TraversalEvaluation/TPParameter.cs | 97 - .../TraversalEvaluation/TextPParameter.cs | 97 + .../TraversalEvaluation/TraversalParser.cs | 6 +- .../gremlin/groovy/jsr223/GroovyTranslator.java | 8 +- gremlin-javascript/glv/TraversalSource.template | 6 +- gremlin-javascript/glv/generate.groovy | 6 +- .../main/javascript/gremlin-javascript/index.js | 2 +- .../gremlin-javascript/lib/process/traversal.js | 6 +- .../lib/structure/io/graph-serializer.js| 4 +- .../lib/structure/io/type-serializers.js| 10 +- .../test/cucumber/feature-steps.js | 2 +- gremlin-python/glv/TraversalSource.template | 6 +- gremlin-python/glv/generate.groovy | 6 +- .../gremlin/python/jsr223/PythonTranslator.java | 8 +- .../jython/gremlin_python/process/traversal.py | 26 ++--- .../gremlin_python/structure/io/graphsonV2d0.py | 8 +- .../gremlin_python/structure/io/graphsonV3d0.py | 8 +- .../src/main/jython/radish/feature_steps.py | 4 +- gremlin-test/features/filter/Has.feature| 10 +- .../process/traversal/step/filter/HasTest.java | 12 +-- 41 files changed, 556 insertions(+), 556 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f057fb36/docs/src/reference/the-traversal.asciidoc -- diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc index da7260c..fdd261a 100644 --- a/docs/src/reference/the-traversal.asciidoc +++ b/docs/src/reference/the-traversal.asciidoc @@ -3357,8 +3357,8 @@ interface. Steps that allow for this type of modulation will explicitly state so == A Note on Predicates A `P` is a predicate of the form `Function`. That is, given some object, return true or false. As of -the relase of TinkerPop 3.4.0, Gremlin also supports simple text predicates, which only work on `String` values. The `TP` -text predicates extends the `P` predicates, but are specialized in that they are of the form `Function`. +the relase of TinkerPop 3.4.0, Gremlin also supports simple text predicates, which only work on `String` values. The `TextP` +text predicates extend the `P` predicates, but are specialized in that they are of the form `Function`. The provided predicates are outlined in the table below and are used in various steps such as <>-step, <>-step, <>-step, etc. @@ -3376,12 +3376,12 @@ The provided predicates are outlined in the table below and are used in various | `P.between(number,number)` | Is the incoming number greater than or equal to the first provided number and less than the second? | `P.within(objects...)` | Is the incoming object in the array of provided objects? | `P.without(objects...)` | Is the incoming object not in the array of the provided objects? -| `TP.startsWith(string)` | Does the incoming `String` start with the provided
[4/7] tinkerpop git commit: TINKERPOP-2041 Implemented text predicates
TINKERPOP-2041 Implemented text predicates Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/519ca65c Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/519ca65c Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/519ca65c Branch: refs/heads/master Commit: 519ca65c0aef496a1fc1c4d2166622c41ff9c1e4 Parents: 3a8f580 Author: Daniel Kuppitz Authored: Wed Sep 26 15:44:35 2018 -0700 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- CHANGELOG.asciidoc | 1 + docs/src/reference/the-traversal.asciidoc | 34 +++-- docs/src/upgrade/release-3.4.x.asciidoc | 15 +++ .../tinkerpop/gremlin/jsr223/CoreImports.java | 3 + .../tinkerpop/gremlin/process/traversal/TP.java | 107 .../gremlin/process/traversal/Text.java | 123 +++ .../structure/io/graphson/GraphSONModule.java | 5 + .../io/graphson/TraversalSerializersV2d0.java | 35 ++ .../io/graphson/TraversalSerializersV3d0.java | 35 ++ .../structure/io/gryo/GryoSerializersV1d0.java | 21 .../structure/io/gryo/GryoSerializersV3d0.java | 21 .../gremlin/structure/io/gryo/GryoVersion.java | 7 +- .../gremlin/process/traversal/PTest.java| 15 +++ .../GraphSONMapperPartialEmbeddedTypeTest.java | 14 ++- gremlin-dotnet/glv/TP.template | 71 +++ gremlin-dotnet/glv/generate.groovy | 14 ++- .../src/Gremlin.Net/Process/Traversal/TP.cs | 96 +++ .../Structure/IO/GraphSON/GraphSONWriter.cs | 3 +- .../Structure/IO/GraphSON/TPSerializer.cs | 45 +++ .../gremlin/groovy/jsr223/GroovyTranslator.java | 7 ++ gremlin-javascript/glv/TraversalSource.template | 45 ++- gremlin-javascript/glv/generate.groovy | 7 ++ .../main/javascript/gremlin-javascript/index.js | 1 + .../gremlin-javascript/lib/process/traversal.js | 70 ++- .../lib/structure/io/type-serializers.js| 24 +++- .../test/cucumber/feature-steps.js | 1 + gremlin-python/glv/TraversalSource.template | 21 +++- gremlin-python/glv/generate.groovy | 9 +- .../gremlin/python/jsr223/PythonTranslator.java | 7 ++ .../jython/gremlin_python/process/traversal.py | 61 - .../gremlin_python/structure/io/graphsonV2d0.py | 13 +- .../gremlin_python/structure/io/graphsonV3d0.py | 13 +- .../src/main/jython/radish/feature_steps.py | 3 +- gremlin-test/features/filter/Has.feature| 57 - .../process/traversal/step/filter/HasTest.java | 86 + 35 files changed, 1061 insertions(+), 29 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/519ca65c/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index b475c86..554ec2f 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -25,6 +25,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima This release also includes changes from <>. +* Added text predicates. * Rewrote `ConnectiveStrategy` to support an arbitrary number of infix notations in a single traversal. * GraphSON `MessageSerializer`s will automatically register the GremlinServerModule to a provided GraphSONMapper. * Removed support for `-i` option in Gremlin Server which was previously deprecated. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/519ca65c/docs/src/reference/the-traversal.asciidoc -- diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc index 6146f9b..da7260c 100644 --- a/docs/src/reference/the-traversal.asciidoc +++ b/docs/src/reference/the-traversal.asciidoc @@ -3356,24 +3356,32 @@ interface. Steps that allow for this type of modulation will explicitly state so [[a-note-on-predicates]] == A Note on Predicates -A `P` is a predicate of the form `Function`. That is, given some object, return true or false. The -provided predicates are outlined in the table below and are used in various steps such as <>-step, +A `P` is a predicate of the form `Function`. That is, given some object, return true or false. As of +the relase of TinkerPop 3.4.0, Gremlin also supports simple text predicates, which only work on `String` values. The `TP` +text predicates extends the `P` predicates, but are specialized in that they are of the form `Function`. +The provided predicates are outlined in the table below and are used in various steps such as <>-step, <>-step, <>-step, etc. [width="100%",cols="3,15",options="header"] |= |
[7/7] tinkerpop git commit: TINKERPOP-2041 Fixed .NET tests around TP predicates
TINKERPOP-2041 Fixed .NET tests around TP predicates Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/79d4a056 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/79d4a056 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/79d4a056 Branch: refs/heads/master Commit: 79d4a056e311971c765bf1b9bd84b48582df7698 Parents: 68c47af Author: Stephen Mallette Authored: Fri Sep 28 08:27:25 2018 -0400 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- .../src/Gremlin.Net/Process/Traversal/TP.cs | 2 +- .../Gherkin/TraversalEvaluation/TPParameter.cs | 97 .../TraversalEvaluation/TraversalParser.cs | 4 + 3 files changed, 102 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/79d4a056/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TP.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TP.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TP.cs index ac6415d..abebd1e 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TP.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TP.cs @@ -39,7 +39,7 @@ namespace Gremlin.Net.Process.Traversal public class TP : P { /// -/// Initializes a new instance of the class. +/// Initializes a new instance of the class. /// /// The name of the predicate. /// The value of the predicate. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/79d4a056/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TPParameter.cs -- diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TPParameter.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TPParameter.cs new file mode 100644 index 000..9100c6f --- /dev/null +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TPParameter.cs @@ -0,0 +1,97 @@ +#region License + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#endregion + +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; +using System.Reflection; +using Gremlin.Net.Process.Traversal; + +namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation +{ +/// +/// Represents a parameter for a traversal predicate (ie: TP.contains()) +/// +internal class TPParameter : ITokenParameter, IEquatable +{ +private IDictionary _contextParameterValues; +public IList Tokens { get; } + +public TPParameter(IList tokens) +{ +Tokens = tokens; +} + +public bool Equals(TPParameter other) +{ +return Tokens.SequenceEqual(other.Tokens); +} + +public override bool Equals(object obj) +{ +if (ReferenceEquals(null, obj)) return false; +if (ReferenceEquals(this, obj)) return true; +if (obj.GetType() != GetType()) return false; +return Equals((TPParameter) obj); +} + +public override int GetHashCode() +{ +return Tokens != null ? Tokens.GetHashCode() : 0; +} + +public object GetValue() +{ +var type = typeof(TP); +object instance = null; +for (var i = 1; i < Tokens.Count; i++) +{ +var token = Tokens[i]; +token.SetContextParameterValues(_contextParameterValues); +var method = type.GetMethod(TraversalParser.GetCsharpName(token.Name), +BindingFlags.Static | BindingFlags.Instance | BindingFlags.Public); +if (method == null) +{ +throw new InvalidOperationException($"Predicate (TP) method '{token}' not found for testing"); +
[5/7] tinkerpop git commit: TINKERPOP-2041 Fixed gremlin-javascript serializers for TP
TINKERPOP-2041 Fixed gremlin-javascript serializers for TP Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/68c47afa Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/68c47afa Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/68c47afa Branch: refs/heads/master Commit: 68c47afa017deb9deabba1cf025ecddd68cd42fa Parents: 519ca65 Author: Stephen Mallette Authored: Thu Sep 27 16:33:26 2018 -0400 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- .../gremlin-javascript/lib/structure/io/graph-serializer.js| 2 ++ .../gremlin-javascript/lib/structure/io/type-serializers.js| 1 + 2 files changed, 3 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68c47afa/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 9ce1761..fca8375 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 @@ -162,6 +162,7 @@ const deserializers = { 'g:Property': typeSerializers.PropertySerializer, 'g:Path': typeSerializers.Path3Serializer, 'g:T': typeSerializers.TSerializer, + 'g:TP': typeSerializers.TPSerializer, 'g:List': typeSerializers.ListSerializer, 'g:Set': typeSerializers.SetSerializer, 'g:Map': typeSerializers.MapSerializer @@ -173,6 +174,7 @@ const serializers = [ typeSerializers.BytecodeSerializer, typeSerializers.TraverserSerializer, typeSerializers.PSerializer, + typeSerializers.TPSerializer, typeSerializers.LambdaSerializer, typeSerializers.EnumSerializer, typeSerializers.VertexSerializer, http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68c47afa/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 ca81c2a..576c721 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 @@ -406,6 +406,7 @@ module.exports = { PathSerializer, PropertySerializer, PSerializer, + TPSerializer, SetSerializer, TSerializer, TraverserSerializer,
[2/7] tinkerpop git commit: Renamed `TP` to `TextP` as proposed by @robertdale
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f057fb36/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py -- diff --git a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py index 266e23d..2d32d47 100644 --- a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py +++ b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py @@ -27,7 +27,7 @@ from aenum import Enum from gremlin_python import statics from gremlin_python.statics import FloatType, FunctionType, IntType, LongType, TypeType, DictType, ListType, SetType -from gremlin_python.process.traversal import Binding, Bytecode, P, TP, Traversal, Traverser, TraversalStrategy, T +from gremlin_python.process.traversal import Binding, Bytecode, P, TextP, Traversal, Traverser, TraversalStrategy, T from gremlin_python.structure.graph import Edge, Property, Vertex, VertexProperty, Path # When we fall back to a superclass's serializer, we iterate over this map. @@ -284,15 +284,15 @@ class PSerializer(_GraphSONTypeIO): return GraphSONUtil.typedValue("P", out) -class TPSerializer(_GraphSONTypeIO): -python_type = TP +class TextPSerializer(_GraphSONTypeIO): +python_type = TextP @classmethod def dictify(cls, p, writer): out = {"predicate": p.operator, "value": [writer.toDict(p.value), writer.toDict(p.other)] if p.other is not None else writer.toDict(p.value)} -return GraphSONUtil.typedValue("TP", out) +return GraphSONUtil.typedValue("TextP", out) class BindingSerializer(_GraphSONTypeIO): http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f057fb36/gremlin-python/src/main/jython/radish/feature_steps.py -- diff --git a/gremlin-python/src/main/jython/radish/feature_steps.py b/gremlin-python/src/main/jython/radish/feature_steps.py index 151d6d5..4777ef3 100644 --- a/gremlin-python/src/main/jython/radish/feature_steps.py +++ b/gremlin-python/src/main/jython/radish/feature_steps.py @@ -21,7 +21,7 @@ import json import re from gremlin_python.structure.graph import Graph, Path from gremlin_python.process.graph_traversal import __ -from gremlin_python.process.traversal import Barrier, Cardinality, P, TP, Pop, Scope, Column, Order, Direction, T, Pick, Operator, IO +from gremlin_python.process.traversal import Barrier, Cardinality, P, TextP, Pop, Scope, Column, Order, Direction, T, Pick, Operator, IO from radish import given, when, then from hamcrest import * @@ -256,7 +256,7 @@ def _make_traversal(g, traversal_string, params): "Direction": Direction, "Order": Order, "P": P, - "TP": TP, + "TextP": TextP, "IO": IO, "Pick": Pick, "Pop": Pop, http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f057fb36/gremlin-test/features/filter/Has.feature -- diff --git a/gremlin-test/features/filter/Has.feature b/gremlin-test/features/filter/Has.feature index 9d2bf4f..e272c05 100644 --- a/gremlin-test/features/filter/Has.feature +++ b/gremlin-test/features/filter/Has.feature @@ -563,7 +563,7 @@ Feature: Step - has() Given the modern graph And the traversal of """ - g.V().has("name", TP.contains("ark")) + g.V().has("name", TextP.contains("ark")) """ When iterated to list Then the result should be unordered @@ -574,7 +574,7 @@ Feature: Step - has() Given the modern graph And the traversal of """ - g.V().has("name", TP.startsWith("mar")) + g.V().has("name", TextP.startsWith("mar")) """ When iterated to list Then the result should be unordered @@ -585,7 +585,7 @@ Feature: Step - has() Given the modern graph And the traversal of """ - g.V().has("name", TP.endsWith("as")) + g.V().has("name", TextP.endsWith("as")) """ When iterated to list Then the result should be unordered @@ -596,7 +596,7 @@ Feature: Step - has() Given the modern graph And the traversal of """ - g.V().has("person", "name", TP.contains("o").and(P.lt("m"))) + g.V().has("person", "name", TextP.contains("o").and(P.lt("m"))) """ When iterated to list Then the result should be unordered @@ -607,7 +607,7 @@ Feature: Step - has() Given the modern graph And the traversal of """ - g.V().has("name", P.gt("m").and(TP.contains("o"))) + g.V().has("name", P.gt("m").and(TextP.contains("o"))) """ When iterated to list Then the result should be unordered
[15/50] [abbrv] tinkerpop git commit: Multi-line the travis spark integration script job CTR
Multi-line the travis spark integration script job CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/03c3e48e Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/03c3e48e Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/03c3e48e Branch: refs/heads/TINKERPOP-2041 Commit: 03c3e48ef0e9f7ef103b2722e5f7acae97c7ee40 Parents: e55b0d8 Author: Stephen Mallette Authored: Thu Sep 27 20:56:23 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 20:56:23 2018 -0400 -- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/03c3e48e/.travis.yml -- diff --git a/.travis.yml b/.travis.yml index 1188940..46a99cc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,4 +30,6 @@ jobs: - script: "touch gremlin-dotnet/src/.glv && touch gremlin-dotnet/test/.glv && mvn clean install -q -DskipTests && mvn verify -pl :gremlin-dotnet,:gremlin-dotnet-tests -P gremlin-dotnet" - script: "touch gremlin-python/.glv && mvn clean install -q -DskipTests && mvn verify -pl gremlin-python" - script: "mvn clean install -q -DskipTests && mvn verify -pl :gremlin-javascript" -- script: "travis_wait 60 mvn clean install -q -DskipTests && mvn verify -pl :spark-gremlin -DskipIntegrationTests=false" +- script: + - "mvn clean install -q -DskipTests" + - "travis_wait 60 mvn verify -pl :spark-gremlin -DskipIntegrationTests=false"
[20/50] [abbrv] tinkerpop git commit: Merge branch 'tp32' into tp33
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/8b4f86f0 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8b4f86f0 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8b4f86f0 Branch: refs/heads/TINKERPOP-2041 Commit: 8b4f86f0b36428dfcb6d6b9914b8afccf8ba1ec2 Parents: 0f37b2e 0403156 Author: Stephen Mallette Authored: Fri Sep 28 09:25:19 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 28 09:25:19 2018 -0400 -- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8b4f86f0/.gitignore --
[23/50] [abbrv] tinkerpop git commit: TINKERPOP-2040 Hooked up Customizer for TypeTranslator
TINKERPOP-2040 Hooked up Customizer for TypeTranslator Enables the Groovy GremlinScriptEngine to use custom TypeTranslators Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e5c2e9cd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e5c2e9cd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e5c2e9cd Branch: refs/heads/TINKERPOP-2041 Commit: e5c2e9cdc18751e755a21add02a75261c169cf32 Parents: 67e2ee8 Author: Stephen Mallette Authored: Tue Sep 25 17:29:49 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../gremlin/jsr223/TranslatorCustomizer.java| 38 .../groovy/jsr223/GroovyTranslatorTest.java | 23 +++- .../jsr223/GremlinGroovyScriptEngine.java | 15 ++-- .../gremlin/groovy/jsr223/GroovyTranslator.java | 8 ++--- 4 files changed, 76 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e5c2e9cd/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java new file mode 100644 index 000..4468255 --- /dev/null +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tinkerpop.gremlin.jsr223; + +import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; +import org.apache.tinkerpop.gremlin.process.traversal.Translator; + +/** + * Provides a way to customize and override {@link Bytecode} to script translation. Not all {@link GremlinScriptEngine} + * will support this capability as translation is optional. + * + * @author Stephen Mallette (http://stephen.genoprime.com) + */ +public interface TranslatorCustomizer extends Customizer { + +/** + * Construct a {@link Translator.ScriptTranslator.TypeTranslator} that will be used by a + * {@link Translator.ScriptTranslator} instance within the {@link GremlinScriptEngine} to translate + * {@link Bytecode} to a script. + */ +public Translator.ScriptTranslator.TypeTranslator createTypeTranslator(); +} http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e5c2e9cd/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index c224642..1622d3d 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,7 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.jsr223.TranslatorCustomizer; import org.apache.tinkerpop.gremlin.process.traversal.Order; import org.apache.tinkerpop.gremlin.process.traversal.Pop; import org.apache.tinkerpop.gremlin.process.traversal.Scope; @@ -59,9 +60,11 @@ import java.util.List; import java.util.UUID; import java.util.function.Function; +import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; /** @@ -224,7 +227,7 @@ public class GroovyTranslatorTest extends
[34/50] [abbrv] tinkerpop git commit: Merge branch 'tp32' into tp33
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/650f31f1 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/650f31f1 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/650f31f1 Branch: refs/heads/TINKERPOP-2041 Commit: 650f31f1b8bee2ddfcda56afd41612a2e3d36b6a Parents: c10bde3 76c9aba Author: Stephen Mallette Authored: Wed Oct 3 06:12:56 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 06:12:56 2018 -0400 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/650f31f1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java --
[12/50] [abbrv] tinkerpop git commit: Incremented timeout for travis CTR
Incremented timeout for travis CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e55b0d81 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e55b0d81 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e55b0d81 Branch: refs/heads/TINKERPOP-2041 Commit: e55b0d81437c5e8729b47153993de497b32c3932 Parents: 2250a85 Author: Stephen Mallette Authored: Thu Sep 27 16:52:42 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 16:52:42 2018 -0400 -- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e55b0d81/.travis.yml -- diff --git a/.travis.yml b/.travis.yml index 1cedfa0..1188940 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,4 +30,4 @@ jobs: - script: "touch gremlin-dotnet/src/.glv && touch gremlin-dotnet/test/.glv && mvn clean install -q -DskipTests && mvn verify -pl :gremlin-dotnet,:gremlin-dotnet-tests -P gremlin-dotnet" - script: "touch gremlin-python/.glv && mvn clean install -q -DskipTests && mvn verify -pl gremlin-python" - script: "mvn clean install -q -DskipTests && mvn verify -pl :gremlin-javascript" -- script: "travis_wait 30 mvn clean install -q -DskipTests && mvn verify -pl :spark-gremlin -DskipIntegrationTests=false" +- script: "travis_wait 60 mvn clean install -q -DskipTests && mvn verify -pl :spark-gremlin -DskipIntegrationTests=false"
[18/50] [abbrv] tinkerpop git commit: Merge branch 'TINKERPOP-2039'
Merge branch 'TINKERPOP-2039' Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/8d722f1f Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8d722f1f Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8d722f1f Branch: refs/heads/TINKERPOP-2041 Commit: 8d722f1fa4ce5b56a841da4decc2e4ff5afeabda Parents: 19d533f 80242be Author: Stephen Mallette Authored: Fri Sep 28 08:29:24 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 28 08:29:24 2018 -0400 -- CHANGELOG.asciidoc | 1 + gremlin-console/pom.xml | 5 --- .../tinkerpop/gremlin/console/Console.groovy| 34 +++- gremlin-dotnet/pom.xml | 2 +- gremlin-javascript/pom.xml | 2 +- gremlin-python/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 23 insertions(+), 25 deletions(-) --
[38/50] [abbrv] tinkerpop git commit: Merge branch 'tp33' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp33
Merge branch 'tp33' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp33 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1faf7629 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1faf7629 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1faf7629 Branch: refs/heads/TINKERPOP-2041 Commit: 1faf7629cb7b3882e91a8f437ad23197aba385dc Parents: 8ca2778 650f31f Author: Florian Hockmann Authored: Wed Oct 3 12:33:02 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:33:02 2018 +0200 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) --
[17/50] [abbrv] tinkerpop git commit: Merge branch 'tp33'
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/19d533fb Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/19d533fb Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/19d533fb Branch: refs/heads/TINKERPOP-2041 Commit: 19d533fb24b93e1f0224b28ad365ceb6653e3f03 Parents: 2e2ed48 0f37b2e Author: Stephen Mallette Authored: Thu Sep 27 20:57:13 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 20:57:13 2018 -0400 -- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --
[22/50] [abbrv] tinkerpop git commit: TINKERPOP-2040 Updated changelog
TINKERPOP-2040 Updated changelog Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/92c74c3d Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/92c74c3d Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/92c74c3d Branch: refs/heads/TINKERPOP-2041 Commit: 92c74c3d7ffc25b234187ef2459f8d3d529ac8db Parents: e5c2e9c Author: Stephen Mallette Authored: Mon Oct 1 09:12:30 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- CHANGELOG.asciidoc | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/92c74c3d/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 6d9770f..9160d09 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -37,6 +37,8 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. +* Improved ability of `GroovyTranslator` to handle more types supported by GraphSON. +* Improved ability of `GroovyTranslator` to handle custom types. * Added better internal processing of `Column` in `by(Function)`. * Added `hasNext()` support on `Traversal` for `gremlin-python`. * Added support for additional extended types in Gremlin.Net with `decimal`, `TimeSpan`, `BigInteger`, `byte`, `byte[]`, `char` and `short`.
[40/50] [abbrv] tinkerpop git commit: Merge branch 'TINKERPOP-2040' into tp32
Merge branch 'TINKERPOP-2040' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/88d6f778 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/88d6f778 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/88d6f778 Branch: refs/heads/TINKERPOP-2041 Commit: 88d6f778694e6c65ddde6fdcc18948327e01914a Parents: fcbce50 92c74c3 Author: Stephen Mallette Authored: Wed Oct 3 15:28:58 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 15:28:58 2018 -0400 -- CHANGELOG.asciidoc | 2 + .../gremlin/jsr223/TranslatorCustomizer.java| 38 .../gremlin/process/traversal/Translator.java | 34 +++ .../groovy/jsr223/GroovyTranslatorTest.java | 213 --- .../jsr223/GremlinGroovyScriptEngine.java | 15 +- .../gremlin/groovy/jsr223/GroovyTranslator.java | 34 ++- 6 files changed, 301 insertions(+), 35 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/88d6f778/CHANGELOG.asciidoc --
[48/50] [abbrv] tinkerpop git commit: renamed text predicates and added some javadoc comments
renamed text predicates and added some javadoc comments Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/9b965861 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9b965861 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9b965861 Branch: refs/heads/TINKERPOP-2041 Commit: 9b965861ed9504beaebe07f99f0ce427f702 Parents: f057fb3 Author: Daniel Kuppitz Authored: Tue Oct 2 13:11:23 2018 -0700 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- docs/src/reference/the-traversal.asciidoc | 12 +-- docs/src/upgrade/release-3.4.x.asciidoc | 4 +- .../gremlin/process/traversal/Text.java | 78 ++-- .../gremlin/process/traversal/TextP.java| 28 +++ .../gremlin/process/traversal/PTest.java| 28 +++ .../GraphSONMapperPartialEmbeddedTypeTest.java | 10 +-- .../src/Gremlin.Net/Process/Traversal/TextP.cs | 24 +++--- .../TraversalEvaluation/TextPParameter.cs | 2 +- gremlin-javascript/glv/TraversalSource.template | 4 +- .../gremlin-javascript/lib/process/traversal.js | 26 +++ .../jython/gremlin_python/process/traversal.py | 60 +++ gremlin-test/features/filter/Has.feature| 20 ++--- .../process/traversal/step/filter/HasTest.java | 50 ++--- 13 files changed, 191 insertions(+), 155 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9b965861/docs/src/reference/the-traversal.asciidoc -- diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc index fdd261a..85dc1c0 100644 --- a/docs/src/reference/the-traversal.asciidoc +++ b/docs/src/reference/the-traversal.asciidoc @@ -3376,12 +3376,12 @@ The provided predicates are outlined in the table below and are used in various | `P.between(number,number)` | Is the incoming number greater than or equal to the first provided number and less than the second? | `P.within(objects...)` | Is the incoming object in the array of provided objects? | `P.without(objects...)` | Is the incoming object not in the array of the provided objects? -| `TextP.startsWith(string)` | Does the incoming `String` start with the provided `String`? -| `TextP.endsWith(string)` | Does the incoming `String` end with the provided `String`? -| `TextP.contains(string)` | Does the incoming `String` contain the provided `String`? -| `TextP.startsNotWith(string)` | TODO: find a better name -| `TextP.endsNotWith(string)` | TODO: find a better name -| `TextP.absent(string)` | TODO: find a better name +| `TextP.startingWith(string)` | Does the incoming `String` start with the provided `String`? +| `TextP.endingWith(string)` | Does the incoming `String` end with the provided `String`? +| `TextP.containing(string)` | Does the incoming `String` contain the provided `String`? +| `TextP.notStartingWith(string)` | Does the incoming `String` not start with the provided `String`? +| `TextP.notEndingWith(string)` | Does the incoming `String` not end with the provided `String`? +| `TextP.notContaining(string)` | Does the incoming `String` not contain the provided `String`? |= [gremlin-groovy] http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9b965861/docs/src/upgrade/release-3.4.x.asciidoc -- diff --git a/docs/src/upgrade/release-3.4.x.asciidoc b/docs/src/upgrade/release-3.4.x.asciidoc index 213577a..21e1899 100644 --- a/docs/src/upgrade/release-3.4.x.asciidoc +++ b/docs/src/upgrade/release-3.4.x.asciidoc @@ -35,10 +35,10 @@ Gremlin now supports simple text predicates on top of the existing `P` predicate [source,groovy] -gremlin> g.V().has("person","name", contains("o")).valueMap() +gremlin> g.V().has("person","name", containing("o")).valueMap() ==>[name:[marko],age:[29]] ==>[name:[josh],age:[32]] -gremlin> g.V().has("person","name", contains("o").and(gte("j").and(endsWith("ko".valueMap() +gremlin> g.V().has("person","name", containing("o").and(gte("j").and(endingWith("ko".valueMap() ==>[name:[marko],age:[29]] http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9b965861/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Text.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Text.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Text.java index 5169309..9c25825 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Text.java +++
[11/50] [abbrv] tinkerpop git commit: TINKERPOP-2039 Bump to Groovy 2.5.2
TINKERPOP-2039 Bump to Groovy 2.5.2 Required some minor changes to the Console as the CliBuilder is no longer the recommended approach for Groovy - had to use picocli classes instead. Still couldn't make the command line parsing work exclusively under picocli - I think we have somewhat nonstandard options in our command line. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/80242be3 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/80242be3 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/80242be3 Branch: refs/heads/TINKERPOP-2041 Commit: 80242be387e6d3b4daa0a7b045d7a4f463123321 Parents: 1e3d4d2 Author: Stephen Mallette Authored: Wed Sep 19 10:50:20 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 15:38:52 2018 -0400 -- CHANGELOG.asciidoc | 1 + gremlin-console/pom.xml | 5 --- .../tinkerpop/gremlin/console/Console.groovy| 34 +++- gremlin-dotnet/pom.xml | 2 +- gremlin-javascript/pom.xml | 2 +- gremlin-python/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 23 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/80242be3/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index efb3e43..ae46ad4 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -37,6 +37,7 @@ This release also includes changes from <>. * Maintained order of annotations in metrics returned from `profile()`-step. * Bumped to Netty 4.1.25. * Bumped to Spark 2.3.1. +* Bumped to Groovy 2.5.2. * Modified Gremlin Server to return a "host" status attribute on responses. * Added ability to the Java, .NET and Python drivers to retrieve status attributes returned from the server. * Modified Java and Gremlin.Net `ResponseException` to include status code and status attributes. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/80242be3/gremlin-console/pom.xml -- diff --git a/gremlin-console/pom.xml b/gremlin-console/pom.xml index 3b650ee..615af4e 100644 --- a/gremlin-console/pom.xml +++ b/gremlin-console/pom.xml @@ -41,11 +41,6 @@ limitations under the License. httpclient -commons-cli -commons-cli -1.2 - - org.apache.tinkerpop gremlin-driver ${project.version} http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/80242be3/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy -- diff --git a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy index d45b49a..1e05864 100644 --- a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy +++ b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy @@ -18,10 +18,11 @@ */ package org.apache.tinkerpop.gremlin.console +import groovy.cli.picocli.CliBuilder +import groovy.cli.picocli.OptionAccessor import jline.TerminalFactory import jline.console.history.FileHistory -import org.apache.commons.cli.Option import org.apache.tinkerpop.gremlin.console.commands.GremlinSetCommand import org.apache.tinkerpop.gremlin.console.commands.InstallCommand import org.apache.tinkerpop.gremlin.console.commands.PluginCommand @@ -43,8 +44,8 @@ import org.codehaus.groovy.tools.shell.Groovysh import org.codehaus.groovy.tools.shell.IO import org.codehaus.groovy.tools.shell.InteractiveShellRunner import org.codehaus.groovy.tools.shell.commands.SetCommand -import org.codehaus.groovy.tools.shell.util.HelpFormatter import org.fusesource.jansi.Ansi +import picocli.CommandLine /** * @author Stephen Mallette (http://stephen.genoprime.com) @@ -400,21 +401,22 @@ class Console { IO io = new IO(System.in, System.out, System.err) -final CliBuilder cli = new CliBuilder(usage: 'gremlin.sh [options] [...]', formatter: new HelpFormatter(), stopAtNonOption: false) +final CliBuilder cli = new CliBuilder() +cli.stopAtNonOption = false +cli.name = "gremlin.sh" // note that the inclusion of -l is really a setting handled by gremlin.sh and not by Console class itself. // it is mainly listed here for informational purposes when the user starts things up with -h -cli.with { -h(longOpt: 'help', "Display
[16/50] [abbrv] tinkerpop git commit: Merge branch 'tp32' into tp33
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/0f37b2ef Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0f37b2ef Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0f37b2ef Branch: refs/heads/TINKERPOP-2041 Commit: 0f37b2ef19033744c3b14cb9c2c5e19763088be2 Parents: 6150499 03c3e48 Author: Stephen Mallette Authored: Thu Sep 27 20:57:05 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 20:57:05 2018 -0400 -- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --
[21/50] [abbrv] tinkerpop git commit: Merge branch 'tp33'
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/0d8cf166 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0d8cf166 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0d8cf166 Branch: refs/heads/TINKERPOP-2041 Commit: 0d8cf166384be3f0c367c8423f7b19ed67adbd84 Parents: 8d722f1 8b4f86f Author: Stephen Mallette Authored: Fri Sep 28 09:25:26 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 28 09:25:26 2018 -0400 -- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[29/50] [abbrv] tinkerpop git commit: Asciidoc puts an extra space on the-traversal line 162: g.addV('person').iterate() <9> - CTR
Asciidoc puts an extra space on the-traversal line 162: g.addV('person').iterate() <9> - CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e7af98bf Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e7af98bf Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e7af98bf Branch: refs/heads/TINKERPOP-2041 Commit: e7af98bf848df812750d6844d6af156a7eaaca27 Parents: d0659bd Author: Robert Dale Authored: Tue Oct 2 06:00:09 2018 -0400 Committer: Robert Dale Committed: Tue Oct 2 06:00:09 2018 -0400 -- docs/postprocessor/processor.awk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e7af98bf/docs/postprocessor/processor.awk -- diff --git a/docs/postprocessor/processor.awk b/docs/postprocessor/processor.awk index 18ada47..fbeadcc 100644 --- a/docs/postprocessor/processor.awk +++ b/docs/postprocessor/processor.awk @@ -42,7 +42,7 @@ BEGIN { // { if (firstMatch || !isHeader) { -print gensub(/\/\/<\/span>()\(([0-9]+)\)(<\/b>)/, +print gensub(/\/\/<\/span>[ ]*()\(([0-9]+)\)(<\/b>)/, "//\\1\\2\\3<\/span>", "g") } }
[44/50] [abbrv] tinkerpop git commit: Renamed `TP` to `TextP` as proposed by @robertdale
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f057fb36/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py -- diff --git a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py index 266e23d..2d32d47 100644 --- a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py +++ b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py @@ -27,7 +27,7 @@ from aenum import Enum from gremlin_python import statics from gremlin_python.statics import FloatType, FunctionType, IntType, LongType, TypeType, DictType, ListType, SetType -from gremlin_python.process.traversal import Binding, Bytecode, P, TP, Traversal, Traverser, TraversalStrategy, T +from gremlin_python.process.traversal import Binding, Bytecode, P, TextP, Traversal, Traverser, TraversalStrategy, T from gremlin_python.structure.graph import Edge, Property, Vertex, VertexProperty, Path # When we fall back to a superclass's serializer, we iterate over this map. @@ -284,15 +284,15 @@ class PSerializer(_GraphSONTypeIO): return GraphSONUtil.typedValue("P", out) -class TPSerializer(_GraphSONTypeIO): -python_type = TP +class TextPSerializer(_GraphSONTypeIO): +python_type = TextP @classmethod def dictify(cls, p, writer): out = {"predicate": p.operator, "value": [writer.toDict(p.value), writer.toDict(p.other)] if p.other is not None else writer.toDict(p.value)} -return GraphSONUtil.typedValue("TP", out) +return GraphSONUtil.typedValue("TextP", out) class BindingSerializer(_GraphSONTypeIO): http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f057fb36/gremlin-python/src/main/jython/radish/feature_steps.py -- diff --git a/gremlin-python/src/main/jython/radish/feature_steps.py b/gremlin-python/src/main/jython/radish/feature_steps.py index 151d6d5..4777ef3 100644 --- a/gremlin-python/src/main/jython/radish/feature_steps.py +++ b/gremlin-python/src/main/jython/radish/feature_steps.py @@ -21,7 +21,7 @@ import json import re from gremlin_python.structure.graph import Graph, Path from gremlin_python.process.graph_traversal import __ -from gremlin_python.process.traversal import Barrier, Cardinality, P, TP, Pop, Scope, Column, Order, Direction, T, Pick, Operator, IO +from gremlin_python.process.traversal import Barrier, Cardinality, P, TextP, Pop, Scope, Column, Order, Direction, T, Pick, Operator, IO from radish import given, when, then from hamcrest import * @@ -256,7 +256,7 @@ def _make_traversal(g, traversal_string, params): "Direction": Direction, "Order": Order, "P": P, - "TP": TP, + "TextP": TextP, "IO": IO, "Pick": Pick, "Pop": Pop, http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f057fb36/gremlin-test/features/filter/Has.feature -- diff --git a/gremlin-test/features/filter/Has.feature b/gremlin-test/features/filter/Has.feature index 9d2bf4f..e272c05 100644 --- a/gremlin-test/features/filter/Has.feature +++ b/gremlin-test/features/filter/Has.feature @@ -563,7 +563,7 @@ Feature: Step - has() Given the modern graph And the traversal of """ - g.V().has("name", TP.contains("ark")) + g.V().has("name", TextP.contains("ark")) """ When iterated to list Then the result should be unordered @@ -574,7 +574,7 @@ Feature: Step - has() Given the modern graph And the traversal of """ - g.V().has("name", TP.startsWith("mar")) + g.V().has("name", TextP.startsWith("mar")) """ When iterated to list Then the result should be unordered @@ -585,7 +585,7 @@ Feature: Step - has() Given the modern graph And the traversal of """ - g.V().has("name", TP.endsWith("as")) + g.V().has("name", TextP.endsWith("as")) """ When iterated to list Then the result should be unordered @@ -596,7 +596,7 @@ Feature: Step - has() Given the modern graph And the traversal of """ - g.V().has("person", "name", TP.contains("o").and(P.lt("m"))) + g.V().has("person", "name", TextP.contains("o").and(P.lt("m"))) """ When iterated to list Then the result should be unordered @@ -607,7 +607,7 @@ Feature: Step - has() Given the modern graph And the traversal of """ - g.V().has("name", P.gt("m").and(TP.contains("o"))) + g.V().has("name", P.gt("m").and(TextP.contains("o"))) """ When iterated to list Then the result should be unordered
[13/50] [abbrv] tinkerpop git commit: Merge branch 'tp32' into tp33
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/61504992 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/61504992 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/61504992 Branch: refs/heads/TINKERPOP-2041 Commit: 615049921b40dc58f151790d5de252fcbb068aef Parents: 393a8b1 e55b0d8 Author: Stephen Mallette Authored: Thu Sep 27 16:53:05 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 16:53:05 2018 -0400 -- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[42/50] [abbrv] tinkerpop git commit: Merge branch 'tp33'
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/2ae8c5be Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2ae8c5be Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2ae8c5be Branch: refs/heads/TINKERPOP-2041 Commit: 2ae8c5becc4318e45d6a48d32ea5e8f3eed451e5 Parents: 21d2444 2b4c993 Author: Stephen Mallette Authored: Wed Oct 3 16:09:48 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 16:09:48 2018 -0400 -- CHANGELOG.asciidoc | 2 + .../gremlin/jsr223/TranslatorCustomizer.java| 38 .../gremlin/process/traversal/Translator.java | 34 +++ .../jsr223/GremlinGroovyScriptEngine.java | 11 +- .../gremlin/groovy/jsr223/GroovyTranslator.java | 34 ++- .../groovy/jsr223/GroovyTranslatorTest.java | 215 +-- 6 files changed, 309 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ae8c5be/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ae8c5be/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java --
[32/50] [abbrv] tinkerpop git commit: Expose WebSocket configuration TINKERPOP-2015
Expose WebSocket configuration TINKERPOP-2015 Users can now provide a delegate to the Gremlin.Net driver that will be used to configure WebSocket connections. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b4407423 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b4407423 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b4407423 Branch: refs/heads/TINKERPOP-2041 Commit: b440742393135fdd88d4af18b09ade5f5011133e Parents: e7af98b Author: Florian Hockmann Authored: Sun Sep 9 14:49:03 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:08:14 2018 +0200 -- CHANGELOG.asciidoc | 1 + .../src/Gremlin.Net/Driver/Connection.cs| 6 +++-- .../src/Gremlin.Net/Driver/ConnectionFactory.cs | 8 +-- .../src/Gremlin.Net/Driver/GremlinClient.cs | 9 +-- .../Gremlin.Net/Driver/WebSocketConnection.cs | 9 +-- .../Driver/GremlinClientTests.cs| 25 6 files changed, 50 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index e93c1c9..36a34f2 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -25,6 +25,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Removed conflicting non-indy groovy core dependency * Bumped jython-standalone 2.7.1 +* Added a delegate to the Gremlin.Net driver that can be used to configure the WebSocket connection. * SSL security enhancements * Added Gremlin version to Gremlin Server startup logging output. * Fixed problem with Gremlin Server sometimes returning an additional message after a failure. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs index dbbd375..f63e20b 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs @@ -23,6 +23,7 @@ using System; using System.Collections.Generic; +using System.Net.WebSockets; using System.Text; using System.Threading.Tasks; using Gremlin.Net.Driver.Messages; @@ -38,18 +39,19 @@ namespace Gremlin.Net.Driver private readonly GraphSONWriter _graphSONWriter; private readonly JsonMessageSerializer _messageSerializer = new JsonMessageSerializer(); private readonly Uri _uri; -private readonly WebSocketConnection _webSocketConnection = new WebSocketConnection(); +private readonly WebSocketConnection _webSocketConnection; private readonly string _username; private readonly string _password; public Connection(Uri uri, string username, string password, GraphSONReader graphSONReader, -GraphSONWriter graphSONWriter) +GraphSONWriter graphSONWriter, Action webSocketConfiguration) { _uri = uri; _username = username; _password = password; _graphSONReader = graphSONReader; _graphSONWriter = graphSONWriter; +_webSocketConnection = new WebSocketConnection(webSocketConfiguration); } public async Task> SubmitAsync(RequestMessage requestMessage) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs index 0041a67..8b14ed9 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs @@ -21,6 +21,8 @@ #endregion +using System; +using System.Net.WebSockets; using Gremlin.Net.Structure.IO.GraphSON; namespace Gremlin.Net.Driver @@ -29,20 +31,22 @@ namespace Gremlin.Net.Driver { private readonly GraphSONReader _graphSONReader; private readonly GraphSONWriter _graphSONWriter; +private readonly Action _webSocketConfiguration; private readonly GremlinServer _gremlinServer; public ConnectionFactory(GremlinServer gremlinServer, GraphSONReader graphSONReader, -GraphSONWriter graphSONWriter) +GraphSONWriter graphSONWriter, Action webSocketConfiguration) { _gremlinServer = gremlinServer; _graphSONReader = graphSONReader;
[25/50] [abbrv] tinkerpop git commit: TINKERPOP-2040 Added more tests to cover more GraphSON types
TINKERPOP-2040 Added more tests to cover more GraphSON types Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/67e2ee85 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/67e2ee85 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/67e2ee85 Branch: refs/heads/TINKERPOP-2041 Commit: 67e2ee85dd8048ca21a72889cf8a0218f2add081 Parents: 774371d Author: Stephen Mallette Authored: Tue Sep 25 13:46:38 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../groovy/jsr223/GroovyTranslatorTest.java | 30 .../gremlin/groovy/jsr223/GroovyTranslator.java | 4 +++ 2 files changed, 34 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/67e2ee85/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index 686c7bd..c224642 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,9 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.process.traversal.Order; +import org.apache.tinkerpop.gremlin.process.traversal.Pop; +import org.apache.tinkerpop.gremlin.process.traversal.Scope; import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; @@ -31,6 +34,8 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.TranslationStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; +import org.apache.tinkerpop.gremlin.structure.Column; +import org.apache.tinkerpop.gremlin.structure.Direction; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.util.ElementHelper; @@ -185,6 +190,31 @@ public class GroovyTranslatorTest extends AbstractGremlinTest { } @Test +public void shouldHandleColumn() { +assertTranslation("Column.keys", Column.keys); +} + +@Test +public void shouldHandleDirection() { +assertTranslation("Direction.BOTH", Direction.BOTH); +} + +@Test +public void shouldHandleOrder() { +assertTranslation("Order.decr", Order.decr); +} + +@Test +public void shouldHandlePop() { +assertTranslation("Pop.last", Pop.last); +} + +@Test +public void shouldHandleScope() { +assertTranslation("Scope.local", Scope.local); +} + +@Test public void shouldOverrideDefaultTypeTranslationWithSomethingBonkers() { final String thingToSuffixAllStringsWith = "-why-would-anyone-do-this"; final String script = GroovyTranslator.of("g", x -> x instanceof String ? x + thingToSuffixAllStringsWith : x). http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/67e2ee85/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java -- diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java index 1d122c6..9cd7791 100644 --- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java +++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java @@ -22,7 +22,9 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import groovy.json.StringEscapeUtils; import org.apache.commons.configuration.ConfigurationConverter; import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; +import org.apache.tinkerpop.gremlin.process.traversal.Order; import org.apache.tinkerpop.gremlin.process.traversal.P; +import org.apache.tinkerpop.gremlin.process.traversal.Pop; import
[50/50] [abbrv] tinkerpop git commit: TINKERPOP-2041 Fixed .NET tests around TP predicates
TINKERPOP-2041 Fixed .NET tests around TP predicates Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/79d4a056 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/79d4a056 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/79d4a056 Branch: refs/heads/TINKERPOP-2041 Commit: 79d4a056e311971c765bf1b9bd84b48582df7698 Parents: 68c47af Author: Stephen Mallette Authored: Fri Sep 28 08:27:25 2018 -0400 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- .../src/Gremlin.Net/Process/Traversal/TP.cs | 2 +- .../Gherkin/TraversalEvaluation/TPParameter.cs | 97 .../TraversalEvaluation/TraversalParser.cs | 4 + 3 files changed, 102 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/79d4a056/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TP.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TP.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TP.cs index ac6415d..abebd1e 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TP.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TP.cs @@ -39,7 +39,7 @@ namespace Gremlin.Net.Process.Traversal public class TP : P { /// -/// Initializes a new instance of the class. +/// Initializes a new instance of the class. /// /// The name of the predicate. /// The value of the predicate. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/79d4a056/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TPParameter.cs -- diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TPParameter.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TPParameter.cs new file mode 100644 index 000..9100c6f --- /dev/null +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TPParameter.cs @@ -0,0 +1,97 @@ +#region License + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#endregion + +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; +using System.Reflection; +using Gremlin.Net.Process.Traversal; + +namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation +{ +/// +/// Represents a parameter for a traversal predicate (ie: TP.contains()) +/// +internal class TPParameter : ITokenParameter, IEquatable +{ +private IDictionary _contextParameterValues; +public IList Tokens { get; } + +public TPParameter(IList tokens) +{ +Tokens = tokens; +} + +public bool Equals(TPParameter other) +{ +return Tokens.SequenceEqual(other.Tokens); +} + +public override bool Equals(object obj) +{ +if (ReferenceEquals(null, obj)) return false; +if (ReferenceEquals(this, obj)) return true; +if (obj.GetType() != GetType()) return false; +return Equals((TPParameter) obj); +} + +public override int GetHashCode() +{ +return Tokens != null ? Tokens.GetHashCode() : 0; +} + +public object GetValue() +{ +var type = typeof(TP); +object instance = null; +for (var i = 1; i < Tokens.Count; i++) +{ +var token = Tokens[i]; +token.SetContextParameterValues(_contextParameterValues); +var method = type.GetMethod(TraversalParser.GetCsharpName(token.Name), +BindingFlags.Static | BindingFlags.Instance | BindingFlags.Public); +if (method == null) +{ +throw new InvalidOperationException($"Predicate (TP) method '{token}' not found for testing"); +
[33/50] [abbrv] tinkerpop git commit: Merge branch 'pr-920' into tp32
Merge branch 'pr-920' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/76c9aba9 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/76c9aba9 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/76c9aba9 Branch: refs/heads/TINKERPOP-2041 Commit: 76c9aba94f0f5c464fe4be975809c7dce9c7b92b Parents: e7af98b b34bf4d Author: Stephen Mallette Authored: Wed Oct 3 06:12:43 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 06:12:43 2018 -0400 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) --
[07/50] [abbrv] tinkerpop git commit: Merge branch 'travis-wait' into tp32
Merge branch 'travis-wait' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2250a85e Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2250a85e Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2250a85e Branch: refs/heads/TINKERPOP-2041 Commit: 2250a85e18e4065d3021973c94fe9f2fc201305b Parents: 0278c15 05c7daf Author: Stephen Mallette Authored: Thu Sep 27 15:35:57 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 15:35:57 2018 -0400 -- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[39/50] [abbrv] tinkerpop git commit: Merge branch 'tp32' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp32
Merge branch 'tp32' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/fcbce509 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/fcbce509 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/fcbce509 Branch: refs/heads/TINKERPOP-2041 Commit: fcbce509fc2957bae74ef585875dd872322a9b21 Parents: b440742 76c9aba Author: Florian Hockmann Authored: Wed Oct 3 12:33:23 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:33:23 2018 +0200 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) --
[10/50] [abbrv] tinkerpop git commit: TINKERPOP-2049 Added with(k) overload
TINKERPOP-2049 Added with(k) overload Makes flag-like uses of with() a bit more succinct. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/9b4cddb9 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9b4cddb9 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9b4cddb9 Branch: refs/heads/TINKERPOP-2041 Commit: 9b4cddb94a97a1ea3dee79259e25c2aa28518972 Parents: 1e3d4d2 Author: Stephen Mallette Authored: Thu Sep 27 08:49:41 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 15:38:19 2018 -0400 -- CHANGELOG.asciidoc | 2 +- .../traversal/dsl/graph/GraphTraversal.java| 17 + .../traversal/dsl/graph/GraphTraversalTest.java| 15 +-- .../Process/Traversal/GraphTraversal.cs| 9 + gremlin-test/features/map/ShortestPath.feature | 4 ++-- .../traversal/step/map/ShortestPathTest.java | 4 ++-- 6 files changed, 44 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9b4cddb9/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index efb3e43..8f9f328 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -49,7 +49,7 @@ This release also includes changes from <>. * Moved `Parameterizing` interface to the `org.apache.tinkerpop.gremlin.process.traversal.step` package with other marker interfaces of its type. * Replaced `Parameterizing.addPropertyMutations()` with `Configuring.configure()`. * Changed interface hierarchy for `Parameterizing` and `Mutating` interfaces as they are tightly related. -* Introduced the `with()` step modulator which can supply configuration options to `Configuring` steps. +* Introduced the `with(k,v)` and `with(k)` step modulators which can supply configuration options to `Configuring` steps. * Added `connectedComponent()` step and related `VertexProgram`. * Added `supportsUpsert()` option to `VertexFeatures` and `EdgeFeatures`. * `min()` and `max()` now support all types implementing `Comparable`. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9b4cddb9/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 0f8677e..66b45ec 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 @@ -2564,6 +2564,23 @@ public interface GraphTraversal extends Traversal { WITH-MODULATOR /** + * Provides a configuration to a step in the form of a key which is the same as {@code with(key, true)}. The key + * of the configuration must be step specific and therefore a configuration could be supplied that is not known to + * be valid until execution. + * + * @param key the key of the configuration to apply to a step + * @return the traversal with a modulated step + * @see http://tinkerpop.apache.org/docs/${project.version}/reference/#with-step; target="_blank">Reference Documentation - With Step + * @since 3.4.0 + */ +public default GraphTraversal with(final String key) { +this.asAdmin().getBytecode().addStep(Symbols.with, key); +final Object[] configPair = { key, true }; +((Configuring) this.asAdmin().getEndStep()).configure(configPair); +return this; +} + +/** * Provides a configuration to a step in the form of a key and value pair. The key of the configuration must be * step specific and therefore a configuration could be supplied that is not known to be valid until execution. * http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9b4cddb9/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalTest.java -- diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalTest.java index 0d57f49..166c890 100644 --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalTest.java +++
[46/50] [abbrv] tinkerpop git commit: TINKERPOP-2041 Implemented text predicates
TINKERPOP-2041 Implemented text predicates Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/519ca65c Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/519ca65c Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/519ca65c Branch: refs/heads/TINKERPOP-2041 Commit: 519ca65c0aef496a1fc1c4d2166622c41ff9c1e4 Parents: 3a8f580 Author: Daniel Kuppitz Authored: Wed Sep 26 15:44:35 2018 -0700 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- CHANGELOG.asciidoc | 1 + docs/src/reference/the-traversal.asciidoc | 34 +++-- docs/src/upgrade/release-3.4.x.asciidoc | 15 +++ .../tinkerpop/gremlin/jsr223/CoreImports.java | 3 + .../tinkerpop/gremlin/process/traversal/TP.java | 107 .../gremlin/process/traversal/Text.java | 123 +++ .../structure/io/graphson/GraphSONModule.java | 5 + .../io/graphson/TraversalSerializersV2d0.java | 35 ++ .../io/graphson/TraversalSerializersV3d0.java | 35 ++ .../structure/io/gryo/GryoSerializersV1d0.java | 21 .../structure/io/gryo/GryoSerializersV3d0.java | 21 .../gremlin/structure/io/gryo/GryoVersion.java | 7 +- .../gremlin/process/traversal/PTest.java| 15 +++ .../GraphSONMapperPartialEmbeddedTypeTest.java | 14 ++- gremlin-dotnet/glv/TP.template | 71 +++ gremlin-dotnet/glv/generate.groovy | 14 ++- .../src/Gremlin.Net/Process/Traversal/TP.cs | 96 +++ .../Structure/IO/GraphSON/GraphSONWriter.cs | 3 +- .../Structure/IO/GraphSON/TPSerializer.cs | 45 +++ .../gremlin/groovy/jsr223/GroovyTranslator.java | 7 ++ gremlin-javascript/glv/TraversalSource.template | 45 ++- gremlin-javascript/glv/generate.groovy | 7 ++ .../main/javascript/gremlin-javascript/index.js | 1 + .../gremlin-javascript/lib/process/traversal.js | 70 ++- .../lib/structure/io/type-serializers.js| 24 +++- .../test/cucumber/feature-steps.js | 1 + gremlin-python/glv/TraversalSource.template | 21 +++- gremlin-python/glv/generate.groovy | 9 +- .../gremlin/python/jsr223/PythonTranslator.java | 7 ++ .../jython/gremlin_python/process/traversal.py | 61 - .../gremlin_python/structure/io/graphsonV2d0.py | 13 +- .../gremlin_python/structure/io/graphsonV3d0.py | 13 +- .../src/main/jython/radish/feature_steps.py | 3 +- gremlin-test/features/filter/Has.feature| 57 - .../process/traversal/step/filter/HasTest.java | 86 + 35 files changed, 1061 insertions(+), 29 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/519ca65c/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index b475c86..554ec2f 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -25,6 +25,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima This release also includes changes from <>. +* Added text predicates. * Rewrote `ConnectiveStrategy` to support an arbitrary number of infix notations in a single traversal. * GraphSON `MessageSerializer`s will automatically register the GremlinServerModule to a provided GraphSONMapper. * Removed support for `-i` option in Gremlin Server which was previously deprecated. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/519ca65c/docs/src/reference/the-traversal.asciidoc -- diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc index 6146f9b..da7260c 100644 --- a/docs/src/reference/the-traversal.asciidoc +++ b/docs/src/reference/the-traversal.asciidoc @@ -3356,24 +3356,32 @@ interface. Steps that allow for this type of modulation will explicitly state so [[a-note-on-predicates]] == A Note on Predicates -A `P` is a predicate of the form `Function`. That is, given some object, return true or false. The -provided predicates are outlined in the table below and are used in various steps such as <>-step, +A `P` is a predicate of the form `Function`. That is, given some object, return true or false. As of +the relase of TinkerPop 3.4.0, Gremlin also supports simple text predicates, which only work on `String` values. The `TP` +text predicates extends the `P` predicates, but are specialized in that they are of the form `Function`. +The provided predicates are outlined in the table below and are used in various steps such as <>-step, <>-step, <>-step, etc. [width="100%",cols="3,15",options="header"]
[47/50] [abbrv] tinkerpop git commit: TINKERPOP-2041 Added IO tests for TextP
TINKERPOP-2041 Added IO tests for TextP Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/8b69b34b Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8b69b34b Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8b69b34b Branch: refs/heads/TINKERPOP-2041 Commit: 8b69b34b6393a3071c0cd491ea9ec0ca09a1e5ae Parents: 9b96586 Author: Stephen Mallette Authored: Wed Oct 3 15:01:40 2018 -0400 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- docs/src/dev/io/graphson.asciidoc | 26 .../scripts/generate-graphson-resources.groovy | 12 - .../tinkerpop/gremlin/structure/io/Model.java | 9 +++ .../io/AbstractTypedCompatibilityTest.java | 14 +++ .../io/graphson/_3_4_0/textp-v2d0-partial.json | 7 ++ .../io/graphson/_3_4_0/textp-v3d0.json | 7 ++ .../structure/io/gryo/_3_4_0/textp-v1d0.kryo| 1 + .../structure/io/gryo/_3_4_0/textp-v3d0.kryo| 1 + 8 files changed, 71 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8b69b34b/docs/src/dev/io/graphson.asciidoc -- diff --git a/docs/src/dev/io/graphson.asciidoc b/docs/src/dev/io/graphson.asciidoc index d140a2f..1c9081c 100644 --- a/docs/src/dev/io/graphson.asciidoc +++ b/docs/src/dev/io/graphson.asciidoc @@ -3014,6 +3014,19 @@ The following `Bytecode` example represents the traversal of `g.V().hasLabel('pe } + TextP + +[source,json] + +{ + "@type" : "g:TextP", + "@value" : { +"predicate" : "containing", +"value" : "ark" + } +} + + TraversalMetrics [source,json] @@ -5392,6 +5405,19 @@ Please see <<_p,P>> for additional information on `within`. } + TextP + +[source,json] + +{ + "@type" : "g:TextP", + "@value" : { +"predicate" : "containing", +"value" : "ark" + } +} + + TraversalMetrics [source,json] http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8b69b34b/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy -- diff --git a/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy b/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy index 55b4fa6..03112ed 100644 --- a/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy +++ b/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy @@ -59,19 +59,19 @@ toJson = { o, type, mapper, comment = "", suffix = "" -> writeSupportedV1Objects = { writer, mapper -> writer.write("=== Graph Structure\n\n") -model.entries("Graph Structure").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_3_0)}.each { +model.entries("Graph Structure").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_4_0)}.each { writer.write(toJsonV1d0NoTypes(it.getObject(), it.getTitle(), mapper, it.getDescription())) } writer.write("\n") writer.write("=== RequestMessage\n\n") - model.entries("RequestMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_3_0)}.each { + model.entries("RequestMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_4_0)}.each { writer.write(toJsonV1d0NoTypes(it.getObject(), it.getTitle(), mapper, it.getDescription())) } writer.write("\n") writer.write("=== ResponseMessage\n\n") - model.entries("ResponseMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_3_0)}.each { + model.entries("ResponseMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_4_0)}.each { writer.write(toJsonV1d0NoTypes(it.getObject(), it.getTitle(), mapper, it.getDescription())) } } @@ -156,7 +156,7 @@ mapper = GraphSONMapper.build(). file = new File("${projectBuildDir}/dev-docs/out-graphson-2d0-partial.txt") if (file.exists()) file.delete() -file.withWriter { writeSupportedV2V3Objects(it, mapper, toJsonV2d0PartialTypes, {it.isCompatibleWith(GraphSONCompatibility.V2D0_PARTIAL_3_3_1)}, v2ExtendedDescription) } +file.withWriter { writeSupportedV2V3Objects(it, mapper, toJsonV2d0PartialTypes, {it.isCompatibleWith(GraphSONCompatibility.V2D0_PARTIAL_3_4_0)}, v2ExtendedDescription) } mapper = GraphSONMapper.build(). addRegistry(TinkerIoRegistryV2d0.instance()). @@ -167,7 +167,7 @@ mapper = GraphSONMapper.build(). file = new File("${projectBuildDir}/dev-docs/out-graphson-2d0-no-type.txt") if (file.exists()) file.delete() -file.withWriter { writeSupportedV2V3Objects(it, mapper, toJsonV2d0NoTypes, {it.isCompatibleWith(GraphSONCompatibility.V2D0_NO_TYPE_3_3_1)}, v2ExtendedDescription) }
[05/50] [abbrv] tinkerpop git commit: Merge branch 'tp32' into tp33
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/3f5a7b34 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/3f5a7b34 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/3f5a7b34 Branch: refs/heads/TINKERPOP-2041 Commit: 3f5a7b341f87616dbbbacfffbae545e4d8dea78e Parents: ef20b76 05c7daf Author: Stephen Mallette Authored: Thu Sep 27 15:34:45 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 15:34:45 2018 -0400 -- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[26/50] [abbrv] tinkerpop git commit: Merge branch 'TINKERPOP-2045' into tp32
Merge branch 'TINKERPOP-2045' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d0659bd4 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d0659bd4 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d0659bd4 Branch: refs/heads/TINKERPOP-2041 Commit: d0659bd4334f69810cee20d05a6f329d3673220e Parents: 0403156 6e320da Author: Robert Dale Authored: Tue Oct 2 03:47:28 2018 -0400 Committer: Robert Dale Committed: Tue Oct 2 03:47:28 2018 -0400 -- CHANGELOG.asciidoc | 1 + gremlin-driver/pom.xml | 14 ++ gremlin-groovy/pom.xml | 21 + 3 files changed, 36 insertions(+) --
[01/50] [abbrv] tinkerpop git commit: Merge branch 'tp32' into tp33 [Forced Update!]
Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-2041 3aad0b342 -> 8b69b34b6 (forced update) 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/90e39f06 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/90e39f06 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/90e39f06 Branch: refs/heads/TINKERPOP-2041 Commit: 90e39f0627d9614c9430994f90ac4e8f82ebf23c Parents: ef20b76 0278c15 Author: Daniel Kuppitz Authored: Thu Sep 27 08:05:50 2018 -0700 Committer: Daniel Kuppitz Committed: Thu Sep 27 08:05:50 2018 -0700 -- bin/validate-distribution.sh| 3 ++- docs/src/dev/developer/release.asciidoc | 3 ++- pom.xml | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/90e39f06/docs/src/dev/developer/release.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/90e39f06/pom.xml --
[49/50] [abbrv] tinkerpop git commit: TINKERPOP-2041 Fixed gremlin-javascript serializers for TP
TINKERPOP-2041 Fixed gremlin-javascript serializers for TP Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/68c47afa Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/68c47afa Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/68c47afa Branch: refs/heads/TINKERPOP-2041 Commit: 68c47afa017deb9deabba1cf025ecddd68cd42fa Parents: 519ca65 Author: Stephen Mallette Authored: Thu Sep 27 16:33:26 2018 -0400 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- .../gremlin-javascript/lib/structure/io/graph-serializer.js| 2 ++ .../gremlin-javascript/lib/structure/io/type-serializers.js| 1 + 2 files changed, 3 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68c47afa/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 9ce1761..fca8375 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 @@ -162,6 +162,7 @@ const deserializers = { 'g:Property': typeSerializers.PropertySerializer, 'g:Path': typeSerializers.Path3Serializer, 'g:T': typeSerializers.TSerializer, + 'g:TP': typeSerializers.TPSerializer, 'g:List': typeSerializers.ListSerializer, 'g:Set': typeSerializers.SetSerializer, 'g:Map': typeSerializers.MapSerializer @@ -173,6 +174,7 @@ const serializers = [ typeSerializers.BytecodeSerializer, typeSerializers.TraverserSerializer, typeSerializers.PSerializer, + typeSerializers.TPSerializer, typeSerializers.LambdaSerializer, typeSerializers.EnumSerializer, typeSerializers.VertexSerializer, http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68c47afa/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 ca81c2a..576c721 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 @@ -406,6 +406,7 @@ module.exports = { PathSerializer, PropertySerializer, PSerializer, + TPSerializer, SetSerializer, TSerializer, TraverserSerializer,
[04/50] [abbrv] tinkerpop git commit: Force travis to wait longer for output from spark tests before killing CTR
Force travis to wait longer for output from spark tests before killing CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/05c7dafc Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/05c7dafc Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/05c7dafc Branch: refs/heads/TINKERPOP-2041 Commit: 05c7dafc7d55d5c4927bb967f56358f81f7926ef Parents: 07ab226 Author: Stephen Mallette Authored: Thu Sep 27 14:46:21 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 14:47:21 2018 -0400 -- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05c7dafc/.travis.yml -- diff --git a/.travis.yml b/.travis.yml index 8ca1346..1cedfa0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,4 +30,4 @@ jobs: - script: "touch gremlin-dotnet/src/.glv && touch gremlin-dotnet/test/.glv && mvn clean install -q -DskipTests && mvn verify -pl :gremlin-dotnet,:gremlin-dotnet-tests -P gremlin-dotnet" - script: "touch gremlin-python/.glv && mvn clean install -q -DskipTests && mvn verify -pl gremlin-python" - script: "mvn clean install -q -DskipTests && mvn verify -pl :gremlin-javascript" -- script: "mvn clean install -q -DskipTests && mvn verify -pl :spark-gremlin -DskipIntegrationTests=false" +- script: "travis_wait 30 mvn clean install -q -DskipTests && mvn verify -pl :spark-gremlin -DskipIntegrationTests=false"
[35/50] [abbrv] tinkerpop git commit: Merge branch 'tp33'
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/7ac00a13 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/7ac00a13 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/7ac00a13 Branch: refs/heads/TINKERPOP-2041 Commit: 7ac00a13b4bfce60bc62e5c8d952681027ffebed Parents: b788201 650f31f Author: Stephen Mallette Authored: Wed Oct 3 06:13:04 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 06:13:04 2018 -0400 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7ac00a13/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java --
[08/50] [abbrv] tinkerpop git commit: Merge branch 'tp32' into tp33
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/393a8b1d Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/393a8b1d Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/393a8b1d Branch: refs/heads/TINKERPOP-2041 Commit: 393a8b1d1a1ce74d3a799ed30bd213d078d22614 Parents: 90e39f0 2250a85 Author: Stephen Mallette Authored: Thu Sep 27 15:37:04 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 15:37:04 2018 -0400 -- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[24/50] [abbrv] tinkerpop git commit: TINKERPOP-2040 Provide improved type handling for GroovyTranslator
TINKERPOP-2040 Provide improved type handling for GroovyTranslator Refactored testing and added support for UUID, Date, Timestamp as well as a method to override standard type handling. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/774371dc Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/774371dc Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/774371dc Branch: refs/heads/TINKERPOP-2041 Commit: 774371dc38d2d73be142eaa69c958226ac660892 Parents: 0403156 Author: Stephen Mallette Authored: Thu Sep 20 11:53:07 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../gremlin/process/traversal/Translator.java | 34 .../groovy/jsr223/GroovyTranslatorTest.java | 162 +++ .../gremlin/groovy/jsr223/GroovyTranslator.java | 32 +++- 3 files changed, 195 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/774371dc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java index 7e97fb3..0346092 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java @@ -19,6 +19,8 @@ package org.apache.tinkerpop.gremlin.process.traversal; +import java.util.function.UnaryOperator; + /** * A Translator will translate {@link Bytecode} into another representation. That representation may be a * Java instance via {@link StepTranslator} or a String script in some language via {@link ScriptTranslator}. @@ -55,10 +57,42 @@ public interface Translator { /// +/** + * Translates bytecode to a string representation. + */ public interface ScriptTranslator extends Translator { +/** + * Provides a way to customize and override the standard translation process. A {@link ScriptTranslator} + * implementation can choose to expose a way to accept a {@code TypeTranslator} which will convert an incoming + * object to a different form which will then be normally processed or can return a {@link Handled} object + * with the already translated script. + */ +public interface TypeTranslator extends UnaryOperator { +public static TypeTranslator identity() { +return t -> t; +} +} + +/** + * Contains a completed type translation from the {@link TypeTranslator}. + */ +public class Handled { +private final String translation; + +public Handled(final String translation) { +this.translation = translation; +} + +public String getTranslation() { +return translation; +} +} } +/** + * Translates bytecode to actual steps. + */ public interface StepTranslator> extends Translator { } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/774371dc/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index 942f1a5..686c7bd 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,7 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; @@ -32,47 +33,56 @@ import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.Transl import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex;
[37/50] [abbrv] tinkerpop git commit: Merge branch 'tp33'
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/21d2444c Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/21d2444c Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/21d2444c Branch: refs/heads/TINKERPOP-2041 Commit: 21d2444c6f404d24ed47d08f03806d73244b5691 Parents: 7ac00a1 8ca2778 Author: Florian Hockmann Authored: Wed Oct 3 12:31:48 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:31:48 2018 +0200 -- CHANGELOG.asciidoc | 1 + .../src/Gremlin.Net/Driver/Connection.cs| 6 +++-- .../src/Gremlin.Net/Driver/ConnectionFactory.cs | 7 -- .../src/Gremlin.Net/Driver/GremlinClient.cs | 11 +++-- .../Gremlin.Net/Driver/WebSocketConnection.cs | 9 +-- .../Driver/GremlinClientTests.cs| 25 6 files changed, 51 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/21d2444c/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/21d2444c/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs -- diff --cc gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs index 822fc65,b79f0e6..92e0d35 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs @@@ -51,9 -52,10 +52,10 @@@ namespace Gremlin.Net.Drive _graphSONReader = graphSONReader; _graphSONWriter = graphSONWriter; _messageSerializer = new JsonMessageSerializer(mimeType); + _webSocketConnection = new WebSocketConnection(webSocketConfiguration); } -public async Task> SubmitAsync(RequestMessage requestMessage) +public async Task> SubmitAsync(RequestMessage requestMessage) { await SendAsync(requestMessage).ConfigureAwait(false); return await ReceiveAsync().ConfigureAwait(false); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/21d2444c/gremlin-dotnet/src/Gremlin.Net/Driver/GremlinClient.cs -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/21d2444c/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Driver/GremlinClientTests.cs --
[31/50] [abbrv] tinkerpop git commit: Merge branch 'tp33'
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/b788201b Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b788201b Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b788201b Branch: refs/heads/TINKERPOP-2041 Commit: b788201bfcc0bd4f2a5eb24a66d32be58d06583d Parents: 3a91712 c10bde3 Author: Robert Dale Authored: Tue Oct 2 09:44:55 2018 -0400 Committer: Robert Dale Committed: Tue Oct 2 09:44:55 2018 -0400 -- docs/postprocessor/processor.awk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[45/50] [abbrv] tinkerpop git commit: Renamed `TP` to `TextP` as proposed by @robertdale
Renamed `TP` to `TextP` as proposed by @robertdale Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/f057fb36 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/f057fb36 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/f057fb36 Branch: refs/heads/TINKERPOP-2041 Commit: f057fb3601ab12dfe8dc10361c9916c904fc5a0d Parents: 79d4a05 Author: Daniel Kuppitz Authored: Mon Oct 1 09:27:35 2018 -0700 Committer: Daniel Kuppitz Committed: Thu Oct 4 07:45:08 2018 -0700 -- docs/src/reference/the-traversal.asciidoc | 16 +-- docs/src/upgrade/release-3.4.x.asciidoc | 2 +- .../tinkerpop/gremlin/jsr223/CoreImports.java | 6 +- .../tinkerpop/gremlin/process/traversal/TP.java | 107 --- .../gremlin/process/traversal/TextP.java| 107 +++ .../structure/io/graphson/GraphSONModule.java | 10 +- .../io/graphson/TraversalSerializersV2d0.java | 12 +-- .../io/graphson/TraversalSerializersV3d0.java | 12 +-- .../structure/io/gryo/GryoSerializersV1d0.java | 10 +- .../structure/io/gryo/GryoSerializersV3d0.java | 10 +- .../gremlin/structure/io/gryo/GryoVersion.java | 6 +- .../gremlin/process/traversal/PTest.java| 28 ++--- .../GraphSONMapperPartialEmbeddedTypeTest.java | 16 +-- gremlin-dotnet/glv/TP.template | 71 gremlin-dotnet/glv/TextP.template | 71 gremlin-dotnet/glv/generate.groovy | 12 +-- .../src/Gremlin.Net/Process/Traversal/TP.cs | 96 - .../src/Gremlin.Net/Process/Traversal/TextP.cs | 96 + .../Structure/IO/GraphSON/GraphSONWriter.cs | 2 +- .../Structure/IO/GraphSON/TPSerializer.cs | 45 .../Structure/IO/GraphSON/TextPSerializer.cs| 45 .../Gherkin/TraversalEvaluation/TPParameter.cs | 97 - .../TraversalEvaluation/TextPParameter.cs | 97 + .../TraversalEvaluation/TraversalParser.cs | 6 +- .../gremlin/groovy/jsr223/GroovyTranslator.java | 8 +- gremlin-javascript/glv/TraversalSource.template | 6 +- gremlin-javascript/glv/generate.groovy | 6 +- .../main/javascript/gremlin-javascript/index.js | 2 +- .../gremlin-javascript/lib/process/traversal.js | 6 +- .../lib/structure/io/graph-serializer.js| 4 +- .../lib/structure/io/type-serializers.js| 10 +- .../test/cucumber/feature-steps.js | 2 +- gremlin-python/glv/TraversalSource.template | 6 +- gremlin-python/glv/generate.groovy | 6 +- .../gremlin/python/jsr223/PythonTranslator.java | 8 +- .../jython/gremlin_python/process/traversal.py | 26 ++--- .../gremlin_python/structure/io/graphsonV2d0.py | 8 +- .../gremlin_python/structure/io/graphsonV3d0.py | 8 +- .../src/main/jython/radish/feature_steps.py | 4 +- gremlin-test/features/filter/Has.feature| 10 +- .../process/traversal/step/filter/HasTest.java | 12 +-- 41 files changed, 556 insertions(+), 556 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f057fb36/docs/src/reference/the-traversal.asciidoc -- diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc index da7260c..fdd261a 100644 --- a/docs/src/reference/the-traversal.asciidoc +++ b/docs/src/reference/the-traversal.asciidoc @@ -3357,8 +3357,8 @@ interface. Steps that allow for this type of modulation will explicitly state so == A Note on Predicates A `P` is a predicate of the form `Function`. That is, given some object, return true or false. As of -the relase of TinkerPop 3.4.0, Gremlin also supports simple text predicates, which only work on `String` values. The `TP` -text predicates extends the `P` predicates, but are specialized in that they are of the form `Function`. +the relase of TinkerPop 3.4.0, Gremlin also supports simple text predicates, which only work on `String` values. The `TextP` +text predicates extend the `P` predicates, but are specialized in that they are of the form `Function`. The provided predicates are outlined in the table below and are used in various steps such as <>-step, <>-step, <>-step, etc. @@ -3376,12 +3376,12 @@ The provided predicates are outlined in the table below and are used in various | `P.between(number,number)` | Is the incoming number greater than or equal to the first provided number and less than the second? | `P.within(objects...)` | Is the incoming object in the array of provided objects? | `P.without(objects...)` | Is the incoming object not in the array of the provided objects? -| `TP.startsWith(string)` | Does the incoming `String` start with the
[09/50] [abbrv] tinkerpop git commit: Merge branch 'tp33'
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/1e3d4d29 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1e3d4d29 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1e3d4d29 Branch: refs/heads/TINKERPOP-2041 Commit: 1e3d4d29ca0d4ea5fc134ab0fa642f68301f279f Parents: 6d3de83 393a8b1 Author: Stephen Mallette Authored: Thu Sep 27 15:37:23 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 15:37:23 2018 -0400 -- --
[02/50] [abbrv] tinkerpop git commit: Merge branch 'tp33'
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/e8dc8eb5 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e8dc8eb5 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e8dc8eb5 Branch: refs/heads/TINKERPOP-2041 Commit: e8dc8eb5142075939428a301dd04767f6be01a3d Parents: 7e2a2e2 90e39f0 Author: Daniel Kuppitz Authored: Thu Sep 27 08:05:59 2018 -0700 Committer: Daniel Kuppitz Committed: Thu Sep 27 08:05:59 2018 -0700 -- bin/validate-distribution.sh| 3 ++- docs/src/dev/developer/release.asciidoc | 3 ++- pom.xml | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e8dc8eb5/pom.xml --
[06/50] [abbrv] tinkerpop git commit: Merge branch 'tp33'
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/6d3de83a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/6d3de83a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/6d3de83a Branch: refs/heads/TINKERPOP-2041 Commit: 6d3de83af9a75473ead0e79461c0d5b2625ddb28 Parents: 78ef821 3f5a7b3 Author: Stephen Mallette Authored: Thu Sep 27 15:34:52 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 15:34:52 2018 -0400 -- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[03/50] [abbrv] tinkerpop git commit: Merge branch 'pr-938'
Merge branch 'pr-938' Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/78ef8216 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/78ef8216 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/78ef8216 Branch: refs/heads/TINKERPOP-2041 Commit: 78ef8216274524bc6bf798f2b61c6ea47c5b4ee0 Parents: e8dc8eb c9777b6 Author: Stephen Mallette Authored: Thu Sep 27 13:25:59 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 13:25:59 2018 -0400 -- docs/site/home/index.html | 1 + 1 file changed, 1 insertion(+) --