[jira] [Commented] (TINKERPOP-1629) Allow reducing barriers in repeat()

2017-02-21 Thread Daniel Kuppitz (JIRA)

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

Daniel Kuppitz commented on TINKERPOP-1629:
---

Correct, {{lop}} and {{ripple}} are actually the expected values.

> Allow reducing barriers in repeat()
> ---
>
> Key: TINKERPOP-1629
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1629
> Project: TinkerPop
>  Issue Type: Bug
>  Components: process
>Affects Versions: 3.3.0
>Reporter: Daniel Kuppitz
>Assignee: Marko A. Rodriguez
>
> The following query transforms the modern graph into layers:
> {noformat}
> gremlin> 
> g.V(1).aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup().
> ..1>
> aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup().
> ..2>
> aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup().
> ..3>cap("x").next()
> ==>[v[1]]
> ==>[v[3],v[2],v[4]]
> ==>[v[6],v[5]]
> {noformat}
> The index of each list represents the minimum distance of the vertices it 
> contains from {{v\[1]}}.
> There's obviously a lot of code duplication, but even worse: the max. depth 
> has to be known upfront. {{repeat()}} could solve that, but currently fails 
> if it contains a reducing barrier step (in OLTP and OLAP).
> {noformat}
> gremlin> 
> g.V(1).repeat(aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup()).cap("x").next()
> The parent of a reducing barrier can not be repeat()-step: FoldStep
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (TINKERPOP-1362) nest steps in reference doc

2017-02-21 Thread stephen mallette (JIRA)

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

stephen mallette commented on TINKERPOP-1362:
-

I sorta like this idea, but not sure how we would do this with asciidoc. The 
menu on the left is controlled by headers in the asciidoc, so without adding 
all those steps as individual sections i don't see how this one can get done 
and I'm not sure we want to start going down that path as some of the grouped 
steps seem to make sense the way they are currently documented. wdyt [~pluradj] 
?

> nest steps in reference doc
> ---
>
> Key: TINKERPOP-1362
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1362
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: documentation
>Affects Versions: 3.2.0-incubating, 3.1.2-incubating
>Reporter: Jason Plurad
>Priority: Trivial
>  Labels: easyfix, newbie
>
> A colleague recommended that the reference doc should include links on the 
> left to some of the steps that are hidden underneath other steps. For example:
> * Lambda Steps
> ** Map
> ** FlatMap
> ** Filter
> ** SideEffect
> ** Branch
> * Has Step
> ** Has
> ** HasLabel
> ** HasId
> ** HasKey
> ** HasValue
> ** HasNot



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (TINKERPOP-1566) Kerberos authentication for gremlin-server

2017-02-21 Thread ASF GitHub Bot (JIRA)

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

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

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

https://github.com/apache/tinkerpop/pull/534#discussion_r102313638
  
--- Diff: 
gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpBasicAuthenticationHandler.java
 ---
