[ 
https://issues.apache.org/jira/browse/TINKERPOP-1565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15830777#comment-15830777
 ] 

ASF GitHub Bot commented on TINKERPOP-1565:
-------------------------------------------

GitHub user spmallette opened a pull request:

    https://github.com/apache/tinkerpop/pull/540

    TINKERPOP-1565 GraphSON 3.0 Setup

    https://issues.apache.org/jira/browse/TINKERPOP-1565
    
    This pull request started as one thing but then simplified (if that's the 
word to use) to just setting up the framework (tests, implementation classes, 
etc) for GraphSON 3.0 so that we can come at building it out with other smaller 
pull requests in the future. This thing was just getting too big. Note that at 
this point there is no difference between GraphSON 2.0 and 3.0 save the version 
numbers. Also 3.0 is now the default version used in TinkerGraph IO and Gremlin 
Server.
    
    VOTE+1

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/apache/tinkerpop TINKERPOP-1565

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/tinkerpop/pull/540.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #540
    
----
commit 580970064c5dad70aa6635960f288862e07ac5d0
Author: Marko A. Rodriguez <[email protected]>
Date:   2016-11-29T18:32:21Z

    first draft of new updates to GraphSON 2.0. The object models are concise, 
all the elements/properties are attachable. Really wasn't that much of a 
headache to change -- a few test cases in Gremlin-Python needed updating and in 
GraphSONMessageSerializerV2d0Test. The corresponding ticket in JIRA has a 
comment with the pretty print JSON of the various elements/properties.

commit bb97c9420840fbc7cfe1493c3a7abfa1b86b46e6
Author: Marko A. Rodriguez <[email protected]>
Date:   2016-11-30T14:55:45Z

    minor nothing tweak.

commit a00416291b769b007fc34f06dc16e1a2eb9246a2
Author: Stephen Mallette <[email protected]>
Date:   2016-12-07T15:37:04Z

    TINKERPOP-1414 Changed Gremlin Server and TinkerGraph to default GraphSON 
2.0
    
    This work is done as part of TINKERPOP-1565 which is related to GraphSON 
2.0 changes.

commit 7db10c40cc143473eff78866d989a90df8da7206
Author: Stephen Mallette <[email protected]>
Date:   2017-01-12T19:58:50Z

    TINKERPOP-1565 Stub out GraphSON 3.0
    
    Set up the new testing model and generated test files. Reverted changes on 
property serialization that went in as breaking changes on GraphSON 2.0 and 
moved them forward to GraphSON 3.0.

commit 5e69a51154a79b33cd019000da939a75d29a4489
Author: Stephen Mallette <[email protected]>
Date:   2017-01-12T20:11:19Z

    TINKERPOP-1565 Enabled more GraphSON IO tests
    
    It was now possible to enable more tests as certain changes that were made 
to master on the GraphSON 2.0 format could be reverted and then migrated to 
GraphSON 3.0.

commit 2dc9b51dc73ab7bb9d1ce042b7401e9a7b6e6cc0
Author: Stephen Mallette <[email protected]>
Date:   2017-01-12T20:12:45Z

    TINKERPOP-1565 Updated the IO dev docs with GraphSON 3.0.

commit 729af57f0d3515ccff591259f529a999af0b717c
Author: Stephen Mallette <[email protected]>
Date:   2017-01-13T13:20:22Z

    TINKERPOP-1565 Added tests for GraphSON 3.0
    
    And fixed some broken tests preventing a proper build.

commit a3515cfdf2681d645512bfff1e0090a102334833
Author: Stephen Mallette <[email protected]>
Date:   2017-01-13T18:50:01Z

    TINKERPOP-1565 GraphSON 3.0 defaulted in drivers
    
    Set this up for both python and java. Altered the sasl auth to use Base64 
encoded strings in the drivers because GraphSON didn't have a byte array 
established as a type.

commit 7ca3a29826bbafca1733fd34f138b8b8d4252210
Author: Stephen Mallette <[email protected]>
Date:   2017-01-18T17:53:22Z

    TINKERPOP-1565 Added a few GraphSON 3.0 classes

