[jira] [Commented] (TINKERPOP-1900) Jar gremlin server /src/test directory

2018-02-23 Thread David Pitera (JIRA)

[ 
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

2018-02-21 Thread David Pitera (JIRA)
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

2018-02-21 Thread David Pitera (JIRA)

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

2017-11-21 Thread David Pitera (JIRA)

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

2017-11-20 Thread David Pitera (JIRA)

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

2017-11-20 Thread David Pitera (JIRA)

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

2017-11-20 Thread David Pitera (JIRA)

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

2017-11-20 Thread David Pitera (JIRA)

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

2017-11-20 Thread David Pitera (JIRA)

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

2017-11-17 Thread David Pitera (JIRA)

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

2017-11-17 Thread David Pitera (JIRA)
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.

2017-06-08 Thread David Pitera (JIRA)

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

2017-06-08 Thread David Pitera (JIRA)
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

2017-04-06 Thread David Pitera (JIRA)
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

2017-03-06 Thread David Pitera (JIRA)

[ 
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

2017-03-06 Thread David Pitera (JIRA)

[ 
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

2017-03-06 Thread David Pitera (JIRA)
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)