[ 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)