[tinkerpop] 01/01: Merge branch '3.4-dev' into 3.5-dev
This is an automated email from the ASF dual-hosted git repository. florianhockmann pushed a commit to branch 3.5-dev in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit de8579464b48ee0e53baf18192267268176f725c Merge: 1508152 6333c73 Author: Florian Hockmann AuthorDate: Tue Jul 20 11:27:49 2021 +0200 Merge branch '3.4-dev' into 3.5-dev CHANGELOG.asciidoc | 15 ++- docs/src/upgrade/release-3.4.x.asciidoc | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 4c0e40be2b35d64ad547f8c0089c1f29ee4ee433 Merge: b2a8dd5 3f3a7e4 Author: Stephen Mallette AuthorDate: Mon May 10 15:52:54 2021 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 4 1 file changed, 4 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 17b8de13221a3301c9f9b7b44d4988271463993c Merge: f6d626e b4cbfc7 Author: Stephen Mallette AuthorDate: Tue May 4 11:11:59 2021 -0400 Merge branch '3.4-dev' source-release.xml | 3 +++ 1 file changed, 3 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit f6d626eb971d79e2b8236301d8eeeb349aaccdaf Merge: 4319d16 34d63da Author: Stephen Mallette AuthorDate: Mon May 3 16:18:54 2021 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 20 +++- docs/src/upgrade/release-3.4.x.asciidoc | 2 +- 2 files changed, 20 insertions(+), 2 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 8ff5abba44de0cdddbcdbab8b6fe6c71eff0e0af Merge: 9acaaed fdad506 Author: Stephen Mallette AuthorDate: Wed Apr 28 11:33:57 2021 -0400 Merge branch '3.4-dev'
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 7aeed79de5774059b122376e89fd4c6126134378 Merge: 23a0f36 9c9c01d Author: Stephen Mallette AuthorDate: Tue Apr 27 11:48:16 2021 -0400 Merge branch '3.4-dev' .../java/org/apache/tinkerpop/gremlin/driver/Client.java | 14 +- .../java/org/apache/tinkerpop/gremlin/driver/Cluster.java | 4 +--- 2 files changed, 14 insertions(+), 4 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 4174ee68c01e38d3528dbc1774e197cf985c Merge: 6721649 0827e70 Author: Stephen Mallette AuthorDate: Mon Apr 26 12:56:50 2021 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 2 +- .../org/apache/tinkerpop/gremlin/driver/Client.java | 13 + .../org/apache/tinkerpop/gremlin/driver/Cluster.java| 17 - .../java/org/apache/tinkerpop/gremlin/driver/Host.java | 2 +- .../org/apache/tinkerpop/gremlin/driver/ClientTest.java | 4 .../gremlin/server/GremlinServerIntegrateTest.java | 9 - .../tinkerpop/gremlin/server/TestClientFactory.java | 2 +- 7 files changed, 32 insertions(+), 17 deletions(-) diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java index 6eeab95,8a63694..42fd78a --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java @@@ -58,8 -60,9 +58,10 @@@ import org.hamcrest.Matchers import org.junit.After; import org.junit.Before; import org.junit.Test; + + import org.slf4j.LoggerFactory; + -import java.lang.reflect.Field; +import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@@ -97,8 -99,8 +99,9 @@@ import static org.junit.Assume.assumeTh * @author Stephen Mallette (http://stephen.genoprime.com) */ public class GremlinServerIntegrateTest extends AbstractGremlinServerIntegrationTest { + private Level previousLogLevel; + private static final org.slf4j.Logger logger = LoggerFactory.getLogger(GremlinServerIntegrateTest.class); private Log4jRecordingAppender recordingAppender = null; private final Supplier graphGetter = () -> server.getServerGremlinExecutor().getGraphManager().getGraph("graph");
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 67216495e9e441cf82eae34745aea5aed8409730 Merge: ca6ba46 14337ea Author: Stephen Mallette AuthorDate: Sun Apr 25 10:04:26 2021 -0400 Merge branch '3.4-dev' .../gremlin/server/auth/Krb5Authenticator.java | 17 +++-- 1 file changed, 11 insertions(+), 6 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ca6ba46a916dba74b771a4a7532c8a3294471e8e Merge: 9d70e18 3b5fadc Author: Stephen Mallette AuthorDate: Sat Apr 24 07:16:17 2021 -0400 Merge branch '3.4-dev' .../apache/tinkerpop/gremlin/server/auth/Krb5Authenticator.java| 7 ++- .../org/apache/tinkerpop/gremlin/server/TestClientFactory.java | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 9d70e182bf1991b63f116ff46b829749dccfc227 Merge: 617808b b6edbd4 Author: Stephen Mallette AuthorDate: Sat Apr 24 05:37:04 2021 -0400 Merge branch '3.4-dev' .../tinkerpop/gremlin/server/handler/SaslAuthenticationHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 617808b6ef659545d762a7f4216ef21e7d13f8f7 Merge: ff50136 fa812b8 Author: Stephen Mallette AuthorDate: Fri Apr 23 15:29:10 2021 -0400 Merge branch '3.4-dev' .../main/java/org/apache/tinkerpop/gremlin/driver/Connection.java | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Connection.java index 7babdf1,143b6ff..b25045f --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Connection.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Connection.java @@@ -292,8 -344,47 +292,13 @@@ final class Connection // shutdown can be called directly from closeAsync() or after write() and therefore this method should only // be called once. once shutdown is initiated, it shouldn't be executed a second time or else it sends more // messages at the server and leads to ugly log messages over there. + // + // this method used to be synchronized prior to 3.4.11, but it seems to be able to leave the driver in a + // hanging state because of the write() down below that can call back in on shutdown() (which is weird i + // guess). that seems to put the executor thread in a monitor state that it doesn't recover from. since all + // the code in here is behind shutdownInitiated the synchronized doesn't seem necessary if (shutdownInitiated.compareAndSet(false, true)) { final String connectionInfo = this.getConnectionInfo(); -// this block of code that "closes" the session is deprecated as of 3.3.11 - this message is going to be -// removed at 3.5.0. we will instead bind session closing to the close of the channel itself and not have -// this secondary operation here which really only acts as a means for clearing resources in a functioning -// session. "functioning" in this context means that the session is not locked up with a long running -// operation which will delay this close execution which ideally should be more immediate, as in the user -// is annoyed that a long run operation is happening and they want an immediate cancellation. that's the -// most likely use case. we also get the nice benefit that this if/then code just goes away as the -// Connection really shouldn't care about the specific Client implementation. -if (client instanceof Client.SessionedClient && !isDead()) { -final boolean forceClose = client.getSettings().getSession().get().isForceClosed(); -final RequestMessage closeMessage = client.buildMessage( - RequestMessage.build(Tokens.OPS_CLOSE).addArg(Tokens.ARGS_FORCE, forceClose)).create(); - -final CompletableFuture closed = new CompletableFuture<>(); -write(closeMessage, closed); - -try { -// make sure we get a response here to validate that things closed as expected. on error, we'll let -// the server try to clean up on its own. the primary error here should probably be related to -// protocol issues which should not be something a user has to fuss with. - closed.join().all().get(cluster.getMaxWaitForSessionClose(), TimeUnit.MILLISECONDS); -} catch (TimeoutException ex) { -final String msg = String.format( -"Timeout while trying to close connection on %s - force closing - server will close session on shutdown or expiration.", -((Client.SessionedClient) client).getSessionId()); -logger.warn(msg, ex); -} catch (Exception ex) { -final String msg = String.format( -"Encountered an error trying to close connection on %s - force closing - server will close session on shutdown or expiration.", -((Client.SessionedClient) client).getSessionId()); -logger.warn(msg, ex); -} -} - channelizer.close(channel); final ChannelPromise promise = channel.newPromise();
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ff50136e00e3a9649c9c9dfa743b58e4f7b74a71 Merge: 9cb87b9 f653835 Author: Stephen Mallette AuthorDate: Fri Apr 23 10:18:04 2021 -0400 Merge branch '3.4-dev' .../GremlinServerAuditLogDeprecatedIntegrateTest.java | 13 + .../gremlin/server/GremlinServerAuditLogIntegrateTest.java | 11 +-- 2 files changed, 18 insertions(+), 6 deletions(-) diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogDeprecatedIntegrateTest.java index 9d4b67f,000..f92c078 mode 100644,00..100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogDeprecatedIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogDeprecatedIntegrateTest.java @@@ -1,381 -1,0 +1,386 @@@ +/* + * 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; + +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.apache.log4j.Logger; +import org.apache.log4j.spi.LoggingEvent; +import org.apache.tinkerpop.gremlin.driver.Client; +import org.apache.tinkerpop.gremlin.driver.Cluster; +import org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection; +import org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource; +import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; +import org.apache.tinkerpop.gremlin.server.auth.AllowAllAuthenticator; +import org.apache.tinkerpop.gremlin.server.auth.Krb5Authenticator; +import org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator; +import org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer; +import org.apache.tinkerpop.gremlin.server.handler.SaslAndHttpBasicAuthenticationHandler; +import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens; +import org.apache.tinkerpop.gremlin.util.Log4jRecordingAppender; +import org.apache.tinkerpop.shaded.jackson.databind.JsonNode; +import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper; +import org.junit.Test; +import org.slf4j.LoggerFactory; + +import java.util.Base64; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Stream; + +import static org.apache.log4j.Level.INFO; +import static org.apache.tinkerpop.gremlin.server.GremlinServer.AUDIT_LOGGER_NAME; +import static org.apache.tinkerpop.gremlin.server.GremlinServerAuthKrb5IntegrateTest.TESTCONSOLE; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +/** + * Test audit logs. Like other descendants of AbstractGremlinServerIntegrationTest this test suite assumes that + * tests are run sequentially and thus the server and kdcServer variables can be reused. + * + * @author Marc de Lignie + */ +public class GremlinServerAuditLogDeprecatedIntegrateTest extends AbstractGremlinServerIntegrationTest { +private static final org.slf4j.Logger logger = LoggerFactory.getLogger(GremlinServerAuditLogDeprecatedIntegrateTest.class); +private Log4jRecordingAppender recordingAppender = null; + +private final ObjectMapper mapper = new ObjectMapper(); +private final Base64.Encoder encoder = Base64.getUrlEncoder(); + +private static final boolean AUDIT_LOG_ENABLED = true; +private static final boolean AUDIT_LOG_DISABLED = false; +private static final String TESTCONSOLE2 = "GremlinConsole2"; + +private KdcFixture kdcServer; + +@Override +public void setUp() throws Exception { +recordingAppender = new Log4jRecordingAppender(); +final Logger rootLogger = Logger.getRootLogger(); +rootLogger.addAppender(recordingAppender); + +
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a0b82c67d628895a88e8253760efb9c2a14289e7 Merge: ea085b1 11a963d Author: Stephen Mallette AuthorDate: Fri Apr 23 06:06:10 2021 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../apache/tinkerpop/gremlin/driver/Client.java| 19 +++- .../tinkerpop/gremlin/driver/ConnectionPool.java | 10 ++-- .../gremlin/driver/SimpleSocketServer.java | 2 +- .../WebSocketClientBehaviorIntegrateTest.java | 56 ++ 5 files changed, 80 insertions(+), 8 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ea085b1f1b5d72cf5c0b682497f5f9a1b05eab5d Merge: 4772c4c b226f97 Author: Stephen Mallette AuthorDate: Fri Apr 23 05:57:11 2021 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/driver/Channelizer.java | 8 ++-- .../apache/tinkerpop/gremlin/driver/Cluster.java | 17 ++- .../gremlin/driver/HandshakeInterceptor.java | 36 +++ .../driver/handler/WebSocketClientHandler.java | 35 ++- .../gremlin/server/GremlinDriverIntegrateTest.java | 52 +++--- 6 files changed, 128 insertions(+), 21 deletions(-) diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java index ce7bcd2,b0f43b8..bccf947 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java @@@ -27,11 -32,8 +27,10 @@@ import io.netty.channel.ChannelHandler import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; +import io.netty.handler.codec.http.EmptyHttpHeaders; +import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame; import io.netty.handler.codec.http.HttpClientCodec; import io.netty.handler.codec.http.HttpObjectAggregator; - import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; import io.netty.handler.codec.http.websocketx.WebSocketVersion; import io.netty.handler.codec.http.websocketx.extensions.compression.WebSocketClientCompressionHandler; import io.netty.handler.ssl.SslContext; @@@ -180,12 -229,12 +179,13 @@@ public interface Channelizer extends Ch final int maxContentLength = cluster.connectionPoolSettings().maxContentLength; handler = new WebSocketClientHandler( - WebSocketClientHandshakerFactory.newHandshaker( - connection.getUri(), WebSocketVersion.V13, null, /*allow extensions*/ true, - EmptyHttpHeaders.INSTANCE, maxContentLength), cluster.getConnectionSetupTimeout()); + new WebSocketClientHandler.InterceptedWebSocketClientHandshaker13( + connection.getUri(), WebSocketVersion.V13, null,true, + EmptyHttpHeaders.INSTANCE, maxContentLength, true, false, -1, + cluster.getHandshakeInterceptor()), cluster.getConnectionSetupTimeout()); -final int keepAliveInterval = toIntExact(TimeUnit.SECONDS.convert(cluster.connectionPoolSettings().keepAliveInterval, TimeUnit.MILLISECONDS)); +final int keepAliveInterval = toIntExact(TimeUnit.SECONDS.convert( +cluster.connectionPoolSettings().keepAliveInterval, TimeUnit.MILLISECONDS)); pipeline.addLast("http-codec", new HttpClientCodec()); pipeline.addLast("aggregator", new HttpObjectAggregator(maxContentLength)); diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java index 2ddaaf5,0e03486..7a5d097 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java @@@ -33,15 -34,14 +33,14 @@@ import org.apache.tinkerpop.gremlin.dri import org.apache.tinkerpop.gremlin.driver.message.RequestMessage; import org.apache.tinkerpop.gremlin.driver.message.ResponseStatusCode; import org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection; +import org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1; + import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0; import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0; import org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer; - import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0; import org.apache.tinkerpop.gremlin.driver.ser.Serializers; import org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin; - import org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource; import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; -import org.apache.tinkerpop.gremlin.server.channel.NioChannelizer; import org.apache.tinkerpop.gremlin.server.handler.OpExecutorHandler; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.io.Storage; @@@ -49,14 -49,12 +48,13 @@@ import org.apache.tinkerpop.gremlin.str import
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 1a991259dfb6825454af2fa6682d8e81c5362fde Merge: e4b81f7 a7e7dce Author: Stephen Mallette AuthorDate: Tue Apr 20 06:31:34 2021 -0400 Merge branch '3.4-dev'
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit e4b81f7b1a03a9dc9a067095938dbd508996ffa7 Merge: db8b9db 504e056 Author: Stephen Mallette AuthorDate: Tue Apr 20 06:08:29 2021 -0400 Merge branch '3.4-dev'
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit db8b9dbc718f4f496e4d2a2b99b83b0e26d8795c Merge: 8573c0a e7ce3b1 Author: Stephen Mallette AuthorDate: Tue Apr 20 05:51:15 2021 -0400 Merge branch '3.4-dev' .../org/apache/tinkerpop/gremlin/server/TestClientFactory.java | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 8573c0a0ee33cad5c14bf0d28dc22ee4b633f1da Merge: e052ccc 97bffb2 Author: Stephen Mallette AuthorDate: Mon Apr 19 09:05:26 2021 -0400 Merge branch '3.4-dev'
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ee45fd562b624ed490aa2d77329c1325a5bc1dc6 Merge: c123526 a83ff01 Author: Stephen Mallette AuthorDate: Fri Apr 9 09:46:26 2021 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc| 1 + .../src/main/python/gremlin_python/driver/client.py | 7 +-- .../python/gremlin_python/driver/driver_remote_connection.py | 5 +++-- .../main/python/gremlin_python/driver/tornado/transport.py| 8 ++-- gremlin-python/src/main/python/tests/driver/test_client.py| 11 +++ 5 files changed, 26 insertions(+), 6 deletions(-) diff --cc gremlin-python/src/main/python/gremlin_python/driver/client.py index 4e2d026,000..d5952c7 mode 100644,00..100644 --- a/gremlin-python/src/main/python/gremlin_python/driver/client.py +++ b/gremlin-python/src/main/python/gremlin_python/driver/client.py @@@ -1,149 -1,0 +1,152 @@@ +# +# 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. +# +from concurrent.futures import ThreadPoolExecutor + +from six.moves import queue + +from gremlin_python.driver import connection, protocol, request, serializer +from gremlin_python.process import traversal + +# This is until concurrent.futures backport 3.1.0 release +try: +from multiprocessing import cpu_count +except ImportError: +# some platforms don't have multiprocessing +def cpu_count(): +return None + +__author__ = 'David M. Brown (davebs...@gmail.com)' + + +class Client: + +def __init__(self, url, traversal_source, protocol_factory=None, + transport_factory=None, pool_size=None, max_workers=None, + message_serializer=None, username="", password="", - kerberized_service="", headers=None, session=""): ++ kerberized_service="", headers=None, session="", max_content_length=None): +self._url = url +self._headers = headers +self._traversal_source = traversal_source ++if max_content_length is None: ++max_content_length = 10 * 1024 * 1024 +if message_serializer is None: +message_serializer = serializer.GraphSONSerializersV3d0() +self._message_serializer = message_serializer +self._username = username +self._password = password +self._session = session +self._sessionEnabled = (session != "") +if transport_factory is None: +try: +from gremlin_python.driver.tornado.transport import ( +TornadoTransport) +except ImportError: +raise Exception("Please install Tornado or pass" +"custom transport factory") +else: - transport_factory = lambda: TornadoTransport() ++transport_factory = lambda: TornadoTransport( ++max_content_length=max_content_length) +self._transport_factory = transport_factory +if protocol_factory is None: +protocol_factory = lambda: protocol.GremlinServerWSProtocol( +self._message_serializer, +username=self._username, +password=self._password, +kerberized_service=kerberized_service) +self._protocol_factory = protocol_factory +if self._sessionEnabled: +if pool_size is None: +pool_size = 1 +elif pool_size != 1: +raise Exception("PoolSize must be 1 on session mode!") +if pool_size is None: +pool_size = 4 +self._pool_size = pool_size +# This is until concurrent.futures backport 3.1.0 release +if max_workers is None: +# If your application is overlapping Gremlin I/O on multiple threads +# consider passing kwarg max_workers = (cpu_count() or 1) * 5 +max_workers = pool_size +self._executor = ThreadPoolExecutor(max_workers=max_workers) +# Threadsafe queue +
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 1f7e65d9779ee9ca23e684c3642bbc6ac64d5411 Merge: 0165c3f 3f9cc71 Author: Stephen Mallette AuthorDate: Fri Apr 2 09:20:09 2021 -0400 Merge branch '3.4-dev' docs/src/reference/implementations-neo4j.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 61c0b4003b7eaadbc1c2057c6a210c56662e4420 Merge: 21ca5b0 212db42 Author: Stephen Mallette AuthorDate: Wed Mar 31 15:47:33 2021 -0400 Merge branch '3.4-dev' docs/src/reference/the-traversal.asciidoc | 8 1 file changed, 8 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. florianhockmann pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit cdbad063ff99eda680f0c5273550e9cd04b568fa Merge: a0a87fc b8b4568 Author: Florian Hockmann AuthorDate: Wed Mar 31 17:25:01 2021 +0200 Merge branch '3.4-dev' pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a0a87fc5b5f60a4dd91941a5076d7538710d88c9 Merge: a7508e4 dfe67c2 Author: Stephen Mallette AuthorDate: Fri Mar 26 07:04:41 2021 -0400 Merge branch '3.4-dev' .../gremlin/process/traversal/strategy/TraversalStrategyProxy.java | 6 ++ .../org/apache/tinkerpop/gremlin/structure/util/StringFactory.java | 5 + 2 files changed, 11 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. florianhockmann pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a7508e49e95ad458d97756f45e13200c60031fe5 Merge: 7f7d3a4 d6d9d34 Author: Florian Hockmann AuthorDate: Wed Mar 24 09:13:49 2021 +0100 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../src/Gremlin.Net/Driver/ConnectionPool.cs | 12 +++- .../Driver/ConnectionPoolTests.cs | 64 ++ 3 files changed, 74 insertions(+), 3 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 80139a182f6e14c07c8a44b10a67eb0337762703 Merge: 90c8169 3b01560 Author: Stephen Mallette AuthorDate: Tue Mar 16 14:10:02 2021 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + gremlin-console/src/main/static/NOTICE | 2 +- gremlin-server/src/main/static/NOTICE | 2 +- pom.xml| 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --cc pom.xml index 4d48b03,7d29de6..fc4c822 --- a/pom.xml +++ b/pom.xml @@@ -156,11 -156,11 +156,11 @@@ limitations under the License 1.1 1.2.17 3.0.2 - 4.1.52.Final + 4.1.59.Final 1.7.25 1.27 -2.4.0 -1.6.4 +3.0.0 +2.0.9 UTF-8 UTF-8
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 90c816992e24b36b0cca228af43ef7955a3cfa4c Merge: e026e81 62d45d4 Author: Stephen Mallette AuthorDate: Tue Mar 16 06:37:48 2021 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../traversal/step/map/NoOpBarrierStep.java| 4 ++ .../traversal/step/map/NoOpBarrierStepTest.java| 55 ++ 3 files changed, 60 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit e026e81cae41b57993e69f3542dfd2ef08f36d99 Merge: 07ffe86 c1acd04 Author: Stephen Mallette AuthorDate: Mon Mar 15 20:05:13 2021 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 3 +- docs/src/upgrade/release-3.4.x.asciidoc| 73 .../traversal/step/filter/TraversalFilterStep.java | 4 + .../strategy/optimization/LazyBarrierStrategy.java | 18 +- .../optimization/PathRetractionStrategy.java | 7 +- .../optimization/RepeatUnrollStrategy.java | 22 ++- .../decoration/ConnectiveStrategyTest.java | 11 +- .../decoration/ElementIdStrategyTraverseTest.java | 45 ++--- .../strategy/decoration/EventStrategyTest.java | 40 ++--- .../strategy/decoration/PartitionStrategyTest.java | 185 ++--- .../decoration/PartitionStrategyTraverseTest.java | 155 - .../decoration/ReferenceElementStrategyTest.java | 2 +- .../strategy/decoration/SubgraphStrategyTest.java | 61 ++- .../decoration/SubgraphStrategyTraverseTest.java | 100 --- .../decoration/VertexProgramStrategyTest.java | 8 +- .../AdjacentToIncidentStrategyTest.java| 8 +- .../ByModulatorOptimizationStrategyTest.java | 8 +- .../strategy/optimization/CountStrategyTest.java | 8 +- .../optimization/EarlyLimitStrategyTest.java | 8 +- .../optimization/FilterRankingStrategyTest.java| 8 +- .../optimization/IdentityRemovalStrategyTest.java | 8 +- .../IncidentToAdjacentStrategyTest.java| 8 +- .../optimization/InlineFilterStrategyTest.java | 8 +- .../optimization/LazyBarrierStrategyTest.java | 8 +- .../optimization/MatchPredicateStrategyTest.java | 9 +- .../optimization/OrderLimitStrategyTest.java | 8 +- .../optimization/PathProcessorStrategyTest.java| 8 +- .../optimization/PathRetractionStrategyTest.java | 33 ++-- .../optimization/RepeatUnrollStrategyTest.java | 92 ++ .../ComputerVerificationStrategyTest.java | 27 ++- .../EdgeLabelVerificationStrategyTest.java | 52 +++--- .../LambdaRestrictionStrategyTest.java | 54 +++--- .../verification/ReadOnlyStrategyTest.java | 37 +++-- .../ReservedKeysVerificationStrategyTest.java | 56 --- .../StandardVerificationStrategyTest.java | 30 ++-- 35 files changed, 679 insertions(+), 533 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategy.java index 924b4d4,2b08f17..be82d0c --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategy.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategy.java @@@ -66,6 -67,8 +67,9 @@@ public final class RepeatUnrollStrateg if (TraversalHelper.onGraphComputer(traversal)) return; -final boolean lazyBarrierStrategyInstalled = traversal.getStrategies().getStrategy(LazyBarrierStrategy.class).isPresent(); ++final boolean lazyBarrierStrategyInstalled = TraversalHelper.getRootTraversal(traversal). ++ getStrategies().getStrategy(LazyBarrierStrategy.class).isPresent(); + for (int i = 0; i < traversal.getSteps().size(); i++) { if (traversal.getSteps().get(i) instanceof RepeatStep) { final RepeatStep repeatStep = (RepeatStep) traversal.getSteps().get(i); diff --cc gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConnectiveStrategyTest.java index 13ccd80,a8211e0..cffac71 --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConnectiveStrategyTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConnectiveStrategyTest.java @@@ -39,8 -39,10 +39,10 @@@ import static org.junit.Assert.assertEq @RunWith(Parameterized.class) public class ConnectiveStrategyTest { -private static final Translator translator = GroovyTranslator.of("__"); ++private static final Translator.ScriptTranslator translator = GroovyTranslator.of("__"); + @Parameterized.Parameter(value = 0) - public Traversal original; + public Traversal.Admin original; @Parameterized.Parameter(value = 1) public Traversal optimized; @@@ -54,8 -56,9 +56,9 @@@ @Test public void doTest() { -final String repr = translator.translate(original.getBytecode()); ++final String repr = translator.translate(original.getBytecode()).getScript(); applyConnectiveStrategy(original); -
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit b84656175c72f9d96e2e4e57077761529becd96d Merge: 60bfc90 2d700ed Author: Stephen Mallette AuthorDate: Wed Mar 10 07:35:05 2021 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../ser/AbstractGraphSONMessageSerializerV1d0.java | 2 +- .../ser/AbstractGraphSONMessageSerializerV2d0.java | 2 +- .../driver/ser/GraphSONMessageSerializerV1d0.java | 2 +- .../GraphSONMessageSerializerGremlinV2d0Test.java | 26 - .../ser/GraphSONMessageSerializerV1d0Test.java | 27 +- 6 files changed, 55 insertions(+), 5 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a9b7b22987f3b2917484da82bb61fea60536ba70 Merge: 79df204 7bfe54a Author: Stephen Mallette AuthorDate: Fri Mar 5 15:26:25 2021 -0500 Merge branch '3.4-dev' .../test/integration/sasl-authentication-tests.js | 43 ++ 1 file changed, 43 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 9a123f70e2d634af3d3f810e01b87fb5131a0f19 Merge: 99ac89a b1a710c Author: Stephen Mallette AuthorDate: Tue Mar 2 11:09:45 2021 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../Driver/GremlinClientAuthenticationTests.cs | 46 +++--- .../javascript/gremlin-javascript/test/helper.js | 2 +- .../gremlin_python/driver/tornado/transport.py | 8 ++-- gremlin-python/src/main/python/tests/conftest.py | 16 ++-- .../src/test/scripts/test-server-start.groovy | 5 +++ 6 files changed, 65 insertions(+), 13 deletions(-) diff --cc gremlin-python/src/main/python/tests/conftest.py index a5bbbcc,000..b277b1c mode 100644,00..100644 --- a/gremlin-python/src/main/python/tests/conftest.py +++ b/gremlin-python/src/main/python/tests/conftest.py @@@ -1,166 -1,0 +1,176 @@@ +# +# 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. +# + +import concurrent.futures ++import ssl +import pytest ++import sys +import socket + +from six.moves import queue + +from gremlin_python.driver.client import Client +from gremlin_python.driver.connection import Connection +from gremlin_python.driver import serializer +from gremlin_python.driver.driver_remote_connection import ( +DriverRemoteConnection) +from gremlin_python.driver.protocol import GremlinServerWSProtocol +from gremlin_python.driver.serializer import ( +GraphSONMessageSerializer, GraphSONSerializersV2d0, GraphSONSerializersV3d0, +GraphBinarySerializersV1) +from gremlin_python.driver.tornado.transport import TornadoTransport + +gremlin_server_url = 'ws://localhost:{}/gremlin' +anonymous_url = gremlin_server_url.format(45940) - basic_url = gremlin_server_url.format(45941) ++basic_url = 'wss://localhost:{}/gremlin'.format(45941) +kerberos_url = gremlin_server_url.format(45942) +kerberized_service = 'test-service@{}'.format(socket.gethostname()) + + +@pytest.fixture +def connection(request): +protocol = GremlinServerWSProtocol( +GraphSONMessageSerializer(), +username='stephen', password='password') +executor = concurrent.futures.ThreadPoolExecutor(5) +pool = queue.Queue() +try: +conn = Connection(anonymous_url, 'gmodern', protocol, + lambda: TornadoTransport(), executor, pool) +except OSError: +executor.shutdown() +pytest.skip('Gremlin Server is not running') +else: +def fin(): +executor.shutdown() +conn.close() +request.addfinalizer(fin) +return conn + + +@pytest.fixture +def client(request): +try: +client = Client(anonymous_url, 'gmodern') +except OSError: +pytest.skip('Gremlin Server is not running') +else: +def fin(): +client.close() +request.addfinalizer(fin) +return client + + +@pytest.fixture(params=['basic', 'kerberos']) +def authenticated_client(request): +try: +if request.param == 'basic': - client = Client(basic_url, 'gmodern', username='stephen', password='password') ++# turn off certificate verification for testing purposes only ++ssl_opts = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) ++ssl_opts.verify_mode = ssl.CERT_NONE ++client = Client(basic_url, 'gmodern', username='stephen', password='password', ++transport_factory=lambda: TornadoTransport(ssl_options=ssl_opts)) +elif request.param == 'kerberos': +client = Client(kerberos_url, 'gmodern', kerberized_service=kerberized_service) +else: +raise ValueError("Invalid authentication option - " + request.param) +except OSError: +pytest.skip('Gremlin Server is not running') +else: +def fin(): +client.close() +request.addfinalizer(fin) +return client + + +@pytest.fixture(params=['graphsonv2', 'graphsonv3', 'graphbinaryv1']) +def
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 99ac89a8bc6307c6e7dbc186b2c1449116c3a2a5 Merge: aaa2c54 e350efe Author: Stephen Mallette AuthorDate: Tue Mar 2 06:20:52 2021 -0500 Merge branch '3.4-dev' gremlin-server/scripts/empty-sample-secure.groovy | 5 - 1 file changed, 4 insertions(+), 1 deletion(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ace73a0276d74ab66be8db322f6d62766b395690 Merge: ea87c52 2df43e1 Author: Stephen Mallette AuthorDate: Fri Feb 26 16:33:50 2021 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../traversal/step/filter/DedupGlobalStep.java | 12 ++--- gremlin-test/features/filter/Dedup.feature | 17 .../process/traversal/step/filter/DedupTest.java | 30 ++ .../tinkergraph/structure/TinkerGraphPlayTest.java | 4 +-- 5 files changed, 58 insertions(+), 6 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupGlobalStep.java index cfa821a,08026c3..dd8235d --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupGlobalStep.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupGlobalStep.java @@@ -204,19 -196,10 +204,23 @@@ public final class DedupGlobalStep e } if (!map.containsKey(object)) { traverser.setBulk(1L); -if (this.onGraphComputer) -traverser.set(DetachedFactory.detach(traverser.get(), true)); -else + +// DetachedProperty and DetachedVertexProperty both have a transient for the Host element. that causes +// trouble for olap which ends up requiring the Host later. can't change the transient without some +// consequences: (1) we break gryo formatting and io tests start failing (2) storing the element with +// the property has the potential to bloat detached Element instances as it basically stores that data +// twice. Not sure if it's smart to change that at least in 3.4.x and not without some considerable +// thought as to what might be major changes. To work around the problem we will detach properties as +// references so that the parent element goes with it. Also, given TINKERPOP-2318 property comparisons +// have changed in such a way that allows this to work properly - if (traverser.get() instanceof Property) - traverser.set(ReferenceFactory.detach(traverser.get())); - else - traverser.set(DetachedFactory.detach(traverser.get(), true)); ++if (this.onGraphComputer) { ++if (traverser.get() instanceof Property) ++ traverser.set(ReferenceFactory.detach(traverser.get())); ++else ++traverser.set(DetachedFactory.detach(traverser.get(), true)); ++} else { + traverser.set(traverser.get()); ++} map.put(object, traverser); } } diff --cc gremlin-test/features/filter/Dedup.feature index 2f46f43,b7c0943..c157ac7 --- a/gremlin-test/features/filter/Dedup.feature +++ b/gremlin-test/features/filter/Dedup.feature @@@ -235,35 -235,20 +235,52 @@@ Feature: Step - dedup( | result | | d[0].l | + # https://issues.apache.org/jira/browse/TINKERPOP-2529 + Scenario: g_V_both_group_by_byXout_dedup_foldX_unfold_selectXvaluesX_unfold_out_order_byXnameX_limitX1X_valuesXnameX + Given the modern graph + And the traversal of + """ + g.V().both(). + group().by().by(__.out().dedup().fold()). + unfold(). + select(Column.values). + unfold(). + out().order().by("name").limit(1).values("name") + """ + When iterated to list + Then the result should be unordered + | result | + | lop | + + Scenario: g_V_bothE_properties_dedup_count +Given the modern graph +And the traversal of + """ + g.V().bothE().properties().dedup().count() + """ +When iterated to list +Then the result should be unordered + | result | + | d[4].l | + + Scenario: g_V_both_properties_dedup_count +Given the modern graph +And the traversal of + """ + g.V().both().properties().dedup().count() + """ +When iterated to list +Then the result should be unordered + | result | + | d[12].l | + + Scenario: g_V_both_properties_properties_dedup_count +Given the crew graph +And the traversal of + """ + g.V().both().properties().properties().dedup().count() + """ +When iterated to list +Then the result should be unordered + | result | + | d[21].l | diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupTest.java index d8342f3,850c99f..c36d10d ---
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 0badcf26a8b3567921e984e9b536efd108073632 Merge: 8c2188e 1dd491d Author: Stephen Mallette AuthorDate: Thu Feb 25 12:41:09 2021 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/driver/Connection.java | 4 .../gremlin/server/GremlinDriverIntegrateTest.java | 28 +++--- 3 files changed, 30 insertions(+), 3 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 8c2188e79c945f0dc978bf94fefd45f895f31d55 Merge: fc153c1 901ae4a Author: Stephen Mallette AuthorDate: Tue Feb 23 09:23:08 2021 -0500 Merge branch '3.4-dev' .../io/graphbinary/GraphBinaryCompatibility.java | 2 + .../io/graphson/GraphSONCompatibility.java | 8 + .../structure/io/gryo/GryoCompatibility.java | 4 + .../graphbinary/GraphBinaryCompatibilityTest.java | 2 + .../graphson/GraphSONTypedCompatibilityTest.java | 4 + .../graphson/GraphSONUntypedCompatibilityTest.java | 4 + .../structure/io/gryo/GryoCompatibilityTest.java | 4 + .../io/graphbinary/_3_4_10/barrier-v1.gbin | Bin 0 -> 16 bytes .../io/graphbinary/_3_4_10/bigdecimal-v1.gbin | Bin 0 -> 25 bytes .../io/graphbinary/_3_4_10/biginteger-v1.gbin | Bin 0 -> 21 bytes .../io/graphbinary/_3_4_10/binding-v1.gbin | Bin 0 -> 13 bytes .../io/graphbinary/_3_4_10/bulkset-v1.gbin | Bin 0 -> 43 bytes .../structure/io/graphbinary/_3_4_10/byte-v1.gbin | Bin 0 -> 3 bytes .../io/graphbinary/_3_4_10/bytebuffer-v1.gbin | Bin 0 -> 24 bytes .../io/graphbinary/_3_4_10/bytecode-v1.gbin| Bin 0 -> 80 bytes .../io/graphbinary/_3_4_10/cardinality-v1.gbin | Bin 0 -> 12 bytes .../structure/io/graphbinary/_3_4_10/char-v1.gbin | Bin 0 -> 3 bytes .../structure/io/graphbinary/_3_4_10/class-v1.gbin | Bin 0 -> 18 bytes .../io/graphbinary/_3_4_10/column-v1.gbin | Bin 0 -> 12 bytes .../structure/io/graphbinary/_3_4_10/date-v1.gbin | Bin 0 -> 10 bytes .../io/graphbinary/_3_4_10/direction-v1.gbin | Bin 0 -> 11 bytes .../io/graphbinary/_3_4_10/double-v1.gbin | Bin 0 -> 10 bytes .../io/graphbinary/_3_4_10/duration-v1.gbin| Bin 0 -> 14 bytes .../structure/io/graphbinary/_3_4_10/edge-v1.gbin | Bin 0 -> 58 bytes .../structure/io/graphbinary/_3_4_10/float-v1.gbin | Bin 0 -> 6 bytes .../io/graphbinary/_3_4_10/inetaddress-v1.gbin | Bin 0 -> 10 bytes .../io/graphbinary/_3_4_10/instant-v1.gbin | Bin 0 -> 14 bytes .../io/graphbinary/_3_4_10/integer-v1.gbin | Bin 0 -> 6 bytes .../io/graphbinary/_3_4_10/lambda-v1.gbin | Bin 0 -> 40 bytes .../structure/io/graphbinary/_3_4_10/list-v1.gbin | Bin 0 -> 27 bytes .../io/graphbinary/_3_4_10/localdate-v1.gbin | Bin 0 -> 8 bytes .../io/graphbinary/_3_4_10/localdatetime-v1.gbin | Bin 0 -> 16 bytes .../io/graphbinary/_3_4_10/localtime-v1.gbin | Bin 0 -> 10 bytes .../structure/io/graphbinary/_3_4_10/long-v1.gbin | Bin 0 -> 10 bytes .../structure/io/graphbinary/_3_4_10/map-v1.gbin | Bin 0 -> 75 bytes .../io/graphbinary/_3_4_10/metrics-v1.gbin | Bin 0 -> 307 bytes .../io/graphbinary/_3_4_10/monthday-v1.gbin| Bin 0 -> 4 bytes .../io/graphbinary/_3_4_10/offsetdatetime-v1.gbin | Bin 0 -> 20 bytes .../io/graphbinary/_3_4_10/offsettime-v1.gbin | Bin 0 -> 14 bytes .../io/graphbinary/_3_4_10/operator-v1.gbin| Bin 0 -> 11 bytes .../structure/io/graphbinary/_3_4_10/order-v1.gbin | Bin 0 -> 15 bytes .../structure/io/graphbinary/_3_4_10/p-v1.gbin | Bin 0 -> 18 bytes .../structure/io/graphbinary/_3_4_10/pand-v1.gbin | Bin 0 -> 49 bytes .../structure/io/graphbinary/_3_4_10/path-v1.gbin | Bin 0 -> 96 bytes .../io/graphbinary/_3_4_10/period-v1.gbin | Bin 0 -> 14 bytes .../structure/io/graphbinary/_3_4_10/pick-v1.gbin | Bin 0 -> 11 bytes .../structure/io/graphbinary/_3_4_10/pop-v1.gbin | Bin 0 -> 11 bytes .../structure/io/graphbinary/_3_4_10/por-v1.gbin | Bin 0 -> 64 bytes .../io/graphbinary/_3_4_10/property-v1.gbin| Bin 0 -> 19 bytes .../io/graphbinary/_3_4_10/pwithin-v1.gbin | Bin 0 -> 22 bytes .../io/graphbinary/_3_4_10/pwithout-v1.gbin| Bin 0 -> 29 bytes .../structure/io/graphbinary/_3_4_10/scope-v1.gbin | Bin 0 -> 13 bytes .../structure/io/graphbinary/_3_4_10/set-v1.gbin | Bin 0 -> 27 bytes .../structure/io/graphbinary/_3_4_10/short-v1.gbin | Bin 0 -> 4 bytes .../structure/io/graphbinary/_3_4_10/t-v1.gbin | Bin 0 -> 13 bytes .../structure/io/graphbinary/_3_4_10/textp-v1.gbin | Bin 0 -> 29 bytes .../io/graphbinary/_3_4_10/timestamp-v1.gbin | Bin 0 -> 10 bytes .../io/graphbinary/_3_4_10/tinkergraph-v1.gbin | Bin 0 -> 2264 bytes .../graphbinary/_3_4_10/traversalmetrics-v1.gbin | Bin 0 -> 593 bytes .../io/graphbinary/_3_4_10/traverser-v1.gbin | Bin 0 -> 30 bytes .../structure/io/graphbinary/_3_4_10/uuid-v1.gbin | Bin 0 -> 18 bytes .../io/graphbinary/_3_4_10/vertex-v1.gbin | Bin 0 -> 20 bytes .../io/graphbinary/_3_4_10/vertexproperty-v1.gbin | Bin 0 -> 35 bytes .../structure/io/graphbinary/_3_4_10/year-v1.gbin | Bin 0 -> 6 bytes .../io/graphbinary/_3_4_10/yearmonth-v1.gbin | Bin 0 -> 7 bytes .../io/graphbinary/_3_4_10/zoneoffset-v1.gbin | Bin 0
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit f52fabdf31b28fd7c4f9b23ce675582ec2a549c1 Merge: dc8b60e 05c323a Author: Stephen Mallette AuthorDate: Mon Feb 8 13:36:58 2021 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc| 1 + .../gremlin-javascript/lib/process/traversal.js | 9 - .../gremlin-javascript/test/unit/traversal-test.js| 15 +++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js index 0f4be9e,b56f824..273f2c4 --- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js +++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js @@@ -25,10 -25,8 +25,11 @@@ const assert = require('assert'); const expect = require('chai').expect; const graph = require('../../lib/structure/graph'); +const anon = require('../../lib/process/anonymous-traversal'); const t = require('../../lib/process/traversal'); +const gt = require('../../lib/process/graph-traversal'); +const V = gt.statics.V; + const P = t.P; const Bytecode = require('../../lib/process/bytecode'); const TraversalStrategies = require('../../lib/process/traversal-strategy').TraversalStrategies; @@@ -218,16 -216,17 +219,30 @@@ describe('Traversal', function () }); }); + describe('P#toString()', function () { + it('convert to string representation with P', function () { + assert.strictEqual(P.gt(18).toString(), 'gt(18)'); + }); + + it('convert to string representation with P.within', function () { + assert.strictEqual(P.within('a', 'b').toString(), 'within(\'a\',\'b\')'); + }); + + it('convert to string representation with P.within array', function () { + assert.strictEqual(P.within(['a', 'b']).toString(), 'within(\'a\',\'b\')'); + }); + }); ++ + describe("build", function() { +it('should only allow anonymous child traversals', function() { + const g = anon.traversal().withGraph(new graph.Graph()); + assert.doesNotThrow(function() { +g.V(0).addE("self").to(V(1)) + }); + + assert.throws(function() { +g.V(0).addE("self").to(g.V(1)) + }); +}) + }); });
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 6242d53cf6cb01197931f298118567b358eb7982 Merge: ffb625b 8bcb82d Author: Stephen Mallette AuthorDate: Fri Feb 5 06:39:49 2021 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../io/graphson/TraversalSerializersV3d0.java | 63 +++--- .../graphson/GraphSONMapperEmbeddedTypeTest.java | 20 +++ 3 files changed, 77 insertions(+), 7 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit c1f0fd485e5708cae2e398eca80988b9c8b2c39d Merge: 8f28b10 63bb830 Author: Stephen Mallette AuthorDate: Thu Feb 4 15:50:34 2021 -0500 Merge branch '3.4-dev' gremlin-server/src/main/bin/gremlin-server.sh | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 8f28b10113e45f1741d22893b2f3701252e8e86c Merge: 81c3fbc 8b1d0da Author: Stephen Mallette AuthorDate: Mon Feb 1 09:12:42 2021 -0500 Merge branch '3.4-dev' docker/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 81c3fbcf2a00a8d69bd2d4e02852e80ed895078f Merge: 715e6af d8c0439 Author: Stephen Mallette AuthorDate: Wed Jan 27 16:25:30 2021 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../apache/tinkerpop/gremlin/server/Settings.java | 42 +-- .../tinkerpop/gremlin/server/SettingsTest.java | 59 ++ .../gremlin/server/custom-gremlin-server.yaml | 19 +++ 4 files changed, 105 insertions(+), 16 deletions(-) diff --cc gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java index f58c140,b01b7e5..3a535ab --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java @@@ -327,17 -323,21 +325,29 @@@ public class Settings final TypeDescription graphiteReporterDescription = new TypeDescription(GraphiteReporterMetrics.class); constructor.addTypeDescription(graphiteReporterDescription); + return constructor; + } + + /** + * Read configuration from a file into a new {@link Settings} object. + * + * @param stream an input stream containing a Gremlin Server YAML configuration + * @return a new {@link Optional} object wrapping the created {@link Settings} + */ + public static Settings read(final InputStream stream) { + Objects.requireNonNull(stream); + final Constructor constructor = createDefaultYamlConstructor(); final Yaml yaml = new Yaml(constructor); -return yaml.loadAs(stream, Settings.class); +final Settings settings = yaml.loadAs(stream, Settings.class); +if (settings.authentication.enableAuditLog && settings.enableAuditLog) { +logger.warn("Both authentication.enableAuditLog and settings.enableAuditLog " + +"are enabled, so auditable events are logged twice."); +} +if (settings.authentication.enableAuditLog && !settings.enableAuditLog) { +logger.warn("Configuration property 'authentication.enableAuditLog' is deprecated, use 'enableAuditLog' instead."); +} +return settings; } /**
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 715e6afec52d503550e522ee4d8d73317420f274 Merge: b9ffa87 24a2c90 Author: Stephen Mallette AuthorDate: Wed Jan 27 13:53:11 2021 -0500 Merge branch '3.4-dev' .travis.yml | 2 -- 1 file changed, 2 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 529cbe694a0bf6aad511fe82dc6cca7f5a8f443c Merge: 1ae6089 c499340 Author: Stephen Mallette AuthorDate: Tue Jan 26 10:13:39 2021 -0500 Merge branch '3.4-dev' docs/src/dev/developer/for-committers.asciidoc | 23 +++ 1 file changed, 11 insertions(+), 12 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 0b4745e1a337e9b4565e9e425f03964a6b8a98ff Merge: 52c983d 958e919 Author: Stephen Mallette AuthorDate: Fri Jan 22 11:07:47 2021 -0500 Merge branch '3.4-dev' docs/src/upgrade/release-3.4.x.asciidoc | 3 +++ 1 file changed, 3 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 52c983deebce5d27ac055dfcb6a7f9fcbc8e3101 Merge: 4d37c8f 8b11bcb Author: Stephen Mallette AuthorDate: Fri Jan 22 09:55:53 2021 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 4 1 file changed, 4 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 332177a4b65563bc9ac2ad89e1a3ce78bf290195 Merge: 78d2163 43b3129 Author: Stephen Mallette AuthorDate: Mon Jan 18 18:28:11 2021 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 13 - docs/src/upgrade/release-3.4.x.asciidoc | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 78d21630e6bf1bf993fb6ca560cdc3bb3886b507 Merge: 7fdbac2 de61163 Author: Stephen Mallette AuthorDate: Fri Jan 15 15:03:27 2021 -0500 Merge branch '3.4-dev' .../gremlin/process/traversal/step/filter/PathFilterStep.java | 4 .../tinkerpop/gremlin/process/traversal/step/util/AbstractStep.java | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 4d53f371bc61ac5c665d652120fbb87cd45beddc Merge: bfa978d c121f69 Author: Stephen Mallette AuthorDate: Fri Jan 15 06:43:27 2021 -0500 Merge branch '3.4-dev' docs/src/upgrade/release-3.4.x.asciidoc | 18 ++ 1 file changed, 18 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit bfa978d9d0bb71ce97e72d0f7762d88da9ab0ad2 Merge: a11796c 3f93fdc Author: Stephen Mallette AuthorDate: Thu Jan 14 13:23:53 2021 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../main/python/gremlin_python/driver/tornado/transport.py | 2 +- gremlin-python/src/main/python/tests/driver/test_client.py | 14 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --cc gremlin-python/src/main/python/tests/driver/test_client.py index 792e8c2,000..54784c4 mode 100644,00..100644 --- a/gremlin-python/src/main/python/tests/driver/test_client.py +++ b/gremlin-python/src/main/python/tests/driver/test_client.py @@@ -1,325 -1,0 +1,339 @@@ +# +# 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. +# +import threading +import uuid + +from gremlin_python.driver.client import Client +from gremlin_python.driver.protocol import GremlinServerError +from gremlin_python.driver.request import RequestMessage +from gremlin_python.process.graph_traversal import __ +from gremlin_python.process.strategies import OptionsStrategy +from gremlin_python.structure.graph import Graph ++from gremlin_python.driver.tornado.transport import TornadoTransport ++from tornado.util import TimeoutError + +__author__ = 'David M. Brown (davebs...@gmail.com)' + + +def test_connection(connection): +g = Graph().traversal() +t = g.V() +message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}}) +results_set = connection.write(message).result() +future = results_set.all() +results = future.result() +assert len(results) == 6 +assert isinstance(results, list) +assert results_set.done.done() +assert 'host' in results_set.status_attributes + + +def test_client_simple_eval(client): +assert client.submit('1 + 1').all().result()[0] == 2 + + +def test_client_simple_eval_bindings(client): +assert client.submit('x + x', {'x': 2}).all().result()[0] == 4 + + +def test_client_eval_traversal(client): +assert len(client.submit('g.V()').all().result()) == 6 + + +def test_client_error(client): +try: +# should fire an exception +client.submit('1/0').all().result() +assert False +except GremlinServerError as ex: +assert 'exceptions' in ex.status_attributes +assert 'stackTrace' in ex.status_attributes + + +def test_client_connection_pool_after_error(client): +# Overwrite fixture with pool_size=1 client +client = Client('ws://localhost:45940/gremlin', 'gmodern', pool_size=1) + +try: +# should fire an exception +client.submit('1/0').all().result() +assert False +except GremlinServerError as gse: +# expecting the pool size to be 1 again after query returned +assert gse.status_code == 597 +assert client.available_pool_size == 1 + + ++def test_client_side_timeout_set_for_tornado(client): ++client = Client('ws://localhost:45940/gremlin', 'gmodern', ++transport_factory=lambda: TornadoTransport(read_timeout=1, write_timeout=1)) ++ ++try: ++# should fire an exception ++client.submit('Thread.sleep(2000);1').all().result() ++assert False ++except TimeoutError as toerr: ++assert str(toerr) == "Operation timed out after 1 seconds" ++ ++ +def test_client_bytecode(client): +g = Graph().traversal() +t = g.V() +message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}}) +result_set = client.submit(message) +assert len(result_set.all().result()) == 6 + + +def test_client_bytecode_options(client): +# smoke test to validate serialization of OptionsStrategy. no way to really validate this from an integration +# test perspective because there's no way to access the internals of the strategy via bytecode +g = Graph().traversal() +t =
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a11796c887b38585720cbae067b377d05809538c Merge: 6c3844b 8bdde85 Author: Stephen Mallette AuthorDate: Thu Jan 14 11:24:26 2021 -0500 Merge branch '3.4-dev' .../tinkerpop/gremlin/jsr223/JavaTranslator.java | 25 ++ 1 file changed, 21 insertions(+), 4 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 975e46b97baa42567bec71eb47b03196150adffe Merge: bb9d75c 82c968b Author: Stephen Mallette AuthorDate: Mon Jan 11 09:19:42 2021 -0500 Merge branch '3.4-dev' .../apache/tinkerpop/gremlin/groovy/jsr223/ast/GremlinASTChecker.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 9a2fe79b26efad055e038fc8d659fe54c9495979 Merge: 4234ada 517b2bb Author: Stephen Mallette AuthorDate: Fri Jan 8 07:03:20 2021 -0500 Merge branch '3.4-dev' .../apache/tinkerpop/gremlin/driver/ClientConnectionIntegrateTest.java | 2 ++ 1 file changed, 2 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 4234adae0c35ef4b7916abfdcc850499e65beb2b Merge: 749f063 4b099b3 Author: Stephen Mallette AuthorDate: Thu Jan 7 14:12:08 2021 -0500 Merge branch '3.4-dev' .../apache/tinkerpop/gremlin/driver/ClientConnectionIntegrateTest.java | 2 ++ 1 file changed, 2 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 44bbf76782291598cb8d428dcad65d1289692bd3 Merge: 269a045 580e03a Author: Stephen Mallette AuthorDate: Wed Dec 23 08:51:17 2020 -0500 Merge branch '3.4-dev' .../tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java| 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java index 9e8062c,e5910cd..c058ac4 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java @@@ -291,12 -292,16 +291,12 @@@ public class GremlinServerAuditLogInteg final List log = recordingAppender.getEvents(); final Stream auditEvents = log.stream().filter(event -> event.getLoggerName().equals(AUDIT_LOGGER_NAME)); final LoggingEvent authEvent = auditEvents -.filter(event -> event.getMessage().toString().contains("Krb5Authenticator")).iterator().next(); +.filter(event -> event.getMessage().toString().contains(simpleAuthenticatorName)).iterator().next(); final String authMsg = authEvent.getMessage().toString(); assertTrue(authEvent.getLevel() == INFO && -authMsg.matches(String.format("User %s with address .*? authenticated by Krb5Authenticator", kdcServer.clientPrincipalName))); -assertTrue(log.stream().anyMatch(item -> item.getLevel() == INFO && -item.getMessage().toString().matches("User with address .*? requested: 1\\+1"))); -assertTrue(log.stream().anyMatch(item -> item.getLevel() == INFO && -item.getMessage().toString().matches("User with address .*? requested: 1\\+2"))); +authMsg.matches(String.format("User %s with address .*? authenticated by %s", "stephen", simpleAuthenticatorName))); assertTrue(log.stream().anyMatch(item -> item.getLevel() == INFO && - item.getMessage().toString().matches("User with address .*? requested: 1-1"))); -item.getMessage().toString().matches("User with address .*? requested: 1\\+3"))); ++item.getMessage().toString().matches("User with address .*? requested: 2-1"))); } @Test
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit d042584d46789dd6376166d36740e83aed5c6e5d Merge: bcb6475 cce31cb Author: Stephen Mallette AuthorDate: Tue Dec 22 08:00:52 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/process/traversal/dsl/GremlinDsl.java| 2 ++ .../gremlin/process/traversal/dsl/GremlinDslProcessor.java | 10 ++ .../process/traversal/dsl/SocialPackageTraversalSourceDsl.java | 9 + 4 files changed, 18 insertions(+), 4 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit bcb6475c9ce194471f039e62cadf20e519bd Merge: 3f541ee d4a38a4 Author: Stephen Mallette AuthorDate: Mon Dec 21 07:01:51 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-variants.asciidoc | 41 +++ .../gremlin/groovy/engine/GremlinExecutor.java | 4 +- .../groovy/jsr223/GremlinScriptChecker.java| 203 ++ .../groovy/jsr223/GremlinScriptCheckerTest.java| 300 + 5 files changed, 547 insertions(+), 2 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 7685b54456d7481db8160d587ed99dfc68ba2d6a Merge: 1497704 a9deecb Author: Stephen Mallette AuthorDate: Fri Dec 18 13:04:20 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 2 +- docs/src/reference/the-traversal.asciidoc | 3 ++- .../process/traversal/translator/PythonTranslator.java | 3 ++- .../process/traversal/translator/PythonTranslatorTest.java | 14 +++--- 4 files changed, 12 insertions(+), 10 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/PythonTranslator.java index 9b5f3b5,3e15bf1..ca1d28a --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/PythonTranslator.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/PythonTranslator.java @@@ -19,11 -19,13 +19,12 @@@ package org.apache.tinkerpop.gremlin.process.traversal.translator; -import org.apache.commons.configuration.ConfigurationConverter; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.configuration2.ConfigurationConverter; ++import org.apache.commons.text.StringEscapeUtils; import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; -import org.apache.tinkerpop.gremlin.process.traversal.Operator; import org.apache.tinkerpop.gremlin.process.traversal.P; import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions; +import org.apache.tinkerpop.gremlin.process.traversal.Script; import org.apache.tinkerpop.gremlin.process.traversal.TextP; import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; @@@ -118,227 -110,165 +119,227 @@@ public final class PythonTranslator imp /// -private String internalTranslate(final String start, final Bytecode bytecode) { -final StringBuilder traversalScript = new StringBuilder(start); -for (final Bytecode.Instruction instruction : bytecode.getInstructions()) { -final String methodName = instruction.getOperator(); -final Object[] arguments = instruction.getArguments(); -if (0 == arguments.length) - traversalScript.append(".").append(resolveSymbol(methodName)).append("()"); -else if (methodName.equals("range") && 2 == arguments.length) -if (((Number) arguments[0]).longValue() + 1 == ((Number) arguments[1]).longValue()) - traversalScript.append("[").append(arguments[0]).append("]"); -else - traversalScript.append("[").append(arguments[0]).append(":").append(arguments[1]).append("]"); -else if (methodName.equals("limit") && 1 == arguments.length) - traversalScript.append("[0:").append(arguments[0]).append("]"); -else if (methodName.equals("values") && 1 == arguments.length && traversalScript.length() > 3 && !STEP_NAMES.contains(arguments[0].toString())) -traversalScript.append(".").append(arguments[0]); -else { -traversalScript.append("."); -String temp = resolveSymbol(methodName) + "("; +/** + * Performs standard type translation for the TinkerPop types to Python. + */ +public static class DefaultTypeTranslator extends AbstractTypeTranslator { -// jython has trouble with java varargs...wrapping in collection seems to solve the problem -final boolean varargsBeware = instruction.getOperator().equals(TraversalSource.Symbols.withStrategies) -|| instruction.getOperator().equals(TraversalSource.Symbols.withoutStrategies); -if (varargsBeware) temp = temp + "["; +public DefaultTypeTranslator(final boolean withParameters) { +super(withParameters); +} -for (final Object object : arguments) { -temp = temp + convertToString(object) + ","; -} -temp = temp.substring(0, temp.length() - 1); +@Override +protected String getNullSyntax() { +return "None"; +} -if (varargsBeware) temp = temp + "]"; +@Override +protected String getSyntax(final String o) { +return o.contains("'") || o.contains(System.lineSeparator()) ? +"\"\"\"" + o + "\"\"\"" : "'" + o + "'"; +} -traversalScript.append(temp).append(")"); -} -// clip off __. -if (this.importStatics && traversalScript.substring(0,
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 3f555146ec24a8e49a9b67800d0341f7d493914d Merge: 856f3a5 a8396e8 Author: Stephen Mallette AuthorDate: Tue Dec 15 04:35:08 2020 -0500 Merge branch '3.4-dev' gremlin-python/pom.xml | 12 ++-- pom.xml| 2 +- 2 files changed, 3 insertions(+), 11 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 62457b583618d5aac502c7fc5801fb9d1e7a352e Merge: 33850cc c1a2e3d Author: Stephen Mallette AuthorDate: Fri Dec 11 09:41:56 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 5 + docs/src/upgrade/release-3.4.x.asciidoc | 13 + 2 files changed, 18 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 546562e293c6f7dcf36239ce5dfbf98dd1c03b64 Merge: 79b4d5b 9b16261 Author: Stephen Mallette AuthorDate: Mon Dec 7 13:51:06 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 59 - docs/src/upgrade/release-3.4.x.asciidoc | 2 +- neo4j-gremlin/pom.xml | 2 +- pom.xml | 8 - source-release.xml | 7 5 files changed, 74 insertions(+), 4 deletions(-) diff --cc neo4j-gremlin/pom.xml index d9c959b,b294534..0accdea --- a/neo4j-gremlin/pom.xml +++ b/neo4j-gremlin/pom.xml @@@ -42,13 -42,6 +42,13 @@@ limitations under the License gremlin-test ${project.version} test - ++ + + +org.ow2.asm +asm + + org.slf4j diff --cc pom.xml index 2710c2c,1692068..cafba10 --- a/pom.xml +++ b/pom.xml @@@ -732,11 -728,6 +738,11 @@@ limitations under the License +org.objenesis +objenesis +2.4 - ++ + org.powermock powermock-module-junit4 ${powermock.version}
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 79b4d5b8e5514034b3fbd46e21464e55a12e6118 Merge: 2d6f0a4 d51253a Author: Stephen Mallette AuthorDate: Fri Dec 4 13:46:13 2020 -0500 Merge branch '3.4-dev' docs/src/upgrade/release-3.4.x.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 2d6f0a4ece2b2e5a5193f38834a567abb38d3d7b Merge: 327a97d cb34aae Author: Stephen Mallette AuthorDate: Fri Dec 4 13:40:28 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../gremlin/groovy/jsr223/ast/GremlinASTChecker.groovy | 14 +- .../tinkerpop/gremlin/groovy/engine/GremlinExecutor.java | 7 +-- .../groovy/engine/GremlinExecutorOverGraphTest.java| 1 - 4 files changed, 15 insertions(+), 8 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 327a97d56d5b1239a394932cfd378f3482a6e42f Merge: cb2007e 96054b5 Author: Stephen Mallette AuthorDate: Thu Dec 3 08:39:01 2020 -0500 Merge branch '3.4-dev' docs/src/upgrade/release-3.4.x.asciidoc | 35 - 1 file changed, 34 insertions(+), 1 deletion(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 587bb9d69e91f7aa2de1ac427a161b5b3984c7a9 Merge: c6f88be 0bf3fc6 Author: Stephen Mallette AuthorDate: Wed Dec 2 10:36:11 2020 -0500 Merge branch '3.4-dev' gremlin-tools/gremlin-benchmark/pom.xml| 14 ++- .../jsr223/GremlinGroovyScriptEngineBenchmark.java | 120 + .../src/test/resources/log4j-silent.properties | 23 .../src/test/resources/log4j-test.properties | 21 4 files changed, 176 insertions(+), 2 deletions(-) diff --cc gremlin-tools/gremlin-benchmark/pom.xml index 4dbc742,bae619f..688f44f --- a/gremlin-tools/gremlin-benchmark/pom.xml +++ b/gremlin-tools/gremlin-benchmark/pom.xml @@@ -78,7 -78,13 +83,12 @@@ limitations under the License org.slf4j slf4j-log4j12 -true + + log4j + log4j + true +
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 921171ef131601e92af3df07c9be18a79638e239 Merge: 7fe4a8d 5b1b508 Author: Stephen Mallette AuthorDate: Tue Dec 1 07:48:09 2020 -0500 Merge branch '3.4-dev' .../org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 7fe4a8d60d44d9e59fe2727aeab54ad12c9d7c7e Merge: 6f5b558 daad70b Author: Stephen Mallette AuthorDate: Mon Nov 30 16:59:19 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 - .../groovy/jsr223/ast/GremlinASTChecker.groovy | 23 ++- .../gremlin/groovy/engine/GremlinExecutor.java | 7 +- .../engine/GremlinExecutorOverGraphTest.java | 2 + .../groovy/jsr223/ast/GremlinASTCheckerTest.java | 205 + 5 files changed, 222 insertions(+), 16 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. divijv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 6f5b5583da1141b6b59155d806e919fa5dc2c826 Merge: b4928e1 6e67b3e Author: Divij Vaidya AuthorDate: Sun Nov 29 18:22:34 2020 -0800 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../apache/tinkerpop/gremlin/driver/Cluster.java | 7 +++-- .../gremlin/server/GremlinDriverIntegrateTest.java | 30 -- 3 files changed, 22 insertions(+), 16 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 8aa3c9deb754a93f86aee9299445017fd114cb1b Merge: 8ea559e 563ac97 Author: Stephen Mallette AuthorDate: Fri Nov 27 09:16:34 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 3 + docs/src/reference/gremlin-applications.asciidoc | 19 ++ docs/src/upgrade/release-3.4.x.asciidoc| 10 .../console/commands/BytecodeCommand.groovy| 70 -- .../console/commands/BytecodeCommand.properties| 2 +- .../ser/AbstractGraphSONMessageSerializerV2d0.java | 1 - 6 files changed, 99 insertions(+), 6 deletions(-) diff --cc gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/BytecodeCommand.groovy index 93e28eb,3718202..0d739fc --- a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/BytecodeCommand.groovy +++ b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/BytecodeCommand.groovy @@@ -22,11 -22,15 +22,14 @@@ import org.apache.tinkerpop.gremlin.con import org.apache.tinkerpop.gremlin.process.traversal.Bytecode import org.apache.tinkerpop.gremlin.process.traversal.Traversal import org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator + import org.apache.tinkerpop.gremlin.structure.io.IoRegistry -import org.apache.tinkerpop.gremlin.structure.io.Mapper import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion + import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONXModuleV3d0 import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper + import org.apache.tinkerpop.shaded.jackson.databind.module.SimpleModule -import org.codehaus.groovy.tools.shell.ComplexCommandSupport -import org.codehaus.groovy.tools.shell.Groovysh +import org.apache.groovy.groovysh.ComplexCommandSupport +import org.apache.groovy.groovysh.Groovysh /** * Commands that help work with Gremlin bytecode.
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. divijv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 245a83d0f2e639da49c3d0333257936806233b6b Merge: b6234e2 43f7292 Author: Divij Vaidya AuthorDate: Wed Nov 25 12:27:23 2020 -0800 Merge branch '3.4-dev' CHANGELOG.asciidoc | 4 + gremlin-driver/pom.xml | 10 ++ .../tinkerpop/gremlin/driver/Channelizer.java | 13 ++- .../apache/tinkerpop/gremlin/driver/Client.java| 124 + .../tinkerpop/gremlin/driver/Connection.java | 18 +-- .../tinkerpop/gremlin/driver/ConnectionPool.java | 53 ++--- .../driver/exception/ConnectionException.java | 10 +- .../driver/exception/NoHostAvailableException.java | 31 ++ .../driver/handler/WebSocketClientHandler.java | 8 +- .../tinkerpop/gremlin/driver/ClientTest.java | 82 ++ .../gremlin/server/handler/OpSelectorHandler.java | 4 +- .../gremlin/server/handler/ServerSerializers.java | 9 ++ .../gremlin/server/GremlinDriverIntegrateTest.java | 26 - .../server/GremlinServerAuthIntegrateTest.java | 4 +- .../server/GremlinServerSslIntegrateTest.java | 11 +- pom.xml| 13 +++ 16 files changed, 331 insertions(+), 89 deletions(-) diff --cc gremlin-driver/pom.xml index d9dceaa,7bffa41..c73c6fe --- a/gremlin-driver/pom.xml +++ b/gremlin-driver/pom.xml @@@ -96,8 -94,18 +96,18 @@@ limitations under the License test + org.powermock + powermock-module-junit4 + test + + + org.powermock + powermock-api-mockito + test + + org.hamcrest -hamcrest-all +hamcrest test diff --cc gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/ServerSerializers.java index 09b7599,3981867..6f5b6d3 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/ServerSerializers.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/ServerSerializers.java @@@ -19,8 -19,7 +19,12 @@@ package org.apache.tinkerpop.gremlin.server.handler; import org.apache.tinkerpop.gremlin.driver.MessageSerializer; ++<<< HEAD +import org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1; +import org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0; ++=== + import org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0; ++>>> 3.4-dev /** * @author Stephen Mallette (http://stephen.genoprime.com) @@@ -30,15 -29,9 +34,20 @@@ final class ServerSerializers private ServerSerializers() {} /** ++<<< HEAD + * Default binary serializer used by the server when the serializer requested does not match what is on the server. + * This defaults to GraphBinary 1.0. ++=== + * Default serializer used by the server when the serializer requested does not match what is on the server. + * Using GraphSON 1.0 on 3.3.5 because that's what it has long been set to in previous versions. ++>>> 3.4-dev */ -static final MessageSerializer DEFAULT_SERIALIZER = new GraphSONMessageSerializerV1d0(); +static final MessageSerializer DEFAULT_BINARY_SERIALIZER = new GraphBinaryMessageSerializerV1(); + +/** + * Default binary serializer used by the server when the serializer requested does not match what is on the server. + * This defaults to GraphSON 3.0. + */ +static final MessageSerializer DEFAULT_TEXT_SERIALIZER = new GraphSONMessageSerializerV3d0(); } diff --cc pom.xml index 6b95e43,8fd981c..01f74d3 --- a/pom.xml +++ b/pom.xml @@@ -159,7 -159,8 +159,8 @@@ limitations under the License 4.1.52.Final 1.7.25 1.27 -2.4.0 +3.0.0 + 1.6.4 UTF-8 UTF-8 @@@ -731,9 -722,21 +732,21 @@@ + org.powermock + powermock-module-junit4 + ${powermock.version} + test + + + org.powermock + powermock-api-mockito + ${powermock.version} + test + + org.hamcrest -hamcrest-all -1.3 +hamcrest +2.2 org.slf4j
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit b6234e23751e0e0548f97f0d6e8fceea8f3f5de6 Merge: c9b4ee7 f96f554 Author: Stephen Mallette AuthorDate: Mon Nov 23 07:02:48 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc| 1 + .../gremlin/process/traversal/step/filter/HasStep.java| 15 ++- .../traversal/step/filter/TraversalFilterStep.java| 15 ++- gremlin-python/src/main/python/setup.py | 3 ++- 4 files changed, 31 insertions(+), 3 deletions(-) diff --cc gremlin-python/src/main/python/setup.py index 6d559b7,000..248c342 mode 100644,00..100644 --- a/gremlin-python/src/main/python/setup.py +++ b/gremlin-python/src/main/python/setup.py @@@ -1,91 -1,0 +1,92 @@@ +""" +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. +""" +import codecs +import os +import sys +import time +from setuptools import setup + +# Folder containing the setup.py +root = os.path.dirname(os.path.abspath(__file__)) + +# Path to __version__ module +version_file = os.path.join(root, 'gremlin_python', '__version__.py') + +# Check if this is a source distribution. +# If not create the __version__ module containing the version +if not os.path.exists(os.path.join(root, 'PKG-INFO')): +timestamp = int(os.getenv('TIMESTAMP', time.time() * 1000)) / 1000 +fd = codecs.open(version_file, 'w', 'utf-8') +fd.write("'''") +fd.write(__doc__) +fd.write("'''\n") +fd.write('version = %r\n' % os.getenv('VERSION', '?').replace('-SNAPSHOT', '.dev-%d' % timestamp)) +fd.write('timestamp = %d\n' % timestamp) +fd.close() +# Load version +from gremlin_python import __version__ + +version = __version__.version + +install_requires = [ +'aenum>=1.4.5,<3.0.0', +'tornado>=6.0', +'six>=1.10.0,<2.0.0', +'isodate>=0.6.0,<1.0.0', +'pyparsing>=2.4.7,<3.0.0' +] + +if sys.version_info < (3, 5): +install_requires += ['pyparsing>=2.4.6,<3.0.0'] + +setup( +name='gremlinpython', +version=version, +packages=['gremlin_python', 'gremlin_python.driver', + 'gremlin_python.driver.tornado', 'gremlin_python.process', + 'gremlin_python.structure', 'gremlin_python.structure.io'], +license='Apache 2', +url='http://tinkerpop.apache.org', +description='Gremlin-Python for Apache TinkerPop', +long_description=codecs.open("README.rst", "r", "UTF-8").read(), +long_description_content_type='text/x-rst', +test_suite="tests", +data_files=[("", ["LICENSE", "NOTICE"])], +setup_requires=[ - 'pytest-runner', ++'pytest-runner==5.2', ++'importlib-metadata<3.0.0' +], +tests_require=[ +'pytest>=4.6.4,<5.0.0', +'mock>=3.0.5,<4.0.0', +'radish-bdd==0.8.6', +'PyHamcrest>=1.9.0,<2.0.0' +], +install_requires=install_requires, +extra_require={ +'kerberos': 'kerberos>=1.3.0,<2.0.0'# Does not install in Microsoft Windows +}, +classifiers=[ +"Intended Audience :: Developers", +"License :: OSI Approved :: Apache Software License", +"Natural Language :: English", +"Programming Language :: Python :: 3.5", +"Programming Language :: Python :: 3.6", +] +)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 0c1a32ffca8dec2eb879437657c6f04c454d1ab9 Merge: cf29e58 733b33a Author: Stephen Mallette AuthorDate: Fri Nov 20 08:06:46 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 2 +- docs/src/reference/gremlin-variants.asciidoc | 16 docs/src/upgrade/release-3.4.x.asciidoc | 11 +++ .../python/gremlin_python/driver/tornado/transport.py| 7 +-- 4 files changed, 29 insertions(+), 7 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a9aad30262726fbedf1a8653dfb8151b461fc6a1 Merge: 70d2ba8 1ecd8b4 Author: Stephen Mallette AuthorDate: Tue Nov 17 15:43:59 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + 1 file changed, 1 insertion(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 914d21bcfc9af43dcca925eb392d080a3116ef5c Merge: a0d35c2 70ade8c Author: Stephen Mallette AuthorDate: Tue Nov 17 13:47:24 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../traversal/translator/GroovyTranslator.java | 39 +- .../traversal/translator/GroovyTranslatorTest.java | 10 +++--- .../gremlin/groovy/loaders/StepLoader.groovy | 7 ++-- .../GremlinGroovyScriptEngineOverGraphTest.java| 16 + 5 files changed, 36 insertions(+), 37 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java index b57ffc7,7335fc7..3a1ec42 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java @@@ -25,10 -24,10 +25,12 @@@ import org.apache.tinkerpop.gremlin.jsr import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; import org.apache.tinkerpop.gremlin.process.traversal.P; import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions; +import org.apache.tinkerpop.gremlin.process.traversal.Script; import org.apache.tinkerpop.gremlin.process.traversal.TextP; import org.apache.tinkerpop.gremlin.process.traversal.Translator; + import org.apache.tinkerpop.gremlin.process.traversal.Traversal; + import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy; +import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource; import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent; import org.apache.tinkerpop.gremlin.process.traversal.strategy.TraversalStrategyProxy; import org.apache.tinkerpop.gremlin.process.traversal.util.ConnectiveP; @@@ -39,19 -38,15 +41,17 @@@ import org.apache.tinkerpop.gremlin.str import org.apache.tinkerpop.gremlin.structure.util.StringFactory; import org.apache.tinkerpop.gremlin.util.function.Lambda; +import java.math.BigDecimal; +import java.math.BigInteger; import java.sql.Timestamp; import java.util.ArrayList; ++import java.util.Arrays; import java.util.Date; -import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.Set; import java.util.UUID; - import java.util.function.BinaryOperator; - import java.util.function.Supplier; - import java.util.function.UnaryOperator; import java.util.stream.Collectors; /** @@@ -243,138 -256,8 +243,117 @@@ public final class GroovyTranslator imp * Those building custom {@link ScriptTranslator} instances might override this if they have other classes * that are not in {@link CoreImports} by default. */ -protected String convertClassToString(final Class clazz) { -return CoreImports.getClassImports().contains(clazz) ? clazz.getSimpleName() : clazz.getCanonicalName(); +@Override +protected Script produceScript(final Class o) { +return script.append(CoreImports.getClassImports().contains(o) ? o.getSimpleName() : o.getCanonicalName()); +} + +@Override +protected Script produceScript(final Enum o) { +return script.append(o.getDeclaringClass().getSimpleName() + "." + o.toString()); +} + +@Override +protected Script produceScript(final Vertex o) { +script.append("new ReferenceVertex("); +convertToScript(o.id()); +script.append(","); +convertToScript(o.label()); +return script.append(")"); +} + +@Override +protected Script produceScript(final Edge o) { +script.append("new ReferenceEdge("); +convertToScript(o.id()); +script.append(","); +convertToScript(o.label()); +script.append(",new ReferenceVertex("); +convertToScript(o.inVertex().id()); +script.append(","); +convertToScript(o.inVertex().label()); +script.append("),new ReferenceVertex("); +convertToScript(o.outVertex().id()); +script.append(","); +convertToScript(o.outVertex().label()); +return script.append("))"); +} + +@Override +protected Script produceScript(final VertexProperty o) { +script.append("new ReferenceVertexProperty("); +convertToScript(o.id()); +script.append(","); +convertToScript(o.label()); +script.append(","); +convertToScript(o.value()); +return script.append(")"); +
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a0d35c268b5ea74411477e743918107609eba754 Merge: 88704e9 6c353df Author: Stephen Mallette AuthorDate: Tue Nov 17 10:02:12 2020 -0500 Merge branch '3.4-dev' docs/src/reference/gremlin-applications.asciidoc| 2 +- gremlin-server/scripts/empty-sample-secure.groovy | 2 +- gremlin-server/scripts/empty-sample.groovy | 2 +- gremlin-server/scripts/generate-classic.groovy | 2 +- .../scripts/generate-modern-readonly.groovy | 2 +- gremlin-server/scripts/generate-modern.groovy | 2 +- gremlin-server/scripts/load-sample.groovy | 2 +- gremlin-server/scripts/spark.groovy | 2 +- ...rate-shouldRebindTraversalSourceVariables.groovy | 4 ++-- gremlin-server/src/test/scripts/generate-all.groovy | 21 ++--- pom.xml | 3 +-- 11 files changed, 25 insertions(+), 19 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 88704e926fdb8beb1fa4d29aea62a7b605ff21e9 Merge: a6d90ea 89529de Author: Stephen Mallette AuthorDate: Fri Nov 13 14:11:32 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 2 + docs/src/reference/gremlin-variants.asciidoc | 4 +- docs/src/reference/the-traversal.asciidoc | 63 ++ docs/src/upgrade/release-3.4.x.asciidoc| 77 +++-- docs/static/images/gremlin-translator.png | Bin 0 -> 998775 bytes .../tinkerpop/gremlin/jsr223/CoreImports.java | 13 +++ .../gremlin/process/traversal/Translator.java | 16 +++- .../strategy/decoration/EventStrategy.java | 12 +-- .../strategy/decoration/SackStrategy.java | 4 + .../traversal/translator/GroovyTranslator.java | 70 ++-- .../traversal/translator/GroovyTranslatorTest.java | 58 ++--- .../ParameterizedGroovyTranslatorTest.java | 18 ++-- .../gremlin/groovy/loaders/GremlinLoader.groovy| 4 +- .../gremlin/groovy/loaders/ObjectLoader.groovy | 2 +- .../gremlin/groovy/loaders/StepLoader.groovy | 22 - .../gremlin/groovy/loaders/StrategyLoader.groovy | 92 + .../gremlin/groovy/loaders/SugarLoader.groovy | 2 +- .../jsr223/GremlinGroovyScriptEngineTest.java | 31 +++ 18 files changed, 402 insertions(+), 88 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java index fb7c487,c2efdca..30dccc4 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java @@@ -48,22 -33,22 +48,30 @@@ public interface Translator /** * Get the {@link TraversalSource} representation rooting this translator. * For string-based translators ({@link ScriptTranslator}), this is typically a "g". -- * For java-based translators ({@link StepTranslator}), this is typically the {@link TraversalSource} instance which the {@link Traversal} will be built from. ++ * For java-based translators ({@link StepTranslator}), this is typically the {@link TraversalSource} instance ++ * which the {@link Traversal} will be built from. * * @return the traversal source representation */ public S getTraversalSource(); /** -- * Translate {@link Bytecode} into a new representation. -- * Typically, for language translations, the translation is to a string represenging the traversal in the respective scripting language. ++ * Translate {@link Bytecode} into a new representation. Typically, for language translations, the translation is ++ * to a string representing the traversal in the respective scripting language. * -- * @param bytecode the byte code representing traversal source and traversal manipulations. ++ * @param bytecode the bytecode representing traversal source and traversal manipulations. * @return the translated object */ public T translate(final Bytecode bytecode); /** ++ * Translates a {@link Traversal} into the specified form ++ */ ++public default T translate(final Traversal t) { ++return translate(t.asAdmin().getBytecode()); ++} ++ ++/** * Get the language that the translator is converting the traversal byte code to. * * @return the language of the translation diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java index b902ef0,6e8dc48..b57ffc7 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java @@@ -1,26 -1,26 +1,27 @@@ /* - * 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 + * 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
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a6d90eae660eef2085bc8deaaca21bc7b8d8871b Merge: 551e47f 687d301 Author: Stephen Mallette AuthorDate: Tue Nov 10 15:41:51 2020 -0500 Merge branch '3.4-dev' .../tinkerpop/gremlin/server/KdcFixtureTest.java | 43 ++ .../tinkerpop/gremlin/server/KdcFixture.java | 33 + 2 files changed, 69 insertions(+), 7 deletions(-) diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/KdcFixtureTest.java index 000,bc3c792..ad49698 mode 00,100644..100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/KdcFixtureTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/KdcFixtureTest.java @@@ -1,0 -1,42 +1,43 @@@ + /* + * 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; + + import org.junit.Test; + + /** + * Validates the {@code KdcFixture} behavior a bit - tests for a tests. + */ + public class KdcFixtureTest { + + @Test + public void shouldCloseCleanly() throws Exception { + final KdcFixture kdc; -final String buildDir = System.getProperty("build.dir"); -kdc = new KdcFixture(buildDir + - "/test-classes/org/apache/tinkerpop/gremlin/server/gremlin-console-jaas.conf"); ++final String moduleBaseDir = System.getProperty("basedir"); ++final String authConfigName = moduleBaseDir + "/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-console-jaas.conf"; ++System.setProperty("java.security.auth.login.config", authConfigName); ++kdc = new KdcFixture(moduleBaseDir); + kdc.setUp(); + + // deleting the principals will force an exception when they are deleted a second time on close + kdc.deletePrincipals(); + + // expect a clean shutdown despite failures that will come from trying to delete principals that aren't there + kdc.close(); + } + } diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/server/KdcFixture.java index aaa5e00,000..637bfe7 mode 100644,00..100644 --- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/server/KdcFixture.java +++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/server/KdcFixture.java @@@ -1,183 -1,0 +1,202 @@@ +/* + * 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; + +import org.apache.kerby.kerberos.kerb.KrbException; +import org.apache.kerby.kerberos.kerb.client.KrbClient; +import org.apache.kerby.kerberos.kerb.client.KrbConfig; +import org.apache.kerby.kerberos.kerb.client.KrbConfigKey; +import org.apache.kerby.kerberos.kerb.server.SimpleKdcServer; +import org.apache.kerby.kerberos.kerb.type.ticket.TgtTicket; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.net.Inet4Address; + + +/** + * This class is derived from the following classes from https://github.com/apache/directory-kerby/blob/kerby-all-1.0.0-RC2: + * - org.apache.kerby.kerberos.kerb.server.TestKdcServer + * - org.apache.kerby.kerberos.kerb.server.KdcTestBase + * - org.apache.kerby.kerberos.kerb.server.LoginTestBase + * + * See also: gremlin-server/src/main/static/NOTICE
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit f64c1f91decd19eecb75358220d7f7fd73bd6337 Merge: aea5d9a 7325846 Author: Stephen Mallette AuthorDate: Mon Nov 9 15:01:15 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../process/traversal/util/BytecodeHelper.java | 20 - .../process/traversal/util/BytecodeUtil.java | 3 + .../process/traversal/util/BytecodeHelperTest.java | 97 ++ .../process/traversal/util/BytecodeUtilTest.java | 62 -- .../driver/remote/DriverRemoteConnection.java | 4 +- 6 files changed, 121 insertions(+), 66 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit f64c1f91decd19eecb75358220d7f7fd73bd6337 Merge: aea5d9a 7325846 Author: Stephen Mallette AuthorDate: Mon Nov 9 15:01:15 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../process/traversal/util/BytecodeHelper.java | 20 - .../process/traversal/util/BytecodeUtil.java | 3 + .../process/traversal/util/BytecodeHelperTest.java | 97 ++ .../process/traversal/util/BytecodeUtilTest.java | 62 -- .../driver/remote/DriverRemoteConnection.java | 4 +- 6 files changed, 121 insertions(+), 66 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit f64c1f91decd19eecb75358220d7f7fd73bd6337 Merge: aea5d9a 7325846 Author: Stephen Mallette AuthorDate: Mon Nov 9 15:01:15 2020 -0500 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../process/traversal/util/BytecodeHelper.java | 20 - .../process/traversal/util/BytecodeUtil.java | 3 + .../process/traversal/util/BytecodeHelperTest.java | 97 ++ .../process/traversal/util/BytecodeUtilTest.java | 62 -- .../driver/remote/DriverRemoteConnection.java | 4 +- 6 files changed, 121 insertions(+), 66 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 25364f764ea9eea28e97df5eff5443e7b86b539f Merge: 2f5d57a 0024651 Author: Stephen Mallette AuthorDate: Mon Nov 9 08:57:19 2020 -0500 Merge branch '3.4-dev' .../apache/tinkerpop/gremlin/util/TestSupport.java | 69 ++ .../tinkerpop/gremlin/AbstractGraphProvider.java | 2 +- 2 files changed, 45 insertions(+), 26 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/TestSupport.java index 0f89200,ee10491..f6e29b3 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/TestSupport.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/TestSupport.java @@@ -25,7 -27,9 +25,8 @@@ import java.io.FileOutputStream import java.io.IOException; import java.io.InputStream; import java.net.URL; + import java.nio.file.Files; import java.util.List; -import java.util.Random; import java.util.stream.Collectors; import java.util.stream.Stream; @@@ -163,13 -171,27 +168,27 @@@ public class TestSupport final String resourceName, final String extension, final boolean overwrite) throws IOException { final File temp = makeTestDataPath(graphClass, "resources"); final File tempFile = new File(temp, resourceName + extension); - if (!tempFile.exists() || overwrite) { - try (final FileOutputStream outputStream = new FileOutputStream(tempFile)) { - int data; - try (final InputStream inputStream = resourceClass.getResourceAsStream(resourceName)) { - while ((data = inputStream.read()) != -1) { - outputStream.write(data); - } + + // these checks are present mostly for windows compatibility where an outputstream created on a non-existent -// file will cause an error. ++// file will cause an error. + if(tempFile.exists() && !overwrite){ + // overwrite is disabled and file already exists -> reuse as-is + return tempFile; + } + if(!tempFile.getParentFile().exists()){ + Files.createDirectories(tempFile.getParentFile().toPath()); + } + // either the file does not exist or needs to be overwritten, drop it + Files.deleteIfExists(tempFile.toPath()); + // create the new file + Files.createFile(tempFile.toPath()); + + // fill it with the desired contents + try (final FileOutputStream outputStream = new FileOutputStream(tempFile)) { + int data; + try (final InputStream inputStream = resourceClass.getResourceAsStream(resourceName)) { + while ((data = inputStream.read()) != -1) { + outputStream.write(data); } } }
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. divijv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ef096035e5060e75f0fb62bab3060872ceac77f6 Merge: 3707fcf ff56844 Author: Divij Vaidya AuthorDate: Mon Nov 2 10:40:49 2020 -0800 Merge branch '3.4-dev' CHANGELOG.asciidoc | 9 ++--- .../apache/tinkerpop/gremlin/driver/Cluster.java | 2 +- .../apache/tinkerpop/gremlin/driver/Handler.java | 2 +- .../apache/tinkerpop/gremlin/driver/ResultSet.java | 26 --- .../gremlin/driver/AbstractResultQueueTest.java| 11 ++- .../tinkerpop/gremlin/driver/ResultSetTest.java| 38 -- 6 files changed, 68 insertions(+), 20 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. divijv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ef096035e5060e75f0fb62bab3060872ceac77f6 Merge: 3707fcf ff56844 Author: Divij Vaidya AuthorDate: Mon Nov 2 10:40:49 2020 -0800 Merge branch '3.4-dev' CHANGELOG.asciidoc | 9 ++--- .../apache/tinkerpop/gremlin/driver/Cluster.java | 2 +- .../apache/tinkerpop/gremlin/driver/Handler.java | 2 +- .../apache/tinkerpop/gremlin/driver/ResultSet.java | 26 --- .../gremlin/driver/AbstractResultQueueTest.java| 11 ++- .../tinkerpop/gremlin/driver/ResultSetTest.java| 38 -- 6 files changed, 68 insertions(+), 20 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. divijv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ef096035e5060e75f0fb62bab3060872ceac77f6 Merge: 3707fcf ff56844 Author: Divij Vaidya AuthorDate: Mon Nov 2 10:40:49 2020 -0800 Merge branch '3.4-dev' CHANGELOG.asciidoc | 9 ++--- .../apache/tinkerpop/gremlin/driver/Cluster.java | 2 +- .../apache/tinkerpop/gremlin/driver/Handler.java | 2 +- .../apache/tinkerpop/gremlin/driver/ResultSet.java | 26 --- .../gremlin/driver/AbstractResultQueueTest.java| 11 ++- .../tinkerpop/gremlin/driver/ResultSetTest.java| 38 -- 6 files changed, 68 insertions(+), 20 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ec60bfb4365add655c3e8dab8e5f784a9752bc5d Merge: ea2783c fa7d877 Author: Stephen Mallette AuthorDate: Sat Oct 24 13:25:28 2020 -0400 Merge branch '3.4-dev' gremlin-python/src/main/jython/radish/utils.py | 40 ++ .../src/main/python/radish/feature_steps.py| 21 ++-- gremlin-python/src/main/python/radish/terrain.py | 21 ++-- 3 files changed, 44 insertions(+), 38 deletions(-) diff --cc gremlin-python/src/main/python/radish/feature_steps.py index 5b9808f,000..b45b576 mode 100644,00..100644 --- a/gremlin-python/src/main/python/radish/feature_steps.py +++ b/gremlin-python/src/main/python/radish/feature_steps.py @@@ -1,295 -1,0 +1,278 @@@ +# +# 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. +# + +import json +import re +from gremlin_python.statics import long +from gremlin_python.structure.graph import Path +from gremlin_python.process.anonymous_traversal import traversal +from gremlin_python.process.graph_traversal import __ +from gremlin_python.process.traversal import Barrier, Cardinality, P, TextP, Pop, Scope, Column, Order, Direction, T, Pick, Operator, IO, WithOptions - from radish import given, when, then ++from radish import given, when, then, world +from hamcrest import * + +regex_all = re.compile(r"Pop\.all") +regex_and = re.compile(r"([(.,\s])and\(") +regex_as = re.compile(r"([(.,\s])as\(") +regex_from = re.compile(r"([(.,\s])from\(") +regex_global = re.compile(r"([(.,\s])global") +regex_cardlist = re.compile(r"Cardinality\.list") +regex_in = re.compile(r"([(.,\s])in\(") +regex_is = re.compile(r"([(.,\s])is\(") +regex_not = re.compile(r"([(.,\s])not\(") +regex_or = re.compile(r"([(.,\s])or\(") +regex_with = re.compile(r"([(.,\s])with\(") +regex_true = re.compile(r"(true)") +regex_false = re.compile(r"(false)") +regex_null = re.compile(r"(null)") + +outV = __.outV +label = __.label +inV = __.inV +project = __.project +tail = __.tail + +ignores = [] + + +@given("the {graph_name:w} graph") +def choose_graph(step, graph_name): +step.context.graph_name = graph_name +step.context.g = traversal().withRemote(step.context.remote_conn[graph_name]) + + +@given("the graph initializer of") +def initialize_graph(step): +t = _make_traversal(step.context.g, step.text, {}) + +# just be sure that the traversal returns something to prove that it worked to some degree. probably +# is overkill to try to assert the complete success of this init operation. presumably the test +# suite would fail elsewhere if this didn't work which would help identify a problem. +result = t.toList() +assert len(result) > 0 + +# add the first result - if a map - to the bindings. this is useful for cases when parameters for +# the test traversal need to come from the original graph initializer (i.e. a new graph is created +# and you need the id of a vertex from that graph) + + +@given("an unsupported test") +def unsupported_scenario(step): +# this is a do nothing step as the test can't be supported for whatever reason +return + + +@given("using the parameter {param_name:w} defined as {param:QuotedString}") +def add_parameter(step, param_name, param): +if not hasattr(step.context, "traversal_params"): +step.context.traversal_params = {} + +step.context.traversal_params[param_name] = _convert(param.replace('\\"', '"'), step.context) + + +@given("the traversal of") +def translate_traversal(step): +step.context.ignore = ignores.__contains__(step.text) +step.context.traversal = _make_traversal( +step.context.g, step.text, +step.context.traversal_params if hasattr(step.context, "traversal_params") else {}) + + +@when("iterated to list") +def iterate_the_traversal(step): +if step.context.ignore: +return + +step.context.result = list(map(lambda x: _convert_results(x), step.context.traversal.toList())) + + +@when("iterated next") +def
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ea2783ce9296c75b2faba16170be515db01766b4 Merge: 7f0f927 40dc5aa Author: Stephen Mallette AuthorDate: Fri Oct 23 16:08:01 2020 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 2 ++ .../gremlin/process/traversal/Bindings.java| 5 +++- .../gremlin/process/traversal/Bytecode.java| 1 - .../gremlin/process/traversal/BytecodeTest.java| 33 +- .../gremlin_python/process/graph_traversal.py | 8 ++ 5 files changed, 40 insertions(+), 9 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 7f0f927424d68b85fa6bebb3850713603418d3ba Merge: eab8390 1101717 Author: Stephen Mallette AuthorDate: Fri Oct 23 15:34:36 2020 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../main/python/gremlin_python/process/graph_traversal.py | 3 +++ .../src/main/python/tests/process/test_traversal.py| 14 ++ 3 files changed, 18 insertions(+) diff --cc gremlin-python/src/main/python/tests/process/test_traversal.py index 653c56a,000..f731b84 mode 100644,00..100644 --- a/gremlin-python/src/main/python/tests/process/test_traversal.py +++ b/gremlin-python/src/main/python/tests/process/test_traversal.py @@@ -1,117 -1,0 +1,131 @@@ +# +# 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. +# + +__author__ = 'Marko A. Rodriguez (http://markorodriguez.com)' + ++from pytest import fail ++ +from gremlin_python.structure.graph import Graph +from gremlin_python.process.anonymous_traversal import traversal +from gremlin_python.process.traversal import P +from gremlin_python.process.traversal import Binding, Bindings +from gremlin_python.process.graph_traversal import __ + + +class TestTraversal(object): +def test_bytecode(self): +g = traversal().withGraph(Graph()) +bytecode = g.V().out("created").bytecode +assert 0 == len(bytecode.bindings.keys()) +assert 0 == len(bytecode.source_instructions) +assert 2 == len(bytecode.step_instructions) +assert "V" == bytecode.step_instructions[0][0] +assert "out" == bytecode.step_instructions[1][0] +assert "created" == bytecode.step_instructions[1][1] +assert 1 == len(bytecode.step_instructions[0]) +assert 2 == len(bytecode.step_instructions[1]) +## +bytecode = g.withSack(1).E().groupCount().by("weight").bytecode +assert 0 == len(bytecode.bindings.keys()) +assert 1 == len(bytecode.source_instructions) +assert "withSack" == bytecode.source_instructions[0][0] +assert 1 == bytecode.source_instructions[0][1] +assert 3 == len(bytecode.step_instructions) +assert "E" == bytecode.step_instructions[0][0] +assert "groupCount" == bytecode.step_instructions[1][0] +assert "by" == bytecode.step_instructions[2][0] +assert "weight" == bytecode.step_instructions[2][1] +assert 1 == len(bytecode.step_instructions[0]) +assert 1 == len(bytecode.step_instructions[1]) +assert 2 == len(bytecode.step_instructions[2]) +## +bytecode = g.V(Bindings.of('a', [1, 2, 3])) \ +.out(Bindings.of('b', 'created')) \ +.where(__.in_(Bindings.of('c', 'created'), Bindings.of('d', 'knows')) \ +.count().is_(Bindings.of('e', P.gt(2.bytecode +assert 5 == len(bytecode.bindings.keys()) +assert [1,2,3] == bytecode.bindings['a'] +assert 'created' == bytecode.bindings['b'] +assert 'created' == bytecode.bindings['c'] +assert 'knows' == bytecode.bindings['d'] +assert P.gt(2) == bytecode.bindings['e'] +assert Binding('b', 'created') == bytecode.step_instructions[1][1] +assert 'binding[b=created]' == str(bytecode.step_instructions[1][1]) +assert isinstance(hash(bytecode.step_instructions[1][1]), int) + +def test_P(self): +# verify that the order of operations is respected +assert "and(eq(a),lt(b))" == str(P.eq("a").and_(P.lt("b"))) +assert "and(or(lt(b),gt(c)),neq(d))" == str(P.lt("b").or_(P.gt("c")).and_(P.neq("d"))) +assert "and(or(lt(b),gt(c)),or(neq(d),gte(e)))" == str( +P.lt("b").or_(P.gt("c")).and_(P.neq("d").or_(P.gte("e" + +def test_anonymous_traversal(self): +bytecode = __.__(1).bytecode +assert 0 == len(bytecode.bindings.keys()) +assert 0 == len(bytecode.source_instructions) +assert 1 == len(bytecode.step_instructions) +assert "inject" ==
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit eab839047c77d73bb61c0ed0e4db4eac85a868a8 Merge: 42bca34 35871eb Author: Stephen Mallette AuthorDate: Wed Oct 21 06:42:21 2020 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../org/apache/tinkerpop/gremlin/driver/Channelizer.java | 16 ++-- 2 files changed, 15 insertions(+), 2 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. divijv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 42bca3420a854858fbe592f010679e4557527f3a Merge: ceb9925 1bca782 Author: Divij Vaidya AuthorDate: Tue Oct 20 15:48:02 2020 -0700 Merge branch '3.4-dev' CHANGELOG.asciidoc | 4 +- .../traversal/step/filter/PathFilterStep.java | 12 .../process/traversal/step/map/FoldStep.java | 4 ++ .../process/traversal/step/map/PathStep.java | 8 +++ .../traversal/step/sideEffect/AddPropertyStep.java | 4 ++ .../process/traversal/step/util/AbstractStep.java | 6 +- .../strategy/decoration/SideEffectStrategy.java| 13 .../process/traversal/util/DefaultTraversal.java | 3 +- .../traversal/util/TraversalExplanation.java | 4 +- .../tinkerpop/gremlin/driver/Channelizer.java | 22 +-- .../tinkerpop/gremlin/driver/Connection.java | 14 - .../driver/handler/WebSocketClientHandler.java | 52 ++-- .../gremlin/server/GremlinDriverIntegrateTest.java | 69 +- .../tinkerpop/gremlin/AbstractGremlinTest.java | 2 +- 14 files changed, 183 insertions(+), 34 deletions(-) diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java index cf68678,78b9a73..ac31c89 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java @@@ -18,24 -18,27 +18,25 @@@ */ package org.apache.tinkerpop.gremlin.driver; --import io.netty.channel.Channel; --import io.netty.handler.codec.http.EmptyHttpHeaders; --import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame; - import io.netty.handler.codec.http.websocketx.PingWebSocketFrame; import org.apache.tinkerpop.gremlin.driver.exception.ConnectionException; -import org.apache.tinkerpop.gremlin.driver.handler.NioGremlinRequestEncoder; -import org.apache.tinkerpop.gremlin.driver.handler.NioGremlinResponseDecoder; import org.apache.tinkerpop.gremlin.driver.handler.WebSocketClientHandler; import org.apache.tinkerpop.gremlin.driver.handler.WebSocketGremlinRequestEncoder; import org.apache.tinkerpop.gremlin.driver.handler.WebSocketGremlinResponseDecoder; ++import io.netty.channel.Channel; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; ++import io.netty.handler.codec.http.EmptyHttpHeaders; ++import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame; import io.netty.handler.codec.http.HttpClientCodec; import io.netty.handler.codec.http.HttpObjectAggregator; import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; import io.netty.handler.codec.http.websocketx.WebSocketVersion; import io.netty.handler.codec.http.websocketx.extensions.compression.WebSocketClientCompressionHandler; import io.netty.handler.ssl.SslContext; + import io.netty.handler.timeout.IdleStateHandler; -import org.apache.tinkerpop.gremlin.driver.simple.WebSocketClient; ++ import org.slf4j.Logger; import org.slf4j.LoggerFactory;
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. divijv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit ceb99257e87af870172bc0afbd62b6c1f8e50b99 Merge: db3f474 ae7894c Author: Divij Vaidya AuthorDate: Mon Oct 19 18:09:53 2020 -0700 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java | 7 +-- .../apache/tinkerpop/gremlin/driver/simple/WebSocketClient.java| 2 +- .../org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java | 1 + .../tinkerpop/gremlin/server/channel/WebSocketChannelizer.java | 5 - .../tinkerpop/gremlin/driver/ClientConnectionIntegrateTest.java| 2 +- .../tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java | 4 ++-- 7 files changed, 15 insertions(+), 7 deletions(-) diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java index c0ca725,bf60fda..cf68678 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java @@@ -34,7 -37,9 +34,8 @@@ import io.netty.handler.codec.http.Http import io.netty.handler.codec.http.HttpObjectAggregator; import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; import io.netty.handler.codec.http.websocketx.WebSocketVersion; + import io.netty.handler.codec.http.websocketx.extensions.compression.WebSocketClientCompressionHandler; import io.netty.handler.ssl.SslContext; -import org.apache.tinkerpop.gremlin.driver.simple.WebSocketClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/WebSocketClient.java index a66b701,8ef48b6..df1b0d4 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/WebSocketClient.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/WebSocketClient.java @@@ -64,8 -64,8 +64,8 @@@ public class WebSocketClient extends Ab try { final WebSocketClientHandler wsHandler = new WebSocketClientHandler(WebSocketClientHandshakerFactory.newHandshaker( - uri, WebSocketVersion.V13, null, false, EmptyHttpHeaders.INSTANCE, 65536), 1); + uri, WebSocketVersion.V13, null, true, EmptyHttpHeaders.INSTANCE, 65536), 1); -final MessageSerializer serializer = new GryoMessageSerializerV3d0(); +final MessageSerializer serializer = new GraphBinaryMessageSerializerV1(); b.channel(NioSocketChannel.class) .handler(new ChannelInitializer() { @Override
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit db3f47479ae9c5477d521f43cec6aa4700d456d1 Merge: e0fb809 2b1545e Author: Stephen Mallette AuthorDate: Mon Oct 19 13:42:37 2020 -0400 Merge branch '3.4-dev' .../org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java| 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --cc gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java index c937bcc,ec439fa..f7f773e --- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java +++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java @@@ -58,8 -58,7 +58,8 @@@ import java.util.function.UnaryOperator * * @author Marko A. Rodriguez (http://markorodriguez.com) * @author Stephen Mallette (http://stephen.genoprime.com) + * @author Stark Arya (sandszhou...@alibaba-inc.com) - * @deprecated As of release 3.4.9, moved to {@link org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator}. + * @deprecated As of release 3.4.9, moved to {@link org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator} in {@code gremlin-core}. */ @Deprecated public final class GroovyTranslator implements Translator.ScriptTranslator {
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit a1d58bac3c78bb54229e65795aa45f9efb518dc6 Merge: 9cf3b33 9d04503 Author: Stephen Mallette AuthorDate: Mon Oct 19 11:12:52 2020 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + docs/src/recipes/anti-patterns.asciidoc| 2 +- .../console/commands/BytecodeCommand.groovy| 2 +- .../traversal/translator/GroovyTranslator.java | 373 + .../traversal/translator/PythonTranslator.java | 371 .../traversal/translator/GroovyTranslatorTest.java | 307 + .../traversal/translator/PythonTranslatorTest.java | 107 ++ .../groovy/jsr223/GremlinGroovyScriptEngine.java | 6 +- .../groovy/jsr223/GroovyTranslatorProvider.java| 1 + .../GryoRemoteGraphGroovyTranslatorProvider.java | 2 +- 10 files changed, 1166 insertions(+), 6 deletions(-) diff --cc docs/src/recipes/anti-patterns.asciidoc index 16a623c,0d8f644..5567be4 --- a/docs/src/recipes/anti-patterns.asciidoc +++ b/docs/src/recipes/anti-patterns.asciidoc @@@ -56,7 -56,7 +56,7 @@@ for (relation in relations) from("p${relation.from}"). to("p${relation.to}") } ; [] - traversalAsString = org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyTranslator.of("g").translate(t.bytecode).getScript() ; [] -traversalAsString = org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator.of("g").translate(t.bytecode) ; [] ++traversalAsString = org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator.of("g").translate(t.bytecode).getScript() ; [] [ "Traversal String Length": traversalAsString.length() , "Traversal Preview": traversalAsString.replaceFirst(/^(.{104}).*(.{64})$/, '$1 ... $2') ] diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java index 000,1945e82..df7cfdd mode 00,100644..100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java @@@ -1,0 -1,280 +1,373 @@@ + /* - * 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 ++ * 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 ++ * 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. ++ * 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.process.traversal.translator; + -import org.apache.commons.configuration.ConfigurationConverter; -import org.apache.commons.lang.StringEscapeUtils; ++import org.apache.commons.configuration2.ConfigurationConverter; ++import org.apache.commons.text.StringEscapeUtils; + import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; + import org.apache.tinkerpop.gremlin.process.traversal.P; + import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions; ++import org.apache.tinkerpop.gremlin.process.traversal.Script; + import org.apache.tinkerpop.gremlin.process.traversal.TextP; + import org.apache.tinkerpop.gremlin.process.traversal.Translator; + import org.apache.tinkerpop.gremlin.process.traversal.Traversal; + import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource; + import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy; + import
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit b6d1cfea7031a5fe8f279d6167135a45c7d644be Merge: 71685f4 3097a74 Author: Stephen Mallette AuthorDate: Fri Oct 16 07:40:02 2020 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 3 +- .../jsr223/DriverRemoteAcceptorIntegrateTest.java | 15 +++ .../groovy/jsr223/ast/GremlinASTChecker.groovy | 128 + .../gremlin/groovy/engine/GremlinExecutor.java | 8 +- .../engine/GremlinExecutorOverGraphTest.java | 32 ++ .../groovy/jsr223/ast/GremlinASTCheckerTest.java | 83 + .../gremlin/server/GremlinDriverIntegrateTest.java | 10 +- .../server/GremlinServerAuthKrb5IntegrateTest.java | 13 +++ 8 files changed, 288 insertions(+), 4 deletions(-) diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java index b8e5f1e,1d49f35..922e7c3 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java @@@ -41,6 -41,8 +41,7 @@@ import org.apache.tinkerpop.gremlin.jsr import org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource; import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; -import org.apache.tinkerpop.gremlin.server.channel.NioChannelizer; + import org.apache.tinkerpop.gremlin.server.handler.OpExecutorHandler; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.io.Storage; import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex; @@@ -1410,9 -1450,10 +1418,9 @@@ public class GremlinDriverIntegrateTes @Test public void shouldAliasTraversalSourceVariables() throws Exception { -final Cluster cluster = TestClientFactory.open(); +final Cluster cluster = TestClientFactory.build().serializer(Serializers.GRYO_V3D0).create(); final Client client = cluster.connect(); - try { + try { - try { client.submit("g.addV().property('name','stephen')").all().get().get(0).getVertex(); fail("Should have tossed an exception because \"g\" is readonly in this context"); diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java index 476e962,985f90c..1486c1b --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java @@@ -52,14 -55,22 +53,22 @@@ public class GremlinServerAuthKrb5Integ static final String TESTCONSOLE_NOT_LOGGED_IN = "UserNotLoggedIn"; private KdcFixture kdcServer; + private Level previousLogLevel; -@Before @Override public void setUp() throws Exception { + // this logger is noisy for travis and we don't assert anything and the error is already tracked on + // the server so we can trim the logs a bit with this. + final org.apache.log4j.Logger handlerLogger = org.apache.log4j.Logger.getLogger( + "org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler"); + previousLogLevel = handlerLogger.getLevel(); + handlerLogger.setLevel(Level.OFF); + try { -final String buildDir = System.getProperty("build.dir"); -kdcServer = new KdcFixture(buildDir + - "/test-classes/org/apache/tinkerpop/gremlin/server/gremlin-console-jaas.conf"); +final String projectBaseDir = System.getProperty("basedir"); +final String authConfigName = projectBaseDir + "/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-console-jaas.conf"; +System.setProperty("java.security.auth.login.config", authConfigName); +kdcServer = new KdcFixture(projectBaseDir); kdcServer.setUp(); } catch(Exception e) { logger.warn(e.getMessage()); @@@ -67,11 -78,11 +76,15 @@@ super.setUp(); } -@After -public void teardownForEachTest() { +@Override +public void tearDown() throws Exception { + final org.apache.log4j.Logger handlerLogger = org.apache.log4j.Logger.getLogger( + "org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler"); + handlerLogger.setLevel(previousLogLevel); ++ +kdcServer.close(); +System.clearProperty("java.security.auth.login.config"); +super.tearDown(); } /**
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 71685f49f24f501aee2013919ac36006fdf24f9a Merge: 501e926 30dd4c6 Author: Stephen Mallette AuthorDate: Thu Oct 15 07:03:09 2020 -0400 Merge branch '3.4-dev' docs/src/recipes/looping.asciidoc | 36 +++- 1 file changed, 35 insertions(+), 1 deletion(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 501e926afd5dd956b2c2c823c5304978f732d54f Merge: 959af07 edaa482 Author: Stephen Mallette AuthorDate: Wed Oct 14 08:17:54 2020 -0400 Merge branch '3.4-dev' CHANGELOG.asciidoc | 4 +- .../gremlin-javascript/lib/process/bytecode.js | 5 +- .../gremlin-javascript/lib/process/traversal.js| 30 +-- .../gremlin-javascript/test/unit/bytecode-test.js | 59 ++ .../test/unit/translator-test.js | 7 +++ 5 files changed, 96 insertions(+), 9 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. divijv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 96e17a93a4aed3c6052139cd583ad839f3024f5c Merge: 33b740a b39de26 Author: Divij Vaidya AuthorDate: Thu Oct 8 19:55:36 2020 -0700 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-variants.asciidoc | 1 + .../tinkerpop/gremlin/driver/Channelizer.java | 16 ++-- .../apache/tinkerpop/gremlin/driver/Cluster.java | 26 +++ .../tinkerpop/gremlin/driver/Connection.java | 2 + .../apache/tinkerpop/gremlin/driver/Settings.java | 12 +++ .../driver/handler/WebSocketClientHandler.java | 90 ++ .../gremlin/driver/simple/WebSocketClient.java | 9 +-- .../gremlin/driver/ClusterBuilderTest.java | 1 + .../tinkerpop/gremlin/driver/SettingsTest.java | 2 + ...ebSocketServer.java => SimpleSocketServer.java} | 6 +- .../WebSocketClientBehaviorIntegrateTest.java | 10 +-- .../gremlin/server/GremlinDriverIntegrateTest.java | 32 13 files changed, 106 insertions(+), 102 deletions(-) diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java index 69a0725,0d5777f..6ff0427 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Channelizer.java @@@ -22,7 -22,10 +22,8 @@@ import io.netty.channel.Channel import io.netty.handler.codec.http.EmptyHttpHeaders; import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame; import io.netty.handler.codec.http.websocketx.PingWebSocketFrame; + import org.apache.commons.lang.exception.ExceptionUtils; import org.apache.tinkerpop.gremlin.driver.exception.ConnectionException; -import org.apache.tinkerpop.gremlin.driver.handler.NioGremlinRequestEncoder; -import org.apache.tinkerpop.gremlin.driver.handler.NioGremlinResponseDecoder; import org.apache.tinkerpop.gremlin.driver.handler.WebSocketClientHandler; import org.apache.tinkerpop.gremlin.driver.handler.WebSocketGremlinRequestEncoder; import org.apache.tinkerpop.gremlin.driver.handler.WebSocketGremlinResponseDecoder; diff --cc gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/WebSocketClient.java index b1a47a6,5dd0756..a66b701 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/WebSocketClient.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/WebSocketClient.java @@@ -64,11 -63,9 +63,9 @@@ public class WebSocketClient extends Ab throw new IllegalArgumentException("Unsupported protocol: " + protocol); try { - final WebSocketClientHandler wsHandler = - new WebSocketClientHandler( - WebSocketClientHandshakerFactory.newHandshaker( - uri, WebSocketVersion.V13, null, false, EmptyHttpHeaders.INSTANCE, 65536)); + final WebSocketClientHandler wsHandler = new WebSocketClientHandler(WebSocketClientHandshakerFactory.newHandshaker( + uri, WebSocketVersion.V13, null, false, EmptyHttpHeaders.INSTANCE, 65536), 1); -final MessageSerializer serializer = new GryoMessageSerializerV3d0(); +final MessageSerializer serializer = new GraphBinaryMessageSerializerV1(); b.channel(NioSocketChannel.class) .handler(new ChannelInitializer() { @Override
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. divijv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 33b740a18f4aafd88a976331441de3698ad5f440 Merge: 5d0dfd2 1ad70e1 Author: Divij Vaidya AuthorDate: Thu Oct 8 17:38:56 2020 -0700 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../server/handler/HttpGremlinEndpointHandler.java | 133 +++-- 2 files changed, 71 insertions(+), 63 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. divijv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 33b740a18f4aafd88a976331441de3698ad5f440 Merge: 5d0dfd2 1ad70e1 Author: Divij Vaidya AuthorDate: Thu Oct 8 17:38:56 2020 -0700 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../server/handler/HttpGremlinEndpointHandler.java | 133 +++-- 2 files changed, 71 insertions(+), 63 deletions(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. divijv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 5d0dfd283ff337f0b160976f71c5d721a5c0f080 Merge: 652b730 a454d52 Author: Divij Vaidya AuthorDate: Thu Oct 8 15:55:27 2020 -0700 Merge branch '3.4-dev' CHANGELOG.asciidoc | 1 + .../apache/tinkerpop/gremlin/server/op/AbstractOpProcessor.java | 9 + .../gremlin/server/op/traversal/TraversalOpProcessor.java| 7 +++ 3 files changed, 17 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 652b7300402d02d4e5e4fe3c6784d8d14cfb46f2 Merge: 7253610 ff81887 Author: Stephen Mallette AuthorDate: Thu Oct 8 08:41:30 2020 -0400 Merge branch '3.4-dev' .../java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java | 1 - 1 file changed, 1 deletion(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 7253610e45c5b6ee556b6dca1163ce006d08a6dd Merge: 959042b c3a732b Author: Stephen Mallette AuthorDate: Thu Oct 8 07:01:04 2020 -0400 Merge branch '3.4-dev' docker/build.sh| 2 +- docs/src/recipes/index.asciidoc| 4 + docs/src/recipes/looping.asciidoc | 102 + .../recipes/operating-on-dropped-elements.asciidoc | 39 docs/src/reference/the-traversal.asciidoc | 4 + 5 files changed, 150 insertions(+), 1 deletion(-)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 959042bb91129b10c3c7bacfe3fa552675f8fdd4 Merge: 04c01dc 42decaf Author: Stephen Mallette AuthorDate: Tue Oct 6 08:03:30 2020 -0400 Merge branch '3.4-dev' .gitignore | 1 + pom.xml| 1 + 2 files changed, 2 insertions(+)
[tinkerpop] 01/01: Merge branch '3.4-dev'
This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 04c01dc5e86a675ee800ef91ef420e66cf697a54 Merge: b66805c 60f65e6 Author: Stephen Mallette AuthorDate: Tue Oct 6 06:31:35 2020 -0400 Merge branch '3.4-dev' .../tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)