[jira] [Commented] (TINKERPOP-1438) Consider GraphManager as an interface
[ https://issues.apache.org/jira/browse/TINKERPOP-1438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15950100#comment-15950100 ] ASF GitHub Bot commented on TINKERPOP-1438: --- Github user dpitera commented on the issue: https://github.com/apache/tinkerpop/pull/569 IT tests passed! ``` [INFO] Reactor Summary: [INFO] [INFO] Apache TinkerPop .. SUCCESS [1:31.220s] [INFO] Apache TinkerPop :: Gremlin Shaded SUCCESS [12.183s] [INFO] Apache TinkerPop :: Gremlin Core .. SUCCESS [1:15.039s] [INFO] Apache TinkerPop :: Gremlin Test .. SUCCESS [9.752s] [INFO] Apache TinkerPop :: Gremlin Groovy SUCCESS [2:50.074s] [INFO] Apache TinkerPop :: Gremlin Groovy Test ... SUCCESS [5.952s] [INFO] Apache TinkerPop :: TinkerGraph Gremlin ... SUCCESS [4:44.315s] [INFO] Apache TinkerPop :: Gremlin Benchmark . SUCCESS [10.434s] [INFO] Apache TinkerPop :: Gremlin Driver SUCCESS [15.460s] [INFO] Apache TinkerPop :: Neo4j Gremlin . SUCCESS [4.899s] [INFO] Apache TinkerPop :: Gremlin Server SUCCESS [16:15.318s] [INFO] Apache TinkerPop :: Gremlin Python SUCCESS [19.874s] [INFO] Apache TinkerPop :: Hadoop Gremlin SUCCESS [11:05.683s] [INFO] Apache TinkerPop :: Spark Gremlin . SUCCESS [22:49.909s] [INFO] Apache TinkerPop :: Giraph Gremlin SUCCESS [2:21:03.271s] [INFO] Apache TinkerPop :: Gremlin Console ... SUCCESS [2:56.000s] [INFO] Apache TinkerPop :: Gremlin Archetype . SUCCESS [0.175s] [INFO] Apache TinkerPop :: Archetype - TinkerGraph ... SUCCESS [28.255s] [INFO] Apache TinkerPop :: Archetype - Server SUCCESS [13.480s] [INFO] [INFO] BUILD SUCCESS [INFO] [INFO] Total time: 3:26:32.403s [INFO] Finished at: Thu Mar 30 22:40:41 UTC 2017 [INFO] Final Memory: 103M/771M [INFO] ``` > 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)
[GitHub] tinkerpop issue #569: TINKERPOP-1438: GraphManager becomes a customizable in...
Github user dpitera commented on the issue: https://github.com/apache/tinkerpop/pull/569 IT tests passed! ``` [INFO] Reactor Summary: [INFO] [INFO] Apache TinkerPop .. SUCCESS [1:31.220s] [INFO] Apache TinkerPop :: Gremlin Shaded SUCCESS [12.183s] [INFO] Apache TinkerPop :: Gremlin Core .. SUCCESS [1:15.039s] [INFO] Apache TinkerPop :: Gremlin Test .. SUCCESS [9.752s] [INFO] Apache TinkerPop :: Gremlin Groovy SUCCESS [2:50.074s] [INFO] Apache TinkerPop :: Gremlin Groovy Test ... SUCCESS [5.952s] [INFO] Apache TinkerPop :: TinkerGraph Gremlin ... SUCCESS [4:44.315s] [INFO] Apache TinkerPop :: Gremlin Benchmark . SUCCESS [10.434s] [INFO] Apache TinkerPop :: Gremlin Driver SUCCESS [15.460s] [INFO] Apache TinkerPop :: Neo4j Gremlin . SUCCESS [4.899s] [INFO] Apache TinkerPop :: Gremlin Server SUCCESS [16:15.318s] [INFO] Apache TinkerPop :: Gremlin Python SUCCESS [19.874s] [INFO] Apache TinkerPop :: Hadoop Gremlin SUCCESS [11:05.683s] [INFO] Apache TinkerPop :: Spark Gremlin . SUCCESS [22:49.909s] [INFO] Apache TinkerPop :: Giraph Gremlin SUCCESS [2:21:03.271s] [INFO] Apache TinkerPop :: Gremlin Console ... SUCCESS [2:56.000s] [INFO] Apache TinkerPop :: Gremlin Archetype . SUCCESS [0.175s] [INFO] Apache TinkerPop :: Archetype - TinkerGraph ... SUCCESS [28.255s] [INFO] Apache TinkerPop :: Archetype - Server SUCCESS [13.480s] [INFO] [INFO] BUILD SUCCESS [INFO] [INFO] Total time: 3:26:32.403s [INFO] Finished at: Thu Mar 30 22:40:41 UTC 2017 [INFO] Final Memory: 103M/771M [INFO] ``` --- 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. ---
[GitHub] tinkerpop issue #589: provide examples where merge operator actually has an ...
Github user mpollmeier commented on the issue: https://github.com/apache/tinkerpop/pull/589 @spmallette I'm also surprised, but not a docker expert. I'm happy to try out other stuff to get to the bottom of that problem, just let me know if you have some idea. @robertdale Re the examples without sack: I don't mind, they just didn't look very interesting to me. I just added them back in, same goes for withBulk --- 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] [Closed] (TINKERPOP-1642) Improve performance of mutating traversals
[ https://issues.apache.org/jira/browse/TINKERPOP-1642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marko A. Rodriguez closed TINKERPOP-1642. - Resolution: Fixed Fix Version/s: 3.2.5 > Improve performance of mutating traversals > -- > > Key: TINKERPOP-1642 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1642 > Project: TinkerPop > Issue Type: Improvement > Components: process >Affects Versions: 3.2.4 >Reporter: stephen mallette >Assignee: stephen mallette >Priority: Critical > Fix For: 3.2.5 > > > Make an attempt improve performance of mutating traversals. Some general > goals for this ticket should be to: > 1. Improve performance parity of structure and process methods for modifying > the graph - structure is pretty far ahead. > 2. Improve the speed of large chained mutating traversals - see > http://stackoverflow.com/q/41926409/1831717 > 3. Determine ways to make these performance improvements in {{gremlin-core}} > so that they may benefit all {{Graph}} implementations > 4. Improve the speed of TinkerGraph specifically if possible as it is used > for subgraphing functions in many cases and ends up being useful regardless > of the graph implementation ultimately used. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TINKERPOP-1642) Improve performance of mutating traversals
[ https://issues.apache.org/jira/browse/TINKERPOP-1642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15949703#comment-15949703 ] ASF GitHub Bot commented on TINKERPOP-1642: --- Github user asfgit closed the pull request at: https://github.com/apache/tinkerpop/pull/587 > Improve performance of mutating traversals > -- > > Key: TINKERPOP-1642 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1642 > Project: TinkerPop > Issue Type: Improvement > Components: process >Affects Versions: 3.2.4 >Reporter: stephen mallette >Assignee: stephen mallette >Priority: Critical > > Make an attempt improve performance of mutating traversals. Some general > goals for this ticket should be to: > 1. Improve performance parity of structure and process methods for modifying > the graph - structure is pretty far ahead. > 2. Improve the speed of large chained mutating traversals - see > http://stackoverflow.com/q/41926409/1831717 > 3. Determine ways to make these performance improvements in {{gremlin-core}} > so that they may benefit all {{Graph}} implementations > 4. Improve the speed of TinkerGraph specifically if possible as it is used > for subgraphing functions in many cases and ends up being useful regardless > of the graph implementation ultimately used. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] tinkerpop pull request #587: TINKERPOP-1642 Performance Enhancement on Mutat...
Github user asfgit closed the pull request at: https://github.com/apache/tinkerpop/pull/587 --- 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-1642) Improve performance of mutating traversals
[ https://issues.apache.org/jira/browse/TINKERPOP-1642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15949673#comment-15949673 ] ASF GitHub Bot commented on TINKERPOP-1642: --- Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/587 My app tests pass. Also noticed a slight reduction in test time. :grinning: VOTE +1 > Improve performance of mutating traversals > -- > > Key: TINKERPOP-1642 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1642 > Project: TinkerPop > Issue Type: Improvement > Components: process >Affects Versions: 3.2.4 >Reporter: stephen mallette >Assignee: stephen mallette >Priority: Critical > > Make an attempt improve performance of mutating traversals. Some general > goals for this ticket should be to: > 1. Improve performance parity of structure and process methods for modifying > the graph - structure is pretty far ahead. > 2. Improve the speed of large chained mutating traversals - see > http://stackoverflow.com/q/41926409/1831717 > 3. Determine ways to make these performance improvements in {{gremlin-core}} > so that they may benefit all {{Graph}} implementations > 4. Improve the speed of TinkerGraph specifically if possible as it is used > for subgraphing functions in many cases and ends up being useful regardless > of the graph implementation ultimately used. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] tinkerpop issue #587: TINKERPOP-1642 Performance Enhancement on Mutating Tra...
Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/587 My app tests pass. Also noticed a slight reduction in test time. :grinning: VOTE +1 --- 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-1657) Provide abstraction to easily allow different HttpAuth schemes
[ https://issues.apache.org/jira/browse/TINKERPOP-1657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15949650#comment-15949650 ] ASF GitHub Bot commented on TINKERPOP-1657: --- Github user krlohnes commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/583#discussion_r109015220 --- Diff: gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/AuthenticationHandler.java --- @@ -0,0 +1,52 @@ +/* + * 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. + */ +package org.apache.tinkerpop.gremlin.server.handler; + +import io.netty.channel.ChannelFutureListener; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import io.netty.handler.codec.http.DefaultFullHttpResponse; +import io.netty.handler.codec.http.FullHttpMessage; +import io.netty.util.ReferenceCountUtil; +import org.apache.tinkerpop.gremlin.server.auth.AuthenticationException; +import org.apache.tinkerpop.gremlin.server.auth.Authenticator; + +import java.nio.charset.Charset; +import java.util.Base64; +import java.util.HashMap; +import java.util.Map; + +import static io.netty.handler.codec.http.HttpResponseStatus.UNAUTHORIZED; +import static io.netty.handler.codec.http.HttpVersion.HTTP_1_1; +import static org.apache.tinkerpop.gremlin.groovy.plugin.dsl.credential.CredentialGraphTokens.PROPERTY_PASSWORD; +import static org.apache.tinkerpop.gremlin.groovy.plugin.dsl.credential.CredentialGraphTokens.PROPERTY_USERNAME; + +/** + * Provides an abstraction point to allow for http auth schemes beyond basic auth. + */ +import io.netty.channel.ChannelInboundHandlerAdapter; + +public abstract class AuthenticationHandler extends ChannelInboundHandlerAdapter { --- End diff -- Fixed > Provide abstraction to easily allow different HttpAuth schemes > -- > > Key: TINKERPOP-1657 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1657 > Project: TinkerPop > Issue Type: Improvement > Components: server >Reporter: Keith Lohnes > > The current HttpChannelizer allows for extension through an Authenticator > class supplied through the authorization settings. There isn't, however, an > extension point for an authentication handler. Currently the choice is > between the `AllowAllAuthenticator` or the `HttpBasicAuthenticationHandler`. > One would need to create a new channelizer where the HttpChannelizer would > suffice. Creating an abstract class that can be extended would make it easier > to extend Authentication for things like token authentication schemes. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TINKERPOP-1657) Provide abstraction to easily allow different HttpAuth schemes
[ https://issues.apache.org/jira/browse/TINKERPOP-1657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15949649#comment-15949649 ] ASF GitHub Bot commented on TINKERPOP-1657: --- Github user krlohnes commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/583#discussion_r109015202 --- Diff: gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java --- @@ -387,6 +387,18 @@ public SerializerSettings() {} public String className = AllowAllAuthenticator.class.getName(); /** + * Enable audit logging of authenticated users and gremlin evaluation requests. + */ +public boolean enableAuditLog = false; + +/** + * The fully qualified class name of the {@link AuthenticationHandler} implementation. + * This class name will be used to load the implementation from the classpath. + * Defaults to null when not specified. + */ +public String handlerClassName = null; --- End diff -- Fixed > Provide abstraction to easily allow different HttpAuth schemes > -- > > Key: TINKERPOP-1657 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1657 > Project: TinkerPop > Issue Type: Improvement > Components: server >Reporter: Keith Lohnes > > The current HttpChannelizer allows for extension through an Authenticator > class supplied through the authorization settings. There isn't, however, an > extension point for an authentication handler. Currently the choice is > between the `AllowAllAuthenticator` or the `HttpBasicAuthenticationHandler`. > One would need to create a new channelizer where the HttpChannelizer would > suffice. Creating an abstract class that can be extended would make it easier > to extend Authentication for things like token authentication schemes. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] tinkerpop pull request #583: TINKERPOP-1657 Provide abstraction to easily al...
Github user krlohnes commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/583#discussion_r109015202 --- Diff: gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java --- @@ -387,6 +387,18 @@ public SerializerSettings() {} public String className = AllowAllAuthenticator.class.getName(); /** + * Enable audit logging of authenticated users and gremlin evaluation requests. + */ +public boolean enableAuditLog = false; + +/** + * The fully qualified class name of the {@link AuthenticationHandler} implementation. + * This class name will be used to load the implementation from the classpath. + * Defaults to null when not specified. + */ +public String handlerClassName = null; --- End diff -- Fixed --- 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. ---
[GitHub] tinkerpop pull request #583: TINKERPOP-1657 Provide abstraction to easily al...
Github user krlohnes commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/583#discussion_r109015184 --- Diff: gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java --- @@ -387,6 +387,18 @@ public SerializerSettings() {} public String className = AllowAllAuthenticator.class.getName(); /** + * Enable audit logging of authenticated users and gremlin evaluation requests. + */ +public boolean enableAuditLog = false; --- End diff -- Fixed --- 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. ---
[GitHub] tinkerpop pull request #583: TINKERPOP-1657 Provide abstraction to easily al...
Github user krlohnes commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/583#discussion_r109015220 --- Diff: gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/AuthenticationHandler.java --- @@ -0,0 +1,52 @@ +/* + * 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. + */ +package org.apache.tinkerpop.gremlin.server.handler; + +import io.netty.channel.ChannelFutureListener; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import io.netty.handler.codec.http.DefaultFullHttpResponse; +import io.netty.handler.codec.http.FullHttpMessage; +import io.netty.util.ReferenceCountUtil; +import org.apache.tinkerpop.gremlin.server.auth.AuthenticationException; +import org.apache.tinkerpop.gremlin.server.auth.Authenticator; + +import java.nio.charset.Charset; +import java.util.Base64; +import java.util.HashMap; +import java.util.Map; + +import static io.netty.handler.codec.http.HttpResponseStatus.UNAUTHORIZED; +import static io.netty.handler.codec.http.HttpVersion.HTTP_1_1; +import static org.apache.tinkerpop.gremlin.groovy.plugin.dsl.credential.CredentialGraphTokens.PROPERTY_PASSWORD; +import static org.apache.tinkerpop.gremlin.groovy.plugin.dsl.credential.CredentialGraphTokens.PROPERTY_USERNAME; + +/** + * Provides an abstraction point to allow for http auth schemes beyond basic auth. + */ +import io.netty.channel.ChannelInboundHandlerAdapter; + +public abstract class AuthenticationHandler extends ChannelInboundHandlerAdapter { --- End diff -- Fixed --- 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-1657) Provide abstraction to easily allow different HttpAuth schemes
[ https://issues.apache.org/jira/browse/TINKERPOP-1657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15949648#comment-15949648 ] ASF GitHub Bot commented on TINKERPOP-1657: --- Github user krlohnes commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/583#discussion_r109015184 --- Diff: gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java --- @@ -387,6 +387,18 @@ public SerializerSettings() {} public String className = AllowAllAuthenticator.class.getName(); /** + * Enable audit logging of authenticated users and gremlin evaluation requests. + */ +public boolean enableAuditLog = false; --- End diff -- Fixed > Provide abstraction to easily allow different HttpAuth schemes > -- > > Key: TINKERPOP-1657 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1657 > Project: TinkerPop > Issue Type: Improvement > Components: server >Reporter: Keith Lohnes > > The current HttpChannelizer allows for extension through an Authenticator > class supplied through the authorization settings. There isn't, however, an > extension point for an authentication handler. Currently the choice is > between the `AllowAllAuthenticator` or the `HttpBasicAuthenticationHandler`. > One would need to create a new channelizer where the HttpChannelizer would > suffice. Creating an abstract class that can be extended would make it easier > to extend Authentication for things like token authentication schemes. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TINKERPOP-1657) Provide abstraction to easily allow different HttpAuth schemes
[ https://issues.apache.org/jira/browse/TINKERPOP-1657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15949621#comment-15949621 ] ASF GitHub Bot commented on TINKERPOP-1657: --- Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/583 One thing I haven't had much time to think about here is how to propagate ssl client authentication up (into an authentication handler). Right now it's at the channel level only. That means it is independent of other authentication mechanisms for better or worse. Permutations to consider: - needClientAuth REQUIRE, no auth handler: ssl client auth required but no logging of the client - needClientAuth REQUIRE, +auth handler: both are always required - needClientAuth OPTIONAL, no auth handler: same as NO SECURITY! - needClientAuth OPTIONAL, +auth handler: auth handler always required So one option is to create ssl client auth's own Channel and Auth Handlers thus disallowing mixing. One of the limitations of the current system is what information is available to the Auth handler. So another option is to add whatever information is required to pass along the fact that ssl client auth worked then the auth handler could make its own determination as to if further authentication is required. A more complex option would be to introduce authentication chaining thus allowing multiple mechanisms and some sort of requirement scheme - required, sufficient, etc. I don't know if this PR does help or can help with any of that. Just some food for thought... > Provide abstraction to easily allow different HttpAuth schemes > -- > > Key: TINKERPOP-1657 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1657 > Project: TinkerPop > Issue Type: Improvement > Components: server >Reporter: Keith Lohnes > > The current HttpChannelizer allows for extension through an Authenticator > class supplied through the authorization settings. There isn't, however, an > extension point for an authentication handler. Currently the choice is > between the `AllowAllAuthenticator` or the `HttpBasicAuthenticationHandler`. > One would need to create a new channelizer where the HttpChannelizer would > suffice. Creating an abstract class that can be extended would make it easier > to extend Authentication for things like token authentication schemes. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] tinkerpop issue #583: TINKERPOP-1657 Provide abstraction to easily allow dif...
Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/583 One thing I haven't had much time to think about here is how to propagate ssl client authentication up (into an authentication handler). Right now it's at the channel level only. That means it is independent of other authentication mechanisms for better or worse. Permutations to consider: - needClientAuth REQUIRE, no auth handler: ssl client auth required but no logging of the client - needClientAuth REQUIRE, +auth handler: both are always required - needClientAuth OPTIONAL, no auth handler: same as NO SECURITY! - needClientAuth OPTIONAL, +auth handler: auth handler always required So one option is to create ssl client auth's own Channel and Auth Handlers thus disallowing mixing. One of the limitations of the current system is what information is available to the Auth handler. So another option is to add whatever information is required to pass along the fact that ssl client auth worked then the auth handler could make its own determination as to if further authentication is required. A more complex option would be to introduce authentication chaining thus allowing multiple mechanisms and some sort of requirement scheme - required, sufficient, etc. I don't know if this PR does help or can help with any of that. Just some food for thought... --- 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] [Closed] (TINKERPOP-1659) Docker build should use maven settings.xml
[ https://issues.apache.org/jira/browse/TINKERPOP-1659?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Dale closed TINKERPOP-1659. -- Resolution: Fixed > Docker build should use maven settings.xml > -- > > Key: TINKERPOP-1659 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1659 > Project: TinkerPop > Issue Type: Test > Components: build-release >Affects Versions: 3.1.6 >Reporter: Robert Dale >Assignee: Robert Dale >Priority: Minor > Fix For: 3.1.7 > > Attachments: settings.xml > > > One should be able to supply a custom settings.xml to docker. My use case is > to use a proxy in order to speed up downloading maven artifacts. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TINKERPOP-1438) Consider GraphManager as an interface
[ https://issues.apache.org/jira/browse/TINKERPOP-1438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15949211#comment-15949211 ] ASF GitHub Bot commented on TINKERPOP-1438: --- Github user dpitera commented on the issue: https://github.com/apache/tinkerpop/pull/569 > I think we want the behavior to generally be a "replace" and thus "putTraversalSource()" and "putGraph()" seem like better names. +1 > This has developed into a really nice pull request. Your effort on it is appreciated. Thank you sir. Your outstanding review is also very much appreciated. I just pushed new code with all requested changes; once the TravisCI and Docker IT tests pass, I will post again for hopefully the final review. > 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)
[GitHub] tinkerpop issue #569: TINKERPOP-1438: GraphManager becomes a customizable in...
Github user dpitera commented on the issue: https://github.com/apache/tinkerpop/pull/569 > I think we want the behavior to generally be a "replace" and thus "putTraversalSource()" and "putGraph()" seem like better names. +1 > This has developed into a really nice pull request. Your effort on it is appreciated. Thank you sir. Your outstanding review is also very much appreciated. I just pushed new code with all requested changes; once the TravisCI and Docker IT tests pass, I will post again for hopefully the final review. --- 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-1659) Docker build should use maven settings.xml
[ https://issues.apache.org/jira/browse/TINKERPOP-1659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15949187#comment-15949187 ] ASF GitHub Bot commented on TINKERPOP-1659: --- Github user asfgit closed the pull request at: https://github.com/apache/tinkerpop/pull/588 > Docker build should use maven settings.xml > -- > > Key: TINKERPOP-1659 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1659 > Project: TinkerPop > Issue Type: Test > Components: build-release >Affects Versions: 3.1.6 >Reporter: Robert Dale >Assignee: Robert Dale >Priority: Minor > Fix For: 3.1.7 > > Attachments: settings.xml > > > One should be able to supply a custom settings.xml to docker. My use case is > to use a proxy in order to speed up downloading maven artifacts. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] tinkerpop pull request #588: TINKERPOP-1659 Docker uses custom maven setting...
Github user asfgit closed the pull request at: https://github.com/apache/tinkerpop/pull/588 --- 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-1659) Docker build should use maven settings.xml
[ https://issues.apache.org/jira/browse/TINKERPOP-1659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15949019#comment-15949019 ] ASF GitHub Bot commented on TINKERPOP-1659: --- Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/588 They've started laying fiber in the county. Hopefully they'll bring it all the way down my road. But I don't know if that's 1 year or 5 years from now. Until then, I'm at the outer limits of DSL. VOTE +1 > Docker build should use maven settings.xml > -- > > Key: TINKERPOP-1659 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1659 > Project: TinkerPop > Issue Type: Test > Components: build-release >Affects Versions: 3.1.6 >Reporter: Robert Dale >Assignee: Robert Dale >Priority: Minor > Fix For: 3.1.7 > > Attachments: settings.xml > > > One should be able to supply a custom settings.xml to docker. My use case is > to use a proxy in order to speed up downloading maven artifacts. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] tinkerpop issue #588: TINKERPOP-1659 Docker uses custom maven settings.xml
Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/588 They've started laying fiber in the county. Hopefully they'll bring it all the way down my road. But I don't know if that's 1 year or 5 years from now. Until then, I'm at the outer limits of DSL. VOTE +1 --- 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. ---
[GitHub] tinkerpop issue #589: provide examples where merge operator actually has an ...
Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/589 I like how the previous example shows the vertices before applying sack(). I think it would be useful to see that before 1 and before 3. Why was the example withBulk(false) removed? I don't understand enough about it to know if it was useful. Otherwise, the format and display is correct. --- 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-1438) Consider GraphManager as an interface
[ https://issues.apache.org/jira/browse/TINKERPOP-1438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15948990#comment-15948990 ] ASF GitHub Bot commented on TINKERPOP-1438: --- Github user spmallette commented on the issue: https://github.com/apache/tinkerpop/pull/569 I've finished playing around with my dummy implementation. Just one weird thing that wasn't easy to see without actually working with the API - `addTraversalSource()` and `addGraph()` aren't really "adds" - they are "puts" as calling them more than once will act as a "replace" operation if the key already exists. I think we want the behavior to generally be a "replace" and thus "putTraversalSource()" and "putGraph()" seem like better names. I suppose if an implementation wanted to limit that ability to only "adds" then the naming with "put" still makes sense as we can see with the use of `Map.put()` in unmodifiable collections. I see some other odds/ends that could use a tweak or two, but I'll just handle those things after merging as I think you have the meat of this PR in place now once you address those other comments I've made. Please confirm that you've done a final build with integration tests after all these changes to make sure it's all solid. At that point, I expect we can get committers to review/vote. This has developed into a really nice pull request. Your effort on it is appreciated. > 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)
[GitHub] tinkerpop issue #569: TINKERPOP-1438: GraphManager becomes a customizable in...
Github user spmallette commented on the issue: https://github.com/apache/tinkerpop/pull/569 I've finished playing around with my dummy implementation. Just one weird thing that wasn't easy to see without actually working with the API - `addTraversalSource()` and `addGraph()` aren't really "adds" - they are "puts" as calling them more than once will act as a "replace" operation if the key already exists. I think we want the behavior to generally be a "replace" and thus "putTraversalSource()" and "putGraph()" seem like better names. I suppose if an implementation wanted to limit that ability to only "adds" then the naming with "put" still makes sense as we can see with the use of `Map.put()` in unmodifiable collections. I see some other odds/ends that could use a tweak or two, but I'll just handle those things after merging as I think you have the meat of this PR in place now once you address those other comments I've made. Please confirm that you've done a final build with integration tests after all these changes to make sure it's all solid. At that point, I expect we can get committers to review/vote. This has developed into a really nice pull request. Your effort on it is appreciated. --- 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-1659) Docker build should use maven settings.xml
[ https://issues.apache.org/jira/browse/TINKERPOP-1659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15948976#comment-15948976 ] ASF GitHub Bot commented on TINKERPOP-1659: --- Github user dkuppitz commented on the issue: https://github.com/apache/tinkerpop/pull/588 I recently got faster internet, so -1 on this. Just kidding :). Looks good to me and actually doesn't change anything in the "normal" workflow. VOTE: +1 > Docker build should use maven settings.xml > -- > > Key: TINKERPOP-1659 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1659 > Project: TinkerPop > Issue Type: Test > Components: build-release >Affects Versions: 3.1.6 >Reporter: Robert Dale >Assignee: Robert Dale >Priority: Minor > Fix For: 3.1.7 > > Attachments: settings.xml > > > One should be able to supply a custom settings.xml to docker. My use case is > to use a proxy in order to speed up downloading maven artifacts. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] tinkerpop issue #588: TINKERPOP-1659 Docker uses custom maven settings.xml
Github user dkuppitz commented on the issue: https://github.com/apache/tinkerpop/pull/588 I recently got faster internet, so -1 on this. Just kidding :). Looks good to me and actually doesn't change anything in the "normal" workflow. VOTE: +1 --- 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-1438) Consider GraphManager as an interface
[ https://issues.apache.org/jira/browse/TINKERPOP-1438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15948824#comment-15948824 ] ASF GitHub Bot commented on TINKERPOP-1438: --- Github user spmallette commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/569#discussion_r108893957 --- Diff: gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/GraphManager.java --- @@ -21,139 +21,101 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource; import org.apache.tinkerpop.gremlin.structure.Graph; import org.apache.tinkerpop.gremlin.structure.Transaction; -import org.apache.tinkerpop.gremlin.structure.util.GraphFactory; -import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.script.Bindings; -import javax.script.SimpleBindings; -import java.util.HashSet; import java.util.Map; import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.function.Predicate; - -/** - * Holder for {@link Graph} and {@link TraversalSource} instances configured for the server to be passed to script - * engine bindings. The {@link Graph} instances are read from the {@link Settings} for Gremlin Server as defined in - * the configuration file. The {@link TraversalSource} instances are rebound to the {@code GraphManager} once - * initialization scripts construct them. - */ -public final class GraphManager { -private static final Logger logger = LoggerFactory.getLogger(GremlinServer.class); - -private final Mapgraphs = new ConcurrentHashMap<>(); -private final Map traversalSources = new ConcurrentHashMap<>(); +import java.util.function.Function; +public interface GraphManager { /** - * Create a new instance using the {@link Settings} from Gremlin Server. + * @Deprecated This returns a {@link Map} that should be immutable. Please refer to + * getGraphNames() for replacement. + * + * Get a list of the {@link Graph} instances and their binding names + * + * @return a {@link Map} where the key is the name of the {@link Graph} and the value is the {@link Graph} itself */ -public GraphManager(final Settings settings) { -settings.graphs.entrySet().forEach(e -> { -try { -final Graph newGraph = GraphFactory.open(e.getValue()); -graphs.put(e.getKey(), newGraph); -logger.info("Graph [{}] was successfully configured via [{}].", e.getKey(), e.getValue()); -} catch (RuntimeException re) { -logger.warn(String.format("Graph [%s] configured at [%s] could not be instantiated and will not be available in Gremlin Server. GraphFactory message: %s", -e.getKey(), e.getValue(), re.getMessage()), re); -if (re.getCause() != null) logger.debug("GraphFactory exception", re.getCause()); -} -}); -} +@Deprecated +public Map getGraphs(); /** - * Get a list of the {@link Graph} instances and their binding names as defined in the Gremlin Server - * configuration file. + * Get a {@link Set} of {@link String} graphNames corresponding to names stored in the graph's + * reference tracker. + */ +public Set getGraphNames(); +/** + * Get {@link Graph} instance whose name matches {@link gName} * - * @return a {@link Map} where the key is the name of the {@link Graph} and the value is the {@link Graph} itself + * @return {@link Graph} if exists, else null + */ +public Graph getGraph(final String gName); + +/** + * Add {@link Graph} g with name {@link String} gName to + * {@link Map } */ -public Map getGraphs() { -return graphs; -} +public void addGraph(final String gName, final Graph g); /** - * Get a list of the {@link TraversalSource} instances and their binding names as defined by Gremlin Server - * initialization scripts. + * Get a list of the {@link TraversalSource} instances and their binding names * * @return a {@link Map} where the key is the name of the {@link TraversalSource} and the value is the * {@link TraversalSource} itself */ -public Map getTraversalSources() { -return traversalSources; -} +public Map
[GitHub] tinkerpop pull request #569: TINKERPOP-1438: GraphManager becomes a customiz...
Github user spmallette commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/569#discussion_r108893957 --- Diff: gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/GraphManager.java --- @@ -21,139 +21,101 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource; import org.apache.tinkerpop.gremlin.structure.Graph; import org.apache.tinkerpop.gremlin.structure.Transaction; -import org.apache.tinkerpop.gremlin.structure.util.GraphFactory; -import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.script.Bindings; -import javax.script.SimpleBindings; -import java.util.HashSet; import java.util.Map; import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.function.Predicate; - -/** - * Holder for {@link Graph} and {@link TraversalSource} instances configured for the server to be passed to script - * engine bindings. The {@link Graph} instances are read from the {@link Settings} for Gremlin Server as defined in - * the configuration file. The {@link TraversalSource} instances are rebound to the {@code GraphManager} once - * initialization scripts construct them. - */ -public final class GraphManager { -private static final Logger logger = LoggerFactory.getLogger(GremlinServer.class); - -private final Mapgraphs = new ConcurrentHashMap<>(); -private final Map traversalSources = new ConcurrentHashMap<>(); +import java.util.function.Function; +public interface GraphManager { /** - * Create a new instance using the {@link Settings} from Gremlin Server. + * @Deprecated This returns a {@link Map} that should be immutable. Please refer to + * getGraphNames() for replacement. + * + * Get a list of the {@link Graph} instances and their binding names + * + * @return a {@link Map} where the key is the name of the {@link Graph} and the value is the {@link Graph} itself */ -public GraphManager(final Settings settings) { -settings.graphs.entrySet().forEach(e -> { -try { -final Graph newGraph = GraphFactory.open(e.getValue()); -graphs.put(e.getKey(), newGraph); -logger.info("Graph [{}] was successfully configured via [{}].", e.getKey(), e.getValue()); -} catch (RuntimeException re) { -logger.warn(String.format("Graph [%s] configured at [%s] could not be instantiated and will not be available in Gremlin Server. GraphFactory message: %s", -e.getKey(), e.getValue(), re.getMessage()), re); -if (re.getCause() != null) logger.debug("GraphFactory exception", re.getCause()); -} -}); -} +@Deprecated +public Map getGraphs(); /** - * Get a list of the {@link Graph} instances and their binding names as defined in the Gremlin Server - * configuration file. + * Get a {@link Set} of {@link String} graphNames corresponding to names stored in the graph's + * reference tracker. + */ +public Set getGraphNames(); +/** + * Get {@link Graph} instance whose name matches {@link gName} * - * @return a {@link Map} where the key is the name of the {@link Graph} and the value is the {@link Graph} itself + * @return {@link Graph} if exists, else null + */ +public Graph getGraph(final String gName); + +/** + * Add {@link Graph} g with name {@link String} gName to + * {@link Map } */ -public Map getGraphs() { -return graphs; -} +public void addGraph(final String gName, final Graph g); /** - * Get a list of the {@link TraversalSource} instances and their binding names as defined by Gremlin Server - * initialization scripts. + * Get a list of the {@link TraversalSource} instances and their binding names * * @return a {@link Map} where the key is the name of the {@link TraversalSource} and the value is the * {@link TraversalSource} itself */ -public Map getTraversalSources() { -return traversalSources; -} +public Map getTraversalSources(); --- End diff -- I think you just need to deprecate `getTraversalSources()` and include `removeTraversalSource(String tsName)` and `getTraversalSourceNames()`. That should do it. I could do it after merge, but this body of
[GitHub] tinkerpop issue #587: TINKERPOP-1642 Performance Enhancement on Mutating Tra...
Github user dkuppitz commented on the issue: https://github.com/apache/tinkerpop/pull/587 `docker/build.sh -t -n -i` succeeded. VOTE: +1 --- 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. ---