[
https://issues.apache.org/jira/browse/TINKERPOP-2473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17257010#comment-17257010
]
Stephen Mallette commented on TINKERPOP-2473:
---------------------------------------------
Submitted a PR to prevent multiple strategies of the same type from being
assigned. That wasn't too hard. As for preventing ones from being removed, that
issue has less of an easy fix to implement. I dont think that will every work
for scripts with just API changes. There would always have to be some kind of
sandboxing involved as scripts don't respect variable scopes. For bytecode API
changes could try to simplify what is already possible with existing APIs. With
existing APIs you could supply your own {{TraversalStrategies}} implementation
to {{GraphTraversalSource}}. That custom implementation could then be
preconfigured with strategies and block the addition/removal of others. I'm
somewhat hesitant to make that easier though because it will expose those
features to both the server and client sides when this is much more of a server
side issue only. Anyway, I'd prefer not to try to do any of that on this issue
as this one is already pretty well defined and settled.
> Allow TraversalStrategy instances to be merged
> ----------------------------------------------
>
> Key: TINKERPOP-2473
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2473
> Project: TinkerPop
> Issue Type: Improvement
> Components: process
> Affects Versions: 3.4.8
> Reporter: Stephen Mallette
> Priority: Major
>
> Not sure if this is a great idea but it came up as part of TINKERPOP-2389
> where there might be a need to assign both a client-side and server-side
> {{SubgraphStrategy}}. Currently, while not explicit, you can't assign more
> than one strategy of a particular type using {{withStrategies()}}. This task
> would make that explicit and provide a direct way for mergeable strategies to
> be pushed together into one. If we did that it would also simplify
> {{OptionsStrategy}} usage in {{with()}} step which currently finds an
> existing one first if present and then adds to it (otherwise creates it new).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)