GitHub user spmallette opened a pull request:
https://github.com/apache/tinkerpop/pull/811
TINKERPOP-1758 Apply RemoteStrategy before all DecorationStrategy instances
https://issues.apache.org/jira/browse/TINKERPOP-1758
Played around with a few ways to test this, but none seemed especially
good. Everything I try to do seems fairly contrived or redundant. In the end, I
ended up feeling like it was safe to just rely on the TraversalStrategies
sorting system with posts/priors. That's pretty solidly tested so perhaps that
is enough...
Here's the result of a quick manual test:
```text
gremlin> g =
TinkerGraph.open().traversal().withRemote('conf/remote-graph.properties').withStrategies(SubgraphStrategy.build().vertices(identity()).create())
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.V().out().out().values('name').explain()
==>Traversal Explanation
=======================================================================================================================================
Original Traversal [GraphStep(vertex,[]),
VertexStep(OUT,vertex), VertexStep(OUT,vertex), PropertiesStep([name],value)]
RemoteStrategy [D]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
SubgraphStrategy [D]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
ConnectiveStrategy [D]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
RangeByIsCountStrategy [O]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
RepeatUnrollStrategy [O]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
MatchPredicateStrategy [O]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
FilterRankingStrategy [O]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
InlineFilterStrategy [O]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
IncidentToAdjacentStrategy [O]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
AdjacentToIncidentStrategy [O]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
PathRetractionStrategy [O]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
LazyBarrierStrategy [O]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
TinkerGraphCountStrategy [P]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
TinkerGraphStepStrategy [P]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
ProfileStrategy [F]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
StandardVerificationStrategy [V]
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
Final Traversal
[RemoteStep(DriverServerConnection-localhost/127.0.0.1:8182 [graph=g])]
```
All tests pass with `docker/build.sh -t -n -i`
VOTE +1
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apache/tinkerpop TINKERPOP-1758
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/tinkerpop/pull/811.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 #811
----
commit 528851411c6494bf92f2f929324a79ba28a941b2
Author: Stephen Mallette <spmva@...>
Date: 2018-03-05T18:18:35Z
TINKERPOP-1758 Apply RemoteStrategy before all DecorationStrategy instances
Played around with a few ways to test this, but none seemed especially
good. Everything I try to do seems fairly contrived or redundant. In the end, I
ended up feeling like it was safe to just rely on the TraversalStrategies
sorting system with posts/priors. Perhaps that is enough...
----
---