[jira] [Closed] (TINKERPOP-1388) Make ExpandableStepIterator non-final

2017-11-17 Thread stephen mallette (JIRA)

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

stephen mallette closed TINKERPOP-1388.
---
Resolution: Won't Do

> Make ExpandableStepIterator non-final
> -
>
> Key: TINKERPOP-1388
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1388
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: process
>Affects Versions: 3.1.3
>Reporter: Matthias Broecheler
>Assignee: Marko A. Rodriguez
>Priority: Minor
>
> to allow TinkerPop implementations to extend it.



--
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 stephen mallette (JIRA)

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

stephen mallette updated TINKERPOP-1839:

Component/s: server

> 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] [Commented] (TINKERPOP-1834) Consider iterate() as a first class step

2017-11-17 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257755#comment-16257755
 ] 

ASF GitHub Bot commented on TINKERPOP-1834:
---

Github user dkuppitz commented on the issue:

https://github.com/apache/tinkerpop/pull/748
  
`filter(false)` == `not(identity())`


> Consider iterate() as a first class step
> 
>
> Key: TINKERPOP-1834
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1834
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: process
>Affects Versions: 3.2.6
>Reporter: stephen mallette
>Assignee: Marko A. Rodriguez
>
> The {{iterate()}} terminator on a traversal returns no data. It simply 
> executes the traversal in full typically for the generation of side-effects. 
> Graph providers could optimize a traversal that is iterated should they be 
> able to detect that this method is called as they might avoid certain read 
> operations if the traversal is explicitly meant to just update the graph. 
> A possible solution for this would be some form of direct implementation of 
> an explicit {{IterateStep}} which providers could identify. Or perhaps, a 
> more generic {{NoOpStep}} would be better where the {{NoOpStep}} would 
> basically just be a marker with some meta-data tied to it (i.e. a {{Map}} of 
> arbitrary configuration options). In this case, the configuration options 
> would simply have an "iterate" value in it which the provider could interpret 
> if they could optimize based on that. Other solutions?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] tinkerpop issue #748: TINKERPOP-1834: Consider iterate() as a first class st...

2017-11-17 Thread dkuppitz
Github user dkuppitz commented on the issue:

https://github.com/apache/tinkerpop/pull/748
  
`filter(false)` == `not(identity())`


---


[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-1834) Consider iterate() as a first class step

2017-11-17 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257481#comment-16257481
 ] 

ASF GitHub Bot commented on TINKERPOP-1834:
---

Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/748
  
oh`filter(false)` referred to adding a `FilterStep` to the end of the 
traversal basically that didn't allow any traversers through. Of course, a 
provider writing a `TraversalStrategy` wouldn't be able to detect "false" if 
you use the a lambda in `filter()`, so the provider couldn't optimize properly. 
Are you thinking something else here?


> Consider iterate() as a first class step
> 
>
> Key: TINKERPOP-1834
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1834
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: process
>Affects Versions: 3.2.6
>Reporter: stephen mallette
>Assignee: Marko A. Rodriguez
>
> The {{iterate()}} terminator on a traversal returns no data. It simply 
> executes the traversal in full typically for the generation of side-effects. 
> Graph providers could optimize a traversal that is iterated should they be 
> able to detect that this method is called as they might avoid certain read 
> operations if the traversal is explicitly meant to just update the graph. 
> A possible solution for this would be some form of direct implementation of 
> an explicit {{IterateStep}} which providers could identify. Or perhaps, a 
> more generic {{NoOpStep}} would be better where the {{NoOpStep}} would 
> basically just be a marker with some meta-data tied to it (i.e. a {{Map}} of 
> arbitrary configuration options). In this case, the configuration options 
> would simply have an "iterate" value in it which the provider could interpret 
> if they could optimize based on that. Other solutions?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] tinkerpop issue #748: TINKERPOP-1834: Consider iterate() as a first class st...

2017-11-17 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/748
  
oh`filter(false)` referred to adding a `FilterStep` to the end of the 
traversal basically that didn't allow any traversers through. Of course, a 
provider writing a `TraversalStrategy` wouldn't be able to detect "false" if 
you use the a lambda in `filter()`, so the provider couldn't optimize properly. 
Are you thinking something else here?


