From 514c6dff1ee131862b86a868e87e0ac2940d10d5 Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Tue, 22 Jan 2019 17:44:06 +0100 Subject: [PATCH] Issue #132 - ClientConnector abstraction. Reverted refactoring of newConnection() to avoid to bind the class to a too specific abstract method. Signed-off-by: Simone Bordet --- .../AbstractConnectorHttpClientTransport.java | 16 ---------------- .../client/http/HttpClientTransportOverHTTP.java | 15 +++++++++++++++ .../client/http/HttpClientTransportOverFCGI.java | 15 +++++++++++++++ .../HttpClientTransportOverUnixSockets.java | 13 +++++++++++++ 4 files changed, 43 insertions(+), 16 deletions(-) diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/AbstractConnectorHttpClientTransport.java b/jetty-client/src/main/java/org/eclipse/jetty/client/AbstractConnectorHttpClientTransport.java index efa92c222fa..0c234daa160 100644 --- a/jetty-client/src/main/java/org/eclipse/jetty/client/AbstractConnectorHttpClientTransport.java +++ b/jetty-client/src/main/java/org/eclipse/jetty/client/AbstractConnectorHttpClientTransport.java @@ -18,14 +18,12 @@ package org.eclipse.jetty.client; -import java.io.IOException; import java.net.InetSocketAddress; import java.time.Duration; import java.util.Map; import org.eclipse.jetty.client.api.Connection; import org.eclipse.jetty.io.ClientConnector; -import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.util.Promise; import org.eclipse.jetty.util.annotation.ManagedAttribute; import org.eclipse.jetty.util.annotation.ManagedObject; @@ -77,18 +75,4 @@ public abstract class AbstractConnectorHttpClientTransport extends AbstractHttpC context.put(ClientConnector.CONNECTION_PROMISE_CONTEXT_KEY, new Promise.Wrapper<>(promise)); connector.connect(address, context); } - - @Override - public org.eclipse.jetty.io.Connection newConnection(EndPoint endPoint, Map context) throws IOException - { - HttpDestination destination = (HttpDestination)context.get(HTTP_DESTINATION_CONTEXT_KEY); - @SuppressWarnings("unchecked") - Promise promise = (Promise)context.get(HTTP_CONNECTION_PROMISE_CONTEXT_KEY); - org.eclipse.jetty.io.Connection connection = newHttpConnection(endPoint, destination, promise); - if (LOG.isDebugEnabled()) - LOG.debug("Created {}", connection); - return customize(connection, context); - } - - protected abstract org.eclipse.jetty.io.Connection newHttpConnection(EndPoint endPoint, HttpDestination destination, Promise promise); } diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/http/HttpClientTransportOverHTTP.java b/jetty-client/src/main/java/org/eclipse/jetty/client/http/HttpClientTransportOverHTTP.java index 52e0c350596..ddfacc5f67a 100644 --- a/jetty-client/src/main/java/org/eclipse/jetty/client/http/HttpClientTransportOverHTTP.java +++ b/jetty-client/src/main/java/org/eclipse/jetty/client/http/HttpClientTransportOverHTTP.java @@ -18,6 +18,9 @@ package org.eclipse.jetty.client.http; +import java.io.IOException; +import java.util.Map; + import org.eclipse.jetty.client.AbstractConnectorHttpClientTransport; import org.eclipse.jetty.client.DuplexConnectionPool; import org.eclipse.jetty.client.HttpDestination; @@ -55,6 +58,18 @@ public class HttpClientTransportOverHTTP extends AbstractConnectorHttpClientTran return new HttpDestinationOverHTTP(getHttpClient(), origin); } + @Override + public org.eclipse.jetty.io.Connection newConnection(EndPoint endPoint, Map context) throws IOException + { + HttpDestination destination = (HttpDestination)context.get(HTTP_DESTINATION_CONTEXT_KEY); + @SuppressWarnings("unchecked") + Promise promise = (Promise)context.get(HTTP_CONNECTION_PROMISE_CONTEXT_KEY); + org.eclipse.jetty.io.Connection connection = newHttpConnection(endPoint, destination, promise); + if (LOG.isDebugEnabled()) + LOG.debug("Created {}", connection); + return customize(connection, context); + } + protected HttpConnectionOverHTTP newHttpConnection(EndPoint endPoint, HttpDestination destination, Promise promise) { return new HttpConnectionOverHTTP(endPoint, destination, promise); diff --git a/jetty-fcgi/fcgi-client/src/main/java/org/eclipse/jetty/fcgi/client/http/HttpClientTransportOverFCGI.java b/jetty-fcgi/fcgi-client/src/main/java/org/eclipse/jetty/fcgi/client/http/HttpClientTransportOverFCGI.java index 455b8db66cc..5a641c14999 100644 --- a/jetty-fcgi/fcgi-client/src/main/java/org/eclipse/jetty/fcgi/client/http/HttpClientTransportOverFCGI.java +++ b/jetty-fcgi/fcgi-client/src/main/java/org/eclipse/jetty/fcgi/client/http/HttpClientTransportOverFCGI.java @@ -18,6 +18,9 @@ package org.eclipse.jetty.fcgi.client.http; +import java.io.IOException; +import java.util.Map; + import org.eclipse.jetty.client.AbstractConnectorHttpClientTransport; import org.eclipse.jetty.client.DuplexConnectionPool; import org.eclipse.jetty.client.HttpClient; @@ -74,6 +77,18 @@ public class HttpClientTransportOverFCGI extends AbstractConnectorHttpClientTran return new HttpDestinationOverFCGI(getHttpClient(), origin); } + @Override + public org.eclipse.jetty.io.Connection newConnection(EndPoint endPoint, Map context) throws IOException + { + HttpDestination destination = (HttpDestination)context.get(HTTP_DESTINATION_CONTEXT_KEY); + @SuppressWarnings("unchecked") + Promise promise = (Promise)context.get(HTTP_CONNECTION_PROMISE_CONTEXT_KEY); + org.eclipse.jetty.io.Connection connection = newHttpConnection(endPoint, destination, promise); + if (LOG.isDebugEnabled()) + LOG.debug("Created {}", connection); + return customize(connection, context); + } + protected HttpConnectionOverFCGI newHttpConnection(EndPoint endPoint, HttpDestination destination, Promise promise) { return new HttpConnectionOverFCGI(endPoint, destination, promise); diff --git a/jetty-unixsocket/src/main/java/org/eclipse/jetty/unixsocket/client/HttpClientTransportOverUnixSockets.java b/jetty-unixsocket/src/main/java/org/eclipse/jetty/unixsocket/client/HttpClientTransportOverUnixSockets.java index be94307618e..36ea14e3bae 100644 --- a/jetty-unixsocket/src/main/java/org/eclipse/jetty/unixsocket/client/HttpClientTransportOverUnixSockets.java +++ b/jetty-unixsocket/src/main/java/org/eclipse/jetty/unixsocket/client/HttpClientTransportOverUnixSockets.java @@ -38,6 +38,7 @@ import org.eclipse.jetty.client.DuplexConnectionPool; import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.HttpDestination; import org.eclipse.jetty.client.Origin; +import org.eclipse.jetty.client.api.Connection; import org.eclipse.jetty.client.http.HttpConnectionOverHTTP; import org.eclipse.jetty.client.http.HttpDestinationOverHTTP; import org.eclipse.jetty.io.ClientConnector; @@ -77,6 +78,18 @@ public class HttpClientTransportOverUnixSockets extends AbstractConnectorHttpCli return new HttpDestinationOverHTTP(getHttpClient(), origin); } + @Override + public org.eclipse.jetty.io.Connection newConnection(EndPoint endPoint, Map context) throws IOException + { + HttpDestination destination = (HttpDestination)context.get(HTTP_DESTINATION_CONTEXT_KEY); + @SuppressWarnings("unchecked") + Promise promise = (Promise)context.get(HTTP_CONNECTION_PROMISE_CONTEXT_KEY); + org.eclipse.jetty.io.Connection connection = newHttpConnection(endPoint, destination, promise); + if (LOG.isDebugEnabled()) + LOG.debug("Created {}", connection); + return customize(connection, context); + } + protected HttpConnectionOverHTTP newHttpConnection(EndPoint endPoint, HttpDestination destination, Promise promise) { return new HttpConnectionOverHTTP(endPoint, destination, promise);