commit 9dc30cd5d29f98681f4d33abbf991574ed7a97d8
Author: Stephen Mallette <[email protected]>
Date:   2017-01-18T18:49:18Z

    TINKERPOP-1565 Added a 3.0 TraversalSerializer class

commit aec7fd1ac1cc56375d52d358c14f57816b466b67
Author: Stephen Mallette <[email protected]>
Date:   2017-01-19T15:28:38Z

    TINKERPOP-1414 Made GraphSON 3.0 the default serialization format.
    
    This was previously GraphSON 2.0 but recent consensus has this now at 3.0 
since 2.0 will not be altered to support breaking change.

commit 99a2703806705d896a7eb0eb88b940a82aac9d73
Author: Stephen Mallette <[email protected]>
Date:   2017-01-19T20:10:20Z

    TINKERPOP-1565 Reverted GraphSON 3.0 changes
    
    These changes were part of the original work on this branch to alter the 
structure of GraphSON 2.0. I'd migrated those changes to 3.0 to avoid breaking 
change. Since that time there has been a lot of work on and off this branch 
related to this work and it seems that including GraphSON 3.0 changes to format 
is just complicating this ticket. As such the ticket itself has been modified 
to just be about setting up for GraphSON 3.0 and at this point 3.0 is 
equivalent to 2.0.

commit 8ffd0b8fb50faf2047f98ac9a31ef3d80eafa048
Author: Stephen Mallette <[email protected]>
Date:   2017-01-19T20:14:28Z

    TINKERPOP-1565 Updated changelog

----


> Setup GraphSON 3.0
> ------------------
>
>                 Key: TINKERPOP-1565
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1565
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: io
>    Affects Versions: 3.2.3
>            Reporter: Marko A. Rodriguez
>            Assignee: Marko A. Rodriguez
>             Fix For: 3.3.0
>
>
> GraphSON 2.0 has some issues that should be recified for its "official 
> release" in 3.3.0.
> *Supporting Attachment*
> We need to make sure that every element and property can be attached back to 
> the main graph.
> * For {{Vertex}}, this means that we need to have the ID encoded (CHECK).
> * For {{Edge}}, this means we need to have the out/in vertex ids encoded 
> (CHECK).
> * For {{VertexProperty}}, this means we need to have the vertex ID encoded 
> (ERROR).
> * For {{Property}}, this means we need to have the the element ID (vertex 
> property or edge) encoded and then the subsequent vertex ID (ERROR).
> *Maintaining Consistency*
> Currently, property encoding in {{Edge}} is different than property encoding 
> in {{VertexProperty}}. 
> Edge -->
> {code}
> properties : {
>       key : "aKey",
>       value : { @type: "gProperty", @value : {"key","aKey","value",10}}
> }
> {code}
> VertexProperty-->
> {code}
> properties : {
>       key : "aKey",
>       value : 10
> }
> {code}
> This should be consistent.
> *Reducing Verbosity*
> We have the problem of representing both {{DetachedElements}} and 
> {{ReferenceElements}}. {{DetachedElements}} contain lots of information and 
> is typicaly used to ensure a data rich result set. {{ReferenceElements}} 
> contain only the necessary information for attachment. I think we can support 
> both representations by making certain fields "optional."
> Vertex-->
> {code}
> return new 
> Vertex(json.get("id"),json.getOrDefault("label",Vertex.DEFAULT_LABEL),json.getOrDefault("properties",Collections.emptyMap()))
> {code}
> That is, lots of {{getOrDefault()}} use will make sure that when desesired, 
> we only send/recv information that is needed for the particular 
> computatation. E.g. as dictated by {{HaltedTraverserStrategy}}.
> This issue has evolved a bit since it was first written. The work thus far 
> has been to setup GraphSON 3.0. The other stuff mentioned in the description 
> above will be discussed/handled in other tickets. Those things are beyond the 
> scope of this ticket at this point. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to