tinkerpop git commit: TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue
Repository: tinkerpop Updated Branches: refs/heads/tp32 0426797a5 -> 207c660a1 TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/207c660a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/207c660a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/207c660a Branch: refs/heads/tp32 Commit: 207c660a17a45df79c154720ba088d1852d80b4e Parents: 0426797 Author: Stephen Mallette Authored: Thu Sep 20 16:25:34 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 21:39:19 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 23 +++- 2 files changed, 14 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index c1e8b56..9431d98 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -31,6 +31,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Fixed bug in traversals that used Python lambdas with strategies in `gremlin-python`. * Modified Maven archetype for Gremlin Server to use remote traversals rather than scripts. * Added an system error code for failed plugin installs for Gremlin Server `-i` option. +* Fixed bug in keep-alive requests from over-queuing cancelled jobs. * Match numbers in `choose()` options using `NumberHelper` (match values, ignore data type). * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java -- diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java index 33ff574..9adaaa1 100644 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java @@ -62,6 +62,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -703,7 +704,7 @@ public final class Cluster { this.keyPassword = keyPassword; return this; } - + /** * The file location of the private key in JKS or PKCS#12 format. */ @@ -711,7 +712,7 @@ public final class Cluster { this.keyStore = keyStore; return this; } - + /** * The password of the {@link #keyStore}, or {@code null} if it's not password-protected. */ @@ -719,7 +720,7 @@ public final class Cluster { this.keyStorePassword = keyStorePassword; return this; } - + /** * The file location for a SSL Certificate Chain to use when SSL is enabled. If * this value is not provided and SSL is enabled, the default {@link TrustManager} will be used. @@ -728,7 +729,7 @@ public final class Cluster { this.trustStore = trustStore; return this; } - + /** * The password of the {@link #trustStore}, or {@code null} if it's not password-protected. */ @@ -736,7 +737,7 @@ public final class Cluster { this.trustStorePassword = trustStorePassword; return this; } - + /** * The format of the {@link #keyStore}, either {@code JKS} or {@code PKCS12} */ @@ -744,7 +745,7 @@ public final class Cluster { this.keyStoreType = keyStoreType; return this; } - + /** * A list of SSL protocols to enable. @see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunJSSE_Protocols;>JSSE @@ -754,7 +755,7 @@ public final class Cluster { this.sslEnabledProtocols = sslEnabledProtocols; return this; } - + /** * A list of cipher suites to enable. @see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SupportedCipherSuites;>Cipher @@ -764,7 +765,7 @@ public final class Cluster {
[1/2] tinkerpop git commit: TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue
Repository: tinkerpop Updated Branches: refs/heads/tp33 bf79a49a0 -> 957347fe7 TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/207c660a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/207c660a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/207c660a Branch: refs/heads/tp33 Commit: 207c660a17a45df79c154720ba088d1852d80b4e Parents: 0426797 Author: Stephen Mallette Authored: Thu Sep 20 16:25:34 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 21:39:19 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 23 +++- 2 files changed, 14 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index c1e8b56..9431d98 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -31,6 +31,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Fixed bug in traversals that used Python lambdas with strategies in `gremlin-python`. * Modified Maven archetype for Gremlin Server to use remote traversals rather than scripts. * Added an system error code for failed plugin installs for Gremlin Server `-i` option. +* Fixed bug in keep-alive requests from over-queuing cancelled jobs. * Match numbers in `choose()` options using `NumberHelper` (match values, ignore data type). * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java -- diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java index 33ff574..9adaaa1 100644 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java @@ -62,6 +62,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -703,7 +704,7 @@ public final class Cluster { this.keyPassword = keyPassword; return this; } - + /** * The file location of the private key in JKS or PKCS#12 format. */ @@ -711,7 +712,7 @@ public final class Cluster { this.keyStore = keyStore; return this; } - + /** * The password of the {@link #keyStore}, or {@code null} if it's not password-protected. */ @@ -719,7 +720,7 @@ public final class Cluster { this.keyStorePassword = keyStorePassword; return this; } - + /** * The file location for a SSL Certificate Chain to use when SSL is enabled. If * this value is not provided and SSL is enabled, the default {@link TrustManager} will be used. @@ -728,7 +729,7 @@ public final class Cluster { this.trustStore = trustStore; return this; } - + /** * The password of the {@link #trustStore}, or {@code null} if it's not password-protected. */ @@ -736,7 +737,7 @@ public final class Cluster { this.trustStorePassword = trustStorePassword; return this; } - + /** * The format of the {@link #keyStore}, either {@code JKS} or {@code PKCS12} */ @@ -744,7 +745,7 @@ public final class Cluster { this.keyStoreType = keyStoreType; return this; } - + /** * A list of SSL protocols to enable. @see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunJSSE_Protocols;>JSSE @@ -754,7 +755,7 @@ public final class Cluster { this.sslEnabledProtocols = sslEnabledProtocols; return this; } - + /** * A list of cipher suites to enable. @see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SupportedCipherSuites;>Cipher @@ -764,7 +765,7 @@ public final class Cluster {
[1/3] tinkerpop git commit: TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue
Repository: tinkerpop Updated Branches: refs/heads/master 8b5a437a6 -> cce3fe60e TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/207c660a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/207c660a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/207c660a Branch: refs/heads/master Commit: 207c660a17a45df79c154720ba088d1852d80b4e Parents: 0426797 Author: Stephen Mallette Authored: Thu Sep 20 16:25:34 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 21:39:19 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 23 +++- 2 files changed, 14 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index c1e8b56..9431d98 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -31,6 +31,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Fixed bug in traversals that used Python lambdas with strategies in `gremlin-python`. * Modified Maven archetype for Gremlin Server to use remote traversals rather than scripts. * Added an system error code for failed plugin installs for Gremlin Server `-i` option. +* Fixed bug in keep-alive requests from over-queuing cancelled jobs. * Match numbers in `choose()` options using `NumberHelper` (match values, ignore data type). * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java -- diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java index 33ff574..9adaaa1 100644 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java @@ -62,6 +62,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -703,7 +704,7 @@ public final class Cluster { this.keyPassword = keyPassword; return this; } - + /** * The file location of the private key in JKS or PKCS#12 format. */ @@ -711,7 +712,7 @@ public final class Cluster { this.keyStore = keyStore; return this; } - + /** * The password of the {@link #keyStore}, or {@code null} if it's not password-protected. */ @@ -719,7 +720,7 @@ public final class Cluster { this.keyStorePassword = keyStorePassword; return this; } - + /** * The file location for a SSL Certificate Chain to use when SSL is enabled. If * this value is not provided and SSL is enabled, the default {@link TrustManager} will be used. @@ -728,7 +729,7 @@ public final class Cluster { this.trustStore = trustStore; return this; } - + /** * The password of the {@link #trustStore}, or {@code null} if it's not password-protected. */ @@ -736,7 +737,7 @@ public final class Cluster { this.trustStorePassword = trustStorePassword; return this; } - + /** * The format of the {@link #keyStore}, either {@code JKS} or {@code PKCS12} */ @@ -744,7 +745,7 @@ public final class Cluster { this.keyStoreType = keyStoreType; return this; } - + /** * A list of SSL protocols to enable. @see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunJSSE_Protocols;>JSSE @@ -754,7 +755,7 @@ public final class Cluster { this.sslEnabledProtocols = sslEnabledProtocols; return this; } - + /** * A list of cipher suites to enable. @see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SupportedCipherSuites;>Cipher @@ -764,7 +765,7 @@ public final class Cluster {
[2/2] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/957347fe Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/957347fe Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/957347fe Branch: refs/heads/tp33 Commit: 957347fe762add09147de2ea6a2d30156fd2ad85 Parents: bf79a49 207c660 Author: Stephen Mallette Authored: Fri Sep 21 21:41:01 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 21:41:01 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 23 +++- 2 files changed, 14 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/957347fe/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/957347fe/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java --
[2/3] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/957347fe Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/957347fe Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/957347fe Branch: refs/heads/master Commit: 957347fe762add09147de2ea6a2d30156fd2ad85 Parents: bf79a49 207c660 Author: Stephen Mallette Authored: Fri Sep 21 21:41:01 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 21:41:01 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 23 +++- 2 files changed, 14 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/957347fe/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/957347fe/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java --
[3/3] tinkerpop git commit: Merge branch 'tp33'
Merge branch 'tp33' Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/cce3fe60 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/cce3fe60 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/cce3fe60 Branch: refs/heads/master Commit: cce3fe60e00a9d52900369541e7e4e779402c018 Parents: 8b5a437 957347f Author: Stephen Mallette Authored: Fri Sep 21 21:41:09 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 21:41:09 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 23 +++- 2 files changed, 14 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cce3fe60/CHANGELOG.asciidoc --
[2/4] tinkerpop git commit: Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32
Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4bdf0d21 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4bdf0d21 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4bdf0d21 Branch: refs/heads/TINKERPOP-2030 Commit: 4bdf0d212af4eba5f841ce27e751dfd9f1b8a9bc Parents: af73f45 4965803 Author: Stephen Mallette Authored: Fri Sep 21 15:12:29 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:12:29 2018 -0400 -- .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) --
[1/4] tinkerpop git commit: Make closing of connections robust TINKERPOP-2026 [Forced Update!]
Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-2030 564236ed6 -> 207c660a1 (forced update) Make closing of connections robust TINKERPOP-2026 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4965803a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4965803a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4965803a Branch: refs/heads/TINKERPOP-2030 Commit: 4965803ae8e9283817e0171e1c463014c9166970 Parents: 3afc576 Author: Florian Hockmann Authored: Sat Sep 1 17:02:23 2018 +0200 Committer: Florian Hockmann Committed: Sat Sep 1 17:02:23 2018 +0200 -- .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4965803a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs index 9672606..b5a4cc8 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs @@ -43,11 +43,24 @@ namespace Gremlin.Net.Driver public async Task CloseAsync() { -await -_client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None) -.ConfigureAwait(false); +if (CloseAlreadyInitiated) return; + +try +{ +await +_client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None) +.ConfigureAwait(false); +} +catch (Exception) +{ +// Swallow exceptions silently as there is nothing to do when closing fails +} } +private bool CloseAlreadyInitiated => _client.State == WebSocketState.Closed || +_client.State == WebSocketState.Aborted || +_client.State == WebSocketState.CloseSent; + public async Task SendMessageAsync(byte[] message) { await
[3/4] tinkerpop git commit: Updated changelog CTR
Updated changelog CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0426797a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0426797a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0426797a Branch: refs/heads/TINKERPOP-2030 Commit: 0426797a5a3da5b05a35cbbf075dc4100d5d5412 Parents: 4bdf0d2 Author: Stephen Mallette Authored: Fri Sep 21 15:15:50 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:15:50 2018 -0400 -- CHANGELOG.asciidoc | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0426797a/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 948f8df..c1e8b56 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -46,6 +46,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Fixed bug in `branch()` where reducing steps as options would produce incorrect results. * Removed recursive handling of streaming results from Gremlin-Python driver to avoid max recursion depth errors. * Improved performance of `TraversalVertexProgram` and related infrastructure. +* Checked web socket state before closing connection in the .NET driver. * Deprecated `BulkLoaderVertexProgram` and related infrastructure. * Deprecated `BulkDumperVertexProgram` with the more aptly named `CloneVertexProgram`. * Added `createGratefulDead()` to `TinkerFactory` to help make it easier to try to instantiate that toy graph.
[4/4] tinkerpop git commit: TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue
TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/207c660a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/207c660a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/207c660a Branch: refs/heads/TINKERPOP-2030 Commit: 207c660a17a45df79c154720ba088d1852d80b4e Parents: 0426797 Author: Stephen Mallette Authored: Thu Sep 20 16:25:34 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 21:39:19 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 23 +++- 2 files changed, 14 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index c1e8b56..9431d98 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -31,6 +31,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Fixed bug in traversals that used Python lambdas with strategies in `gremlin-python`. * Modified Maven archetype for Gremlin Server to use remote traversals rather than scripts. * Added an system error code for failed plugin installs for Gremlin Server `-i` option. +* Fixed bug in keep-alive requests from over-queuing cancelled jobs. * Match numbers in `choose()` options using `NumberHelper` (match values, ignore data type). * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java -- diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java index 33ff574..9adaaa1 100644 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java @@ -62,6 +62,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -703,7 +704,7 @@ public final class Cluster { this.keyPassword = keyPassword; return this; } - + /** * The file location of the private key in JKS or PKCS#12 format. */ @@ -711,7 +712,7 @@ public final class Cluster { this.keyStore = keyStore; return this; } - + /** * The password of the {@link #keyStore}, or {@code null} if it's not password-protected. */ @@ -719,7 +720,7 @@ public final class Cluster { this.keyStorePassword = keyStorePassword; return this; } - + /** * The file location for a SSL Certificate Chain to use when SSL is enabled. If * this value is not provided and SSL is enabled, the default {@link TrustManager} will be used. @@ -728,7 +729,7 @@ public final class Cluster { this.trustStore = trustStore; return this; } - + /** * The password of the {@link #trustStore}, or {@code null} if it's not password-protected. */ @@ -736,7 +737,7 @@ public final class Cluster { this.trustStorePassword = trustStorePassword; return this; } - + /** * The format of the {@link #keyStore}, either {@code JKS} or {@code PKCS12} */ @@ -744,7 +745,7 @@ public final class Cluster { this.keyStoreType = keyStoreType; return this; } - + /** * A list of SSL protocols to enable. @see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunJSSE_Protocols;>JSSE @@ -754,7 +755,7 @@ public final class Cluster { this.sslEnabledProtocols = sslEnabledProtocols; return this; } - + /** * A list of cipher suites to enable. @see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SupportedCipherSuites;>Cipher @@ -764,7 +765,7 @@ public final class Cluster { this.sslCipherSuites = sslCipherSuites; return this; } -
[3/4] tinkerpop git commit: Updated changelog CTR
Updated changelog CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0426797a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0426797a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0426797a Branch: refs/heads/tp33 Commit: 0426797a5a3da5b05a35cbbf075dc4100d5d5412 Parents: 4bdf0d2 Author: Stephen Mallette Authored: Fri Sep 21 15:15:50 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:15:50 2018 -0400 -- CHANGELOG.asciidoc | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0426797a/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 948f8df..c1e8b56 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -46,6 +46,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Fixed bug in `branch()` where reducing steps as options would produce incorrect results. * Removed recursive handling of streaming results from Gremlin-Python driver to avoid max recursion depth errors. * Improved performance of `TraversalVertexProgram` and related infrastructure. +* Checked web socket state before closing connection in the .NET driver. * Deprecated `BulkLoaderVertexProgram` and related infrastructure. * Deprecated `BulkDumperVertexProgram` with the more aptly named `CloneVertexProgram`. * Added `createGratefulDead()` to `TinkerFactory` to help make it easier to try to instantiate that toy graph.
[3/3] tinkerpop git commit: Updated changelog CTR
Updated changelog CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0426797a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0426797a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0426797a Branch: refs/heads/tp32 Commit: 0426797a5a3da5b05a35cbbf075dc4100d5d5412 Parents: 4bdf0d2 Author: Stephen Mallette Authored: Fri Sep 21 15:15:50 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:15:50 2018 -0400 -- CHANGELOG.asciidoc | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0426797a/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 948f8df..c1e8b56 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -46,6 +46,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Fixed bug in `branch()` where reducing steps as options would produce incorrect results. * Removed recursive handling of streaming results from Gremlin-Python driver to avoid max recursion depth errors. * Improved performance of `TraversalVertexProgram` and related infrastructure. +* Checked web socket state before closing connection in the .NET driver. * Deprecated `BulkLoaderVertexProgram` and related infrastructure. * Deprecated `BulkDumperVertexProgram` with the more aptly named `CloneVertexProgram`. * Added `createGratefulDead()` to `TinkerFactory` to help make it easier to try to instantiate that toy graph.
[3/5] tinkerpop git commit: Updated changelog CTR
Updated changelog CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0426797a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0426797a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0426797a Branch: refs/heads/master Commit: 0426797a5a3da5b05a35cbbf075dc4100d5d5412 Parents: 4bdf0d2 Author: Stephen Mallette Authored: Fri Sep 21 15:15:50 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:15:50 2018 -0400 -- CHANGELOG.asciidoc | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0426797a/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 948f8df..c1e8b56 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -46,6 +46,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Fixed bug in `branch()` where reducing steps as options would produce incorrect results. * Removed recursive handling of streaming results from Gremlin-Python driver to avoid max recursion depth errors. * Improved performance of `TraversalVertexProgram` and related infrastructure. +* Checked web socket state before closing connection in the .NET driver. * Deprecated `BulkLoaderVertexProgram` and related infrastructure. * Deprecated `BulkDumperVertexProgram` with the more aptly named `CloneVertexProgram`. * Added `createGratefulDead()` to `TinkerFactory` to help make it easier to try to instantiate that toy graph.
[5/5] tinkerpop git commit: Merge branch 'tp33'
Merge branch 'tp33' Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/8b5a437a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8b5a437a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8b5a437a Branch: refs/heads/master Commit: 8b5a437a6c4dbf92a7200558af51914d3700baca Parents: 0af451e bf79a49 Author: Stephen Mallette Authored: Fri Sep 21 15:38:03 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:38:03 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 2 files changed, 17 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8b5a437a/CHANGELOG.asciidoc --
[4/4] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/bf79a49a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/bf79a49a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/bf79a49a Branch: refs/heads/tp33 Commit: bf79a49a06c6af836d989a81f847408debc3473b Parents: 84777d4 0426797 Author: Stephen Mallette Authored: Fri Sep 21 15:37:55 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:37:55 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 2 files changed, 17 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bf79a49a/CHANGELOG.asciidoc --
[2/5] tinkerpop git commit: Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32
Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4bdf0d21 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4bdf0d21 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4bdf0d21 Branch: refs/heads/master Commit: 4bdf0d212af4eba5f841ce27e751dfd9f1b8a9bc Parents: af73f45 4965803 Author: Stephen Mallette Authored: Fri Sep 21 15:12:29 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:12:29 2018 -0400 -- .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) --
[1/5] tinkerpop git commit: Make closing of connections robust TINKERPOP-2026
Repository: tinkerpop Updated Branches: refs/heads/master 0af451edd -> 8b5a437a6 Make closing of connections robust TINKERPOP-2026 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4965803a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4965803a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4965803a Branch: refs/heads/master Commit: 4965803ae8e9283817e0171e1c463014c9166970 Parents: 3afc576 Author: Florian Hockmann Authored: Sat Sep 1 17:02:23 2018 +0200 Committer: Florian Hockmann Committed: Sat Sep 1 17:02:23 2018 +0200 -- .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4965803a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs index 9672606..b5a4cc8 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs @@ -43,11 +43,24 @@ namespace Gremlin.Net.Driver public async Task CloseAsync() { -await -_client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None) -.ConfigureAwait(false); +if (CloseAlreadyInitiated) return; + +try +{ +await +_client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None) +.ConfigureAwait(false); +} +catch (Exception) +{ +// Swallow exceptions silently as there is nothing to do when closing fails +} } +private bool CloseAlreadyInitiated => _client.State == WebSocketState.Closed || +_client.State == WebSocketState.Aborted || +_client.State == WebSocketState.CloseSent; + public async Task SendMessageAsync(byte[] message) { await
[2/4] tinkerpop git commit: Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32
Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4bdf0d21 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4bdf0d21 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4bdf0d21 Branch: refs/heads/tp33 Commit: 4bdf0d212af4eba5f841ce27e751dfd9f1b8a9bc Parents: af73f45 4965803 Author: Stephen Mallette Authored: Fri Sep 21 15:12:29 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:12:29 2018 -0400 -- .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) --
[4/5] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/bf79a49a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/bf79a49a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/bf79a49a Branch: refs/heads/master Commit: bf79a49a06c6af836d989a81f847408debc3473b Parents: 84777d4 0426797 Author: Stephen Mallette Authored: Fri Sep 21 15:37:55 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:37:55 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 2 files changed, 17 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bf79a49a/CHANGELOG.asciidoc --
[1/4] tinkerpop git commit: Make closing of connections robust TINKERPOP-2026
Repository: tinkerpop Updated Branches: refs/heads/tp33 84777d4a0 -> bf79a49a0 Make closing of connections robust TINKERPOP-2026 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4965803a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4965803a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4965803a Branch: refs/heads/tp33 Commit: 4965803ae8e9283817e0171e1c463014c9166970 Parents: 3afc576 Author: Florian Hockmann Authored: Sat Sep 1 17:02:23 2018 +0200 Committer: Florian Hockmann Committed: Sat Sep 1 17:02:23 2018 +0200 -- .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4965803a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs index 9672606..b5a4cc8 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs @@ -43,11 +43,24 @@ namespace Gremlin.Net.Driver public async Task CloseAsync() { -await -_client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None) -.ConfigureAwait(false); +if (CloseAlreadyInitiated) return; + +try +{ +await +_client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None) +.ConfigureAwait(false); +} +catch (Exception) +{ +// Swallow exceptions silently as there is nothing to do when closing fails +} } +private bool CloseAlreadyInitiated => _client.State == WebSocketState.Closed || +_client.State == WebSocketState.Aborted || +_client.State == WebSocketState.CloseSent; + public async Task SendMessageAsync(byte[] message) { await
[2/3] tinkerpop git commit: Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32
Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4bdf0d21 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4bdf0d21 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4bdf0d21 Branch: refs/heads/tp32 Commit: 4bdf0d212af4eba5f841ce27e751dfd9f1b8a9bc Parents: af73f45 4965803 Author: Stephen Mallette Authored: Fri Sep 21 15:12:29 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:12:29 2018 -0400 -- .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) --
[1/3] tinkerpop git commit: Make closing of connections robust TINKERPOP-2026
Repository: tinkerpop Updated Branches: refs/heads/tp32 af73f45ad -> 0426797a5 Make closing of connections robust TINKERPOP-2026 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4965803a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4965803a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4965803a Branch: refs/heads/tp32 Commit: 4965803ae8e9283817e0171e1c463014c9166970 Parents: 3afc576 Author: Florian Hockmann Authored: Sat Sep 1 17:02:23 2018 +0200 Committer: Florian Hockmann Committed: Sat Sep 1 17:02:23 2018 +0200 -- .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4965803a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs index 9672606..b5a4cc8 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs @@ -43,11 +43,24 @@ namespace Gremlin.Net.Driver public async Task CloseAsync() { -await -_client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None) -.ConfigureAwait(false); +if (CloseAlreadyInitiated) return; + +try +{ +await +_client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None) +.ConfigureAwait(false); +} +catch (Exception) +{ +// Swallow exceptions silently as there is nothing to do when closing fails +} } +private bool CloseAlreadyInitiated => _client.State == WebSocketState.Closed || +_client.State == WebSocketState.Aborted || +_client.State == WebSocketState.CloseSent; + public async Task SendMessageAsync(byte[] message) { await
tinkerpop git commit: Exposed some helper methods in IoStep CTR
Repository: tinkerpop Updated Branches: refs/heads/master 459174b62 -> 0af451edd Exposed some helper methods in IoStep CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0af451ed Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0af451ed Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0af451ed Branch: refs/heads/master Commit: 0af451edd355f5e2e164044ca715b5b63694b20c Parents: 459174b Author: Stephen Mallette Authored: Fri Sep 21 15:10:38 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:10:38 2018 -0400 -- .../gremlin/process/traversal/step/sideEffect/IoStep.java| 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0af451ed/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/IoStep.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/IoStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/IoStep.java index efd4240..861b318 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/IoStep.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/IoStep.java @@ -205,7 +205,7 @@ public class IoStep extends AbstractStep implements ReadWriting { } } -private String detectFileType() { +protected String detectFileType() { if (file.endsWith(".kryo")) return IO.gryo; else if (file.endsWith(".json")) @@ -216,7 +216,7 @@ public class IoStep extends AbstractStep implements ReadWriting { throw new IllegalStateException("Could not detect the file format - specify the writer explicitly or rename file with a standard extension"); } -private List detectRegistries() { +protected List detectRegistries() { final List k = parameters.get(IO.registry, null); return k.stream().map(cn -> { try {