You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "stephen mallette (JIRA)" <ji...@apache.org> on 2018/10/24 19:24:00 UTC
[jira] [Comment Edited] (TINKERPOP-2078) ReferenceGraph rather than
EmptyGraph or RemoteGraph
[ https://issues.apache.org/jira/browse/TINKERPOP-2078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16662713#comment-16662713 ]
stephen mallette edited comment on TINKERPOP-2078 at 10/24/18 7:23 PM:
-----------------------------------------------------------------------
Re-worked a bit. Killed {{ReferenceGraph}} in favor of {{AnonymousTraversalSource}} with static {{traversal()}} methods that allow for this style:
{code}
gremlin> g = traversal(TinkerFactory.createModern())
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g = traversal('conf/remote-graph.properties')
==>graphtraversalsource[emptygraph[empty], standard]
gremlin> g = traversal(DriverRemoteConnection.using('localhost',8182))
==>graphtraversalsource[emptygraph[empty], standard]
{code}
It does unify the API for that initial {{TraversalSource}} construction, so that's good, but it relies on the same underlying methods that we already have. It also shorthands "remote" construction and gets {{EmptyGraph}} usage out of sight. It exists parallel to the current methods for {{TraversalSource}} creation, so it's like "another thing". A nice deprecation route would be good to hide away what we don't want users doing anymore, but I'm not sure I see a method for doing that just yet.
Also, doesn't prevent weirdness like: {{traversal(TinkerGraph.open()).withRemote(...)}} but perhaps discourages it.
was (Author: spmallette):
Re-worked a bit. Killed {{ReferenceGraph}} in favor of {{AnonymousTraversalSource}} with static {{traversal()}} methods that allow for this style:
{code}
gremlin> g = traversal(TinkerFactory.createModern())
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g = traversal('conf/remote-graph.properties')
==>graphtraversalsource[emptygraph[empty], standard]
gremlin> g = traversal(DriverRemoteConnection.using('localhost',8182))
==>graphtraversalsource[emptygraph[empty], standard]
{code}
It does unify the API for that initial {{TraversalSource}} construction, so that's good, but it relies on the same underlying methods that we already have. It also shorthands "remote" construction and gets {{EmptyGraph}} usage out of sight. It exists parallel to the current methods for {{TraversalSource}} creation, so it's like "another thing". A nice deprecation route would be good to hide away what we don't want users doing anymore, but I'm not sure I see a method for doing that just yet.
Also, doesn't prevent weirdness like: {{traversal(TinkerGraph.open()).withRemote(...)}}.
> ReferenceGraph rather than EmptyGraph or RemoteGraph
> ----------------------------------------------------
>
> Key: TINKERPOP-2078
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2078
> Project: TinkerPop
> Issue Type: Improvement
> Components: structure
> Affects Versions: 3.3.4
> Reporter: stephen mallette
> Assignee: stephen mallette
> Priority: Major
>
> {{RemoteGraph}} was long ago deprecated for {{withRemote()}} typically spawned from {{EmptyGraph}} which is weird. Create {{ReferenceGraph}} which sets up some 4.x concepts (given current thinking). For GLVs, make sure {{EmptyGraph}} didn't leak into them and deal with those issues as needed. Update all docs to stop using {{EmptyGraph}}.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)