---


[jira] [Commented] (TINKERPOP-1834) Consider iterate() as a first class step

2017-11-17 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257450#comment-16257450
 ] 

ASF GitHub Bot commented on TINKERPOP-1834:
---

Github user okram commented on the issue:

https://github.com/apache/tinkerpop/pull/748
  
There is nothing for "the server" to know. Thus, gutting the introspection. 
By appending `filter(false)` to the bytecode, you have a traversal that returns 
nothing. Which is exactly what you want. No need for the receiving/executing 
engine to reason about anything. A 3-line change to `iterate()` would do the 
trick.


> Consider iterate() as a first class step
> 
>
> Key: TINKERPOP-1834
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1834
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: process
>Affects Versions: 3.2.6
>Reporter: stephen mallette
>Assignee: Marko A. Rodriguez
>
> The {{iterate()}} terminator on a traversal returns no data. It simply 
> executes the traversal in full typically for the generation of side-effects. 
> Graph providers could optimize a traversal that is iterated should they be 
> able to detect that this method is called as they might avoid certain read 
> operations if the traversal is explicitly meant to just update the graph. 
> A possible solution for this would be some form of direct implementation of 
> an explicit {{IterateStep}} which providers could identify. Or perhaps, a 
> more generic {{NoOpStep}} would be better where the {{NoOpStep}} would 
> basically just be a marker with some meta-data tied to it (i.e. a {{Map}} of 
> arbitrary configuration options). In this case, the configuration options 
> would simply have an "iterate" value in it which the provider could interpret 
> if they could optimize based on that. Other solutions?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] tinkerpop issue #748: TINKERPOP-1834: Consider iterate() as a first class st...

2017-11-17 Thread okram
Github user okram commented on the issue:

https://github.com/apache/tinkerpop/pull/748
  
There is nothing for "the server" to know. Thus, gutting the introspection. 
By appending `filter(false)` to the bytecode, you have a traversal that returns 
nothing. Which is exactly what you want. No need for the receiving/executing 
engine to reason about anything. A 3-line change to `iterate()` would do the 
trick.


---


[jira] [Assigned] (TINKERPOP-1832) TraversalHelper.replaceStep sets previousStep to the wrong step

2017-11-17 Thread stephen mallette (JIRA)

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

stephen mallette reassigned TINKERPOP-1832:
---

Assignee: Daniel Kuppitz

[~pietermartin] did you intend to come back to submit a pull request for this? 

> TraversalHelper.replaceStep sets previousStep to the wrong step
> ---
>
> Key: TINKERPOP-1832
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1832
> Project: TinkerPop
>  Issue Type: Bug
>  Components: process
>Affects Versions: 3.3.0
>Reporter: pieter martin
>Assignee: Daniel Kuppitz
>
> The bug is described over 
> [here|http://mail-archives.apache.org/mod_mbox/tinkerpop-dev/201710.mbox/browser]
> I have tested [~dkuppitz] fix for it and all seems well.
> {code:java}
> public static  void replaceStep(final Step removeStep, final 
> Step insertStep, final Traversal.Admin traversal) {
> final int i;
> traversal.removeStep(i = stepIndex(removeStep, traversal));
> traversal.addStep(i, insertStep);
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (TINKERPOP-1838) Python sample project

2017-11-17 Thread stephen mallette (JIRA)
stephen mallette created TINKERPOP-1838:
---

 Summary: Python sample project
 Key: TINKERPOP-1838
 URL: https://issues.apache.org/jira/browse/TINKERPOP-1838
 Project: TinkerPop
  Issue Type: Improvement
  Components: python
Affects Versions: 3.2.6
Reporter: stephen mallette
Priority: Minor


Create a sample project that can help get users started with Python and 
Gremlin. Should probably be added to the series of gremlin-archetype 
projects.Not sure what this might look like but just trying to be consistent in 
the availability of sample projects.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (TINKERPOP-1784) Gremlin Language Test Suite

2017-11-17 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257371#comment-16257371
 ] 

ASF GitHub Bot commented on TINKERPOP-1784:
---

Github user robertdale commented on the issue:

https://github.com/apache/tinkerpop/pull/747
  
@jorgebay On which OS do you get the test errors?


> Gremlin Language Test Suite
> ---
>
> Key: TINKERPOP-1784
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1784
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: test-suite
>Affects Versions: 3.2.6
>Reporter: stephen mallette
>Assignee: stephen mallette
>
> Provide for a more language agnostic test framework for the Gremlin Language 
> so that we can properly test GLVs. The current test suite is completely tied 
> to the JVM.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] tinkerpop issue #747: TINKERPOP-1784 GLV Test Framework

