Merge branch 'TINKERPOP-1676' into tp32 Conflicts: CHANGELOG.asciidoc docs/src/upgrade/release-3.2.x-incubating.asciidoc
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d36fbe60 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d36fbe60 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d36fbe60 Branch: refs/heads/TINKERPOP-1681 Commit: d36fbe603035d53e9294f32fd8b30ca5c793af9c Parents: fd398c7 f32d725 Author: Stephen Mallette <sp...@genoprime.com> Authored: Wed May 31 16:02:03 2017 -0400 Committer: Stephen Mallette <sp...@genoprime.com> Committed: Wed May 31 16:02:03 2017 -0400 ---------------------------------------------------------------------- CHANGELOG.asciidoc | 4 + docs/src/dev/io/graphson.asciidoc | 126 +----------- .../upgrade/release-3.2.x-incubating.asciidoc | 12 ++ .../io/graphson/AbstractObjectDeserializer.java | 10 +- .../structure/io/graphson/GraphSONReader.java | 5 +- .../io/graphson/GraphSONSerializersV2d0.java | 198 +++++++++++++++---- .../io/graphson/GraphSONTypeDeserializer.java | 9 +- .../io/graphson/JavaTimeSerializersV2d0.java | 5 + .../io/graphson/TraversalSerializersV2d0.java | 146 +++++++++++--- .../structure/util/detached/DetachedEdge.java | 78 +++++++- .../util/detached/DetachedElement.java | 4 +- .../structure/util/detached/DetachedVertex.java | 63 +++++- .../util/detached/DetachedVertexProperty.java | 49 ++++- .../GraphSONMapperEmbeddedTypeTest.java | 109 ++++++++-- .../util/detached/DetachedEdgeTest.java | 3 +- .../tinkergraph/structure/TinkerIoRegistry.java | 5 +- .../structure/TinkerIoRegistryV1d0.java | 5 +- .../structure/TinkerIoRegistryV2d0.java | 5 + 18 files changed, 597 insertions(+), 239 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d36fbe60/CHANGELOG.asciidoc ---------------------------------------------------------------------- diff --cc CHANGELOG.asciidoc index 4a36b07,750b4dd..5fc011a --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@@ -26,12 -26,12 +26,16 @@@ image::https://raw.githubusercontent.co TinkerPop 3.2.5 (Release Date: NOT OFFICIALLY RELEASED YET) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* Fixed a bug in `until(predicate)` where it was actually calling `emit(predicate)`. + * Fixed inconsistency in GraphSON serialization of `Path` where properties of graph elements were being included when serialized. + * Improved performance and memory usage of GraphSON when serializing `TinkerGraph` and graph elements. + * Removed use of `stream()` in `DetachedEdge` and `DetachedVertex`. + * Deprecated a constructor in `DetachedEdge` that made use of `Pair` in favor of a new one that just uses the objects that were in the `Pair`. * Improved error messaging on the `g.addV(Object...)` when passing an invalid arguments. * Reduced memory usage for TinkerGraph deserialization in GraphSON by streaming vertices and edges. +* Added the `gremlin-archetype-dsl` to demonstrate how to structure a Maven project for a DSL. +* Developed and documented patterns for Domain Specific Language implementations. +* Removed the Groovy dependency from `gremlin-python` and used Groovy Templates and the `gmavenplus-plugin` to generate the python GLV classes. * Now using Groovy `[...]` map notation in `GroovyTranslator` instead of `new LinkedHashMap(){{ }}`. * Maintained type information on `Traversal.promise()`. * Propagated exception to `Future` instead of calling thread in `RemoteConnection`. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d36fbe60/docs/src/upgrade/release-3.2.x-incubating.asciidoc ---------------------------------------------------------------------- diff --cc docs/src/upgrade/release-3.2.x-incubating.asciidoc index eeb193e,36e0aae..ab7d202 --- a/docs/src/upgrade/release-3.2.x-incubating.asciidoc +++ b/docs/src/upgrade/release-3.2.x-incubating.asciidoc @@@ -32,27 -32,18 +32,39 @@@ Please see the link:https://github.com/ Upgrading for Users ~~~~~~~~~~~~~~~~~~~ + GraphSON Path Serialization + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Serialization of `Path` with GraphSON was inconsistent with Gryo in that all the properties on any elements of + the `Path` were being included. With Gryo that, correctly, was not happening as that could be extraordinarily + expensive. GraphSON serialization has now been modified to properly not include properties. That change can cause + breaks in application code if that application code tries to access properties on elements in a `Path` as they + will no longer be there. Applications that require the properties will need to alter their Gremlin to better + restrict the data they want to retrieve. + + See: link:https://issues.apache.org/jira/browse/TINKERPOP-1676[TINKERPOP-1676] + +DSL Support +^^^^^^^^^^^ + +It has always been possible to construct Domain Specific Languages (DSLs) with Gremlin, but the approach has required +a somewhat deep understanding of the TinkerPop code base and it is not something that has had a recommeded method +for implementation. With this release, TinkerPop simplifies DSL development and provides the best practices for their +implementation. + +[source,java] +---- +// standard Gremlin +g.V().hasLabel('person'). + where(outE("created").count().is(P.gte(2))).count() + +// the same traversal as above written as a DSL +social.persons().where(createdAtLeast(2)).count() +---- + +See: link:https://issues.apache.org/jira/browse/TINKERPOP-786[TINKERPOP-786], +link:http://tinkerpop.apache.org/docs/3.2.5/dev/reference/#dsl[Reference Documentation] + Authentication Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^