[ https://issues.apache.org/jira/browse/TINKERPOP-1646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jason Plurad updated TINKERPOP-1646: ------------------------------------ Component/s: server > 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 > Priority: Minor > > 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)