2017-11-17 Thread robertdale
Github user robertdale commented on the issue:

https://github.com/apache/tinkerpop/pull/747
  
@jorgebay On which OS do you get the test errors?


---


[GitHub] tinkerpop issue #749: Tinkerpop 1807 Gremlin-Python doesn't support GraphSON...

2017-11-17 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/749
  
VOTE +1


---


[GitHub] tinkerpop issue #749: Tinkerpop 1807 Gremlin-Python doesn't support GraphSON...

2017-11-17 Thread davebshow
Github user davebshow commented on the issue:

https://github.com/apache/tinkerpop/pull/749
  
Done. VOTE +1



---


[jira] [Commented] (TINKERPOP-1835) Bump Netty 4.0.53

2017-11-17 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257171#comment-16257171
 ] 

ASF GitHub Bot commented on TINKERPOP-1835:
---

Github user robertdale commented on the issue:

https://github.com/apache/tinkerpop/pull/750
  
[INFO] 

[INFO] BUILD SUCCESS
[INFO] 

[INFO] Total time: 3:37:17.957s
[INFO] Finished at: Fri Nov 17 16:16:11 UTC 2017
[INFO] Final Memory: 170M/1088M
[INFO] 


VOTE +1



> Bump Netty 4.0.53
> -
>
> Key: TINKERPOP-1835
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1835
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: driver, server
>Affects Versions: 3.3.0, 3.2.6
>Reporter: Robert Dale
>Assignee: Robert Dale
>
> https://netty.io/news/2017/11/08/4-0-53-Final-4-1-17-Final.html
> The most important changes for 4.0.53.Final and 4.1.17.Final are:
> * OpenSslEngine support unwrap plaintext greater than 214 and avoid infinite 
> loop (#7352)
> * java.lang.NullPointerException: ssl at 
> ReferenceCountedOpenSslEngine.rejectRemoteInitiatedRenegotiation (#7353)
> * Don't disable HttpObjectDecoder on upgrade from HTTP/1.x to HTTP/1.x over 
> TLS (#7298)
> * Support running Netty (in particular netty-tcnative) in the bootstrap class 
> loader (#7345)
> * SslHandler.setHandshakeTimeout*(...) should also been enforced on the 
> server (#7277)
> * ResourceLeakDetector sampling changes (#7232)
> * Do not treat errors as decoder exception (redux) (#7279)
> * Do not treat errors as decoder exception (#7276)
> * Propagate all exceptions when loading native code (#7250)
> * Optimistically update ref counts (#7248)
> * Fix Java9SslEngine implementation of ApplicationProtocolAccessor and so fix 
> ApplicationProtocolNegationHandler (#7258)
> * Upgrade Conscrypt to 1.0.0.RC11 (#7235)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] tinkerpop issue #750: TINKERPOP-1835 Bump Netty 4.0.53

2017-11-17 Thread robertdale
Github user robertdale commented on the issue:

https://github.com/apache/tinkerpop/pull/750
  
[INFO] 

[INFO] BUILD SUCCESS
[INFO] 

[INFO] Total time: 3:37:17.957s
[INFO] Finished at: Fri Nov 17 16:16:11 UTC 2017
[INFO] Final Memory: 170M/1088M
[INFO] 


VOTE +1



---


[jira] [Commented] (TINKERPOP-1784) Gremlin Language Test Suite

2017-11-17 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257126#comment-16257126
 ] 

ASF GitHub Bot commented on TINKERPOP-1784:
---

Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/747
  
yeah - i'm just realizing how i flubbed a bunch of things on the last 
commit. i was so focused on your .net problems i only ran tests for .net 
:disappointed: 



> Gremlin Language Test Suite
> ---
>
> Key: TINKERPOP-1784
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1784
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: test-suite
>Affects Versions: 3.2.6
>Reporter: stephen mallette
>Assignee: stephen mallette
>
> Provide for a more language agnostic test framework for the Gremlin Language 
> so that we can properly test GLVs. The current test suite is completely tied 
> to the JVM.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] tinkerpop issue #747: TINKERPOP-1784 GLV Test Framework

2017-11-17 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/747
  
yeah - i'm just realizing how i flubbed a bunch of things on the last 
commit. i was so focused on your .net problems i only ran tests for .net 
:disappointed: 



---


[jira] [Commented] (TINKERPOP-1784) Gremlin Language Test Suite

2017-11-17 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257081#comment-16257081
 ] 

ASF GitHub Bot commented on TINKERPOP-1784:
---

Github user jorgebay commented on a diff in the pull request:

https://github.com/apache/tinkerpop/pull/747#discussion_r151703665
  
--- Diff: gremlin-test/features/map/Min.feature ---
@@ -0,0 +1,51 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+Feature: Step - min()
+
+  Scenario: g_V_age_min
+Given the modern graph
+And the traversal of
+  """
+  g.V().values("age").min()
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | d[27].i |
+
+  Scenario: g_V_repeatXbothX_timesX5X_age_min
+Given the modern graph
+And the traversal of
+  """
+  g.V().repeat(__.both()).times(5).values("age").min()
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | d[27].i |
+
+  Scenario: g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_minX
+Given the modern graph
+And the traversal of
+  """
+  
g.V().hasLabel("software").group().by("name").by(__.bothE().values("weight").min())
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | m[{"ripple":"d[1.0].d","lop":"d[0.2]d"}] |
--- End diff --

Typo: should be `"d[0.2].d"`


> Gremlin Language Test Suite
> ---
>
> Key: TINKERPOP-1784
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1784
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: test-suite
>Affects Versions: 3.2.6
>Reporter: stephen mallette
>Assignee: stephen mallette
>
> Provide for a more language agnostic test framework for the Gremlin Language 
> so that we can properly test GLVs. The current test suite is completely tied 
> to the JVM.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] tinkerpop pull request #747: TINKERPOP-1784 GLV Test Framework

2017-11-17 Thread jorgebay
Github user jorgebay commented on a diff in the pull request:

https://github.com/apache/tinkerpop/pull/747#discussion_r151703665
  
--- Diff: gremlin-test/features/map/Min.feature ---
@@ -0,0 +1,51 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+Feature: Step - min()
+
+  Scenario: g_V_age_min
+Given the modern graph
+And the traversal of
+  """
+  g.V().values("age").min()
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | d[27].i |
+
+  Scenario: g_V_repeatXbothX_timesX5X_age_min
+Given the modern graph
+And the traversal of
+  """
+  g.V().repeat(__.both()).times(5).values("age").min()
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | d[27].i |
+
+  Scenario: g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_minX
+Given the modern graph
+And the traversal of
+  """
+  
g.V().hasLabel("software").group().by("name").by(__.bothE().values("weight").min())
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | m[{"ripple":"d[1.0].d","lop":"d[0.2]d"}] |
--- End diff --

Typo: should be `"d[0.2].d"`


---


[jira] [Commented] (TINKERPOP-1784) Gremlin Language Test Suite

2017-11-17 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257038#comment-16257038
 ] 

ASF GitHub Bot commented on TINKERPOP-1784:
---

Github user jorgebay commented on a diff in the pull request:

https://github.com/apache/tinkerpop/pull/747#discussion_r151698077
  
--- Diff: gremlin-test/features/sideEffect/Group.feature ---
@@ -0,0 +1,244 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+Feature: Step - group()
+
+  Scenario: g_V_group_byXnameX
+Given the modern graph
+And the traversal of
+  """
+  g.V().group().by("name")
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | m[{"ripple":"l[v[ripple]]", "peter":"l[v[peter]]", 
"vadas":"l[v[vadas]]", "josh": "l[v[josh]]", "lop":"l[v[lop]]", 
"marko":"l[v[marko]]"}] |
+
+  Scenario: g_V_group_byXnameX_by
+Given the modern graph
+And the traversal of
+  """
+  g.V().group().by("name").by()
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | m[{"ripple":"l[v[ripple]]", "peter":"l[v[peter]]", 
"vadas":"l[v[vadas]]", "josh": "l[v[josh]]", "lop":"l[v[lop]]", 
"marko":"l[v[marko]]"}] |
+
+  Scenario: g_V_groupXaX_byXnameX_capXaX
+Given the modern graph
+And the traversal of
+  """
+  g.V().group("a").by("name").cap("a")
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | m[{"ripple":"l[v[ripple]]", "peter":"l[v[peter]]", 
"vadas":"l[v[vadas]]", "josh": "l[v[josh]]", "lop":"l[v[lop]]", 
"marko":"l[v[marko]]"}] |
+
+  Scenario: g_V_hasXlangX_groupXaX_byXlangX_byXnameX_out_capXaX
+Given the modern graph
+And the traversal of
+  """
+  g.V().has("lang").group("a").by("lang").by("name").out().cap("a")
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | m[{"java":["lop","ripple"]}] |
+
+  Scenario: g_V_hasXlangX_group_byXlangX_byXcountX
+Given the modern graph
+And the traversal of
+  """
+  g.V().has("lang").group().by("lang").by(__.count())
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | m[{"java":"d[2].l"}] |
+
+  Scenario: g_V_repeatXout_groupXaX_byXnameX_byXcountX_timesX2X_capXaX
+Given the modern graph
+And the traversal of
+  """
+  
g.V().repeat(__.out().group("a").by("name").by(__.count())).times(2).cap("a")
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | m[{"ripple":"d[2].l", "vadas":"d[1].l", "josh":"d[1].l", 
"lop":"d[4].l"}] |
+
+  Scenario: g_V_group_byXoutE_countX_byXnameX
+Given an unsupported test
+Then nothing should happen because
+  """
+  The result returned is not supported under GraphSON 2.x and 
therefore cannot be properly asserted. More
+  specifically it has numeric keys which basically get toString()'d 
under GraphSON 2.x. This test can be supported
+  with GraphSON 3.x.
+  """
+
+  Scenario: g_V_groupXaX_byXlabelX_byXoutE_weight_sumX_capXaX
+Given the modern graph
+And the traversal of
+  """
+  
g.V().group("a").by(T.label).by(__.outE().values("weight").sum()).cap("a")
+  """
+When iterated to list
+Then the result should be unordered
+  | result |
+  | m[{"software":"d[0].i", "person":"d[3.5].d}] |
--- End diff --

Typo `"d[3.5].d"`


> Gremlin Language Test Suite
> ---
>
> Key: TINKERPOP-1784
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1784
> Project: TinkerPop
>  Issue Type: 

[jira] [Created] (TINKERPOP-1837) Gremlin .NET: Provide type coercion between IDictionary<K, V> instances

2017-11-17 Thread Jorge Bay (JIRA)
Jorge Bay created TINKERPOP-1837:


 Summary: Gremlin .NET: Provide type coercion between 
IDictionary instances
 Key: TINKERPOP-1837
 URL: https://issues.apache.org/jira/browse/TINKERPOP-1837
 Project: TinkerPop
  Issue Type: Improvement
  Components: dotnet
Affects Versions: 3.2.6, 3.3.0
Reporter: Jorge Bay
 Fix For: 3.2.7, 3.3.1


As [described on the mailing 
list|https://lists.apache.org/thread.html/368c4aa3b37ef9628a3af612aece93fe9ca1914e3b3393e7e2e9fbdd@%3Cdev.tinkerpop.apache.org%3E],
 the limitation for of the specification combined with the strictness of .NET 
generics, makes dealing with maps on the .NET GLV  hard / impossible.

All methods returning a map have this issue, as in the following example:
{code}
IDictionary result = 
g.V().ValueMap("age").Next();
{code}
Causes an exception at runtime:
{code}
System.InvalidCastException: Unable to cast object of type 
'System.Collections.Generic.Dictionary`2[System.Object,System.Object]' to type 
'System.Collections.Generic.IDictionary`2[System.String,System.Collections.Generic.IList`2[System.Int32]]'.
{code}

We should provide conversion mechanism inside the default traversal.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)