[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 794b312d696a139dd2c79c03bc784718983b1a05 Merge: b47aa38 6796128 Author: stephen AuthorDate: Thu Jan 2 12:44:26 2020 -0500 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc| 1 + .../gremlin/structure/io/graphml/GraphMLReader.java | 15 ++- 2 files changed, 15 insertions(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit b1d0ab31242a249a5e9ed39f44c498190f2ebfa2 Merge: 2d511a0 7a2b41a Author: stephen AuthorDate: Thu Jan 2 12:23:25 2020 -0500 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + docs/src/upgrade/release-3.3.x.asciidoc| 30 ++ gremlin-dotnet/glv/GraphTraversal.template | 8 ++ .../Process/Traversal/GraphTraversal.cs| 8 ++ .../DriverRemoteConnection/GraphTraversalTests.cs | 13 ++ .../glv/GraphTraversalSource.template | 8 ++ .../lib/process/graph-traversal.js | 8 ++ .../test/integration/traversal-test.js | 14 ++ gremlin-python/glv/GraphTraversalSource.template | 3 +++ .../gremlin_python/process/graph_traversal.py | 3 +++ .../tests/driver/test_driver_remote_connection.py | 8 ++ 11 files changed, 104 insertions(+) diff --cc gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs index f65276b,910c6e8..3169be5 --- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs @@@ -1751,32 -1677,13 +1751,40 @@@ namespace Gremlin.Net.Process.Traversa return Wrap(this); } +/// +/// Adds the with step to this . +/// +public GraphTraversal With (string key) +{ +Bytecode.AddStep("with", key); +return Wrap(this); +} + +/// +/// Adds the with step to this . +/// +public GraphTraversal With (string key, object value) +{ +Bytecode.AddStep("with", key, value); +return Wrap(this); +} + +/// +/// Adds the write step to this . +/// +public GraphTraversal Write () +{ +Bytecode.AddStep("write"); +return Wrap(this); +} + + + /// + /// Make a copy of a traversal that is reset for iteration. + /// + public GraphTraversal Clone() + { + return new GraphTraversal(this.TraversalStrategies, this.Bytecode); + } } }
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 2d511a0cc3199b0ab2a878cbc5e6e0e5dd1027b8 Merge: 712a23c 062693d Author: stephen AuthorDate: Thu Jan 2 12:08:55 2020 -0500 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc| 1 + .../java/org/apache/tinkerpop/gremlin/driver/Connection.java | 11 +-- 2 files changed, 10 insertions(+), 2 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 272e0b12945a57537db9efaaa4ee288df05243d0 Merge: 4ede832 5929975 Author: stephen AuthorDate: Fri Dec 13 20:43:41 2019 -0500 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + .../apache/tinkerpop/gremlin/driver/Cluster.java | 18 +--- .../gremlin/server/GremlinDriverIntegrateTest.java | 6 .../gremlin/server/TestClientFactory.java | 1 + .../src/test/resources/conf/remote-objects.yaml| 32 ++ 5 files changed, 54 insertions(+), 4 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. dkuppitz pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit c8f8039936bf93b2629d77436ff86453e073592b Merge: c660d1c 2ca82c8 Author: Daniel Kuppitz AuthorDate: Thu Dec 5 12:55:51 2019 -0700 Merge branch 'tp33' into tp34 docker/scripts/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 20a509307a7c896de01c787f44010c8055055c7e Merge: bc9158c 2d0fd64 Author: stephen AuthorDate: Wed Nov 13 18:59:53 2019 -0500 Merge branch 'tp33' into tp34 gremlin-shaded/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 47e25aa452dc950d1711f2828d75945604098977 Merge: 82c2f5f 6fbb53e Author: stephen AuthorDate: Thu Oct 31 13:36:18 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/process/traversal/TraversalStrategies.java| 3 +++ .../gremlin/process/traversal/util/DefaultTraversalStrategies.java | 6 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java index 6ee9cff,a2f932b..6c2c2f3 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java @@@ -85,11 -85,14 +85,14 @@@ public interface TraversalStrategies ex } /** - * Apply all the {@link TraversalStrategy} optimizers to the {@link Traversal} for the stated {@link TraversalEngine}. - * This method must ensure that the strategies are sorted prior to application. + * Apply all the {@link TraversalStrategy} optimizers to the {@link Traversal}. This method must ensure that the + * strategies are sorted prior to application. * * @param traversal the traversal to apply the strategies to + * @deprecated As of release 3.3.10, not directly replaced as this mode of strategy application has not been + * utilized since early days of 3.x */ + @Deprecated public void applyStrategies(final Traversal.Admin traversal); /**
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit f33d70bfe522c77675ebab700912bfdcb3b7c90c Merge: 9556968 399e156 Author: stephen AuthorDate: Fri Oct 25 09:29:50 2019 -0400 Merge branch 'tp33' into tp34 .../tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. rdale pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 955696820a0555670aee18a4670060283d479f37 Merge: bfa2cd8 fd54bfa Author: Robert Dale AuthorDate: Tue Oct 22 23:35:17 2019 -0400 Merge branch 'tp33' into tp34 gremlin-python/src/main/jython/README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. rdale pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit bfa2cd82543728db909ecac69e3ff01a520c3b5f Merge: 9992aac aee3b9e Author: Robert Dale AuthorDate: Tue Oct 22 23:24:20 2019 -0400 Merge branch 'tp33' into tp34 gremlin-python/pom.xml| 5 + gremlin-python/src/main/jython/{README => README.rst} | 4 ++-- gremlin-python/src/main/jython/setup.py | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. rdale pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 725e9058b6030ebd0d1a863105fa63d30aabc7c8 Merge: ee14de7 9e0ba17 Author: Robert Dale AuthorDate: Sun Oct 20 07:48:57 2019 -0400 Merge branch 'tp33' into tp34 docs/src/reference/the-traversal.asciidoc | 8 1 file changed, 4 insertions(+), 4 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 395dd78cc0f7dbcca962f677c309d3deaf9dfa84 Merge: 2b385c2 e94c7c0 Author: Stephen Mallette AuthorDate: Mon Oct 14 07:48:35 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 23 ++- docs/src/upgrade/release-3.3.x.asciidoc | 2 +- 2 files changed, 23 insertions(+), 2 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 755e2e1d6761b83b1e77e9369127e6e4e7ec8c23 Merge: c95ab32 ed9071f Author: Stephen Mallette AuthorDate: Thu Oct 3 16:53:48 2019 -0400 Merge branch 'tp33' into tp34 .../java/org/apache/tinkerpop/gremlin/driver/Cluster.java | 9 - gremlin-test/pom.xml| 2 +- pom.xml | 13 + 3 files changed, 14 insertions(+), 10 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 045f9e0d5b056b6ab563c26e6c7443fa1be1780a Merge: 3e08b63 4c9e0f9 Author: Stephen Mallette AuthorDate: Thu Oct 3 10:33:40 2019 -0400 Merge branch 'tp33' into tp34 gremlin-dotnet/glv/Gremlin.Net.csproj.template | 11 ++-- gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj | 11 ++-- .../main/javascript/gremlin-javascript/README.md | 30 +- gremlin-python/src/main/jython/README | 17 +++- 4 files changed, 63 insertions(+), 6 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ae3862127e53a86608625275e42f183cd25c56cf Merge: efde61e 5c6573d Author: Stephen Mallette AuthorDate: Mon Sep 30 14:19:24 2019 -0400 Merge branch 'tp33' into tp34 gremlin-python/glv/GraphTraversalSource.template | 36 ++-- gremlin-python/glv/TraversalSource.template| 36 ++-- .../src/main/jython/gremlin_python/__init__.py | 36 ++-- .../main/jython/gremlin_python/driver/__init__.py | 36 ++-- .../main/jython/gremlin_python/driver/client.py| 36 ++-- .../jython/gremlin_python/driver/connection.py | 34 +-- .../driver/driver_remote_connection.py | 36 ++-- .../main/jython/gremlin_python/driver/protocol.py | 36 ++-- .../gremlin_python/driver/remote_connection.py | 36 ++-- .../main/jython/gremlin_python/driver/request.py | 36 ++-- .../main/jython/gremlin_python/driver/resultset.py | 36 ++-- .../jython/gremlin_python/driver/serializer.py | 39 +++--- .../gremlin_python/driver/tornado/__init__.py | 36 ++-- .../gremlin_python/driver/tornado/transport.py | 36 ++-- .../main/jython/gremlin_python/driver/transport.py | 36 ++-- .../main/jython/gremlin_python/process/__init__.py | 36 ++-- .../gremlin_python/process/anonymous_traversal.py | 36 ++-- .../gremlin_python/process/graph_traversal.py | 36 ++-- .../jython/gremlin_python/process/strategies.py| 36 ++-- .../jython/gremlin_python/process/traversal.py | 36 ++-- .../src/main/jython/gremlin_python/statics.py | 36 ++-- .../jython/gremlin_python/structure/__init__.py| 36 ++-- .../main/jython/gremlin_python/structure/graph.py | 36 ++-- .../jython/gremlin_python/structure/io/__init__.py | 36 ++-- .../gremlin_python/structure/io/graphsonV2d0.py| 36 ++-- .../gremlin_python/structure/io/graphsonV3d0.py| 34 +-- .../src/main/jython/radish/feature_steps.py| 36 ++-- gremlin-python/src/main/jython/radish/terrain.py | 36 ++-- gremlin-python/src/main/jython/runtest.py | 36 ++-- gremlin-python/src/main/jython/setup.py| 4 +-- gremlin-python/src/main/jython/tests/__init__.py | 36 ++-- gremlin-python/src/main/jython/tests/conftest.py | 36 ++-- .../src/main/jython/tests/driver/__init__.py | 36 ++-- .../src/main/jython/tests/driver/test_client.py| 36 ++-- .../tests/driver/test_driver_remote_connection.py | 37 ++-- .../test_driver_remote_connection_threaded.py | 36 ++-- .../main/jython/tests/driver/test_serializer.py| 36 ++-- .../src/main/jython/tests/process/__init__.py | 36 ++-- .../src/main/jython/tests/process/test_dsl.py | 36 ++-- .../main/jython/tests/process/test_strategies.py | 36 ++-- .../main/jython/tests/process/test_traversal.py| 36 ++-- .../src/main/jython/tests/structure/__init__.py| 36 ++-- .../src/main/jython/tests/structure/io/__init__.py | 36 ++-- .../jython/tests/structure/io/test_graphsonV2d0.py | 36 ++-- .../jython/tests/structure/io/test_graphsonV3d0.py | 36 ++-- .../src/main/jython/tests/structure/test_graph.py | 36 ++-- .../src/main/jython/tests/test_statics.py | 36 ++-- 47 files changed, 827 insertions(+), 833 deletions(-) diff --cc gremlin-python/src/main/jython/gremlin_python/driver/serializer.py index 1e56e47,426327e..4a3435a --- a/gremlin-python/src/main/jython/gremlin_python/driver/serializer.py +++ b/gremlin-python/src/main/jython/gremlin_python/driver/serializer.py @@@ -1,22 -1,21 +1,21 @@@ - """ - 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,
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 2de0632892f32524ba1a0dac11efcef49bdd7fb2 Merge: fe1cfcd e8e217a Author: Stephen Mallette AuthorDate: Mon Sep 30 06:49:05 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 5 - gremlin-shaded/pom.xml | 2 +- neo4j-gremlin/pom.xml | 4 ++-- spark-gremlin/pom.xml | 16 +--- 4 files changed, 20 insertions(+), 7 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 39167fccab8616ef04b9114db8464e7ac385f6b4 Merge: 1ce6fe7 9950746 Author: Stephen Mallette AuthorDate: Fri Sep 27 08:51:51 2019 -0400 Merge branch 'tp33' into tp34 Conflicts: gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection.py .../tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java| 5 + .../apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java| 7 +-- .../src/main/jython/tests/driver/test_driver_remote_connection.py | 4 3 files changed, 10 insertions(+), 6 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java index 6e55343,dbe02bf..f4b984d --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java @@@ -68,19 -66,14 +68,20 @@@ import org.apache.tinkerpop.gremlin.pro import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.EdgeLabelVerificationStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.LambdaRestrictionStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; + import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReservedKeysVerificationStrategy; import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_LP_O_P_S_SE_SL_Traverser; +import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_LP_NL_O_P_S_SE_SL_Traverser; import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_LP_O_S_SE_SL_Traverser; +import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_LP_NL_O_S_SE_SL_Traverser; import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_S_SE_SL_Traverser; +import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_NL_O_S_SE_SL_Traverser; import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_Traverser; import org.apache.tinkerpop.gremlin.process.traversal.traverser.LP_O_OB_P_S_SE_SL_Traverser; +import org.apache.tinkerpop.gremlin.process.traversal.traverser.LP_NL_O_OB_S_SE_SL_Traverser; import org.apache.tinkerpop.gremlin.process.traversal.traverser.LP_O_OB_S_SE_SL_Traverser; +import org.apache.tinkerpop.gremlin.process.traversal.traverser.LP_NL_O_OB_P_S_SE_SL_Traverser; import org.apache.tinkerpop.gremlin.process.traversal.traverser.O_OB_S_SE_SL_Traverser; +import org.apache.tinkerpop.gremlin.process.traversal.traverser.NL_O_OB_S_SE_SL_Traverser; import org.apache.tinkerpop.gremlin.process.traversal.traverser.O_Traverser; import org.apache.tinkerpop.gremlin.process.traversal.traverser.ProjectedTraverser; import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.IndexedTraverserSet; @@@ -590,19 -562,10 +592,20 @@@ public enum GryoVersion add(GryoTypeReg.of(EarlyLimitStrategy.class, 188)); add(GryoTypeReg.of(MatchStep.CountMatchAlgorithm.class, 160)); add(GryoTypeReg.of(MatchStep.GreedyMatchAlgorithm.class, 167)); - add(GryoTypeReg.of(EdgeLabelVerificationStrategy.class, 189)); // ***LAST ID*** + add(GryoTypeReg.of(EdgeLabelVerificationStrategy.class, 189)); + add(GryoTypeReg.of(ReservedKeysVerificationStrategy.class, 190)); // ***LAST ID*** // skip 171, 172 to sync with tp33 add(GryoTypeReg.of(IndexedTraverserSet.VertexIndexedTraverserSet.class, 173)); + +add(GryoTypeReg.of(B_LP_NL_O_P_S_SE_SL_Traverser.class, 174)); +add(GryoTypeReg.of(B_NL_O_S_SE_SL_Traverser.class, 175)); +add(GryoTypeReg.of(B_LP_NL_O_S_SE_SL_Traverser.class, 176)); +add(GryoTypeReg.of(NL_O_OB_S_SE_SL_Traverser.class, 177)); +add(GryoTypeReg.of(LP_NL_O_OB_S_SE_SL_Traverser.class, 178)); +add(GryoTypeReg.of(LP_NL_O_OB_P_S_SE_SL_Traverser.class, 179)); +add(GryoTypeReg.of(LabelledCounter.class, 180)); +add(GryoTypeReg.of(Stack.class, 181)); +add(GryoTypeReg.of(ReferenceMap.class, 182)); }}; }
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 1ce6fe764fdc7871de1842d6a97f48a156cfdabd Merge: a8751c3 ed72e81 Author: Stephen Mallette AuthorDate: Thu Sep 26 17:15:36 2019 -0400 Merge branch 'tp33' into tp34 .../apache/tinkerpop/gremlin/driver/Client.java| 5 +- .../tinkerpop/gremlin/driver/Connection.java | 23 --- .../tinkerpop/gremlin/driver/ConnectionPool.java | 16 +++-- .../apache/tinkerpop/gremlin/driver/Handler.java | 45 ++--- .../driver/exception/NoHostAvailableException.java | 31 - .../server/handler/SaslAuthenticationHandler.java | 15 ++--- .../gremlin/server/GremlinDriverIntegrateTest.java | 11 ++-- .../server/GremlinServerAuthIntegrateTest.java | 66 ++- .../server/GremlinServerAuthKrb5IntegrateTest.java | 75 ++ .../gremlin/server/GremlinServerIntegrateTest.java | 15 ++--- 10 files changed, 46 insertions(+), 256 deletions(-) diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Handler.java index 774adaf,7b12890..74cf761 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Handler.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Handler.java @@@ -85,29 -82,15 +83,15 @@@ final class Handler @Override protected void channelRead0(final ChannelHandlerContext channelHandlerContext, final ResponseMessage response) throws Exception { - // We are only interested in AUTHENTICATE or UNAUTHORIZED responses here. Everything else can - // get passed down the pipeline. - if (response.getStatus().getCode() == ResponseStatusCode.UNAUTHORIZED) - channelHandlerContext.attr(saslClientKey).set(null); - + // We are only interested in AUTHENTICATE responses here. Everything else can + // get passed down the pipeline if (response.getStatus().getCode() == ResponseStatusCode.AUTHENTICATE) { -final Attribute saslClient = channelHandlerContext.attr(saslClientKey); -final Attribute subject = channelHandlerContext.attr(subjectKey); +final Attribute saslClient = ((AttributeMap) channelHandlerContext).attr(saslClientKey); +final Attribute subject = ((AttributeMap) channelHandlerContext).attr(subjectKey); final RequestMessage.Builder messageBuilder = RequestMessage.build(Tokens.OPS_AUTHENTICATION); - // First time through we don't have a sasl client if (saslClient.get() == null) { - try { - subject.set(login()); - } catch (LoginException le) { - // prevent the client side LoginException from bubbling up since Connection.validate() swallows - // the LoginException and doesn't give feedback to the user. - final ResponseMessage clientSideError = ResponseMessage.build(response.getRequestId()) - .code(ResponseStatusCode.FORBIDDEN).statusMessage(le.getMessage()).create(); - channelHandlerContext.fireChannelRead(clientSideError); - return; - } - + subject.set(login()); try { saslClient.set(saslClient(getHostName(channelHandlerContext))); } catch (SaslException saslException) { diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java index d176685,817b8a6..0d1b1c8 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java @@@ -24,16 -24,11 +24,15 @@@ import org.apache.tinkerpop.gremlin.Tes import org.apache.tinkerpop.gremlin.driver.Channelizer; import org.apache.tinkerpop.gremlin.driver.Client; import org.apache.tinkerpop.gremlin.driver.Cluster; +import org.apache.tinkerpop.gremlin.driver.RequestOptions; import org.apache.tinkerpop.gremlin.driver.Result; import org.apache.tinkerpop.gremlin.driver.ResultSet; +import org.apache.tinkerpop.gremlin.driver.Tokens; - import org.apache.tinkerpop.gremlin.driver.exception.NoHostAvailableException; import org.apache.tinkerpop.gremlin.driver.exception.ResponseException; import org.apache.tinkerpop.gremlin.driver.handler.WebSocketClientHandler; +import org.apache.tinkerpop.gremlin.driver.message.RequestMessage; import org.apache.tinkerpop.gremlin.driver.message.ResponseStatusCode; +import org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection; import
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 8a236d304752d0e1f4610d80eba703f93d8c9ad6 Merge: 2ba3942 1969c60 Author: Stephen Mallette AuthorDate: Thu Sep 26 09:32:31 2019 -0400 Merge branch 'tp33' into tp34 docs/src/dev/developer/development-environment.asciidoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --cc docs/src/dev/developer/development-environment.asciidoc index 7a3a9ec,a84caed..ff8bd8d --- a/docs/src/dev/developer/development-environment.asciidoc +++ b/docs/src/dev/developer/development-environment.asciidoc @@@ -239,9 -230,9 +239,10 @@@ mvn -Dmaven.javadoc.skip=true --project ** Clean the `.groovy/grapes/org.apache.tinkerpop` directory on build: `mvn clean install -DcleanGrapes` ** Turn off "heavy" logging in the "process" tests: `mvn clean install -DargLine="-DmuteTestLogs=true"` ** The test suite for `neo4j-gremlin` is disabled by default - to turn it on: `mvn clean install -DincludeNeo4j` - * Regenerate test data (only necessary given changes to IO classes): `mvn clean install -Dio` from `tinkergraph-gremlin` directory + * Generate <> for `gremlin-io-test`: `mvn clean install -pl :gremlin-io-test -Dio` + * Regenerate toy graph data (only necessary given changes to IO classes): `mvn clean install -Dio` from `tinkergraph-gremlin` directory ** If there are changes to the Gryo format, it may be necessary to generate the Grateful Dead dataset from GraphSON (see `IoDataGenerationTest.shouldWriteGratefulDead`) +* Start Gremlin Server with Docker using the standard test configuration: `docker/gremlin-server.sh` * Check license headers are present: `mvn apache-rat:check` * Build AsciiDocs (see <>): `bin/process-docs.sh` ** Build AsciiDocs (but don't evaluate code blocks): `bin/process-docs.sh --dryRun`
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 9f500eca9154d4af89caf09583093dd17a3ba350 Merge: 2e89be3 49bab07 Author: Stephen Mallette AuthorDate: Mon Sep 23 08:47:16 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-variants.asciidoc | 8 ++ .../tinkerpop/gremlin/util/function/Lambda.java| 31 ++ .../src/Gremlin.Net/Process/Traversal/Lambda.cs| 4 +-- .../Process/Traversal/StringBasedLambda.cs | 21 ++- .../GraphTraversalSourceTests.cs | 12 + .../gremlin/groovy/jsr223/GroovyTranslator.java| 31 -- .../groovy/jsr223/GroovyTranslatorTest.java| 27 +++ .../gremlin_python/structure/io/graphsonV2d0.py| 8 -- .../gremlin_python/structure/io/graphsonV3d0.py| 8 -- .../tests/driver/test_driver_remote_connection.py | 11 11 files changed, 153 insertions(+), 9 deletions(-) diff --cc docs/src/reference/gremlin-variants.asciidoc index d54493c,d141333..20b1000 --- a/docs/src/reference/gremlin-variants.asciidoc +++ b/docs/src/reference/gremlin-variants.asciidoc @@@ -779,245 -312,120 +779,249 @@@ g.V().out().map(lambda: "x: len(x.get() <7> The default lambda language is changed back to Gremlin-Python. <8> If the `lambda`-prefix is not provided, then it is appended automatically in order to give a more natural look to the expression. + TIP: When running into situations where Groovy cannot properly discern a method signature based on the `Lambda` + instance created, it will help to fully define the closure in the lambda expression - so rather than + `lambda: ("it.get().value("name')","gremlin-groovy")`, prefer `lambda: ("x -> x.get().value("name"),"gremlin-groovy")`. + -=== Limitations +Finally, Gremlin `Bytecode` that includes lambdas requires that the traversal be processed by the +`ScriptEngine`. To avoid continued recompilation costs, it supports the encoding of bindings, which allow a remote +engine to to cache traversals that will be reused over and over again save that some parameterization may change. Thus, +instead of translating, compiling, and then executing each submitted bytecode, it is possible to simply execute. -* Traversals that return a `Set` *might* be coerced to a `List` in Python. In the case of Python, number equality -is different from JVM languages which produces different `Set` results when those types are in use. When this case -is detected during deserialization, the `Set` is coerced to a `List` so that traversals return consistent -results within a collection across different languages. If a `Set` is needed then convert `List` results -to `Set` manually. +[gremlin-python,modern] + +g.V(Bindings.of('id',1)).out('created').map(lambda: ("it.get().value('name').length()", "gremlin-groovy")).sum().toList() +g.V(Bindings.of('id',4)).out('created').map(lambda: ("it.get().value('name').length()", "gremlin-groovy")).sum().toList() + -[[gremlin-DotNet]] -== Gremlin.Net + Native Python Lambdas -image:gremlin-dotnet-logo.png[width=371,float=right] Apache TinkerPop's Gremlin.Net implements Gremlin within the C# language. It targets .NET Standard and can -therefore be used on different operating systems and with different .NET frameworks, such as .NET Framework -and link:https://www.microsoft.com/net/core[.NET Core]. Since the C# syntax is very similar to that of Java, it should be very easy to switch between -Gremlin-Java and Gremlin.Net. The only major syntactical difference is that all method names in Gremlin.Net -use PascalCase as opposed to camelCase in Gremlin-Java in order to comply with .NET conventions. +To process lambdas in Python, the `GremlinJythonScriptEngine` must be enabled on the remote end. If that remote is +Gremlin Server, then these instructions can help configuration it. As an example, the +`conf/gremlin-server-modern-py.yaml` configuration maintains a `GremlinJythonScriptEngine`. -[source,powershell] -nuget install Gremlin.Net +[source,bash] + +$ bin/gremlin-server.sh install org.apache.tinkerpop gremlin-python x.y.z +$ bin/gremlin-server.sh conf/gremlin-server-modern-py.yaml +[INFO] GremlinServer - + \,,,/ + (o o) +---oOOo-(3)-oOOo--- -In Gremlin.Net there exists `GraphTraversalSource`, `GraphTraversal`, and `__` which mirror the respective classes -in Gremlin-Java. The `GraphTraversalSource` requires a driver in order to communicate with <> (or any -RemoteConnection-enabled server). +[INFO] GremlinServer - Configuring Gremlin Server from conf/gremlin-server-modern-py.yaml +[INFO] MetricManager - Configured Metrics Slf4jReporter configured with interval=18ms and
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 2e89be3b20fbcee291bb974df6bfe4f3a3dd522d Merge: 2caf136 79ce819 Author: Stephen Mallette AuthorDate: Fri Sep 20 08:33:37 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + .../server/op/traversal/TraversalOpProcessor.java | 7 + .../gremlin/server/GremlinServerIntegrateTest.java | 32 -- 3 files changed, 38 insertions(+), 2 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 2caf136fd202d664653c9e2c5ff70da6187e81a6 Merge: c431828 b6e36d8 Author: Stephen Mallette AuthorDate: Fri Sep 20 07:03:52 2019 -0400 Merge branch 'tp33' into tp34 .../apache/tinkerpop/gremlin/driver/message/ResponseStatusCode.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit c8f1c65e64be82269a4d573c630647a803f7567a Merge: 13dda8f 761a079 Author: Stephen Mallette AuthorDate: Mon Sep 9 17:49:10 2019 -0400 Merge branch 'tp33' into tp34
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 3630afcbbcca503556bbc66711b2d7f5a83668c3 Merge: c2a01b8 dd14552 Author: Stephen Mallette AuthorDate: Tue Sep 3 12:41:57 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 2 + ...alExplanation.java => AbstractExplanation.java} | 104 +++ .../traversal/util/ImmutableExplanation.java | 80 +++ .../traversal/util/TraversalExplanation.java | 112 - .../structure/io/graphson/GraphSONModule.java | 2 + .../io/graphson/GraphSONSerializersV2d0.java | 28 ++ .../io/graphson/GraphSONSerializersV3d0.java | 28 ++ .../traversal/util/TraversalExplanationTest.java | 8 ++ .../graphson/GraphSONMapperEmbeddedTypeTest.java | 11 ++ 9 files changed, 215 insertions(+), 160 deletions(-) diff --cc gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java index af569e2,6c27770..f7dce28 --- 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 @@@ -22,7 -22,7 +22,8 @@@ import org.apache.tinkerpop.gremlin.pro import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; import org.apache.tinkerpop.gremlin.process.traversal.P; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; +import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet; + import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalExplanation; import org.apache.tinkerpop.gremlin.util.function.Lambda; import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper; import org.junit.Test; @@@ -52,8 -52,8 +53,9 @@@ import java.util.List import java.util.Map; import java.util.Set; + import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.__; import static org.hamcrest.Matchers.either; +import static org.hamcrest.core.AnyOf.anyOf; import static org.hamcrest.core.IsNot.not; import static org.hamcrest.core.StringStartsWith.startsWith; import static org.junit.Assert.assertEquals; @@@ -86,19 -86,15 +88,28 @@@ public class GraphSONMapperEmbeddedType public String version; @Test + public void shouldHandleTraversalExplanation() throws Exception { + assumeThat(version, not(startsWith("v1"))); - ++ + final TraversalExplanation o = __().out().outV().outE().explain(); + final TraversalExplanation deser = serializeDeserialize(mapper, o, TraversalExplanation.class); + assertEquals(o.prettyPrint(), deser.prettyPrint()); + } + + @Test +public void shouldHandleBulkSet() throws Exception { +// only supported on V3 +assumeThat(version, not(anyOf(startsWith("v1"), startsWith("v2"; + +final BulkSet bs = new BulkSet<>(); +bs.add("test1", 1); +bs.add("test2", 2); +bs.add("test3", 3); + +assertEquals(bs, serializeDeserialize(mapper, bs, BulkSet.class)); +} + +@Test public void shouldHandleNumberConstants() throws Exception { assumeThat(version, not(startsWith("v1")));
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 091a52804380792350db67f978f9953587528065 Merge: 447d120 ba562d1 Author: Stephen Mallette AuthorDate: Tue Sep 3 11:33:10 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + .../gremlin/process/traversal/step/map/GraphStep.java | 18 +++--- .../traversal/step/sideEffect/TinkerGraphStep.java | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit cf979034ffe86f752cae2fc6a19873a337d4c516 Merge: bff78f1 74e0644 Author: Stephen Mallette AuthorDate: Mon Aug 19 08:31:30 2019 -0400 Merge branch 'tp33' into tp34 .../resources/archetype-resources/src/test/java/SocialDslTest.java | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit bff78f12c3174f61e900555a632a67b956cefcc4 Merge: 68b7eea 7625874 Author: Stephen Mallette AuthorDate: Mon Aug 19 08:02:18 2019 -0400 Merge branch 'tp33' into tp34 docs/src/dev/developer/release.asciidoc | 2 ++ 1 file changed, 2 insertions(+)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 68b7eea56dff02c5e8eb252c55ee12a45888cc60 Merge: fd4a44b d998dbf Author: Stephen Mallette AuthorDate: Mon Aug 19 07:42:51 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc| 3 ++- .../src/main/jython/gremlin_python/driver/connection.py | 8 ++-- 2 files changed, 8 insertions(+), 3 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit fd4a44b77dc5b7e41378e8581f75304a343881b2 Merge: b35eb2b b9f010f Author: Stephen Mallette AuthorDate: Thu Aug 15 16:27:39 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. rdale pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit b35eb2b74a3750acffd892c393625de7e691a1cc Merge: 66a4cbb ebba19f Author: Robert Dale AuthorDate: Tue Aug 13 15:28:57 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 2 ++ gremlin-shaded/pom.xml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 1aabcd600534f4766266125cfc61c15c07106821 Merge: b44fcc6 82b4c71 Author: Stephen Mallette AuthorDate: Tue Jul 30 12:28:30 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 3 +- gremlin-python/glv/GraphTraversalSource.template | 88 +++- gremlin-python/glv/TraversalSource.template| 26 gremlin-python/glv/generate.groovy | 27 ++-- .../gremlin_python/process/graph_traversal.py | 159 - .../jython/gremlin_python/process/traversal.py | 37 ++--- .../gremlin_python/structure/io/graphsonV2d0.py| 3 +- .../gremlin_python/structure/io/graphsonV3d0.py| 3 +- .../tests/driver/test_driver_remote_connection.py | 6 + 9 files changed, 288 insertions(+), 64 deletions(-) diff --cc gremlin-python/glv/generate.groovy index 6f61680,31424c8..5011a40 --- a/gremlin-python/glv/generate.groovy +++ b/gremlin-python/glv/generate.groovy @@@ -26,36 -22,29 +26,44 @@@ import org.apache.tinkerpop.gremlin.pro import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource import org.apache.tinkerpop.gremlin.process.traversal.P +import org.apache.tinkerpop.gremlin.process.traversal.TextP +import org.apache.tinkerpop.gremlin.process.traversal.IO + import org.apache.tinkerpop.gremlin.process.traversal.Operator import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__ +import org.apache.tinkerpop.gremlin.process.traversal.step.util.WithOptions + import org.apache.tinkerpop.gremlin.structure.T import java.lang.reflect.Modifier + // this is a bit of a copy of what's in SymbolHelper - no way around it because this code generation task occurs // before the SymbolHelper is available to the plugin. - def toPythonMap = ["global": "global_", + def toPythonMap = ["and": "and_", +"all": "all_", "as": "as_", +"filter": "filter_", +"from": "from_", +"global": "global_", +"id": "id_", "in": "in_", -"and": "and_", -"with": "with_", -"or": "or_", "is": "is_", -"not": "not_", -"from": "from_", "list": "list_", +"max": "max_", +"min": "min_", +"not": "not_", +"range": "range_", +"or": "or_", "set": "set_", -"all": "all_"] - "sum": "sum_"] ++ "sum": "sum_", ++ "with": "with_"] + +def gatherTokensFrom = { tokenClasses -> +def m = [:] +tokenClasses.each { tc -> m << [(tc.simpleName) : tc.getFields().sort{ a, b -> a.name <=> b.name }.collectEntries{ f -> [(f.name) : f.get(null)]}]} +return m +} + +def toPythonValue = { type, value -> + type == String.class && value != null ? ('"' + value + '"') : value +} def toJavaMap = toPythonMap.collectEntries{k,v -> [(v):k]} def toPython = { symbol -> toPythonMap.getOrDefault(symbol, symbol) } diff --cc gremlin-python/src/main/jython/gremlin_python/process/graph_traversal.py index a186949,e64ca43..5dde030 --- a/gremlin-python/src/main/jython/gremlin_python/process/graph_traversal.py +++ b/gremlin-python/src/main/jython/gremlin_python/process/graph_traversal.py @@@ -537,14 -511,32 +537,40 @@@ class GraphTraversal(Traversal) self.bytecode.add_step("where", *args) return self +def with_(self, *args): +self.bytecode.add_step("with", *args) +return self + +def write(self, *args): +self.bytecode.add_step("write", *args) +return self + + # Deprecated - prefer the underscore suffixed versions e.g filter_() + + def filter(self, *args): + self.bytecode.add_step("filter", *args) + return self + + def id(self, *args): + self.bytecode.add_step("id", *args) + return self + + def max(self, *args): + self.bytecode.add_step("max", *args) + return self + + def min(self, *args): + self.bytecode.add_step("min", *args) + return self + + def range(self, *args): + self.bytecode.add_step("range", *args) + return self + + def sum(self, *args): + self.bytecode.add_step("sum", *args) + return self + class __(object): graph_traversal = GraphTraversal diff --cc gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV2d0.py index d5749ce,c3cfb7d..b4fdcc7 ---
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 18e9752ec2e9120397b6f069e67948fdbfa0bc07 Merge: c3fa4b5 31deb7e Author: Stephen Mallette AuthorDate: Tue Jul 30 10:54:00 2019 -0400 Merge branch 'tp33' into tp34 .../main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java index 933be7c,9bfbc7b..69f53db --- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java +++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java @@@ -149,10 -143,7 +151,8 @@@ public abstract class AbstractGremlinTe assertEquals("Iterator leak detected. Open iterator count=" + openItrCount, 0, openItrCount); } - graphProvider.getTestListener().ifPresent(l -> l.onTestEnd(this.getClass(), name.getMethodName())); - // GraphProvider that has implemented the clear method must check null for graph and config. +// If #assumeRequirementsAreMetForTest returns false in #setup, graph and config will be null. graphProvider.clear(graph, config); // All GraphProvider objects should be an instance of ManagedGraphProvider, as this is handled by GraphManager
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 92a20536bbb43db37957097eaf3b88332c1bfdfa Merge: efc3237 4af8725 Author: Stephen Mallette AuthorDate: Thu Jul 25 11:02:01 2019 -0400 Merge branch 'tp33' into tp34 gremlin-python/glv/TraversalSource.template| 20 -- .../jython/gremlin_python/process/traversal.py | 72 +++--- 2 files changed, 63 insertions(+), 29 deletions(-) diff --cc gremlin-python/glv/TraversalSource.template index a34c16a,2c01269..ada9bd2 --- a/gremlin-python/glv/TraversalSource.template +++ b/gremlin-python/glv/TraversalSource.template @@@ -167,41 -168,9 +168,43 @@@ def <%= method %>(*args) return P.<%= method %>(*args) <% } %> - --<% pmethods.findAll{!it.equals("clone")}.each { method -> %>statics.add_static('<%= method %>',<%= method %>) ++<% pmethods.findAll{!it.equals("clone")}.each { method -> %>statics.add_static('<%= method %>', <%= method %>) <% } %> - +class TextP(P): +def __init__(self, operator, value, other=None): +P.__init__(self, operator, value, other) +<% tpmethods.each { method -> %> +@staticmethod +def <%= method %>(*args): +return TextP("<%= toJava.call(method) %>", *args) +<% } %> +def __eq__(self, other): +return isinstance(other, self.__class__) and self.operator == other.operator and self.value == other.value and self.other == other.other + +def __repr__(self): +return self.operator + "(" + str(self.value) + ")" if self.other is None else self.operator + "(" + str(self.value) + "," + str(self.other) + ")" ++ +<% tpmethods.findAll{!it.equals("clone")}.each { method -> %> +def <%= method %>(*args): +return TextP.<%= method %>(*args) - statics.add_static('<%= method %>',<%= method %>) ++ +<% } %> ++<% tpmethods.findAll{!it.equals("clone")}.each { method -> %>statics.add_static('<%= method %>', <%= method %>) + ++<% } %> +<% tokens.each { k,v -> %> ++ +''' +<%= k %> +''' + ++ +class <%= k %>(object): +<% v.each {a,b -> %> +<%= a %> = "<%= b %>" +<% }} %> + - ''' TRAVERSER ''' @@@ -353,15 -325,12 +359,14 @@@ BINDING class Bindings(object): -def of(self,key,value): + +@staticmethod +def of(key, value): if not isinstance(key, str): raise TypeError("Key must be str") -return (key, value) +return Binding(key, value) - class Binding(object): def __init__(self,key,value): self.key = key @@@ -375,11 -344,3 +380,14 @@@ def __repr__(self): return "binding[" + self.key + "=" + str(self.value) + "]" + ++ +''' +WITH OPTIONS +''' ++ ++ +class WithOptions(object): +<% withOptions.each { %> +<%= it.name %> = <%= it.value %> +<% } %> diff --cc gremlin-python/src/main/jython/gremlin_python/process/traversal.py index 7af1b0f,128808d..3029e3a --- a/gremlin-python/src/main/jython/gremlin_python/process/traversal.py +++ b/gremlin-python/src/main/jython/gremlin_python/process/traversal.py @@@ -329,167 -330,33 +330,187 @@@ def without(*args) return P.without(*args) -statics.add_static('between',between) ++statics.add_static('between', between) - statics.add_static('between',between) - --statics.add_static('eq',eq) - - statics.add_static('gt',gt) ++statics.add_static('eq', eq) - statics.add_static('gte',gte) -statics.add_static('gt',gt) ++statics.add_static('gt', gt) - statics.add_static('inside',inside) -statics.add_static('gte',gte) ++statics.add_static('gte', gte) - statics.add_static('lt',lt) -statics.add_static('inside',inside) ++statics.add_static('inside', inside) - statics.add_static('lte',lte) -statics.add_static('lt',lt) ++statics.add_static('lt', lt) - statics.add_static('neq',neq) -statics.add_static('lte',lte) ++statics.add_static('lte', lte) - statics.add_static('not_',not_) -statics.add_static('neq',neq) ++statics.add_static('neq', neq) - statics.add_static('outside',outside) -statics.add_static('not_',not_) ++statics.add_static('not_', not_) - statics.add_static('test',test) -statics.add_static('outside',outside) ++statics.add_static('outside', outside) - statics.add_static('within',within) -statics.add_static('test',test) ++statics.add_static('test', test) + - statics.add_static('without',without) ++statics.add_static('within', within) + ++statics.add_static('without', without) + + +class TextP(P): +def __init__(self, operator, value, other=None): +P.__init__(self, operator, value, other) + +@staticmethod +def containing(*args): +return TextP("containing", *args) + +@staticmethod +def endingWith(*args): +return TextP("endingWith", *args) + +@staticmethod +def notContaining(*args): +return TextP("notContaining", *args) + +
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 1213d3f8276da14ae3854ec16e46b0a2ab2e897e Merge: 85301fb 22b393d Author: Stephen Mallette AuthorDate: Wed Jul 24 05:23:52 2019 -0400 Merge branch 'tp33' into tp34 gremlin-server/pom.xml | 4 1 file changed, 4 insertions(+)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 18e3b0603468413259f2579801f62d13791e0b51 Merge: a211c9a d0bb42b Author: Stephen Mallette AuthorDate: Tue Jul 23 11:25:16 2019 -0400 Merge branch 'tp33' into tp34 .gitignore | 1 + 1 file changed, 1 insertion(+)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a211c9a9a01cd1b3ad89e963b4ca81eb06200b7d Merge: 2f1e7d1 7ce795b Author: Stephen Mallette AuthorDate: Tue Jul 23 10:23:04 2019 -0400 Merge branch 'tp33' into tp34 .gitignore | 1 + 1 file changed, 1 insertion(+)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 2f1e7d165872d82de8758f6b9541196b287dbadc Merge: 73fd486 39e9a4c Author: Stephen Mallette AuthorDate: Tue Jul 23 07:19:19 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + docs/src/upgrade/release-3.3.x.asciidoc| 8 + .../Process/Traversal/DefaultTraversal.cs | 29 +++-- .../Gremlin.Net/Process/Traversal/ITraversal.cs| 6 .../Process/Traversal/TraversalTests.cs| 18 +++ gremlin-javascript/glv/TraversalSource.template| 12 .../gremlin-javascript/lib/process/traversal.js| 12 .../test/integration/traversal-test.js | 9 -- .../gremlin-javascript/test/unit/traversal-test.js | 36 ++ 9 files changed, 126 insertions(+), 5 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 85c2175d2420e1e1e3327be6af5d529526cdba67 Merge: eb15413 10a69b1 Author: Stephen Mallette AuthorDate: Thu Jul 11 15:29:50 2019 -0400 Merge branch 'tp33' into tp34 .../test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs | 8 ++-- gremlin-test/features/branch/Repeat.feature | 2 +- gremlin-test/features/map/PeerPressure.feature| 2 +- gremlin-test/features/sideEffect/Group.feature| 2 +- 4 files changed, 5 insertions(+), 9 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit eb15413a87259921be7f9e754bcea24d91c1d7cd Merge: 43e0a70 019f9e5 Author: Stephen Mallette AuthorDate: Thu Jul 11 12:38:42 2019 -0400 Merge branch 'tp33' into tp34 .../main/javascript/gremlin-javascript/test/cucumber/feature-steps.js | 3 --- 1 file changed, 3 deletions(-) diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js index 88f5341,2ad085f..02e7b3f --- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js +++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js @@@ -64,9 -63,6 +63,7 @@@ const ignoreReason = const ignoredScenarios = { // An associative array containing the scenario name as key, for example: 'g_withSideEffectXa_setX_V_both_name_storeXaX_capXaX': new IgnoreError(ignoreReason.setNotSupported), + 'g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX': new IgnoreError(ignoreReason.setNotSupported), - 'g_V_both_groupCountXaX_out_capXaX_selectXkeysX_unfold_both_groupCountXaX_capXaX': new IgnoreError(ignoreReason.needsFurtherInvestigation), - 'g_V_group_byXoutE_countX_byXnameX': new IgnoreError(ignoreReason.needsFurtherInvestigation), }; defineSupportCode(function(methods) {
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit b3866f476f3cd0c883edad11b176acd152026fa7 Merge: 6400d2d c041520 Author: Stephen Mallette AuthorDate: Thu Jul 11 06:50:53 2019 -0400 Merge branch 'tp33' into tp34 docs/src/upgrade/release-3.3.x.asciidoc | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. rdale pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 4d457b97df9edb43268bb461dc736be919489c74 Merge: b207cd3 5e25548 Author: Robert Dale AuthorDate: Wed Jul 10 08:03:13 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 2 +- gremlin-shaded/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 4862624715df1e2b62e7482b4875170c74b60ef1 Merge: b2967ed 582b20b Author: Stephen Mallette AuthorDate: Tue Jul 9 10:23:05 2019 -0400 Merge branch 'tp33' into tp34 gremlin-server/pom.xml | 2 +- .../apache/tinkerpop/gremlin/server/KdcFixture.java | 2 +- .../apache/tinkerpop/gremlin/server/backend.conf| 19 --- .../gremlin/server/gremlin-console-jaas.conf| 4 ++-- .../org/apache/tinkerpop/gremlin/server/kdc.conf| 21 - 5 files changed, 4 insertions(+), 44 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 2d6af0331bbdcc1283ee32e8ee616bd49991073f Merge: a62dc4f ad0e989 Author: Stephen Mallette AuthorDate: Mon Jul 8 12:31:42 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + .../process/traversal/step/branch/OptionalStep.java | 1 + .../gremlin/tinkergraph/structure/TinkerGraphTest.java | 17 + 3 files changed, 19 insertions(+)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a62dc4fd7158ad629a311065a2fb74d8d9c2f0a1 Merge: 199da2e 2aea5a8 Author: Stephen Mallette AuthorDate: Fri Jul 5 13:30:48 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + docs/src/upgrade/release-3.3.x.asciidoc| 8 - .../glv/GraphTraversalSource.template | 16 +- .../lib/process/graph-traversal.js | 16 +- .../lib/process/traversal-strategy.js | 28 - .../lib/structure/io/graph-serializer.js | 2 ++ .../lib/structure/io/type-serializers.js | 16 ++ .../test/cucumber/feature-steps.js | 35 ++ 8 files changed, 85 insertions(+), 37 deletions(-) diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js index c567199,4a7fdf2..ff14320 --- 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 @@@ -180,8 -179,8 +181,9 @@@ const serializers = typeSerializers.DateSerializer, typeSerializers.BytecodeSerializer, typeSerializers.TraverserSerializer, + typeSerializers.TraversalStrategySerializer, typeSerializers.PSerializer, + typeSerializers.TextPSerializer, typeSerializers.LambdaSerializer, typeSerializers.EnumSerializer, typeSerializers.VertexSerializer, diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js index 22cbe6b,651a6ea..88f5341 --- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js +++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js @@@ -57,47 -57,12 +57,14 @@@ const parsers = const ignoreReason = { lambdaNotSupported: 'Lambdas are not supported on gremlin-javascript', - computerNotSupported: "withComputer() is not supported on gremlin-javascript", + setNotSupported: "There is no Set support in gremlin-javascript", needsFurtherInvestigation: '', }; const ignoredScenarios = { // An associative array containing the scenario name as key, for example: - 'g_V_connectedComponent_hasXcomponentX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_dedup_connectedComponent_hasXcomponentX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_connectedComponent_withXEDGES_bothEXknowsXX_withXPROPERTY_NAME_clusterX_project_byXnameX_byXclusterX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_pageRank_hasXpageRankX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_outXcreatedX_pageRank_byXbothEX_byXprojectRankX_timesX0X_valueMapXname_projectRankX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_pageRank_order_byXpageRank_decrX_byXnameX_name': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_pageRank_order_byXpageRank_decrX_name_limitX2X': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_project_byXnameX_byXvaluesXfriendRankX_mathX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_hasLabelXpersonX_pageRank_byXpageRankX_project_byXnameX_byXvaluesXpageRankX_mathX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX_by_byXmathX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_hasLabelXsoftwareX_hasXname_rippleX_pageRankX1X_byXinEXcreatedXX_timesX1X_byXpriorsX_inXcreatedX_unionXboth__identityX_valueMapXname_priorsX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_outXcreatedX_groupXmX_byXlabelX_pageRankX1X_byXpageRankX_byXinEX_timesX1X_inXcreatedX_groupXmX_byXpageRankX_capXmX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_peerPressure_hasXclusterX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_peerPressure_byXclusterX_byXoutEXknowsXX_pageRankX1X_byXrankX_byXoutEXknowsXX_timesX2X_group_byXclusterX_byXrank_sumX_limitX100X': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_hasXname_rippleX_inXcreatedX_peerPressure_byXoutEX_byXclusterX_repeatXunionXidentity__bothX_timesX2X_dedup_valueMapXname_clusterX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_hasXname_rippleX_inXcreatedX_peerPressure_withXEDGES_outEX_withXPROPERTY_NAME_clusterX_repeatXunionXidentity__bothX_timesX2X_dedup_valueMapXname_clusterX': new IgnoreError(ignoreReason.computerNotSupported), - 'g_V_shortestPath': new
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 199da2eb0ba470e3265e4ee70f69d8fa54065c68 Merge: 2a337c6 f627cfc Author: Stephen Mallette AuthorDate: Fri Jul 5 08:19:06 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + .../org/apache/tinkerpop/gremlin/server/handler/OpSelectorHandler.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 2a337c605cfd51e3a6bb88fb6b64b65ce0b7355d Merge: 525e24e d6966d4 Author: Stephen Mallette AuthorDate: Fri Jul 5 06:41:12 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-variants.asciidoc| 2 +- .../src/main/java/org/apache/tinkerpop/gremlin/driver/Connection.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --cc docs/src/reference/gremlin-variants.asciidoc index d4c3dc6,e4a6cef..a0fe625 --- a/docs/src/reference/gremlin-variants.asciidoc +++ b/docs/src/reference/gremlin-variants.asciidoc @@@ -77,230 -39,9 +77,230 @@@ anchor:connecting-via-java[ [[gremlin-java]] == Gremlin-Java -image:gremlin-java-drawing.png[width=130,float=right] Apache TinkerPop's Gremlin-Java implements Gremlin within the Java8 -language and can be used by any Java8 compliant virtual machine. Gremlin-Java is considered the canonical, reference +image:gremlin-java-drawing.png[width=130,float=right] Apache TinkerPop's Gremlin-Java implements Gremlin within the +Java language and can be used by any Java Virtual Machine. Gremlin-Java is considered the canonical, reference implementation of Gremlin and serves as the foundation by which all other Gremlin language variants should emulate. +As the Gremlin Traversal Machine that processes Gremlin queries is also written in Java, it can be used in all three +connection methods described in the <> Section. + +[source,xml] + + + org.apache.tinkerpop + gremlin-core + x.y.z + + + + + org.apache.tinkerpop + gremlin-driver + x.y.z + + + +=== Connecting + +The pattern for connecting is described in <> and it basically distills down +to creating a `GraphTraversalSource`. For <> mode, this involves first creating a +`Graph` and then spawning the `GraphTraversalSource`: + +[source,java] + +Graph graph = ...; +GraphTraversalSource g = graph.traversal(); + + +Using "g" it is then possible to start writing Gremlin. The "g" allows for the setting of many configuration options +which affect traversal execution. The <> Section describes some of these options and some are +only suitable with <> style usage. For remote options however there are some added +configurations to consider and this section looks to address those. + +When connecting to <> or <> it +is possible to configure the `DriverRemoteConnection` manually as shown in earlier examples where the host and port +are provided as follows: + +[source,java] + +GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using("localhost",8182,"g")); + + +It is also possible to create it from a configuration. The most basic way to do so involves the following line of code: + +[source,java] + +GraphTraversalSource g = traversal().withRemote('conf/remote-graph.properties'); + + +The `remote-graph.properties` file simply provides connection information to the `GraphTraversalSource` which is used +to configure a `RemoteConnection`. That file looks like this: + +[source,text] + +gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection +gremlin.remote.driver.clusterFile=conf/remote-objects.yaml +gremlin.remote.driver.sourceName=g + + +The `RemoteConnection` is an interface that provides the transport mechanism for "g" and makes it possible to for +that mechanism to be altered (typically by graph providers who have their own protocols). TinkerPop provides one such +implementation called the `DriverRemoteConnection` which enables transport over Gremlin Server protocols using the +TinkerPop driver. The driver is configured by the specified `gremlin.remote.driver.clusterFile` and the local "g" is +bound to the `GraphTraversalSource` on the remote end with `gremlin.remote.driver.sourceName` which in this case is +also "g". + +There are other ways to configure the traversal using `withRemote()` as it has other overloads. It can take an +Apache Commons `Configuration` object which would have keys similar to those shown in the properties file and it +can also take a `RemoteConnection` instance directly. The latter is interesting in that it means it is possible to +programmatically construct all aspects of the `RemoteConnection`. For TinkerPop usage, that might mean directly +constructing the `DriverRemoteConnection` and the driver instance that supplies the transport mechanism. For example, +the command shown above could be re-written using programmatic construction as follows: + +[source,java] + +Cluster cluster = Cluster.open(); +GraphTraversalSource g =
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 448e81e0a6b696ec0b7059acf2009ce409d20626 Merge: 8737d6c 6284410 Author: Stephen Mallette AuthorDate: Mon Jul 1 18:56:08 2019 -0400 Merge branch 'tp33' into tp34 gremlin-console/src/test/python/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 8737d6c9c9637aacc1261a848f9f9e61ef587ff2 Merge: d2efcc6 264cc75 Author: Stephen Mallette AuthorDate: Mon Jul 1 14:56:18 2019 -0400 Merge branch 'tp33' into tp34 gremlin-python/src/main/jython/setup.py | 5 + 1 file changed, 1 insertion(+), 4 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 96711c8065479354a56c36dceaeea6e7c57c8528 Merge: 1e03e20 989bbec Author: Stephen Mallette AuthorDate: Mon Jul 1 08:10:24 2019 -0400 Merge branch 'tp33' into tp34
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 1e03e2094ca3415fbeda5aeaff04171e59c4ea6d Merge: b70e6b6 b4a16c4 Author: Stephen Mallette AuthorDate: Mon Jul 1 08:08:46 2019 -0400 Merge branch 'tp33' into tp34
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 761dc05f1ea8f2c0c9c40a2075db8652bb268a7f Merge: bd28ea2 59445da Author: Stephen Mallette AuthorDate: Fri Jun 28 06:12:31 2019 -0400 Merge branch 'tp33' into tp34 docs/src/reference/implementations-neo4j.asciidoc | 30 --- docs/src/tutorials/getting-started/index.asciidoc | 5 ++-- 2 files changed, 3 insertions(+), 32 deletions(-) diff --cc docs/src/tutorials/getting-started/index.asciidoc index 2422aac,1bff50d..9286c6c --- a/docs/src/tutorials/getting-started/index.asciidoc +++ b/docs/src/tutorials/getting-started/index.asciidoc @@@ -560,50 -537,74 +560,51 @@@ no need to `commit()`. If your `Graph` applied. To load larger data sets you should read about the - link:http://tinkerpop.apache.org/docs/x.y.z/reference/#clonevertexprogram[BulkLoaderVertexProgram] (BLVP), which - provides a generalized method for loading graphs of virtually any size. + link:http://tinkerpop.apache.org/docs/x.y.z/reference/#clonevertexprogram[CloneVertexProgram], which provides a + generalized method for loading graphs of virtually any size and consider the native bulk loading features of the + underlying graph database that you've chosen. -=== Gremlin Server +=== Gremlin in Other Programming Languages -image:gremlin-server-protocol.png[width=325,float=right] link:http://tinkerpop.apache.org/docs/x.y.z/reference/#gremlin-server[Gremlin Server] -provides a way to remotely execute Gremlin scripts against one or more `Graph` instances hosted within it. It does -this by exposing different endpoints, such as link:http://tinkerpop.apache.org/docs/x.y.z/reference/#_connecting_via_http[HTTP] -and link:http://tinkerpop.apache.org/docs/x.y.z/reference/#connecting-via-java[WebSocket], which allow a request -containing a Gremlin script to be processed with results returned. +This tutorial focused on Gremlin usage within the +link:http://tinkerpop.apache.org/docs/x.y.z/tutorials/the-gremlin-console/[Gremlin Console] which means that the +examples were Groovy-based and oriented toward the JVM. Gremlin, however, is far from being a Java-only library. +TinkerPop natively supports a number of different programming languages, making it possible to execute all of the +examples presented in this tutorial with little modification. These different language implementations of Gremlin are +referred to as link:http://tinkerpop.apache.org/docs/x.y.z/reference/#gremlin-drivers-variants[Gremlin Language Variants] and +they help make Gremlin more accessible and easier to use for those who do not use Java as their primary programming +language. -[source,text] +[gremlin-groovy] -$ curl -L -O https://www.apache.org/dist/tinkerpop/x.y.z/apache-tinkerpop-gremlin-server-x.y.z-bin.zip -$ unzip apache-tinkerpop-gremlin-server-x.y.z-bin.zip -$ cd apache-tinkerpop-gremlin-server-x.y.z -$ bin/gremlin-server.sh conf/gremlin-server-rest-modern.yaml -[INFO] GremlinServer - - \,,,/ - (o o) --oOOo-(3)-oOOo- - -[INFO] GremlinServer - Configuring Gremlin Server from conf/gremlin-server-rest-modern.yaml -... -[INFO] GremlinServer$1 - Channel started at port 8182. +v1 = g.addV('person').property('name','marko').next() +v2 = g.addV('person').property('name','stephen').next() +g.V(v1).addE('knows').to(v2).property('weight',0.75).iterate() - -[source,text] -$ curl -X POST -d "{\"gremlin\":\"g.V(x).out().values('name')\", \"language\":\"gremlin-groovy\", \"bindings\":{\"x\":1}}" "http://localhost:8182; - -[source,json] - -{ - "requestId": "f67dbfff-b33a-4ae3-842d-c6e7c97b246b", - "status": { - "message": "", - "code": 200, - "attributes": { - "@type": "g:Map", - "@value": [] - } - }, - "result": { - "data": { - "@type": "g:List", - "@value": ["lop", "vadas", "josh"] - }, - "meta": { - "@type": "g:Map", - "@value": [] - } - } -} +[source,csharp] + +Vertex v1 = g.AddV("person").Property("name","marko").Next(); +Vertex v2 = g.AddV("person").Property("name","stephen").Next(); +g.V(v1).AddE("knows").To(v2).Property("weight",0.75).Iterate(); + +[source,java] + +Vertex v1 = g.addV("person").property("name","marko").next(); +Vertex v2 = g.addV("person").property("name","stephen").next(); +g.V(v1).addE("knows").to(v2).property("weight",0.75).iterate(); + +[source,javascript] + +const v1 = g.addV('person').property('name','marko').next(); +const v2 = g.addV('person').property('name','stephen').next();
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit bd28ea2ee91cfb82ba0ce038fbd1e9a57894f059 Merge: 342df7d 66c04e8 Author: Stephen Mallette AuthorDate: Thu Jun 27 13:55:02 2019 -0400 Merge branch 'tp33' into tp34
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 342df7db97b15b03a9b5cce9aae6c54dd1061585 Merge: d0d32fa 15a5ae1 Author: Stephen Mallette AuthorDate: Tue Jun 25 15:33:56 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc| 1 + .../main/java/org/apache/tinkerpop/gremlin/driver/Connection.java | 5 - .../java/org/apache/tinkerpop/gremlin/driver/ConnectionPool.java | 8 .../main/java/org/apache/tinkerpop/gremlin/driver/Handler.java| 2 +- 4 files changed, 10 insertions(+), 6 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit d0d32fa00dfe7430d806e313f6e00155c02de3c4 Merge: e8de6e9 1f7e0e1 Author: Stephen Mallette AuthorDate: Tue Jun 25 15:29:13 2019 -0400 Merge branch 'tp33' into tp34 .../dev/developer/development-environment.asciidoc | 1 + docs/src/dev/provider/index.asciidoc | 8 +- .../traversal/step/sideEffect/SubgraphStep.java| 17 +- .../structure/io/graphml/GraphMLWriter.java| 179 +++-- .../tinkerpop/gremlin/AbstractGremlinTest.java | 8 +- .../tinkerpop/gremlin/IgnoreIteratorLeak.java | 41 - .../algorithm/generator/AbstractGeneratorTest.java | 21 ++- .../generator/CommunityGeneratorTest.java | 3 - .../generator/DistributionGeneratorTest.java | 5 +- .../process/computer/GraphComputerTest.java| 9 +- .../bulkloading/BulkLoaderVertexProgramTest.java | 9 +- .../traversal/TraversalInterruptionTest.java | 2 - .../traversal/step/sideEffect/SubgraphTest.java| 2 - .../decoration/SubgraphStrategyProcessTest.java| 4 +- .../tinkerpop/gremlin/structure/io/IoTest.java | 3 - .../tinkergraph/structure/TinkerGraphIterator.java | 12 +- 16 files changed, 153 insertions(+), 171 deletions(-) diff --cc docs/src/dev/provider/index.asciidoc index 162e907,1185d0c..54e5f98 --- a/docs/src/dev/provider/index.asciidoc +++ b/docs/src/dev/provider/index.asciidoc @@@ -773,12 -813,15 +774,15 @@@ the query is finished TinkerPop provides you with the ability to test for such resource leaks by checking for leaks when you run the Gremlin-Test suites against your implementation. To enable this leak detection, providers should increment the - `StoreIteratorCounter` whenever a reource is opened and decrement it when it is closed. A reference implementation + `StoreIteratorCounter` whenever a resource is opened and decrement it when it is closed. A reference implementation is provided with TinkerGraph as `TinkerGraphIterator.java`. + Assertions for leak detection are enabled by default when running the test suite. They can be temporarily disabled + by way of a system property - simply set `-DtestIteratorLeaks=false". + === Accessibility via GremlinPlugin -image:gremlin-plugin.png[width=100,float=left] The applications distributed with TinkerPop3 do not distribute with +image:gremlin-plugin.png[width=100,float=left] The applications distributed with TinkerPop do not distribute with any graph system implementations besides TinkerGraph. If your implementation is stored in a Maven repository (e.g. Maven Central Repository), then it is best to provide a <> implementation so the respective jars can be downloaded according and when required by the user. Neo4j's GremlinPlugin is provided below for reference. diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphml/GraphMLWriter.java index 59812f0,6d31cc8..8f0d1e0 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphml/GraphMLWriter.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphml/GraphMLWriter.java @@@ -214,24 -213,16 +215,24 @@@ public final class GraphMLWriter implem return writer; } else return utf8Writer; -} +} private void writeTypes(final Map identifiedVertexKeyTypes, -final Map identifiedEdgeKeyTypes, -final XMLStreamWriter writer) throws XMLStreamException { +final Map identifiedEdgeKeyTypes, +final XMLStreamWriter writer) throws XMLStreamException { // - final Collection vertexKeySet = getVertexKeysAndNormalizeIfRequired(identifiedVertexKeyTypes); - final Collection edgeKeySet = getEdgeKeysAndNormalizeIfRequired(identifiedEdgeKeyTypes); + final Collection vertexKeySet = getKeysAndNormalizeIfRequired(identifiedVertexKeyTypes); ++final Collection edgeKeySet = getKeysAndNormalizeIfRequired(identifiedEdgeKeyTypes); +// in case vertex and edge may have the same attribute name, the key id in graphml have to be different +intersection = CollectionUtils.intersection(vertexKeySet, edgeKeySet); + for (String key : vertexKeySet) { writer.writeStartElement(GraphMLTokens.KEY); -writer.writeAttribute(GraphMLTokens.ID, key); +if (intersection.contains(key)) { +writer.writeAttribute(GraphMLTokens.ID, key.concat(GraphMLTokens.VERTEX_SUFFIX)); +} else { +writer.writeAttribute(GraphMLTokens.ID, key); +} writer.writeAttribute(GraphMLTokens.FOR, GraphMLTokens.NODE); writer.writeAttribute(GraphMLTokens.ATTR_NAME, key);
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit e8de6e9fec6e457de7fc603325aff820b5f07c12 Merge: 922934b dcf9e07 Author: Stephen Mallette AuthorDate: Thu Jun 20 15:19:34 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + .../gremlin/tinkergraph/structure/TinkerGraph.java | 38 +++--- .../tinkergraph/structure/IdManagerTest.java | 81 ++ 3 files changed, 110 insertions(+), 10 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 922934bb62ebeb96a46757d15f7c5999cec74f5c Merge: 01420c9 b75263f Author: Stephen Mallette AuthorDate: Thu Jun 20 12:16:32 2019 -0400 Merge branch 'tp33' into tp34 .../process/traversal/step/map/RangeLocalStep.java | 8 +++- .../traversal/step/map/TraversalSelectStep.java| 9 +++- .../gremlin/process/traversal/step/util/Tree.java | 7 +++- .../strategy/optimization/CountStrategy.java | 6 ++- .../traversal/step/branch/BranchStepTest.java | 4 +- .../traversal/step/map/CoalesceStepTest.java | 4 +- .../process/traversal/step/util/TreeTest.java | 4 +- .../decoration/ElementIdStrategyTraverseTest.java | 4 +- .../gremlin/structure/FeaturesConventionTest.java | 4 +- .../gremlin/structure/GraphHiddenTest.java | 4 +- .../gremlin/structure/util/ElementHelperTest.java | 10 - .../tinkerpop/gremlin/util/NumberHelperTest.java | 9 +++- .../gremlin/driver/RequestMessageTest.java | 4 +- .../apache/tinkerpop/gremlin/LoadGraphWith.java| 6 ++- .../generator/CommunityGeneratorTest.java | 4 +- .../process/traversal/step/branch/UnionTest.java | 9 +++- .../process/traversal/step/filter/IsTest.java | 4 +- .../process/traversal/step/filter/SampleTest.java | 4 +- .../process/traversal/step/map/CoalesceTest.java | 6 +-- .../process/traversal/step/map/FlatMapTest.java| 2 +- .../process/traversal/step/map/LoopsTest.java | 4 +- .../process/traversal/step/map/MapTest.java| 4 +- .../process/traversal/step/map/MaxTest.java| 7 +++- .../process/traversal/step/map/MeanTest.java | 4 +- .../process/traversal/step/map/MinTest.java| 5 ++- .../process/traversal/step/map/SumTest.java| 5 ++- .../process/traversal/step/map/UnfoldTest.java | 14 +-- .../step/sideEffect/SideEffectCapTest.java | 9 ++-- .../traversal/step/sideEffect/TreeTest.java| 4 +- .../decoration/SubgraphStrategyProcessTest.java| 15 --- .../IncidentToAdjacentStrategyProcessTest.java | 5 ++- .../tinkerpop/gremlin/structure/EdgeTest.java | 15 +-- .../gremlin/structure/FeatureSupportTest.java | 13 -- .../gremlin/structure/GraphConstructionTest.java | 4 +- .../tinkerpop/gremlin/structure/VariablesTest.java | 4 +- .../tinkerpop/gremlin/structure/VertexTest.java| 1 - .../tinkerpop/gremlin/structure/io/IoTest.java | 6 ++- .../structure/util/detached/DetachedEdgeTest.java | 5 ++- .../util/detached/DetachedPropertyTest.java| 6 ++- .../util/detached/DetachedVertexPropertyTest.java | 6 ++- .../util/reference/ReferenceVertexTest.java| 7 ++-- .../neo4j/structure/NativeNeo4jIndexCheck.java | 7 ++-- .../gremlin/spark/util/SugarTestHelper.java| 6 ++- .../tinkergraph/structure/TinkerGraphPlayTest.java | 49 +- 44 files changed, 228 insertions(+), 89 deletions(-) diff --cc spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/util/SugarTestHelper.java index 304f05f,8d7a975..ac14fc0 --- a/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/util/SugarTestHelper.java +++ b/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/util/SugarTestHelper.java @@@ -22,8 -22,12 +22,12 @@@ import org.apache.tinkerpop.gremlin.gro import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; - import org.apache.tinkerpop.gremlin.process.traversal.traverser.*; + import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_LP_O_P_S_SE_SL_Traverser; + import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_LP_O_S_SE_SL_Traverser; + import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_S_SE_SL_Traverser; + import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_Traverser; + import org.apache.tinkerpop.gremlin.process.traversal.traverser.O_Traverser; +import org.apache.tinkerpop.gremlin.spark.process.computer.SparkHadoopGraphProvider; import java.util.HashSet; import java.util.Set; diff --cc tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java index c453a38,746689a..b07a7db --- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java +++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java @@@ -22,11 -22,12 +22,11 @@@ import org.apache.tinkerpop.gremlin.pro import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 01420c9a6c84028aa341371f097347727bd4e5c2 Merge: 59d8e0c d7b94be Author: Stephen Mallette AuthorDate: Thu Jun 20 09:45:50 2019 -0400 Merge branch 'tp33' into tp34 gremlin-test/features/map/Vertex.feature | 53 .../tinkerpop/gremlin/AbstractGremlinTest.java | 6 +- .../process/traversal/step/map/VertexTest.java | 71 ++ 3 files changed, 129 insertions(+), 1 deletion(-) diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java index a8e3068,9c6db39..c2650c4 --- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java +++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java @@@ -214,9 -202,13 +214,13 @@@ public abstract class AbstractGremlinTe public GraphTraversal> convertToVertexProperty(final Graph graph, final String vertexName, final String vertexPropertyKey) { // all test graphs have "name" as a unique id which makes it easy to hardcode this...works for now -return (GraphTraversal>) graph.traversal().V().has("name", vertexName).properties(vertexPropertyKey); +return (GraphTraversal>) graphProvider.traversal(graph).V().has("name", vertexName).properties(vertexPropertyKey); } + public Edge convertToEdge(final Graph graph, final String outVertexName, String edgeLabel, final String inVertexName) { + return graphProvider.traversal(graph).V().has("name", outVertexName).outE(edgeLabel).as("e").inV().has("name", inVertexName).select("e").toList().get(0); + } + public Object convertToEdgeId(final String outVertexName, String edgeLabel, final String inVertexName) { return convertToEdgeId(graph, outVertexName, edgeLabel, inVertexName); }
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 41434877da85338613f09f7b9c8a6d9d812834df Merge: d7daf2a 11b1235 Author: Stephen Mallette AuthorDate: Thu Jun 20 07:47:11 2019 -0400 Merge branch 'tp33' into tp34 .../test/integration/traversal-test.js | 15 ++- .../gremlin-javascript/test/unit/graphson-test.js | 52 ++ 2 files changed, 66 insertions(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit d7daf2af8781a4babbf9c0e42ff294929774ed53 Merge: 050ba50 0d08d24 Author: Stephen Mallette AuthorDate: Mon Jun 17 12:13:48 2019 -0400 Merge branch 'tp33' into tp34 docs/src/tutorials/getting-started/index.asciidoc | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --cc docs/src/tutorials/getting-started/index.asciidoc index 6460bda,d03535e..2422aac --- a/docs/src/tutorials/getting-started/index.asciidoc +++ b/docs/src/tutorials/getting-started/index.asciidoc @@@ -466,9 -444,9 +467,9 @@@ graph computing == The Final Ten Minutes -In these final ten minutes of _The TinkerPop Workout - by Gremlin_ we'll look at TinkerPop from a higher level and +In these final ten minutes of _The TinkerPop Workout — by Gremlin_, we'll look at TinkerPop from a higher level and - introduce different features of the stack in order to orient you with what it offers. In this way, you can - identify areas of interest and dig into the details from there. + introduce different features it provides to help orient you to some of the project's technology ecosystem. In this + way, you can identify areas of interest and dig into the details from there. === Why TinkerPop?
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit c4afedb07f330c93cea3b28f21ad4b068ea983df Merge: 551357b a9eee17 Author: Stephen Mallette AuthorDate: Fri Jun 14 13:46:33 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc| 1 + .../java/org/apache/tinkerpop/gremlin/process/traversal/Order.java| 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 551357b390ef3c53f58dbf5ff799c69f21e7da22 Merge: f4bc0ec 9d3265b Author: Stephen Mallette AuthorDate: Fri Jun 14 11:38:21 2019 -0400 Merge branch 'tp33' into tp34 docs/src/dev/developer/release.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit f4bc0ec88a0cb6b751480dac39d735be7492b8ee Merge: 31f9572 bcef625 Author: Stephen Mallette AuthorDate: Fri Jun 14 08:01:25 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + .../gremlin/server/op/session/SessionOpProcessor.java| 12 2 files changed, 5 insertions(+), 8 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 31f95722fdaba01ae9230b980a41535b1e87ea15 Merge: 1271895 ddac926 Author: Stephen Mallette AuthorDate: Fri Jun 14 07:38:12 2019 -0400 Merge branch 'tp33' into tp34 docs/src/dev/developer/for-committers.asciidoc | 27 ++ 1 file changed, 27 insertions(+)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 83ef37e314076c22429c26695a00b7fd87679a19 Merge: 65ac493 0431da8 Author: Stephen Mallette AuthorDate: Thu Jun 13 14:27:09 2019 -0400 Merge branch 'tp33' into tp34 docs/src/reference/gremlin-applications.asciidoc | 22 +++--- 1 file changed, 11 insertions(+), 11 deletions(-) diff --cc docs/src/reference/gremlin-applications.asciidoc index 43cbaeb,c892caf..65100f5 --- a/docs/src/reference/gremlin-applications.asciidoc +++ b/docs/src/reference/gremlin-applications.asciidoc @@@ -450,14 -450,16 +450,14 @@@ v[6 [[gremlin-server]] == Gremlin Server -image:gremlin-server.png[width=400,float=right] Gremlin Server provides a way to remotely execute Gremlin scripts -against one or more `Graph` instances hosted within it. The benefits of using Gremlin Server include: +image:gremlin-server.png[width=400,float=right] Gremlin Server provides a way to remotely execute Gremlin against one +or more `Graph` instances hosted within it. The benefits of using Gremlin Server include: -* Allows any Gremlin Structure-enabled graph to exist as a standalone server, which in turn enables the ability for -multiple clients to communicate with the same graph database. -* Enables execution of ad hoc queries through remotely submitted Gremlin scripts. -* Allows for the hosting of Gremlin-based DSLs (Domain Specific Language) that expand the Gremlin language to match -the language of the application domain, which will help support common graph use cases such as searching, ranking, -and recommendation. -* Provides a method for Non-JVM languages (e.g. Python, Javascript, etc.) to communicate with the TinkerPop stack. +* Allows any Gremlin Structure-enabled graph (i.e. implements the `Graph` API on the JVM) to exist as a standalone +server, which in turn enables the ability for multiple clients to communicate with the same graph database. - * Enables execution of ad-hoc queries through remotely submitted Gremlin. ++* Enables execution of ad hoc queries through remotely submitted Gremlin. +* Provides a method for non-JVM languages which may not have a Gremlin Traversal Machine (e.g. Python, Javascript, etc.) +to communicate with the TinkerPop stack on the JVM. * Exposes numerous methods for extension and customization to include serialization options, remote commands, etc. NOTE: Gremlin Server is the replacement for link:https://github.com/tinkerpop/rexster[Rexster].
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 1e9b3275c2674682bdfad510ba18c54af3fd8012 Merge: c8ba4e8 b4e3890 Author: Stephen Mallette AuthorDate: Thu Jun 13 14:19:08 2019 -0400 Merge branch 'tp33' into tp34 docs/src/index.asciidoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit c8ba4e8ca65e594c0e7dcf5d398fd7a7a518f8f1 Merge: 887e9fb df93fb2 Author: Stephen Mallette AuthorDate: Thu Jun 13 13:54:10 2019 -0400 Merge branch 'tp33' into tp34 pom.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit b768f10cb51b294c2b1f829fdb965d14723df1da Merge: 8b0dd06 ac21d0f Author: Stephen Mallette AuthorDate: Wed Jun 12 08:25:54 2019 -0400 Merge branch 'tp33' into tp34 gremlin-server/src/test/scripts/generate-all.groovy | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 8b0dd0657e9b03f507df8b351776b6dbae1e4eb0 Merge: 6643f26 9af2e51 Author: Stephen Mallette AuthorDate: Wed Jun 12 06:38:10 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + .../apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java| 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 6643f263e3c56639e0d5ef3ef786f5e118379031 Merge: 5400e22 87e338d Author: Stephen Mallette AuthorDate: Wed Jun 12 06:35:51 2019 -0400 Merge branch 'tp33' into tp34 docs/src/reference/the-graphcomputer.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 6fbe3d0792170b2d7bbd858fa0173449a6b71cbc Merge: 2f0b6fa ed8ddcb Author: Stephen Mallette AuthorDate: Tue Jun 11 08:01:08 2019 -0400 Merge branch 'tp33' into tp34 docs/src/reference/the-traversal.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 2f0b6fa332fb1e26fc08ed999ba4efd85cca274b Merge: 33bf261 0283a80 Author: Stephen Mallette AuthorDate: Mon Jun 10 14:49:16 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 4 +- docs/src/dev/provider/index.asciidoc | 10 +++ .../gremlin/process/traversal/Traversal.java | 9 +++ .../process/traversal/step/filter/NotStep.java | 2 +- .../traversal/step/filter/RangeGlobalStep.java | 4 + .../process/traversal/util/DefaultTraversal.java | 5 ++ .../process/traversal/util/TraversalUtil.java | 49 ++-- .../util/iterator/StoreIteratorCounter.java| 54 + .../process/traversal/step/filter/NotStepTest.java | 39 + .../tinkerpop/gremlin/AbstractGremlinTest.java | 20 - .../tinkerpop/gremlin/IgnoreIteratorLeak.java | 41 ++ .../generator/CommunityGeneratorTest.java | 33 +--- .../generator/DistributionGeneratorTest.java | 9 ++- .../process/computer/GraphComputerTest.java| 2 + .../bulkloading/BulkLoaderVertexProgramTest.java | 2 + .../traversal/TraversalInterruptionTest.java | 2 + .../process/traversal/step/filter/FilterTest.java | 11 +-- .../process/traversal/step/filter/HasTest.java | 2 + .../process/traversal/step/filter/WhereTest.java | 2 +- .../traversal/step/sideEffect/SubgraphTest.java| 2 + .../decoration/SubgraphStrategyProcessTest.java| 2 + .../tinkerpop/gremlin/structure/io/IoTest.java | 7 +- .../traversal/step/sideEffect/TinkerGraphStep.java | 49 +--- .../gremlin/tinkergraph/structure/TinkerGraph.java | 6 +- .../tinkergraph/structure/TinkerGraphIterator.java | 93 ++ 25 files changed, 408 insertions(+), 51 deletions(-) diff --cc docs/src/dev/provider/index.asciidoc index 84c8cf4,b0b5459..162e907 --- a/docs/src/dev/provider/index.asciidoc +++ b/docs/src/dev/provider/index.asciidoc @@@ -766,9 -805,19 +766,19 @@@ environment variable, depending on you creating temporary files. The value is typically set to the project build directory. For example using the Maven SureFire Plugin, this is done via the configuration argLine with `-Dbuild.dir=${project.build.directory}`. + Checking resource leak + TinkerPop query engine retrieves data by interfacing with the provider using iterators. These iterators (depending + on the provider) may hold up resources in the underlying storage layer and hence, it is critical to close them after + the query is finished. + + TinkerPop provides you with the ability to test for such resource leaks by checking for leaks when you run the + Gremlin-Test suites against your implementation. To enable this leak detection, providers should increment the + `StoreIteratorCounter` whenever a reource is opened and decrement it when it is closed. A reference implementation + is provided with TinkerGraph as `TinkerGraphIterator.java`. + === Accessibility via GremlinPlugin -image:gremlin-plugin.png[width=100,float=left] The applications distributed with TinkerPop3 do not distribute with +image:gremlin-plugin.png[width=100,float=left] The applications distributed with TinkerPop do not distribute with any graph system implementations besides TinkerGraph. If your implementation is stored in a Maven repository (e.g. Maven Central Repository), then it is best to provide a <> implementation so the respective jars can be downloaded according and when required by the user. Neo4j's GremlinPlugin is provided below for reference. diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java index c6741df,c874ae8..a8e3068 --- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java +++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java @@@ -76,17 -78,15 +79,23 @@@ public abstract class AbstractGremlinTe final LoadGraphWith[] loadGraphWiths = testMethod.getAnnotationsByType(LoadGraphWith.class); final LoadGraphWith loadGraphWith = loadGraphWiths.length == 0 ? null : loadGraphWiths[0]; final LoadGraphWith.GraphData loadGraphWithData = null == loadGraphWith ? null : loadGraphWith.value(); +final Set featureRequirementSet = getFeatureRequirementsForTest(testMethod, loadGraphWiths); + this.shouldTestIteratorLeak = !this.getClass().isAnnotationPresent(IgnoreIteratorLeak.class); + graphProvider = GraphManager.getGraphProvider(); + +// pre-check if available from graph provider to avoid graph creation +final Optional staticFeatures = graphProvider.getStaticFeatures(); +if (staticFeatures.isPresent()) { +
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit be170790966a84859f53defded687b06ff63425d Merge: 61ccbf4 445da1d Author: Stephen Mallette AuthorDate: Mon Jun 10 06:40:26 2019 -0400 Merge branch 'tp33' into tp34 .travis.yml | 9 - 1 file changed, 4 insertions(+), 5 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 61ccbf46c3045a569320f64c77417340c8f77800 Merge: e426bef 64bcad4 Author: Stephen Mallette AuthorDate: Sun Jun 9 10:15:47 2019 -0400 Merge branch 'tp33' into tp34 .../main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java | 2 ++ 1 file changed, 2 insertions(+)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit e426beffae83ec5de9f902a3596d28b93aa654ff Merge: 50b0fd3 d3a0364 Author: Stephen Mallette AuthorDate: Fri Jun 7 12:46:53 2019 -0400 Merge branch 'tp33' into tp34 .travis.yml | 16 +--- 1 file changed, 13 insertions(+), 3 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 50b0fd33f9f3260f64bcd0054f6664788e6c2071 Merge: e19ba22 c25b637 Author: Stephen Mallette AuthorDate: Thu Jun 6 13:00:19 2019 -0400 Merge branch 'tp33' into tp34 docs/src/dev/provider/index.asciidoc | 2 +- docs/src/reference/gremlin-applications.asciidoc | 5 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --cc docs/src/reference/gremlin-applications.asciidoc index 9c02310,bafda14..1d80379 --- a/docs/src/reference/gremlin-applications.asciidoc +++ b/docs/src/reference/gremlin-applications.asciidoc @@@ -1074,7 -1317,7 +1074,7 @@@ method for processing script evaluatio [[traversalopprocessor]] = TraversalOpProcessor - The `TraversalOpProcessor` provides a way to use <>. -The `TraversalOpProcessor` provides a way to accept traversals configured via <>. ++The `TraversalOpProcessor` provides a way to accept traversals configured via <>. [width="100%",cols="3,10,^2",options="header"] |= @@@ -1083,6 -1326,6 +1083,9 @@@ |cacheMaxSize |The maximum number of entries in the side-effect cache. |1000 |= ++If there is no intention to gather side-effects from traversals, the `cacheMaxSize` can be set to zero to disable the ++cache. ++ [[security]] Security
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit d33f5363b5810d5de18c9261ab463137598f1ad3 Merge: 1c3acba f2602ff Author: Stephen Mallette AuthorDate: Wed Jun 5 14:35:32 2019 -0400 Merge branch 'tp33' into tp34 .../src/main/jython/gremlin_python/driver/remote_connection.py | 1 + 1 file changed, 1 insertion(+)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 09df7083f0015669dc32947c2eb617791c6720c6 Merge: a4d7cc5 7c207e5 Author: Stephen Mallette AuthorDate: Wed Jun 5 07:40:51 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + gremlin-shaded/pom.xml | 14 +++--- 2 files changed, 8 insertions(+), 7 deletions(-)
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit f326b9b75f5a0f6befb44df6394d7c291e231d86 Merge: a57e531 2c854b8 Author: Stephen Mallette AuthorDate: Tue Jun 4 14:14:41 2019 -0400 Merge branch 'tp33' into tp34 .../io/graphson/GraphSONCompatibility.java | 4 + .../structure/io/gryo/GryoCompatibility.java | 2 + .../graphson/GraphSONTypedCompatibilityTest.java | 5 +- .../graphson/GraphSONUntypedCompatibilityTest.java | 2 + .../structure/io/gryo/GryoCompatibilityTest.java | 5 +- .../_3_3_8/authenticationchallenge-v1d0.json | 12 + .../authenticationchallenge-v2d0-no-types.json | 12 + .../authenticationchallenge-v2d0-partial.json | 12 + .../_3_3_8/authenticationchallenge-v3d0.json | 18 + .../_3_3_8/authenticationresponse-v1d0.json| 9 + .../authenticationresponse-v2d0-no-types.json | 9 + .../authenticationresponse-v2d0-partial.json | 9 + .../_3_3_8/authenticationresponse-v3d0.json| 9 + .../io/graphson/_3_3_8/barrier-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_8/barrier-v3d0.json | 4 + .../graphson/_3_3_8/bigdecimal-v2d0-partial.json | 4 + .../io/graphson/_3_3_8/bigdecimal-v3d0.json| 4 + .../graphson/_3_3_8/biginteger-v2d0-partial.json | 4 + .../io/graphson/_3_3_8/biginteger-v3d0.json| 4 + .../io/graphson/_3_3_8/binding-v2d0-partial.json | 10 + .../structure/io/graphson/_3_3_8/binding-v3d0.json | 10 + .../io/graphson/_3_3_8/byte-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_8/byte-v3d0.json| 4 + .../graphson/_3_3_8/bytebuffer-v2d0-partial.json | 4 + .../io/graphson/_3_3_8/bytebuffer-v3d0.json| 4 + .../io/graphson/_3_3_8/bytecode-v2d0-partial.json | 6 + .../io/graphson/_3_3_8/bytecode-v3d0.json | 6 + .../graphson/_3_3_8/cardinality-v2d0-partial.json | 4 + .../io/graphson/_3_3_8/cardinality-v3d0.json | 4 + .../io/graphson/_3_3_8/char-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_8/char-v3d0.json| 4 + .../io/graphson/_3_3_8/class-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_8/class-v3d0.json | 4 + .../io/graphson/_3_3_8/column-v2d0-partial.json| 4 + .../structure/io/graphson/_3_3_8/column-v3d0.json | 4 + .../io/graphson/_3_3_8/date-v2d0-no-types.json | 1 + .../io/graphson/_3_3_8/date-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_8/date-v3d0.json| 4 + .../io/graphson/_3_3_8/direction-v2d0-partial.json | 4 + .../io/graphson/_3_3_8/direction-v3d0.json | 4 + .../io/graphson/_3_3_8/double-v2d0-no-types.json | 1 + .../io/graphson/_3_3_8/double-v2d0-partial.json| 4 + .../structure/io/graphson/_3_3_8/double-v3d0.json | 4 + .../io/graphson/_3_3_8/duration-v2d0-partial.json | 4 + .../io/graphson/_3_3_8/duration-v3d0.json | 4 + .../structure/io/graphson/_3_3_8/edge-v1d0.json| 12 + .../io/graphson/_3_3_8/edge-v2d0-no-types.json | 14 + .../io/graphson/_3_3_8/edge-v2d0-partial.json | 32 + .../structure/io/graphson/_3_3_8/edge-v3d0.json| 32 + .../io/graphson/_3_3_8/float-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_8/float-v3d0.json | 4 + .../graphson/_3_3_8/inetaddress-v2d0-partial.json | 4 + .../io/graphson/_3_3_8/inetaddress-v3d0.json | 4 + .../io/graphson/_3_3_8/instant-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_8/instant-v3d0.json | 4 + .../io/graphson/_3_3_8/integer-v2d0-no-types.json | 1 + .../io/graphson/_3_3_8/integer-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_8/integer-v3d0.json | 4 + .../io/graphson/_3_3_8/lambda-v2d0-partial.json| 8 + .../structure/io/graphson/_3_3_8/lambda-v3d0.json | 8 + .../structure/io/graphson/_3_3_8/list-v3d0.json| 7 + .../io/graphson/_3_3_8/localdate-v2d0-partial.json | 4 + .../io/graphson/_3_3_8/localdate-v3d0.json | 4 + .../_3_3_8/localdatetime-v2d0-partial.json | 4 + .../io/graphson/_3_3_8/localdatetime-v3d0.json | 4 + .../io/graphson/_3_3_8/localtime-v2d0-partial.json | 4 + .../io/graphson/_3_3_8/localtime-v3d0.json | 4 + .../io/graphson/_3_3_8/long-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_8/long-v3d0.json| 4 + .../structure/io/graphson/_3_3_8/map-v3d0.json | 25 + .../io/graphson/_3_3_8/metrics-v2d0-partial.json | 54 ++ .../structure/io/graphson/_3_3_8/metrics-v3d0.json | 52 ++ .../io/graphson/_3_3_8/monthday-v2d0-partial.json | 4 + .../io/graphson/_3_3_8/monthday-v3d0.json | 4 + .../_3_3_8/offsetdatetime-v2d0-partial.json| 4 + .../io/graphson/_3_3_8/offsetdatetime-v3d0.json| 4 + .../graphson/_3_3_8/offsettime-v2d0-partial.json | 4 +
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 720e8166400c33570c26fda5536c12b242e2602f Merge: efe140f c52d264 Author: Stephen Mallette AuthorDate: Mon Jun 3 16:40:02 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 1 + .../gremlin/structure/io/graphml/GraphMLWriter.java| 18 -- .../apache/tinkerpop/gremlin/structure/io/IoTest.java | 14 ++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphml/GraphMLWriter.java index cc66d37,21fe416..59812f0 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphml/GraphMLWriter.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphml/GraphMLWriter.java @@@ -329,14 -309,12 +329,17 @@@ public final class GraphMLWriter implem for (String key : keys) { writer.writeStartElement(GraphMLTokens.DATA); -writer.writeAttribute(GraphMLTokens.KEY, key); +if (intersection != null && intersection.contains(key)) { +writer.writeAttribute(GraphMLTokens.KEY, key.concat(GraphMLTokens.VERTEX_SUFFIX)); +} else { +writer.writeAttribute(GraphMLTokens.KEY, key); +} ++ + final VertexProperty currentValue = getCheckedVertexProperty(vertex, key); + // technically there can't be a null here as gremlin structure forbids that occurrence even if Graph // implementations support it, but out to empty string just in case. - writer.writeCharacters(vertex.property(key).orElse("").toString()); + writer.writeCharacters(currentValue.orElse("").toString()); writer.writeEndElement(); } writer.writeEndElement();
[tinkerpop] 02/03: Merge branch 'tp33' into tp34
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 0ea7b457bd54d826d742e8d6172d83ff0e55b6e3 Merge: d703095 e3289b0 Author: Stephen Mallette AuthorDate: Mon Jun 3 13:53:34 2019 -0400 Merge branch 'tp33' into tp34 CHANGELOG.asciidoc | 2 ++ pom.xml| 2 +- 2 files changed, 3 insertions(+), 1 deletion(-)