@@ -92,6 +102,13 @@ public void channelRead(final ChannelHandlerContext 
ctx, final Object msg) {
 try {
 authenticator.authenticate(credentials);
 ctx.fireChannelRead(request);
+
+// User name logged with the remote socket address and 
authenticator classname for audit logging
+if (authenticationSettings.enableAuditLog) {
+String[] authClassParts = 
authenticator.getClass().toString().split("[.]");
+auditLogger.info("User {} with address {} 
authenticated by {}", credentials.get(PROPERTY_USERNAME),
+
ctx.channel().remoteAddress().toString().substring(1), 
authClassParts[authClassParts.length - 1]);
--- End diff --

Thanks for clarifying, I will correct it. Tests are still running.


> Kerberos authentication for gremlin-server
> --
>
> Key: TINKERPOP-1566
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1566
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: server
>Reporter: Marc de Lignie
>Priority: Minor
>  Labels: security
> Fix For: 3.3.0
>
>
> Gremlin server would benefit from an explicit Kerberos authentication plugin, 
> because preparing and maintaining such a plugin is nontrivial. Also, many 
> other Apache project provide kerberized services.
> In gremlin-console the standard Krb5LoginModule can be configured. 
> Gremlin-server already includes the pluggable Sasl framework that can host 
> the proposed Kerberos authentication plugin. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] tinkerpop pull request #534: TINKERPOP-1566 Kerberos authentication for grem...

2017-02-21 Thread vtslab
Github user vtslab commented on a diff in the pull request:

https://github.com/apache/tinkerpop/pull/534#discussion_r102313638
  
--- Diff: 
gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpBasicAuthenticationHandler.java
 ---
@@ -92,6 +102,13 @@ public void channelRead(final ChannelHandlerContext 
ctx, final Object msg) {
 try {
 authenticator.authenticate(credentials);
 ctx.fireChannelRead(request);
+
+// User name logged with the remote socket address and 
authenticator classname for audit logging
+if (authenticationSettings.enableAuditLog) {
+String[] authClassParts = 
authenticator.getClass().toString().split("[.]");
+auditLogger.info("User {} with address {} 
authenticated by {}", credentials.get(PROPERTY_USERNAME),
+
ctx.channel().remoteAddress().toString().substring(1), 
authClassParts[authClassParts.length - 1]);
--- End diff --

Thanks for clarifying, I will correct it. Tests are still running.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Assigned] (TINKERPOP-1614) Improve documentation for Graph.V() and Graph.E() on main docs page

2017-02-21 Thread stephen mallette (JIRA)

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

stephen mallette reassigned TINKERPOP-1614:
---

Assignee: stephen mallette  (was: Daniel Kuppitz)

> Improve documentation for Graph.V() and Graph.E() on main docs page
> ---
>
> Key: TINKERPOP-1614
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1614
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: documentation
>Reporter: Bob Briody
>Assignee: stephen mallette
>
> I was trying to help someone out on stack overflow recently: 
> http://stackoverflow.com/questions/41638792/dse-graph-get-all-edges-between-two-vertexes.
>  I was on the main TinkerPop3 Docs page looking for some introduction to 
> g.V() that would be good to copy/paste, but couldn't find anything. 
> It seems like there might be a stepping stone missing between "The Traversal" 
> and "Graph Traversal Steps" - a stepping stone about using V and E to 
> seed/start a Traversal.
> The use of IDs should also be discussed there as well.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (TINKERPOP-1340) docs do not state at what version an API was introduced (or deprecated)

2017-02-21 Thread stephen mallette (JIRA)

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

stephen mallette updated TINKERPOP-1340:


[~pluradj] i've implemented a portion of what you described here, by adding 
{{@since}} tags to the javadoc on {{GraphTraversal}}:

https://github.com/apache/tinkerpop/commit/c12e6ae517811d4d1634e2dbfa88c142021e68a2
https://github.com/apache/tinkerpop/commit/52040aa71b73843a0ccf6b757d762afe98df4db9

I don't think it works well in the reference documentation as there isn't 
always a 1 to 1 mapping between the API and what's presented there. For 
example, there might be an method that was introduced at 3.0.0-incubating but 
got a fresh overload in 3.2.3 but is documented singularly in the reference 
docs - not sure how we would reference those situations well. I would say there 
is a similar issue with reference docs that group similar steps together. 

Do you feel like that's enough to close this issue? 

> docs do not state at what version an API was introduced (or deprecated)
> ---
>
> Key: TINKERPOP-1340
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1340
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: documentation
>Affects Versions: 3.2.0-incubating, 3.1.2-incubating
>Reporter: Jason Plurad
>Priority: Trivial
> Fix For: 3.2.5
>
>
> An all-to-common problem for new developers coming to the TinkerPop is 
> figuring out which APIs work against the graph they are using. Since 
> TinkerPop is ahead of many graph implementation out there (Titan/TP 3.0.1, 
> Stardog/TP 3.0.2, Blazegraph/TP 3.1.0 -- kudos to Sqlg and Unipop for TP 
> 3.2.0!), it's really important that developers know which APIs in the current 
> docs are valid. Ideally the developers would go directly to that version of 
> the TP docs, but that doesn't always happen thanks to Google.
> I propose doc updates on each Graph Traversal Step in the [reference 
> docs|http://tinkerpop.apache.org/docs/current/reference/#graph-traversal-steps]
>  and in the javadocs (on 
> [__.java|http://tinkerpop.apache.org/javadocs/current/full/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.html]
>  and on specific step implementations, i.e. 
> [AddEdgeStep.java|http://tinkerpop.apache.org/javadocs/current/full/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.html]).
> It should state the specific version (3.y.z) the API was introduced or 
> deprecated.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (TINKERPOP-1599) implement real gremlin-python driver

2017-02-21 Thread ASF GitHub Bot (JIRA)

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

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

Github user davebshow commented on the issue:

https://github.com/apache/tinkerpop/pull/554
  
Well, I've made my last review of this code and pushed a bit of cleanup and 
a small fix. IMHO, this is ready to be merged. I'll wait to see if there are 
any more comments or feedback before upvoting.


> implement real gremlin-python driver
> 
>
> Key: TINKERPOP-1599
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1599
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: driver, language-variant
>Affects Versions: 3.2.3
>Reporter: David M. Brown
>Assignee: David M. Brown
> Fix For: 3.3.0
>
>
> It is high time that gremlin-python comes packaged with a real driver. After 
> watching the community discussion, it seems that the way to go will be to use 
> the {{concurrent.futures}} module with multithreading to provide asynchronous 
> I/O. While the default underlying websocket client library will remain 
> Tornado due to Python 2/3 compatibility issues, this should be decoupled from 
> the rest of the client and easy to replace.
> With this is mind, I created a baseline client implementation with [this 
> commit|https://github.com/apache/tinkerpop/commit/fb7e7f255585956abbb854fcc5dd3138113cf454]
>  in a topic branch {{python_driver}}. Some things to note:
> - All I/O is performed using the {{concurrent.futures}} module, which 
> provides a standard 2/3 compatible future interface.
> - The implementation currently does not include the concept of a cluster, 
> instead it assumes a single host.
> - The {{transport}} interface makes it easy to plug in client libraries by 
> defining a simple wrapper.
> - Because this is an example, I didn't fix all the tests to work with the new 
> client implementation. Instead I just added a few demo tests. If we decide to 
> move forward with this I will update the original tests.
> The resulting API looks like this for a simple client:
> {code}
> client = Client('ws://localhost:8182/gremlin', 'g')
> g = Graph().traversal()
> t = g.V()
> future_result_set = client.submitAsync(t.bytecode)
> result_set = future_result_set.result()
> results = result_set.all().result()
> client.close()
> {code}
> Using the {{DriverRemoteConnection}}:
> {code}
> conn = DriverRemoteConnection('ws://localhost:8182/gremlin', 'g')
> g = Graph().traversal().withRemote(conn)
> t = g.V()
> results = t.toList()
> conn.close()
> {code}
> If you have a minute to check out the new driver code that would be great, I 
> welcome feedback and suggestions. If we decide to move forward like this, I 
> will proceed to finish the driver implementation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] tinkerpop issue #554: TINKERPOP-1599 implement real gremlin-python driver

2017-02-21 Thread davebshow
Github user davebshow commented on the issue:

https://github.com/apache/tinkerpop/pull/554
  
Well, I've made my last review of this code and pushed a bit of cleanup and 
a small fix. IMHO, this is ready to be merged. I'll wait to see if there are 
any more comments or feedback before upvoting.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (TINKERPOP-1599) implement real gremlin-python driver

2017-02-21 Thread ASF GitHub Bot (JIRA)

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

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

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

https://github.com/apache/tinkerpop/pull/554#discussion_r102272018
  
--- Diff: CHANGELOG.asciidoc ---
@@ -29,6 +29,11 @@ TinkerPop 3.2.5 (Release Date: NOT OFFICIALLY RELEASED 
YET)
 * Refactor `SparkContext` handler to support external kill and stop 
operations.
 * Fixed an optimization bug in `LazyBarrierStrategy` around appending 
barriers to the end of a `Traversal`.
 * `TraverserIterator` in GremlinServer is smart to try and bulk traversers 
prior to network I/O.
+* Improved Gremlin-Python Driver implementation by adding a threaded 
client with basic connection pooling and support for pluggable websocket 
clients.
+
+Improvements
+
+TINKERPOP-1599 implement real gremlin-python driver
--- End diff --

you don't need to add those manually - they get added on release (we 
generate a report out of jira for it).


> implement real gremlin-python driver
> 
>
> Key: TINKERPOP-1599
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1599
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: driver, language-variant
>Affects Versions: 3.2.3
>Reporter: David M. Brown
>Assignee: David M. Brown
> Fix For: 3.3.0
>
>
> It is high time that gremlin-python comes packaged with a real driver. After 
> watching the community discussion, it seems that the way to go will be to use 
> the {{concurrent.futures}} module with multithreading to provide asynchronous 
> I/O. While the default underlying websocket client library will remain 
> Tornado due to Python 2/3 compatibility issues, this should be decoupled from 
> the rest of the client and easy to replace.
> With this is mind, I created a baseline client implementation with [this 
> commit|https://github.com/apache/tinkerpop/commit/fb7e7f255585956abbb854fcc5dd3138113cf454]
>  in a topic branch {{python_driver}}. Some things to note:
> - All I/O is performed using the {{concurrent.futures}} module, which 
> provides a standard 2/3 compatible future interface.
> - The implementation currently does not include the concept of a cluster, 
> instead it assumes a single host.
> - The {{transport}} interface makes it easy to plug in client libraries by 
> defining a simple wrapper.
> - Because this is an example, I didn't fix all the tests to work with the new 
> client implementation. Instead I just added a few demo tests. If we decide to 
> move forward with this I will update the original tests.
> The resulting API looks like this for a simple client:
> {code}
> client = Client('ws://localhost:8182/gremlin', 'g')
> g = Graph().traversal()
> t = g.V()
> future_result_set = client.submitAsync(t.bytecode)
> result_set = future_result_set.result()
> results = result_set.all().result()
> client.close()
> {code}
> Using the {{DriverRemoteConnection}}:
> {code}
> conn = DriverRemoteConnection('ws://localhost:8182/gremlin', 'g')
> g = Graph().traversal().withRemote(conn)
> t = g.V()
> results = t.toList()
> conn.close()
> {code}
> If you have a minute to check out the new driver code that would be great, I 
> welcome feedback and suggestions. If we decide to move forward like this, I 
> will proceed to finish the driver implementation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] tinkerpop pull request #554: TINKERPOP-1599 implement real gremlin-python dr...

2017-02-21 Thread spmallette
Github user spmallette commented on a diff in the pull request:

https://github.com/apache/tinkerpop/pull/554#discussion_r102272018
  
--- Diff: CHANGELOG.asciidoc ---
@@ -29,6 +29,11 @@ TinkerPop 3.2.5 (Release Date: NOT OFFICIALLY RELEASED 
YET)
 * Refactor `SparkContext` handler to support external kill and stop 
operations.
 * Fixed an optimization bug in `LazyBarrierStrategy` around appending 
barriers to the end of a `Traversal`.
 * `TraverserIterator` in GremlinServer is smart to try and bulk traversers 
prior to network I/O.
+* Improved Gremlin-Python Driver implementation by adding a threaded 
client with basic connection pooling and support for pluggable websocket 
clients.
+
+Improvements
+
+TINKERPOP-1599 implement real gremlin-python driver
--- End diff --

you don't need to add those manually - they get added on release (we 
generate a report out of jira for it).


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (TINKERPOP-1629) Allow reducing barriers in repeat()

2017-02-21 Thread Marko A. Rodriguez (JIRA)

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

Marko A. Rodriguez commented on TINKERPOP-1629:
---

The answer to the added {{RepeatTest}} traversal is:

{code}
gremlin> g.V(1).repeat(bothE().values("weight").sum().choose(is(gt(1)), V(6), 
V(4)).out("created").dedup()).emit().values("name")
==>ripple
==>lop
{code}

It seems that {{josh}} and {{peter}} are expected. However, that seems wrong as 
you want what they "created", NOT them themselves. Thus, I believe that the 
test case written is bad.

> Allow reducing barriers in repeat()
> ---
>
> Key: TINKERPOP-1629
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1629
> Project: TinkerPop
>  Issue Type: Bug
>  Components: process
>Affects Versions: 3.3.0
>Reporter: Daniel Kuppitz
>Assignee: Marko A. Rodriguez
>
> The following query transforms the modern graph into layers:
> {noformat}
> gremlin> 
> g.V(1).aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup().
> ..1>
> aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup().
> ..2>
> aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup().
> ..3>cap("x").next()
> ==>[v[1]]
> ==>[v[3],v[2],v[4]]
> ==>[v[6],v[5]]
> {noformat}
> The index of each list represents the minimum distance of the vertices it 
> contains from {{v\[1]}}.
> There's obviously a lot of code duplication, but even worse: the max. depth 
> has to be known upfront. {{repeat()}} could solve that, but currently fails 
> if it contains a reducing barrier step (in OLTP and OLAP).
> {noformat}
> gremlin> 
> g.V(1).repeat(aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup()).cap("x").next()
> The parent of a reducing barrier can not be repeat()-step: FoldStep
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (TINKERPOP-1629) Allow reducing barriers in repeat()

2017-02-21 Thread Marko A. Rodriguez (JIRA)

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

Marko A. Rodriguez commented on TINKERPOP-1629:
---

By allowing the internal `fold()`, the results for your example traversal are 
as follows.

{code}
// OLTP
gremlin> 
g.V(1).repeat(aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup()).cap("x").next()
==>[]
==>[v[1]]
==>[v[3],v[2],v[4]]
==>[v[6],v[5]]

// OLAP
gremlin> 
g.withComputer().V(1).repeat(aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup()).cap("x").next()
==>[v[1]]
==>[]
==>[]
==>[]
==>[]
==>[]
==>[v[3],v[2],v[4]]
==>[v[5],v[6]]
gremlin>
{code}



> Allow reducing barriers in repeat()
> ---
>
> Key: TINKERPOP-1629
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1629
> Project: TinkerPop
>  Issue Type: Bug
>  Components: process
>Affects Versions: 3.3.0
>Reporter: Daniel Kuppitz
>Assignee: Marko A. Rodriguez
>
> The following query transforms the modern graph into layers:
> {noformat}
> gremlin> 
> g.V(1).aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup().
> ..1>
> aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup().
> ..2>
> aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup().
> ..3>cap("x").next()
> ==>[v[1]]
> ==>[v[3],v[2],v[4]]
> ==>[v[6],v[5]]
> {noformat}
> The index of each list represents the minimum distance of the vertices it 
> contains from {{v\[1]}}.
> There's obviously a lot of code duplication, but even worse: the max. depth 
> has to be known upfront. {{repeat()}} could solve that, but currently fails 
> if it contains a reducing barrier step (in OLTP and OLAP).
> {noformat}
> gremlin> 
> g.V(1).repeat(aggregate("a").fold().store("x").unfold().both().where(without("a")).dedup()).cap("x").next()
> The parent of a reducing barrier can not be repeat()-step: FoldStep
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (TINKERPOP-1635) gremlin-python: Duplicate serialization of element property in PropertySerializer

2017-02-21 Thread ASF GitHub Bot (JIRA)

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

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

Github user FlorianHockmann commented on the issue:

https://github.com/apache/tinkerpop/pull/561
  
Sure, I just noticed it while working on GraphSON for Gremlin.CSharp and it 
seemed strange that integer properties were serialized twice.


> gremlin-python: Duplicate serialization of element property in 
> PropertySerializer
> -
>
> Key: TINKERPOP-1635
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1635
> Project: TinkerPop
>  Issue Type: Bug
>  Components: language-variant
>Affects Versions: 3.3.0
>Reporter: Florian Hockmann
>Priority: Trivial
>
> The {{PropertySerializer}} in the current master branch of gremlin-python 
> serializes the element property twice:
> {code}
> elementDict = writer.toDict(property.element)
> #...
> "element": writer.toDict(elementDict)
> {code}
> This isn't a problem when the element only contains simple types like strings 
> that aren't serialized by adding a type attribute (like in the unit test for 
> this component). However, all other types like integers for example are 
> serialized two times. So an integer will be serialized to:
> {code}
> {"@type":"g:Int32","@value":{"@type":"g:Int32","@value":1}}
> {code}
> Full example:
> {code}
> >>> p = Property("aKey","aValue", Edge(123, Vertex(1), "edgeLabel", 
> >>> Vertex(2)))
> >>> writer.writeObject(p)
> '{"@type":"g:Property","@value":{"value":"aValue","key":"aKey","element":{"@type":"g:Edge","@value":{"inV":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":2}},"id":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":123}},"outV":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":1}},"label":"edgeLabel"'
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (TINKERPOP-1635) gremlin-python: Duplicate serialization of element property in PropertySerializer

2017-02-21 Thread ASF GitHub Bot (JIRA)

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

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

Github user okram commented on the issue:

https://github.com/apache/tinkerpop/pull/561
  
Note that we will be heavily refactoring GraphSON for TinkerPop 3.3.0 
(`master/`) so most of this will be gutted. I will leave it up to @spmallette / 
@newkek / @aholmberg to decide whether this is necessary to merge.


> gremlin-python: Duplicate serialization of element property in 
> PropertySerializer
> -
>
> Key: TINKERPOP-1635
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1635
> Project: TinkerPop
>  Issue Type: Bug
>  Components: language-variant
>Affects Versions: 3.3.0
>Reporter: Florian Hockmann
>Priority: Trivial
>
> The {{PropertySerializer}} in the current master branch of gremlin-python 
> serializes the element property twice:
> {code}
> elementDict = writer.toDict(property.element)
> #...
> "element": writer.toDict(elementDict)
> {code}
> This isn't a problem when the element only contains simple types like strings 
> that aren't serialized by adding a type attribute (like in the unit test for 
> this component). However, all other types like integers for example are 
> serialized two times. So an integer will be serialized to:
> {code}
> {"@type":"g:Int32","@value":{"@type":"g:Int32","@value":1}}
> {code}
> Full example:
> {code}
> >>> p = Property("aKey","aValue", Edge(123, Vertex(1), "edgeLabel", 
> >>> Vertex(2)))
> >>> writer.writeObject(p)
> '{"@type":"g:Property","@value":{"value":"aValue","key":"aKey","element":{"@type":"g:Edge","@value":{"inV":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":2}},"id":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":123}},"outV":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":1}},"label":"edgeLabel"'
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] tinkerpop issue #561: TINKERPOP-1635 Fix duplicate serialization of element ...

2017-02-21 Thread okram
Github user okram commented on the issue:

https://github.com/apache/tinkerpop/pull/561
  
Note that we will be heavily refactoring GraphSON for TinkerPop 3.3.0 
(`master/`) so most of this will be gutted. I will leave it up to @spmallette / 
@newkek / @aholmberg to decide whether this is necessary to merge.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (TINKERPOP-1635) gremlin-python: Duplicate serialization of element property in PropertySerializer

2017-02-21 Thread ASF GitHub Bot (JIRA)

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

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

Github user FlorianHockmann commented on the issue:

https://github.com/apache/tinkerpop/pull/561
  
The PropertySerializer doesn't exist in the `tp32` branch, it was only 
added to the master. So the problem also only exists in `master`.


> gremlin-python: Duplicate serialization of element property in 
> PropertySerializer
> -
>
> Key: TINKERPOP-1635
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1635
> Project: TinkerPop
>  Issue Type: Bug
>  Components: language-variant
>Affects Versions: 3.3.0
>Reporter: Florian Hockmann
>Priority: Trivial
>
> The {{PropertySerializer}} in the current master branch of gremlin-python 
> serializes the element property twice:
> {code}
> elementDict = writer.toDict(property.element)
> #...
> "element": writer.toDict(elementDict)
> {code}
> This isn't a problem when the element only contains simple types like strings 
> that aren't serialized by adding a type attribute (like in the unit test for 
> this component). However, all other types like integers for example are 
> serialized two times. So an integer will be serialized to:
> {code}
> {"@type":"g:Int32","@value":{"@type":"g:Int32","@value":1}}
> {code}
> Full example:
> {code}
> >>> p = Property("aKey","aValue", Edge(123, Vertex(1), "edgeLabel", 
> >>> Vertex(2)))
> >>> writer.writeObject(p)
> '{"@type":"g:Property","@value":{"value":"aValue","key":"aKey","element":{"@type":"g:Edge","@value":{"inV":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":2}},"id":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":123}},"outV":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":1}},"label":"edgeLabel"'
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] tinkerpop issue #561: TINKERPOP-1635 Fix duplicate serialization of element ...

2017-02-21 Thread FlorianHockmann
Github user FlorianHockmann commented on the issue:

https://github.com/apache/tinkerpop/pull/561
  
The PropertySerializer doesn't exist in the `tp32` branch, it was only 
added to the master. So the problem also only exists in `master`.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (TINKERPOP-1635) gremlin-python: Duplicate serialization of element property in PropertySerializer

2017-02-21 Thread ASF GitHub Bot (JIRA)

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

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

Github user okram commented on the issue:

https://github.com/apache/tinkerpop/pull/561
  
Should this be directed to `tp32/` and not `master/`? Or is this a breaking 
change?


> gremlin-python: Duplicate serialization of element property in 
> PropertySerializer
> -
>
> Key: TINKERPOP-1635
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1635
> Project: TinkerPop
>  Issue Type: Bug
>  Components: language-variant
>Affects Versions: 3.3.0
>Reporter: Florian Hockmann
>Priority: Trivial
>
> The {{PropertySerializer}} in the current master branch of gremlin-python 
> serializes the element property twice:
> {code}
> elementDict = writer.toDict(property.element)
> #...
> "element": writer.toDict(elementDict)
> {code}
> This isn't a problem when the element only contains simple types like strings 
> that aren't serialized by adding a type attribute (like in the unit test for 
> this component). However, all other types like integers for example are 
> serialized two times. So an integer will be serialized to:
> {code}
> {"@type":"g:Int32","@value":{"@type":"g:Int32","@value":1}}
> {code}
> Full example:
> {code}
> >>> p = Property("aKey","aValue", Edge(123, Vertex(1), "edgeLabel", 
> >>> Vertex(2)))
> >>> writer.writeObject(p)
> '{"@type":"g:Property","@value":{"value":"aValue","key":"aKey","element":{"@type":"g:Edge","@value":{"inV":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":2}},"id":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":123}},"outV":{"@type":"g:Int32","@value":{"@type":"g:Int32","@value":1}},"label":"edgeLabel"'
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] tinkerpop issue #561: TINKERPOP-1635 Fix duplicate serialization of element ...

2017-02-21 Thread okram
Github user okram commented on the issue:

https://github.com/apache/tinkerpop/pull/561
  
Should this be directed to `tp32/` and not `master/`? Or is this a breaking 
change?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---