From commits-return-38535-archive-asf-public=cust-asf.ponee.io@tinkerpop.apache.org Tue Dec 10 12:35:04 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id CF89B1806C9 for ; Tue, 10 Dec 2019 13:35:02 +0100 (CET) Received: (qmail 10317 invoked by uid 500); 10 Dec 2019 12:35:02 -0000 Mailing-List: contact commits-help@tinkerpop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@tinkerpop.apache.org Delivered-To: mailing list commits@tinkerpop.apache.org Received: (qmail 10016 invoked by uid 99); 10 Dec 2019 12:35:01 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Dec 2019 12:35:01 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 6F4C88D81F; Tue, 10 Dec 2019 12:35:01 +0000 (UTC) Date: Tue, 10 Dec 2019 12:35:13 +0000 To: "commits@tinkerpop.apache.org" Subject: [tinkerpop] 13/18: Refactored WebSocketIdleEventHandler into the WebSocketClientHandler MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit From: spmallette@apache.org In-Reply-To: <157598130075.23902.12837180230963359046@gitbox.apache.org> References: <157598130075.23902.12837180230963359046@gitbox.apache.org> X-Git-Host: gitbox.apache.org X-Git-Repo: tinkerpop X-Git-Refname: refs/heads/driver-35 X-Git-Reftype: branch X-Git-Rev: 804d4c9b77d3892a9821e01e98fea886ba5189ae X-Git-NotificationType: diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated Message-Id: <20191210123501.6F4C88D81F@gitbox.apache.org> This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch driver-35 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git commit 804d4c9b77d3892a9821e01e98fea886ba5189ae Author: stephen AuthorDate: Fri Dec 6 14:08:22 2019 -0500 Refactored WebSocketIdleEventHandler into the WebSocketClientHandler Not sure why this was done as two separate things really in the first place. --- CHANGELOG.asciidoc | 1 + docs/src/upgrade/release-3.5.x.asciidoc | 5 +- .../tinkerpop/gremlin/driver/Channelizer.java | 7 +-- .../driver/handler/WebSocketClientHandler.java | 22 +++++++- .../driver/handler/WebSocketIdleEventHandler.java | 58 ---------------------- .../driver/handler/WebsocketCloseHandler.java | 2 - .../gremlin/driver/simple/WebSocketClient.java | 5 +- ...ClientSingleRequestConnectionIntegrateTest.java | 2 - 8 files changed, 31 insertions(+), 71 deletions(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index b45630b..beb649d 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -32,6 +32,7 @@ This release also includes changes from <>. * Refactored `MapStep` to move its logic to `ScalarMapStep` so that the old behavior could be preserved while allow other implementations to have more flexibility. * Modified TinkerGraph to support `null` property values and can be configured to disable that feature. * Refactored the Java driver to use one connection per request. +* Refactored functionality of `WebSocketIdleEventHandler` into the `WebSocketClientHandler`. * Modified `null` handling in mutations to be consistent for a new `Vertex` as well as update to an existing one. * Upgraded to Apache Commons Configuration2. * Renamed `StoreStep` to `AggregateLocalStep`. diff --git a/docs/src/upgrade/release-3.5.x.asciidoc b/docs/src/upgrade/release-3.5.x.asciidoc index 3d2297a..3559464 100644 --- a/docs/src/upgrade/release-3.5.x.asciidoc +++ b/docs/src/upgrade/release-3.5.x.asciidoc @@ -257,9 +257,10 @@ The following deprecated classes, methods or fields have been removed in this ve ** `org.apache.tinkerpop.gremlin.neo4j.structure.trait.NoMultiNoMetaNeo4jTrait` ** `org.apache.tinkerpop.gremlin.neo4j.structure.trait.Neo4jTrait` -Certain elements of the API were not or could not be deprecated in prior versions and were simply renamed for this -release: +Certain elements of the API were not or could not be deprecated in prior versions and were simply renamed or removed +for this release: +* `org.apache.tinkerpop.gremlin.driver.handler.WebSocketIdleEventHandler` * `org.apache.tinkerpop.gremlin.driver.message.ResponseStatusCode#SERVER_ERROR_SCRIPT_EVALUATION` became `SERVER_ERROR_EVALUATION` See: link:https://issues.apache.org/jira/browse/TINKERPOP-2080[TINKERPOP-2080], diff --git 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 index 723c1c5..4b4d426 100644 --- 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 @@ -37,7 +37,6 @@ 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 org.apache.tinkerpop.gremlin.driver.handler.WebSocketIdleEventHandler; import org.apache.tinkerpop.gremlin.driver.handler.WebsocketCloseHandler; import java.util.Optional; @@ -173,7 +172,6 @@ public interface Channelizer extends ChannelHandler { private WebSocketGremlinRequestEncoder webSocketGremlinRequestEncoder; private WebSocketGremlinResponseDecoder webSocketGremlinResponseDecoder; - private WebSocketIdleEventHandler webSocketIdleEventHandler; @Override public void init(Connection connection) { @@ -185,7 +183,6 @@ public interface Channelizer extends ChannelHandler { super.init(connpool); webSocketGremlinRequestEncoder = new WebSocketGremlinRequestEncoder(true, cluster.getSerializer()); webSocketGremlinResponseDecoder = new WebSocketGremlinResponseDecoder(cluster.getSerializer()); - webSocketIdleEventHandler = new WebSocketIdleEventHandler(connpool.getActiveChannels()); } /** @@ -217,13 +214,13 @@ public interface Channelizer extends ChannelHandler { // TODO: Replace WebSocketClientHandler with Netty's WebSocketClientProtocolHandler final WebSocketClientHandler handler = new WebSocketClientHandler( WebSocketClientHandshakerFactory.newHandshaker( - connectionPool.getHost().getHostUri(), WebSocketVersion.V13, null, false, EmptyHttpHeaders.INSTANCE, maxContentLength)); + connectionPool.getHost().getHostUri(), WebSocketVersion.V13, null, false, EmptyHttpHeaders.INSTANCE, maxContentLength), + connectionPool.getActiveChannels()); int keepAliveInterval = toIntExact(TimeUnit.SECONDS.convert(cluster.connectionPoolSettings().keepAliveInterval, TimeUnit.MILLISECONDS)); pipeline.addLast("http-codec", new HttpClientCodec()); pipeline.addLast("aggregator", new HttpObjectAggregator(maxContentLength)); pipeline.addLast("netty-idle-state-Handler", new IdleStateHandler(0, keepAliveInterval, 0)); - pipeline.addLast("ws-idle-handler", webSocketIdleEventHandler); pipeline.addLast("ws-client-handler", handler); pipeline.addLast("ws-close-handler", new WebsocketCloseHandler()); pipeline.addLast("gremlin-encoder", webSocketGremlinRequestEncoder); diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketClientHandler.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketClientHandler.java index 1d6d92f..2cd0f95 100644 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketClientHandler.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketClientHandler.java @@ -23,6 +23,7 @@ import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelPromise; import io.netty.channel.SimpleChannelInboundHandler; +import io.netty.channel.group.ChannelGroup; import io.netty.handler.codec.http.FullHttpResponse; import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame; @@ -31,6 +32,8 @@ import io.netty.handler.codec.http.websocketx.PongWebSocketFrame; import io.netty.handler.codec.http.websocketx.TextWebSocketFrame; import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; import io.netty.handler.codec.http.websocketx.WebSocketFrame; +import io.netty.handler.timeout.IdleState; +import io.netty.handler.timeout.IdleStateEvent; import io.netty.util.CharsetUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,9 +45,11 @@ public final class WebSocketClientHandler extends SimpleChannelInboundHandler() { diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/ClientSingleRequestConnectionIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/ClientSingleRequestConnectionIntegrateTest.java index 1dd62f5..72071ad 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/ClientSingleRequestConnectionIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/ClientSingleRequestConnectionIntegrateTest.java @@ -407,8 +407,6 @@ public class ClientSingleRequestConnectionIntegrateTest extends AbstractGremlinS @Test public void testAbruptClose() throws InterruptedException { final Cluster cluster = this.createClusterWithXNumOfConnection(50); - - final Client.ClusteredClient client = cluster.connect(); final int requests = 50;