[tinkerpop] 02/02: Merge branch 'tp33'
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 9a80184ae51c9084529a4fb74634b76f8b31fbf0 Merge: fa28560 a794617 Author: Robert Dale AuthorDate: Tue May 21 08:21:03 2019 -0400 Merge branch 'tp33' docs/src/dev/developer/release.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --cc docs/src/dev/developer/release.asciidoc index bdece6f,c7cef59..d78cef0 --- a/docs/src/dev/developer/release.asciidoc +++ b/docs/src/dev/developer/release.asciidoc @@@ -254,9 -252,8 +254,9 @@@ and link:https://hub.docker.com/r/tinke . `svn co --depth empty https://dist.apache.org/repos/dist/release/tinkerpop release; mkdir release/xx.yy.zz` . Copy release files from `dev/xx.yy.zz` to `release/xx.yy.zz`. . `cd release; svn add xx.yy.zz/; svn ci -m "TinkerPop xx.yy.zz release"` - . Wait for Apache Sonatype to sync the artifacts to Maven Central at (link:http://repo1.maven.org/maven2/org/apache/tinkerpop/tinkerpop/[http://repo1.maven.org/maven2/org/apache/tinkerpop/tinkerpop/]). + . Wait for Apache Sonatype to sync the artifacts to Maven Central at (link:https://repo1.maven.org/maven2/org/apache/tinkerpop/tinkerpop/[https://repo1.maven.org/maven2/org/apache/tinkerpop/tinkerpop/]). . Report the release through link:https://reporter.apache.org/addrelease.html?tinkerpop[reporter.apache.org] (an email reminder should arrive shortly following the svn command above to do the release) +. Update the `site/downloads.html` - provide the contents for the modal that pops up from the "contributors" link. . Wait for zip distributions to sync to the Apache mirrors (i.e ensure the download links work from a mirror). . `bin/publish-home.sh ` to publish the updated web site with new releases. . Execute `bin/update-current-docs.sh` to migrate to the latest documentation set for `/current`.
[tinkerpop] 02/02: Merge branch 'tp33'
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 e0d2091ee18061faa68d9068dd18c2eaad748158 Merge: 1b221be f71ce0d Author: Stephen Mallette AuthorDate: Fri May 17 08:03:20 2019 -0400 Merge branch 'tp33' docs/src/reference/gremlin-variants.asciidoc | 2 ++ docs/src/reference/the-traversal.asciidoc| 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --cc docs/src/reference/gremlin-variants.asciidoc index 24a4e2d,e4a6cef..efb843d --- a/docs/src/reference/gremlin-variants.asciidoc +++ b/docs/src/reference/gremlin-variants.asciidoc @@@ -753,229 -305,116 +753,230 @@@ 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. -=== 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 loggerName=org.apache.tinkerpop.gremlin.server.Settings$Slf4jReporterMetrics +[INFO] GraphManager - Graph [graph] was successfully configured via [conf/tinkergraph-empty.properties]. +[INFO] ServerGremlinExecutor - Initialized Gremlin thread pool. Threads in pool named with pattern gremlin-* +[INFO] ScriptEngines - Loaded gremlin-jython ScriptEngine +[INFO] ScriptEngines - Loaded gremlin-python ScriptEngine +[INFO] ScriptEngines - Loaded gremlin-groovy ScriptEngine +[INFO] GremlinExecutor - Initialized gremlin-groovy ScriptEngine with scripts/generate-modern.groovy +[INFO] ServerGremlinExecutor - Initialized GremlinExecutor and configured ScriptEngines. +[INFO] ServerGremlinExecutor - A GraphTraversalSource is now bound to [g] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard] +[INFO] OpLoader - Adding the standard OpProcessor. +[INFO] OpLoader - Adding the session OpProcessor. +[INFO] OpLoader - Adding the traversal OpProcessor. +[INFO] TraversalOpProcessor - Initialized
[tinkerpop] 02/02: Merge branch 'tp33'
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 1b221be178c8c7c711b8c3961f63edb657628eec Merge: cc285d4 7095e39 Author: Stephen Mallette AuthorDate: Fri May 17 07:58:51 2019 -0400 Merge branch 'tp33' CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-variants.asciidoc | 60 ++ docs/src/upgrade/release-3.3.x.asciidoc| 9 .../glv/GraphTraversalSource.template | 18 --- .../lib/process/anonymous-traversal.js | 15 -- .../lib/process/graph-traversal.js | 36 +++-- .../gremlin-javascript/lib/structure/graph.js | 8 +-- .../test/integration/traversal-test.js | 56 ++-- 8 files changed, 172 insertions(+), 31 deletions(-) diff --cc docs/src/reference/gremlin-variants.asciidoc index 5993eb1,e4a6cef..24a4e2d --- a/docs/src/reference/gremlin-variants.asciidoc +++ b/docs/src/reference/gremlin-variants.asciidoc @@@ -1236,4 -621,5 +1236,64 @@@ const result2 = await client.submit('g. for (const vertex of result2) { console.log(vertex.id); } + ++ ++[[gremlin-javascript-dsl]] ++=== Domain Specific Languages ++ ++Developing Gremlin DSLs in JavaScript largely requires extension of existing core classes with use of standalone ++functions for anonymous traversal spawning. The pattern is demonstrated in the following example: ++ ++[source,javascript] ++ ++class SocialTraversal extends GraphTraversal { ++ constructor(graph, traversalStrategies, bytecode) { ++super(graph, traversalStrategies, bytecode); ++ } ++ ++ aged(age) { ++return this.has('person', 'age', age); ++ } ++} ++ ++class SocialTraversalSource extends GraphTraversalSource { ++ constructor(graph, traversalStrategies, bytecode) { ++super(graph, traversalStrategies, bytecode, SocialTraversalSource, SocialTraversal); ++ } + ++ person(name) { ++return this.V().has('person', 'name', name); ++ } ++} ++ ++function anonymous() { ++ return new SocialTraversal(null, null, new Bytecode()); ++} ++ ++function aged(age) { ++ return anonymous().aged(age); ++} ++ ++ ++`SocialTraversal` extends the core `GraphTraversal` class and has a three argument constructor which is immediately ++proxied to the `GraphTraversal` constructor. New DSL steps are then added to this class using available steps to ++construct the underlying traversal to execute as demonstrated in the `aged()` step. ++ ++The `SocialTraversal` is spawned from a `SocialTraversalSource` which is extended from `GraphTraversalSource`. Steps ++added here are meant to be start steps. In the above case, the `person()` start step find a "person" vertex to begin ++the traversal from. ++ ++Typically, steps that are made available on a `GraphTraversal` (i.e. SocialTraversal in this example) should also be ++made available as spawns for anonymous traversals. The recommendation is that these steps be exposed in the module ++as standalone functions. In the example above, the standalone `aged()` step creates an anonymous traversal through ++an `anonymous()` utility function. The method for creating these standalone functions can be handled in other ways if ++desired. ++ ++To use the DSL, simply initialize the `g` as follows: ++ ++[source,javascript] ++ ++const g = traversal(SocialTraversalSource).withRemote(connection); ++g.person('marko').aged(29).values('name').toList(). ++ then(names => console.log(names)); + diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/graph-traversal.js index ec554e6,34e06db..c068262 --- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/graph-traversal.js +++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/graph-traversal.js @@@ -179,19 -175,9 +185,19 @@@ class GraphTraversalSource */ inject(...args) { const b = new Bytecode(this.bytecode).addStep('inject', args); - return new GraphTraversal(this.graph, new TraversalStrategies(this.traversalStrategies), b); + return new this.graphTraversalClass(this.graph, new TraversalStrategies(this.traversalStrategies), b); } + /** + * io GraphTraversalSource step method. + * @param {...Object} args + * @returns {GraphTraversal} + */ + io(...args) { +const b = new Bytecode(this.bytecode).addStep('io', args); +return new GraphTraversal(this.graph, new TraversalStrategies(this.traversalStrategies), b); + } + } /**
[tinkerpop] 02/02: Merge branch 'tp33'
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 cc285d40527681efd46505008b26c54887da7bd2 Merge: 886bf6d ad12862 Author: Stephen Mallette AuthorDate: Thu May 16 08:01:05 2019 -0400 Merge branch 'tp33' CHANGELOG.asciidoc | 1 + .../structure/util/detached/DetachedPath.java | 18 ++ .../structure/util/reference/ReferencePath.java| 23 ++- .../util/detached/DetachedFactoryTest.java | 70 ++ .../util/reference/ReferenceFactoryTest.java | 66 5 files changed, 147 insertions(+), 31 deletions(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 a837170ecdf9aa3926c8db7f1fa64dd2faa4aecc Merge: 48e44b2 dfe9a93 Author: Stephen Mallette AuthorDate: Thu May 9 10:00:30 2019 -0400 Merge branch 'tp33' CHANGELOG.asciidoc | 2 + docs/src/dev/io/graphson.asciidoc | 28 -- .../graphson/GraphSONMapperEmbeddedTypeTest.java | 43 ++ gremlin-dotnet/glv/P.template | 11 +++--- .../src/Gremlin.Net/Process/Traversal/P.cs | 17 - .../Structure/IO/GraphSON/GraphSONWriterTests.cs | 40 ++-- gremlin-javascript/glv/TraversalSource.template| 19 +- .../gremlin-javascript/lib/process/traversal.js| 27 +- .../lib/structure/io/graph-serializer.js | 12 -- .../lib/structure/io/type-serializers.js | 2 +- .../gremlin-javascript/test/unit/graphson-test.js | 18 + gremlin-python/glv/TraversalSource.template| 16 +++- .../jython/gremlin_python/process/traversal.py | 12 -- .../src/main/jython/tests/process/test_dsl.py | 2 +- .../jython/tests/structure/io/test_graphsonV2d0.py | 7 +++- .../jython/tests/structure/io/test_graphsonV3d0.py | 6 +++ 16 files changed, 211 insertions(+), 51 deletions(-) diff --cc gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java index 10d738b,23d727c..af569e2 --- 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 @@@ -20,8 -20,8 +20,9 @@@ package org.apache.tinkerpop.gremlin.st import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser; 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.util.function.Lambda; import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper; import org.junit.Test;
[tinkerpop] 02/02: Merge branch 'tp33'
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 2e169813d486e9c09156d8e374b2d40c14953eb7 Merge: 5989f64 8456052 Author: Stephen Mallette AuthorDate: Mon May 6 13:14:55 2019 -0400 Merge branch 'tp33' .../io/graphson/GraphSONCompatibility.java | 4 + .../structure/io/gryo/GryoCompatibility.java | 2 + .../graphson/GraphSONTypedCompatibilityTest.java | 2 + .../graphson/GraphSONUntypedCompatibilityTest.java | 4 +- .../structure/io/gryo/GryoCompatibilityTest.java | 2 + .../_3_3_7/authenticationchallenge-v1d0.json | 12 + .../authenticationchallenge-v2d0-no-types.json | 12 + .../authenticationchallenge-v2d0-partial.json | 12 + .../_3_3_7/authenticationchallenge-v3d0.json | 18 + .../_3_3_7/authenticationresponse-v1d0.json| 9 + .../authenticationresponse-v2d0-no-types.json | 9 + .../authenticationresponse-v2d0-partial.json | 9 + .../_3_3_7/authenticationresponse-v3d0.json| 9 + .../io/graphson/_3_3_7/barrier-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_7/barrier-v3d0.json | 4 + .../graphson/_3_3_7/bigdecimal-v2d0-partial.json | 4 + .../io/graphson/_3_3_7/bigdecimal-v3d0.json| 4 + .../graphson/_3_3_7/biginteger-v2d0-partial.json | 4 + .../io/graphson/_3_3_7/biginteger-v3d0.json| 4 + .../io/graphson/_3_3_7/binding-v2d0-partial.json | 10 + .../structure/io/graphson/_3_3_7/binding-v3d0.json | 10 + .../io/graphson/_3_3_7/byte-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_7/byte-v3d0.json| 4 + .../graphson/_3_3_7/bytebuffer-v2d0-partial.json | 4 + .../io/graphson/_3_3_7/bytebuffer-v3d0.json| 4 + .../io/graphson/_3_3_7/bytecode-v2d0-partial.json | 6 + .../io/graphson/_3_3_7/bytecode-v3d0.json | 6 + .../graphson/_3_3_7/cardinality-v2d0-partial.json | 4 + .../io/graphson/_3_3_7/cardinality-v3d0.json | 4 + .../io/graphson/_3_3_7/char-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_7/char-v3d0.json| 4 + .../io/graphson/_3_3_7/class-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_7/class-v3d0.json | 4 + .../io/graphson/_3_3_7/column-v2d0-partial.json| 4 + .../structure/io/graphson/_3_3_7/column-v3d0.json | 4 + .../io/graphson/_3_3_7/date-v2d0-no-types.json | 1 + .../io/graphson/_3_3_7/date-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_7/date-v3d0.json| 4 + .../io/graphson/_3_3_7/direction-v2d0-partial.json | 4 + .../io/graphson/_3_3_7/direction-v3d0.json | 4 + .../io/graphson/_3_3_7/double-v2d0-no-types.json | 1 + .../io/graphson/_3_3_7/double-v2d0-partial.json| 4 + .../structure/io/graphson/_3_3_7/double-v3d0.json | 4 + .../io/graphson/_3_3_7/duration-v2d0-partial.json | 4 + .../io/graphson/_3_3_7/duration-v3d0.json | 4 + .../structure/io/graphson/_3_3_7/edge-v1d0.json| 12 + .../io/graphson/_3_3_7/edge-v2d0-no-types.json | 14 + .../io/graphson/_3_3_7/edge-v2d0-partial.json | 32 + .../structure/io/graphson/_3_3_7/edge-v3d0.json| 32 + .../io/graphson/_3_3_7/float-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_7/float-v3d0.json | 4 + .../graphson/_3_3_7/inetaddress-v2d0-partial.json | 4 + .../io/graphson/_3_3_7/inetaddress-v3d0.json | 4 + .../io/graphson/_3_3_7/instant-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_7/instant-v3d0.json | 4 + .../io/graphson/_3_3_7/integer-v2d0-no-types.json | 1 + .../io/graphson/_3_3_7/integer-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_7/integer-v3d0.json | 4 + .../io/graphson/_3_3_7/lambda-v2d0-partial.json| 8 + .../structure/io/graphson/_3_3_7/lambda-v3d0.json | 8 + .../structure/io/graphson/_3_3_7/list-v3d0.json| 7 + .../io/graphson/_3_3_7/localdate-v2d0-partial.json | 4 + .../io/graphson/_3_3_7/localdate-v3d0.json | 4 + .../_3_3_7/localdatetime-v2d0-partial.json | 4 + .../io/graphson/_3_3_7/localdatetime-v3d0.json | 4 + .../io/graphson/_3_3_7/localtime-v2d0-partial.json | 4 + .../io/graphson/_3_3_7/localtime-v3d0.json | 4 + .../io/graphson/_3_3_7/long-v2d0-partial.json | 4 + .../structure/io/graphson/_3_3_7/long-v3d0.json| 4 + .../structure/io/graphson/_3_3_7/map-v3d0.json | 25 + .../io/graphson/_3_3_7/metrics-v2d0-partial.json | 54 ++ .../structure/io/graphson/_3_3_7/metrics-v3d0.json | 52 ++ .../io/graphson/_3_3_7/monthday-v2d0-partial.json | 4 + .../io/graphson/_3_3_7/monthday-v3d0.json | 4 + .../_3_3_7/offsetdatetime-v2d0-partial.json| 4 + .../io/graphson/_3_3_7/offsetdatetime-v3d0.json| 4 + .../graphson/_3_3_7/offsettime-v2d0-partial.json | 4 +
[tinkerpop] 02/02: Merge branch 'tp33'
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 72eb72f7796bbe95fa13953903c36f9b3b53e447 Merge: 6c7be04 29fe4cd Author: Stephen Mallette AuthorDate: Thu Feb 28 10:08:03 2019 -0500 Merge branch 'tp33' CHANGELOG.asciidoc | 2 + .../process/traversal/step/ProfilingAware.java | 98 ++ .../process/traversal/step/map/GroupStep.java | 39 - .../step/sideEffect/GroupSideEffectStep.java | 24 +- .../process/traversal/step/util/ProfileStep.java | 15 .../strategy/finalization/ProfileStrategy.java | 9 +- .../tinkergraph/structure/TinkerGraphTest.java | 25 ++ 7 files changed, 206 insertions(+), 6 deletions(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 a8cccade6a27a81c969d80408807d53e246dbb8e Merge: 6314fbe 93cd399 Author: Daniel Kuppitz AuthorDate: Thu Jan 10 07:41:22 2019 -0700 Merge branch 'tp33' CHANGELOG.asciidoc | 1 + .../gremlin/process/traversal/traverser/util/TraverserSet.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 b49078f810455cf3a4449ee53c87b5023e8380dd Merge: 4b5837e fa0afb5 Author: Stephen Mallette AuthorDate: Wed Jan 9 13:04:10 2019 -0500 Merge branch 'tp33' gremlin-dotnet/glv/Gremlin.Net.Template.nuspec.template | 2 +- gremlin-dotnet/glv/Gremlin.Net.csproj.template | 2 +- gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.nuspec | 2 +- gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --cc gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.nuspec index 14f85f6,35d0efc..6f7ceb3 --- a/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.nuspec +++ b/gremlin-dotnet/src/Gremlin.Net.Template/Gremlin.Net.Template.nuspec @@@ -3,10 -3,10 +3,10 @@@ Gremlin.Net.Template Gremlin.Net Template -3.3.6-SNAPSHOT +3.4.1-SNAPSHOT Gremlin.Net template to create a console application with dotnet new. Apache TinkerPop - https://github.com/apache/tinkerpop/blob/master/LICENSE + Apache-2.0 http://tinkerpop.apache.org TinkerPop Gremlin Gremlin.Net
[tinkerpop] 02/02: Merge branch 'tp33'
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 f821ba20893d68e799794bd5ff889c461ed2e396 Merge: de0a1a6 48014ce Author: Robert Dale AuthorDate: Tue Jan 1 06:17:17 2019 -0500 Merge branch 'tp33' CHANGELOG.asciidoc | 2 +- gremlin-shaded/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 8f9da19926d4affb4a06597a8bf5c349936c4f27 Merge: b850428 fb734ea Author: Stephen Mallette AuthorDate: Fri Dec 21 08:00:25 2018 -0500 Merge branch 'tp33' CHANGELOG.asciidoc | 1 + .../apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java | 2 ++ .../gremlin/structure/io/graphson/GraphSONSerializersV2d0.java | 2 +- .../gremlin/structure/io/graphson/GraphSONSerializersV3d0.java | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java index e853cf4,876d6d2..844897d --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java @@@ -141,9 -138,9 +141,10 @@@ abstract class GraphSONModule extends T put(VertexProperty.class, "VertexProperty"); put(Metrics.class, "Metrics"); put(TraversalMetrics.class, "TraversalMetrics"); + put(TraversalExplanation.class, "TraversalExplanation"); put(Traverser.class, "Traverser"); put(Tree.class, "Tree"); +put(BulkSet.class, "BulkSet"); put(Bytecode.class, "Bytecode"); put(Bytecode.Binding.class, "Binding"); put(AndP.class, "P");
[tinkerpop] 02/02: Merge branch 'tp33'
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 2e1e6e0d7bc25f5b71f23abff9898d88a30506f6 Merge: 5830585 b711c7e Author: Stephen Mallette AuthorDate: Wed Dec 19 15:21:34 2018 -0500 Merge branch 'tp33'
[tinkerpop] 02/02: Merge branch 'tp33'
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 5830585b12c22d3eaceacf3c0cb0c45b7dc7aef0 Merge: 9455078 09ce70c Author: Stephen Mallette AuthorDate: Wed Dec 19 15:19:31 2018 -0500 Merge branch 'tp33' CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-variants.asciidoc | 1 + .../apache/tinkerpop/gremlin/driver/Cluster.java | 24 +- .../org/apache/tinkerpop/gremlin/driver/Host.java | 6 +++--- .../apache/tinkerpop/gremlin/driver/Settings.java | 5 + .../apache/tinkerpop/gremlin/driver/HostTest.java | 10 - .../gremlin/server/AbstractChannelizer.java| 1 - .../server/channel/WebSocketChannelizer.java | 3 ++- 8 files changed, 40 insertions(+), 11 deletions(-) diff --cc docs/src/reference/gremlin-variants.asciidoc index 77afd2e,3877f50..9f5bec8 --- a/docs/src/reference/gremlin-variants.asciidoc +++ b/docs/src/reference/gremlin-variants.asciidoc @@@ -76,227 -39,9 +76,228 @@@ provided more detailed information abou [[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
[tinkerpop] 02/02: Merge branch 'tp33'
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 6107d247d03143290c6eca91f20e33c787f06c24 Merge: c2362da f9d7027 Author: Stephen Mallette AuthorDate: Mon Dec 17 15:11:54 2018 -0500 Merge branch 'tp33' Conflicts: docs/src/reference/gremlin-applications.asciidoc CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-variants.asciidoc | 19 -- .../driver/remote/DriverRemoteConnection.java | 30 +- 3 files changed, 41 insertions(+), 9 deletions(-) diff --cc docs/src/reference/gremlin-variants.asciidoc index 0c5c107,3877f50..77afd2e --- a/docs/src/reference/gremlin-variants.asciidoc +++ b/docs/src/reference/gremlin-variants.asciidoc @@@ -76,224 -39,9 +76,227 @@@ provided more detailed information abou [[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/02: Merge branch 'tp33'
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 dbec6b36db42a84bf39da891e74f04f22eeb3331 Merge: afa041d 5cda4ae Author: Daniel Kuppitz AuthorDate: Mon Dec 17 10:03:43 2018 -0700 Merge branch 'tp33' docs/src/recipes/anti-patterns.asciidoc | 291 docs/src/recipes/index.asciidoc | 4 + 2 files changed, 295 insertions(+)
[tinkerpop] 02/02: Merge branch 'tp33'
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 403a92d701e79ad88686553aea0d339247a75ed8 Merge: c7b28e5 5f4e2b6 Author: Stephen Mallette AuthorDate: Thu Dec 13 14:15:07 2018 -0500 Merge branch 'tp33' Conflicts: gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/AbstractRemoteGraphProvider.java spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/process/computer/SparkHadoopGraphProvider.java .../gremlin/driver/remote/AbstractRemoteGraphProvider.java | 3 ++- .../jsr223/GryoRemoteGraphGroovyTranslatorComputerProvider.java| 3 ++- .../gremlin/spark/process/computer/SparkHadoopGraphProvider.java | 7 --- 3 files changed, 8 insertions(+), 5 deletions(-) diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GryoRemoteGraphGroovyTranslatorComputerProvider.java index 4801811,c53516f..77fa5f6 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GryoRemoteGraphGroovyTranslatorComputerProvider.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GryoRemoteGraphGroovyTranslatorComputerProvider.java @@@ -342,32 -342,9 +342,33 @@@ import org.apache.tinkerpop.gremlin.tin test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.SelectTest", method = "g_V_untilXout_outX_repeatXin_asXaXX_selectXaX_byXtailXlocalX_nameX", reason = "Local traversals may not traverse past the local star-graph on GraphComputer") +@Graph.OptOut( +test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.ReadTest", +method = "*", +reason = "The io() step is not supported generally by GraphComputer") +@Graph.OptOut( +test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.WriteTest", +method = "*", +reason = "The io() step is not supported generally by GraphComputer") +@Graph.OptOut( +test = "org.apache.tinkerpop.gremlin.process.traversal.step.branch.RepeatTest", +method = "g_V_repeatXout_repeatXoutX_timesX1XX_timesX1X_limitX1X_path_by_name", +reason = "It is not possible to access more than a path element's id on GraphComputer") +@Graph.OptOut( +test = "org.apache.tinkerpop.gremlin.process.traversal.step.branch.RepeatTest", +method = "g_V_repeatXoutXknowsXX_untilXrepeatXoutXcreatedXX_emitXhasXname_lopXXX_path_byXnameX", +reason = "It is not possible to access more than a path element's id on GraphComputer") +@Graph.OptOut( +test = "org.apache.tinkerpop.gremlin.process.traversal.step.branch.RepeatTest", +method = "g_VX3X_repeatXbothX_createdXX_untilXloops_is_40XXemit_repeatXin_knowsXX_emit_loopsXisX1Xdedup_values", +reason = "Local traversals may not traverse past the local star-graph on GraphComputer") +@Graph.OptOut( +test = "org.apache.tinkerpop.gremlin.process.traversal.step.branch.RepeatTest", +method = "g_VX6X_repeatXa_bothXcreatedX_simplePathX_emitXrepeatXb_bothXknowsXX_untilXloopsXbX_asXb_whereXloopsXaX_asXbX_hasXname_vadasXX_dedup_name", +reason = "Local traversals may not traverse past the local star-graph on GraphComputer") @GraphProvider.Descriptor(computer = TinkerGraphComputer.class) public class GryoRemoteGraphGroovyTranslatorComputerProvider extends GryoRemoteGraphGroovyTranslatorProvider { + private final int AVAILABLE_PROCESSORS = Runtime.getRuntime().availableProcessors(); @Override public GraphTraversalSource traversal(final Graph graph) { diff --cc spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/process/computer/SparkHadoopGraphProvider.java index 2eebac1,644484f..6c1efb1 --- a/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/process/computer/SparkHadoopGraphProvider.java +++ b/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/process/computer/SparkHadoopGraphProvider.java @@@ -60,42 -44,15 +60,43 @@@ import java.util.Set /** * @author Marko A. Rodriguez (http://markorodriguez.com) + * @author Stephen Mallette (http://stephen.genoprime.com) */ @GraphProvider.Descriptor(computer = SparkGraphComputer.class) -public class SparkHadoopGraphProvider extends HadoopGraphProvider { +public class SparkHadoopGraphProvider extends AbstractFileGraphProvider { -protected static final String PREVIOUS_SPARK_PROVIDER = "previous.spark.provider"; +static final String PREVIOUS_SPARK_PROVIDER = "previous.spark.provider"; + private final int AVAILABLE_PROCESSORS = Runtime.getRuntime().availableProcessors(); +public static final Set IMPLEMENTATION = Collections.unmodifiableSet(new HashSet() {{ +add(HadoopEdge.class); +add(HadoopElement.class); +add(HadoopGraph.class); +
[tinkerpop] 02/02: Merge branch 'tp33'
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 1041f86d2e77d14dc214fdb917c73387987de546 Merge: 7de9880 0bd3824 Author: Stephen Mallette AuthorDate: Tue Dec 4 08:42:54 2018 -0500 Merge branch 'tp33' Conflicts: gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteConnection.java gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteConnection.java CHANGELOG.asciidoc | 1 + .../gremlin/process/remote/RemoteConnection.java | 25 +- .../traversal/AnonymousTraversalSource.java| 16 +++--- .../gremlin/process/traversal/TraversalSource.java | 3 --- .../driver/remote/DriverRemoteConnection.java | 5 ++--- .../gremlin/driver/remote/RemoteGraphProvider.java | 3 ++- .../gremlin/server/GremlinServerIntegrateTest.java | 2 +- .../tinkerpop/gremlin/structure/RemoteGraph.java | 8 +++ 8 files changed, 37 insertions(+), 26 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteConnection.java index 51968dd,8128fdc..0c124e7 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteConnection.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteConnection.java @@@ -21,8 -22,9 +22,8 @@@ import org.apache.commons.configuration import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraversal; import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; --import org.apache.tinkerpop.gremlin.process.traversal.Traverser; + import java.lang.reflect.Constructor; import java.util.Iterator; import java.util.concurrent.CompletableFuture; @@@ -36,10 -38,64 +37,32 @@@ * @author Marko A. Rodriguez (http://markorodriguez.com) */ public interface RemoteConnection extends AutoCloseable { - + public static final String GREMLIN_REMOTE = "gremlin.remote."; + public static final String GREMLIN_REMOTE_CONNECTION_CLASS = GREMLIN_REMOTE + "remoteConnectionClass"; + /** - * @deprecated As of release 3.2.2, replaced by {@link #submitAsync(Bytecode)}. - */ -@Deprecated -public Iterator> submit(final Traversal traversal) throws RemoteConnectionException; - -/** - * Submits {@link Traversal} {@link Bytecode} to a server and returns a {@link RemoteTraversal}. - * The {@link RemoteTraversal} is an abstraction over two types of results that can be returned as part of the - * response from the server: the results of the {@link Traversal} itself and the side-effects that it produced. - * - * @deprecated As of release 3.2.4, replaced by {@link #submitAsync(Bytecode)}. - */ -@Deprecated -public RemoteTraversal submit(final Bytecode bytecode) throws RemoteConnectionException; - -/** * Submits {@link Traversal} {@link Bytecode} to a server and returns a promise of a {@link RemoteTraversal}. * The {@link RemoteTraversal} is an abstraction over two types of results that can be returned as part of the * response from the server: the results of the {@link Traversal} itself and the side-effects that it produced. - * - * The default implementation calls the {@link #submit(Bytecode)} method for backward compatibility, but generally - * speaking this method should be implemented directly as {@link #submit(Bytecode)} is not called directly by - * any part of TinkerPop. Even if the {@code RemoteConnection} itself is not capable of asynchronous behaviour, it - * should simply implement this method in a blocking form. */ -public default CompletableFuture> submitAsync(final Bytecode bytecode) throws RemoteConnectionException { -// default implementation for backward compatibility to 3.2.4 - this method will probably just become -// the new submit() in 3.3.x when the deprecation is removed -final CompletableFuture> promise = new CompletableFuture<>(); -try { -promise.complete(submit(bytecode)); -} catch (Exception t) { -promise.completeExceptionally(t); -} -return promise; -} +public CompletableFuture> submitAsync(final Bytecode bytecode) throws RemoteConnectionException; + + /** + * Create a {@link RemoteConnection} from a {@code Configuration} object. The configuration must contain a + * {@code gremlin.remote.remoteConnectionClass} key which is the fully qualified class name of a + * {@link RemoteConnection} class. + */ + public static RemoteConnection
[tinkerpop] 02/02: Merge branch 'tp33'
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 4ebb41c1585b39ae84596914bedd27a5de0840e2 Merge: ec13939 d53c1bd Author: Stephen Mallette AuthorDate: Mon Dec 3 13:59:04 2018 -0500 Merge branch 'tp33' Conflicts: bin/publish-docs.sh bin/publish-docs.sh | 17 ++ gremlin-dotnet/src/.gitignore | 3 + gremlin-dotnet/src/docfx.json | 41 ++ gremlin-dotnet/src/images/favicon.ico | Bin 0 -> 1595 bytes gremlin-dotnet/src/images/tinkerpop-character.png | Bin 0 -> 5082 bytes gremlin-dotnet/src/index.md | 40 ++ gremlin-dotnet/src/pom.xml| 64 ++ gremlin-dotnet/src/toc.yml| 21 +++ pom.xml | 1 + 9 files changed, 187 insertions(+)
[tinkerpop] 02/02: Merge branch 'tp33'
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 5095dac3c9fc46f199269447857a86fdcae2249d Merge: 855636d 98146f4 Author: Daniel Kuppitz AuthorDate: Thu Nov 29 12:42:59 2018 -0700 Merge branch 'tp33' CHANGELOG.asciidoc | 1 + .../process/traversal/step/map/GroupStep.java | 33 +- .../step/sideEffect/GroupSideEffectStep.java | 6 ++-- .../process/traversal/util/TraversalHelper.java| 5 gremlin-test/features/sideEffect/Group.feature | 23 +++ .../traversal/step/sideEffect/GroupTest.java | 21 ++ 6 files changed, 79 insertions(+), 10 deletions(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 051eec45ef8cb03730b25144748da5f368bde419 Merge: ccd9326 6bb6a3c Author: Stephen Mallette AuthorDate: Mon Nov 26 13:05:46 2018 -0500 Merge branch 'tp33' .../gremlin/process/traversal/Bytecode.java| 2 +- .../process/traversal/TraversalStrategies.java | 9 +- .../traversal/util/DefaultTraversalStrategies.java | 14 ++- .../gremlin/process/TraversalStrategiesTest.java | 112 - 4 files changed, 74 insertions(+), 63 deletions(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 c4bcf6f07c2481062e6f6184d091d8f1878783e3 Merge: 578ac5c 15094c9 Author: Stephen Mallette AuthorDate: Tue Nov 20 10:05:50 2018 -0500 Merge branch 'tp33' Conflicts: docs/src/reference/gremlin-applications.asciidoc docs/src/reference/gremlin-applications.asciidoc | 26 +++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --cc docs/src/reference/gremlin-applications.asciidoc index ca99ad7,7c503e2..bac5980 --- a/docs/src/reference/gremlin-applications.asciidoc +++ b/docs/src/reference/gremlin-applications.asciidoc @@@ -1089,8 -1313,7 +1089,8 @@@ mechanisms are accessible, see the tabl 1.3+v|Gremlin-Java/ Gremlin-Console |PLAIN SASL (username/password) |3.0.0-incubating |Pluggable SASL |3.0.0-incubating - |GSSAPI SASL (Kerberos) |3.3.0 + |GSSAPI SASL (Kerberos) |3.3.0 +|Gremlin.NET |PLAIN SASL |3.3.0 |Gremlin-Python |PLAIN SASL |3.2.2 |Gremlin.Net |PLAIN SASL |3.2.7 |Gremlin-Javascript |PLAIN SASL |3.3.0 @@@ -2148,6 -2368,39 +2148,30 @@@ Gephi plugin configuration parameters a NOTE: This plugin is typically only useful to the Gremlin Console and is enabled in the there by default. + The instructions above assume that the `Graph` instance being visualized is local to the Gremlin Console. It makes that + assumption because the Gephi plugin requires a locally held `Graph`. If the intent is to visualize a `Graph` instance + hosted in Gremlin Server or a TinkerPop-enabled graph that can only be connected to in a "remote" fashion, then it + is still possible to use the Gephi plugin, but the requirement for a locally held `Graph` remains the same. To use + the Gephi plugin in these situations simply use <> to extract the portion of the remote + graph that will be visualized. Use of that step will return a `TinkerGraph` instance to the Gremlin Console at which + point it can be used locally with the Gephi plugin. The following example demonstrates the general steps: + + [source,text] + + gremlin> :remote connect tinkerpop.server conf/remote-objects.yaml <1> + ... + gremlin> :> g.E().hasLabel('knows').subgraph('subGraph').cap('subGraph') <2> + ... + gremlin> graph = result[0].object <3> + ... + + + <1> Be sure to connect with a serializer configured to return objects and not their `toString()` representation which + is discussed in more detail in the <> Section. + <2> Use the `:>` command to subgraph the remote graph as needed. + <3> The `TinkerGraph` of that previous traversal can be found in the `result` object and now that the `Graph` is local + to Gremlin Console it can be used with Gephi as shown in the prior instruction set. + -[[giraph-plugin]] -=== Giraph Plugin - -image:giraph-logo.png[width=50,float=left] The Giraph Plugin installs as part of `giraph-gremlin` and provides -a number of imports and utility functions to the environment within which it is used. Those classes and functions -provide the basis for supporting <> using link:http://giraph.apache.org[Giraph]. -This plugin is defined in greater detail in the <> section and is typically -installed in conjuction with the <>. - [[graph-plugins]] === Graph Plugins
[tinkerpop] 02/02: Merge branch 'tp33'
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 355f21429062af9e6be624e29cba605cea9533d6 Merge: f497276 2eda641 Author: Stephen Mallette AuthorDate: Thu Nov 15 15:58:40 2018 -0500 Merge branch 'tp33' CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-applications.asciidoc | 21 +++ docs/src/upgrade/release-3.3.x.asciidoc| 8 +++ .../jsr223/CompilationOptionsCustomizer.java | 33 ++- .../groovy/jsr223/GremlinGroovyScriptEngine.java | 67 -- .../groovy/jsr223/GroovyCompilerGremlinPlugin.java | 39 +++-- ...inGroovyScriptEngineCompilationOptionsTest.java | 3 +- .../jsr223/GroovyCompilerGremlinPluginTest.java| 33 --- 8 files changed, 143 insertions(+), 62 deletions(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 879d3b84ee88300e90b584f9c5508bc5a837e65c Merge: 74f19e4 e85667e Author: Stephen Mallette AuthorDate: Tue Nov 13 10:52:20 2018 -0500 Merge branch 'tp33' bin/publish-docs.sh| 15 + .../dev/developer/development-environment.asciidoc | 4 ++- docs/src/index.asciidoc| 3 +- gremlin-javascript/glv/PackageJson.template| 5 ++- gremlin-javascript/pom.xml | 17 -- .../main/javascript/gremlin-javascript/.gitignore | 3 +- .../javascript/gremlin-javascript/Gruntfile.js | 36 ++ .../javascript/gremlin-javascript/package.json | 5 ++- pom.xml| 1 + 9 files changed, 81 insertions(+), 8 deletions(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 74f19e405c7c06cf4b131a84ec839e5ccfac8abd Merge: a6bede9 e895a1d Author: Stephen Mallette AuthorDate: Mon Nov 12 12:06:01 2018 -0500 Merge branch 'tp33' Conflicts: gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-applications.asciidoc | 15 + docs/src/upgrade/release-3.3.x.asciidoc| 21 +++ .../tinkerpop/gremlin/console/Console.groovy | 6 +- .../console/commands/BytecodeCommand.groovy| 64 ++ .../console/commands/BytecodeCommand.properties| 20 +++ 6 files changed, 125 insertions(+), 2 deletions(-) diff --cc gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy index 3b4c7fd,89c37ad..9acf3a6 --- a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy +++ b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy @@@ -23,6 -21,8 +23,7 @@@ import groovy.cli.picocli.OptionAccesso import jline.TerminalFactory import jline.console.history.FileHistory -import org.apache.commons.cli.Option + import org.apache.tinkerpop.gremlin.console.commands.BytecodeCommand import org.apache.tinkerpop.gremlin.console.commands.GremlinSetCommand import org.apache.tinkerpop.gremlin.console.commands.InstallCommand import org.apache.tinkerpop.gremlin.console.commands.PluginCommand @@@ -413,16 -412,17 +415,16 @@@ class Console // note that the inclusion of -l is really a setting handled by gremlin.sh and not by Console class itself. // it is mainly listed here for informational purposes when the user starts things up with -h -cli.with { -h(longOpt: 'help', "Display this help message") -v(longOpt: 'version', "Display the version") -l("Set the logging level of components that use standard logging output independent of the Console") -V(longOpt: 'verbose', "Enable verbose Console output") -Q(longOpt: 'quiet', "Suppress superfluous Console output") -D(longOpt: 'debug', "Enabled debug Console output") -i(longOpt: 'interactive', argName: "SCRIPT ARG1 ARG2 ...", args: Option.UNLIMITED_VALUES, valueSeparator: ' ' as char, "Execute the specified script and leave the console open on completion") -e(longOpt: 'execute', argName: "SCRIPT ARG1 ARG2 ...", args: Option.UNLIMITED_VALUES, valueSeparator: ' ' as char, "Execute the specified script (SCRIPT ARG1 ARG2 ...) and close the console on completion") -C(longOpt: 'color', "Disable use of ANSI colors") -} +cli.h(type: Boolean, longOpt: 'help', "Display this help message") +cli.v(type: Boolean,longOpt: 'version', "Display the version") +cli.l("Set the logging level of components that use standard logging output independent of the Console") +cli.V(type: Boolean, longOpt: 'verbose', "Enable verbose Console output") +cli.Q(type: Boolean, longOpt: 'quiet', "Suppress superfluous Console output") +cli.D(type: Boolean, longOpt: 'debug', "Enabled debug Console output") +cli.i(type: List, longOpt: 'interactive', arity: "1..*", argName: "SCRIPT ARG1 ARG2 ...", "Execute the specified script and leave the console open on completion") +cli.e(type: List, longOpt: 'execute', argName: "SCRIPT ARG1 ARG2 ...", "Execute the specified script (SCRIPT ARG1 ARG2 ...) and close the console on completion") +cli.C(type: Boolean, longOpt: 'color', "Disable use of ANSI colors") - ++ OptionAccessor options = cli.parse(args) if (options == null) {
[tinkerpop] 02/02: Merge branch 'tp33'
This is an automated email from the ASF dual-hosted git repository. florianhockmann pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a6bede9beaf3a3221d9360cbbf0f04529df70700 Merge: 373561c 4811f4e Author: Florian Hockmann AuthorDate: Sat Nov 10 13:42:05 2018 +0100 Merge branch 'tp33' docs/src/dev/provider/index.asciidoc | 4 +-- docs/src/reference/gremlin-applications.asciidoc | 1 + docs/src/reference/gremlin-variants.asciidoc | 32 +- .../src/Gremlin.Net/Driver/GremlinServer.cs| 3 +- 4 files changed, 36 insertions(+), 4 deletions(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 afb289d0aaad8c5af0cd05a76f8b8105b7f8a417 Merge: 0852a66 0b1e6e1 Author: Stephen Mallette AuthorDate: Tue Nov 6 08:27:40 2018 -0500 Merge branch 'tp33' CHANGELOG.asciidoc | 2 ++ .../tinkerpop/gremlin/console/Console.groovy | 8 +++- .../console/jsr223/DriverRemoteAcceptor.java | 9 +--- .../gremlin/jsr223/console/RemoteException.java| 24 -- 4 files changed, 37 insertions(+), 6 deletions(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 34ed260ff601979d6554076abd2cef2ecdda Merge: f6574ca 2211ef9 Author: Stephen Mallette AuthorDate: Mon Nov 5 11:13:39 2018 -0500 Merge branch 'tp33' CHANGELOG.asciidoc | 3 ++- gremlin-dotnet/src/Gremlin.Net/Process/Traversal/DefaultTraversal.cs | 1 + .../test/Gremlin.Net.UnitTest/Process/Traversal/TestTraversal.cs | 2 ++ gremlin-javascript/glv/TraversalSource.template| 1 + .../src/main/javascript/gremlin-javascript/lib/process/traversal.js| 1 + .../src/main/javascript/gremlin-javascript/test/unit/traversal-test.js | 3 ++- gremlin-python/glv/TraversalSource.template| 1 + gremlin-python/src/main/jython/gremlin_python/process/traversal.py | 1 + 8 files changed, 11 insertions(+), 2 deletions(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 28a3d556d0ff769cd2712b26dbd3f6ab2618648a Merge: 3bef734 79cd801 Author: Stephen Mallette AuthorDate: Mon Oct 29 14:17:42 2018 -0400 Merge branch 'tp33' CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-variants.asciidoc | 7 --- .../gremlin_python/structure/io/graphsonV3d0.py| 22 +- .../jython/tests/structure/io/test_graphsonV3d0.py | 11 ++- gremlin-test/features/map/Select.feature | 4 ++-- 5 files changed, 34 insertions(+), 11 deletions(-) diff --cc gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py index 5ff88d8,65e01af..f634361 --- a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py +++ b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py @@@ -28,9 -29,11 +29,11 @@@ from aenum import Enu from gremlin_python import statics from gremlin_python.statics import FloatType, FunctionType, IntType, LongType, TypeType, DictType, ListType, SetType -from gremlin_python.process.traversal import Binding, Bytecode, P, Traversal, Traverser, TraversalStrategy, T +from gremlin_python.process.traversal import Binding, Bytecode, P, TextP, Traversal, Traverser, TraversalStrategy, T from gremlin_python.structure.graph import Edge, Property, Vertex, VertexProperty, Path + log = logging.getLogger(__name__) + # When we fall back to a superclass's serializer, we iterate over this map. # We want that iteration order to be consistent, so we use an OrderedDict, # not a dict.
[tinkerpop] 02/02: Merge branch 'tp33'
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 c131918d945679a58acb7f1dda4c1a978fc7b701 Merge: ba6a19c ed2f061 Author: Stephen Mallette AuthorDate: Mon Oct 29 13:13:00 2018 -0400 Merge branch 'tp33' CHANGELOG.asciidoc | 1 + .../gremlin/spark/structure/io/PersistedOutputRDD.java | 12 +--- 2 files changed, 10 insertions(+), 3 deletions(-)
[tinkerpop] 02/02: Merge branch 'tp33'
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 e72b8cf1fc059ce0845fb17636b48c223163b5be Merge: 5ca4f99 87b1524 Author: Stephen Mallette AuthorDate: Mon Oct 8 16:35:37 2018 -0400 Merge branch 'tp33'