[
https://issues.apache.org/jira/browse/TINKERPOP-1646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
stephen mallette closed TINKERPOP-1646.
---------------------------------------
Resolution: Duplicate
Assignee: stephen mallette
Thanks for submitting the issue and describing some steps to take Note that we
already have TINKERPOP-1438 that calls for {{GraphManager}} to become an
interface. Since we already have a long standing issue, I'm going to close this
one as a duplicate. I suggest you migrate your ideas over to that issue and
then discussion on this topic can continue over there.
> Support custom implementor specific graph management
> ----------------------------------------------------
>
> Key: TINKERPOP-1646
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1646
> Project: TinkerPop
> Issue Type: Improvement
> Components: server
> Affects Versions: 3.2.4
> Reporter: David Pitera
> Assignee: stephen mallette
>
> Currently, Tinkerpop uses the
> [GraphManager](https://github.com/apache/tinkerpop/blob/master/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/GraphManager.java)
> to handle graph management and store references to graph objects.
> I propose that we change the graphManager in three ways:
> 1. The graphManager should be an interface, and the existing functionality
> should be moved into a `BasicGraphManager`. This allows the implementor to
> design their own graph manager so suit their graph management needs.
> Furthermore, this will need to allow the implementor to supply a graphManager
> class in the YAML, so the
> [Settings](https://github.com/apache/tinkerpop/blob/master/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java)
> must support a graphmanager, which of course can default to the
> `BasicGraphManager`.
> 2. We define additional methods on the interface to improve how the
> graphManager is used in existing Tinkerpop code. For example,
> [here](https://github.com/apache/tinkerpop/blob/master/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/ServerGremlinExecutor.java#L156)
> we mutate an object directly outside the scope of a getter or setter on said
> object.
> 3. We define additional methods on the interface to allow for custom graph
> opening implementation:
> ```
> /**
> * Implementation that allows for custom graph-opening implementations.
> */
> public Graph openGraph(String graphName, Supplier<Graph> supplier);
> ```
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)