[jira] [Commented] (TINKERPOP-1900) Jar gremlin server /src/test directory
[ https://issues.apache.org/jira/browse/TINKERPOP-1900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16374867#comment-16374867 ] David Pitera commented on TINKERPOP-1900: - >From a cursory glance it seems that the ones that might be useful are the >Helpers/Utilities/Factories/Abstract setup classes (classes that are not >specific tests for specific classes in the TinkerPop project), so for example: [https://github.com/apache/tinkerpop/blob/master/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/channel/AbstractGremlinServerChannelizerIntegrateTest.java] [https://github.com/apache/tinkerpop/blob/master/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java] This is not an exhaustive list. Also, I think you can just package the entire test directory using this technique: [https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html.] YMMV but I don't think it'll be too beefy. Didn't look too in-depth at the plugin but maybe you can specify a sub-dir and move just the helpers and what not there. > Jar gremlin server /src/test directory > -- > > Key: TINKERPOP-1900 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1900 > Project: TinkerPop > Issue Type: Improvement > Components: server >Affects Versions: 3.2.7 >Reporter: David Pitera >Priority: Major > > There are utility classes inside the /src/test directory that would be useful > for implementor's implementing internal sever components (for example, one > implementing a Channelizer might make use of > AbstractGremlinServerIntegrationTest and TestClientFactory). If we update the > packaging so that the gremlin-server jars include these binaries, > implementor's can make use of existing code without duplicating it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (TINKERPOP-1900) Jar gremlin server /src/test directory
David Pitera created TINKERPOP-1900: --- Summary: Jar gremlin server /src/test directory Key: TINKERPOP-1900 URL: https://issues.apache.org/jira/browse/TINKERPOP-1900 Project: TinkerPop Issue Type: Bug Components: server Reporter: David Pitera There are utility classes inside the /src/test directory that would be useful for implementor's implementing internal sever components (for example, one implementing a Channelizer might make use of AbstractGremlinServerIntegrationTest and TestClientFactory). If we update the packaging so that the gremlin-server jars include these binaries, implementor's can make use of existing code without duplicating it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (TINKERPOP-1900) Jar gremlin server /src/test directory
[ https://issues.apache.org/jira/browse/TINKERPOP-1900?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] David Pitera updated TINKERPOP-1900: Issue Type: Improvement (was: Bug) > Jar gremlin server /src/test directory > -- > > Key: TINKERPOP-1900 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1900 > Project: TinkerPop > Issue Type: Improvement > Components: server >Reporter: David Pitera >Priority: Major > > There are utility classes inside the /src/test directory that would be useful > for implementor's implementing internal sever components (for example, one > implementing a Channelizer might make use of > AbstractGremlinServerIntegrationTest and TestClientFactory). If we update the > packaging so that the gremlin-server jars include these binaries, > implementor's can make use of existing code without duplicating it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1839) We need a way to dynamically modify global bindings on the Gremlin Server.
[ https://issues.apache.org/jira/browse/TINKERPOP-1839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16261026#comment-16261026 ] David Pitera commented on TINKERPOP-1839: - > Doesn't CGF have access to the Gremlin ScriptEngine? I think this is where there is a gap in our understanding. I am not quite seeing how one would access the ScriptEngine or its context. Also one more question: withRemote() gives access to a remote graph's traversal reference; is there a similar story for getting access to a graph reference itself? > We need a way to dynamically modify global bindings on the Gremlin Server. > -- > > Key: TINKERPOP-1839 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1839 > Project: TinkerPop > Issue Type: Improvement > Components: server >Affects Versions: 3.2.6 >Reporter: David Pitera > > This question on StackOverflow > https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 > along with the fact that most language client's interact with the Gremlin > Server through the use of a variable bound to a graph of traversal reference, > i.e. `graph` is usually bound to a graph and `g` is usually bound to its > traversal > https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40 > mean that we need a way to bind these dynamically created graphs to the > script executor. > With JanusGraph's notion of dynamic graphs, there is no way to make use of > the `withRemote()` functionality or make use of language clients demanding > the traversal reference be bound to a variable. > Therefore, we need a way to dynamically modify the global bindings on the > gremlin script engine without having to restart the server. > Note; I answered the original stack overflow question above, however I am > pretty sure my answer is actually incorrect because the global binding will > be evaluated once at server start and the evaluated references will be stored > in the map and passed into the gremlin executor. Is this true? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TINKERPOP-1839) We need a way to dynamically modify global bindings on the Gremlin Server.
[ https://issues.apache.org/jira/browse/TINKERPOP-1839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16259936#comment-16259936 ] David Pitera commented on TINKERPOP-1839: - Also to further clarify, I understand Stephen's suggestion to add a helper method to CGF that takes in the context as one of the input arguments so users can issue WS and HTTP requests like `ConfiguredGraphFactory.addGlobalBinding(map, context);`, however, I think direct access (outside the context of a WS or HTTP gremlin script request) is better because it allows for the implementation to control these things directly and 2. it allows the implementation to handles these things outside the context of a request (i.e. if we have an implementation running a cluster of nodes and want the other nodes in the cluster to be able to update their context's bindings without being issued a request and passed in the `context` parameter. To further clarify this example, JanusGraph nodes communicate with each other through a logging message queue, and it can be a valid use case for one request to kick off the binding of said variable on other nodes in the cluster (these nodes would not have direct access to the context parameter passed in through the request.) > We need a way to dynamically modify global bindings on the Gremlin Server. > -- > > Key: TINKERPOP-1839 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1839 > Project: TinkerPop > Issue Type: Improvement > Components: server >Affects Versions: 3.2.6 >Reporter: David Pitera > > This question on StackOverflow > https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 > along with the fact that most language client's interact with the Gremlin > Server through the use of a variable bound to a graph of traversal reference, > i.e. `graph` is usually bound to a graph and `g` is usually bound to its > traversal > https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40 > mean that we need a way to bind these dynamically created graphs to the > script executor. > With JanusGraph's notion of dynamic graphs, there is no way to make use of > the `withRemote()` functionality or make use of language clients demanding > the traversal reference be bound to a variable. > Therefore, we need a way to dynamically modify the global bindings on the > gremlin script engine without having to restart the server. > Note; I answered the original stack overflow question above, however I am > pretty sure my answer is actually incorrect because the global binding will > be evaluated once at server start and the evaluated references will be stored > in the map and passed into the gremlin executor. Is this true? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TINKERPOP-1839) We need a way to dynamically modify global bindings on the Gremlin Server.
[ https://issues.apache.org/jira/browse/TINKERPOP-1839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16259919#comment-16259919 ] David Pitera commented on TINKERPOP-1839: - I agree but for that to happen we need to get access to the `context` object in the ConfiguredGraphFactory method, which means GremlinServer's should have public method to access their `GremlinScriptContext`s. Otherwise, the CGF would have to issue a HTTP or WS request itself to gain access to the binding to `context` to be able to call `setAttribute()`. Hope I am making sense :) > We need a way to dynamically modify global bindings on the Gremlin Server. > -- > > Key: TINKERPOP-1839 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1839 > Project: TinkerPop > Issue Type: Improvement > Components: server >Affects Versions: 3.2.6 >Reporter: David Pitera > > This question on StackOverflow > https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 > along with the fact that most language client's interact with the Gremlin > Server through the use of a variable bound to a graph of traversal reference, > i.e. `graph` is usually bound to a graph and `g` is usually bound to its > traversal > https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40 > mean that we need a way to bind these dynamically created graphs to the > script executor. > With JanusGraph's notion of dynamic graphs, there is no way to make use of > the `withRemote()` functionality or make use of language clients demanding > the traversal reference be bound to a variable. > Therefore, we need a way to dynamically modify the global bindings on the > gremlin script engine without having to restart the server. > Note; I answered the original stack overflow question above, however I am > pretty sure my answer is actually incorrect because the global binding will > be evaluated once at server start and the evaluated references will be stored > in the map and passed into the gremlin executor. Is this true? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TINKERPOP-1839) We need a way to dynamically modify global bindings on the Gremlin Server.
[ https://issues.apache.org/jira/browse/TINKERPOP-1839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16259907#comment-16259907 ] David Pitera commented on TINKERPOP-1839: - I just saw this line, which I believe is binding "context" to the GremlinScriptEngine's context https://github.com/apache/tinkerpop/blob/87bf0c62ccd30c00aeb8be8306b323ea3ee514c3/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java#L626. This still doesn't provide a way to access the context directly in Java code; I think perhaps we should open that up? What are your thoughts? > We need a way to dynamically modify global bindings on the Gremlin Server. > -- > > Key: TINKERPOP-1839 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1839 > Project: TinkerPop > Issue Type: Improvement > Components: server >Affects Versions: 3.2.6 >Reporter: David Pitera > > This question on StackOverflow > https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 > along with the fact that most language client's interact with the Gremlin > Server through the use of a variable bound to a graph of traversal reference, > i.e. `graph` is usually bound to a graph and `g` is usually bound to its > traversal > https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40 > mean that we need a way to bind these dynamically created graphs to the > script executor. > With JanusGraph's notion of dynamic graphs, there is no way to make use of > the `withRemote()` functionality or make use of language clients demanding > the traversal reference be bound to a variable. > Therefore, we need a way to dynamically modify the global bindings on the > gremlin script engine without having to restart the server. > Note; I answered the original stack overflow question above, however I am > pretty sure my answer is actually incorrect because the global binding will > be evaluated once at server start and the evaluated references will be stored > in the map and passed into the gremlin executor. Is this true? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TINKERPOP-1839) We need a way to dynamically modify global bindings on the Gremlin Server.
[ https://issues.apache.org/jira/browse/TINKERPOP-1839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16259866#comment-16259866 ] David Pitera commented on TINKERPOP-1839: - Is `context` here bound to the console's `Context` i.e. the context of this WS' request session? Or is it bound the GremlinScriptEngine's context https://github.com/apache/tinkerpop/blob/87bf0c62ccd30c00aeb8be8306b323ea3ee514c3/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java#L327 ? Furthermore, it would be best to ensure you can act on the GremlinGroovyScriptEngine's context object directly in java code, i.e. not just inside the context of a console connection. This would allow JG to handle the binding itself, without forcing users to 1. handle the binding themselves and 2. do so in the context of a gremlin console connection. I did not see a way to grab the GremlinGroovyScriptEngine's context from a quick glance at the code. > We need a way to dynamically modify global bindings on the Gremlin Server. > -- > > Key: TINKERPOP-1839 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1839 > Project: TinkerPop > Issue Type: Improvement > Components: server >Affects Versions: 3.2.6 >Reporter: David Pitera > > This question on StackOverflow > https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 > along with the fact that most language client's interact with the Gremlin > Server through the use of a variable bound to a graph of traversal reference, > i.e. `graph` is usually bound to a graph and `g` is usually bound to its > traversal > https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40 > mean that we need a way to bind these dynamically created graphs to the > script executor. > With JanusGraph's notion of dynamic graphs, there is no way to make use of > the `withRemote()` functionality or make use of language clients demanding > the traversal reference be bound to a variable. > Therefore, we need a way to dynamically modify the global bindings on the > gremlin script engine without having to restart the server. > Note; I answered the original stack overflow question above, however I am > pretty sure my answer is actually incorrect because the global binding will > be evaluated once at server start and the evaluated references will be stored > in the map and passed into the gremlin executor. Is this true? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TINKERPOP-1839) We need a way to dynamically modify global bindings on the Gremlin Server.
[ https://issues.apache.org/jira/browse/TINKERPOP-1839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16259297#comment-16259297 ] David Pitera commented on TINKERPOP-1839: - According to this http://tinkerpop.apache.org/docs/3.2.6/reference/#connecting-via-remotegraph we can grab a remote traversal source reference via `withRemote()` if we pass in the variable name that is bound to the graph's traversal source (in the example listed: ``` gremlin> cluster = Cluster.open('conf/remote-objects.yaml') ==>localhost/127.0.0.1:8182 gremlin> b = Bindings.instance() ==>bindings[main] gremlin> g = EmptyGraph.instance().traversal().withRemote(DriverRemoteConnection.using(cluster, "g")) ==>graphtraversalsource[emptygraph[empty], standard] ``` `g` is the variable name bound to the traversal reference on the remote server. I assume this binding is done through global bindings, i.e. defined in one of the startup scripts. Similarly, many clients make you pass in the variable name bound to the graph for access to a Gremlin Server. However, JanusGraph's new notion of dynamic graphs instantiates graph references post server start; the documentation for this new functionality is here: http://docs.janusgraph.org/latest/configuredgraphfactory.html The gist of it is that you dynamically create configurations for your graphs, stored on vertices, and then you use those configurations to dynamically create and access graphs doing: `def graph = ConfiguredGraphFactory.open();`. Since these graphs are not known are server start, they cannot currently be bound to any variables through the use of global bindings; currently users must "grab the graph reference" every gremlin script execution by doing the aforementioned command at the beginning of the every script. It would be great if there were a way to dynamically update the server's global bindings so that `graph` can always be bound to the literal graph reference bound to `ConfiguredGraphFactory.open();` as well as `g` to `graph.traversal();` so they can make use of the `withRemote` of the clients that need variable names bound to references to work. > We need a way to dynamically modify global bindings on the Gremlin Server. > -- > > Key: TINKERPOP-1839 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1839 > Project: TinkerPop > Issue Type: Improvement > Components: server >Affects Versions: 3.2.6 >Reporter: David Pitera > > This question on StackOverflow > https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 > along with the fact that most language client's interact with the Gremlin > Server through the use of a variable bound to a graph of traversal reference, > i.e. `graph` is usually bound to a graph and `g` is usually bound to its > traversal > https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40 > mean that we need a way to bind these dynamically created graphs to the > script executor. > With JanusGraph's notion of dynamic graphs, there is no way to make use of > the `withRemote()` functionality or make use of language clients demanding > the traversal reference be bound to a variable. > Therefore, we need a way to dynamically modify the global bindings on the > gremlin script engine without having to restart the server. > Note; I answered the original stack overflow question above, however I am > pretty sure my answer is actually incorrect because the global binding will > be evaluated once at server start and the evaluated references will be stored > in the map and passed into the gremlin executor. Is this true? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (TINKERPOP-1839) We need a way to dynamically modify global bindings on the Gremlin Server.
[ https://issues.apache.org/jira/browse/TINKERPOP-1839?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] David Pitera updated TINKERPOP-1839: Description: This question on StackOverflow https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 along with the fact that most language client's interact with the Gremlin Server through the use of a variable bound to a graph of traversal reference, i.e. `graph` is usually bound to a graph and `g` is usually bound to its traversal https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40 mean that we need a way to bind these dynamically created graphs to the script executor. With JanusGraph's notion of dynamic graphs, there is no way to make use of the `withRemote()` functionality or make use of language clients demanding the traversal reference be bound to a variable. Therefore, we need a way to dynamically modify the global bindings on the gremlin script engine without having to restart the server. Note; I answered the original stack overflow question above, however I am pretty sure my answer is actually incorrect because the global binding will be evaluated once at server start and the evaluated references will be stored in the map and passed into the gremlin executor. Is this true? was: This question on StackOverflow https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 along with the fact that most language client's interact with the Gremlin Server through the use of a variable bound to a graph of traversal reference, i.e. `graph` is usually bound to a graph and `g` is usually bound to its traversal https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40. With JanusGraph's notion of dynamic graphs, there is no way to make use of the `withRemote()` functionality or make use of language clients demanding the traversal reference be bound to a variable. Therefore, we need a way to dynamically modify the global bindings on the gremlin script engine without having to restart the server. Note; I answered the original stack overflow question above, however I am pretty sure my answer is actually incorrect because the global binding will be evaluated once at server start and the evaluated references will be stored in the map and passed into the gremlin executor. Is this true? > We need a way to dynamically modify global bindings on the Gremlin Server. > -- > > Key: TINKERPOP-1839 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1839 > Project: TinkerPop > Issue Type: Improvement >Affects Versions: 3.2.6 >Reporter: David Pitera > > This question on StackOverflow > https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 > along with the fact that most language client's interact with the Gremlin > Server through the use of a variable bound to a graph of traversal reference, > i.e. `graph` is usually bound to a graph and `g` is usually bound to its > traversal > https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40 > mean that we need a way to bind these dynamically created graphs to the > script executor. > With JanusGraph's notion of dynamic graphs, there is no way to make use of > the `withRemote()` functionality or make use of language clients demanding > the traversal reference be bound to a variable. > Therefore, we need a way to dynamically modify the global bindings on the > gremlin script engine without having to restart the server. > Note; I answered the original stack overflow question above, however I am > pretty sure my answer is actually incorrect because the global binding will > be evaluated once at server start and the evaluated references will be stored > in the map and passed into the gremlin executor. Is this true? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (TINKERPOP-1839) We need a way to dynamically modify global bindings on the Gremlin Server.
David Pitera created TINKERPOP-1839: --- Summary: We need a way to dynamically modify global bindings on the Gremlin Server. Key: TINKERPOP-1839 URL: https://issues.apache.org/jira/browse/TINKERPOP-1839 Project: TinkerPop Issue Type: Improvement Affects Versions: 3.2.6 Reporter: David Pitera This question on StackOverflow https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 along with the fact that most language client's interact with the Gremlin Server through the use of a variable bound to a graph of traversal reference, i.e. `graph` is usually bound to a graph and `g` is usually bound to its traversal https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40. With JanusGraph's notion of dynamic graphs, there is no way to make use of the `withRemote()` functionality or make use of language clients demanding the traversal reference be bound to a variable. Therefore, we need a way to dynamically modify the global bindings on the gremlin script engine without having to restart the server. Note; I answered the original stack overflow question above, however I am pretty sure my answer is actually incorrect because the global binding will be evaluated once at server start and the evaluated references will be stored in the map and passed into the gremlin executor. Is this true? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TINKERPOP-1687) Record metrics around how long it gremlin script executions sit in executor queue waiting to be executed.
[ https://issues.apache.org/jira/browse/TINKERPOP-1687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16042804#comment-16042804 ] David Pitera commented on TINKERPOP-1687: - I just noticed this commit: https://github.com/apache/tinkerpop/commit/b689deb1dd1a0c745966a1ed5f8e7e3b2d543af2 which makes the MetricManager rely on the GremlinServer which is in the gremlin-server module, so I am not sure I'll be able to move the Manager into gremlin-core anyway. I will have to think a bit about it, because the code I need to instrument is in the gremlin-groovy project https://github.com/apache/tinkerpop/blob/master/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java#L249-L282 > Record metrics around how long it gremlin script executions sit in executor > queue waiting to be executed. > - > > Key: TINKERPOP-1687 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1687 > Project: TinkerPop > Issue Type: Improvement >Affects Versions: 3.2.4 >Reporter: David Pitera >Priority: Minor > Labels: breaking > Fix For: 3.2.5 > > > The issue will be breaking because I will be moving the MetricManager into > the gremlin-core project from the gremlin-server project for easier use > across the project. Therefore whoever is using the MetricManager will need to > update their location from where they grab it. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (TINKERPOP-1687) Record metrics around how long it gremlin script executions sit in executor queue waiting to be executed.
David Pitera created TINKERPOP-1687: --- Summary: Record metrics around how long it gremlin script executions sit in executor queue waiting to be executed. Key: TINKERPOP-1687 URL: https://issues.apache.org/jira/browse/TINKERPOP-1687 Project: TinkerPop Issue Type: Improvement Affects Versions: 3.2.4 Reporter: David Pitera Priority: Minor Fix For: 3.2.5 The issue will be breaking because I will be moving the MetricManager into the gremlin-core project from the gremlin-server project for easier use across the project. Therefore whoever is using the MetricManager will need to update their location from where they grab it. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (TINKERPOP-1666) NPE in FileSandboxExtension if staticVariableTypes is empty in supplied YAML file
David Pitera created TINKERPOP-1666: --- Summary: NPE in FileSandboxExtension if staticVariableTypes is empty in supplied YAML file Key: TINKERPOP-1666 URL: https://issues.apache.org/jira/browse/TINKERPOP-1666 Project: TinkerPop Issue Type: Bug Affects Versions: 3.2.4 Reporter: David Pitera Priority: Minor Fix For: 3.2.4 Currently, we have code that assumes that this variable is not empty in the supplied YAML file: 1. https://github.com/apache/tinkerpop/blob/tp32/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy#L66 (We get an NPE if we call collectEntries() on a null object) 2. https://github.com/apache/tinkerpop/blob/tp32/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/AbstractSandboxExtension.groovy#L54 (need to check if staticVariableTyping is null or we throw NPE trying to call containsKey() on a null object) I propose to add some null checks here so that users who do not wish to statically type any variables can now do so. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TINKERPOP-1438) Consider GraphManager as an interface
[ https://issues.apache.org/jira/browse/TINKERPOP-1438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15898066#comment-15898066 ] David Pitera commented on TINKERPOP-1438: - Hey as it turns out I've opened a PR that already addresses all of these concerns. The PR is here: https://github.com/apache/tinkerpop/pull/569/files > Consider GraphManager as an interface > - > > Key: TINKERPOP-1438 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1438 > Project: TinkerPop > Issue Type: Improvement > Components: server >Affects Versions: 3.2.2 >Reporter: stephen mallette >Priority: Minor > Labels: breaking > > If {{GraphManager}} were an interface it would make embedding Gremlin Server > easier as {{Graph}} instances could be more easily supplied by the host > application. In doing this, It also might be good to force a > {{TraversalSource}} to be referred to by both the {{Graph}} name and > {{TraversalSource}} name. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TINKERPOP-1438) Consider GraphManager as an interface
[ https://issues.apache.org/jira/browse/TINKERPOP-1438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15898062#comment-15898062 ] David Pitera commented on TINKERPOP-1438: - Copying over from the issue I created: 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 supplier); > Consider GraphManager as an interface > - > > Key: TINKERPOP-1438 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1438 > Project: TinkerPop > Issue Type: Improvement > Components: server >Affects Versions: 3.2.2 >Reporter: stephen mallette >Priority: Minor > Labels: breaking > > If {{GraphManager}} were an interface it would make embedding Gremlin Server > easier as {{Graph}} instances could be more easily supplied by the host > application. In doing this, It also might be good to force a > {{TraversalSource}} to be referred to by both the {{Graph}} name and > {{TraversalSource}} name. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (TINKERPOP-1646) Support custom implementor specific graph management
David Pitera created TINKERPOP-1646: --- Summary: Support custom implementor specific graph management Key: TINKERPOP-1646 URL: https://issues.apache.org/jira/browse/TINKERPOP-1646 Project: TinkerPop Issue Type: New Feature 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 supplier); ``` -- This message was sent by Atlassian JIRA (v6.3.15#6346)