[ 
https://issues.apache.org/jira/browse/TINKERPOP-1646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Plurad updated TINKERPOP-1646:
------------------------------------
    Issue Type: Improvement  (was: New Feature)

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

Reply via email to