From 27d85cb77ed01c88dec47fd9601ad0e33792217a Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Tue, 27 Jun 2017 10:36:17 +0200 Subject: [PATCH] Issue #1643 Configure selectors for AbstractProxyServlet --- .../org/eclipse/jetty/proxy/AbstractProxyServlet.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/AbstractProxyServlet.java b/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/AbstractProxyServlet.java index 09c50264057..5fc8e34813d 100644 --- a/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/AbstractProxyServlet.java +++ b/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/AbstractProxyServlet.java @@ -44,6 +44,7 @@ import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.ProtocolHandlers; import org.eclipse.jetty.client.api.Request; import org.eclipse.jetty.client.api.Response; +import org.eclipse.jetty.client.http.HttpClientTransportOverHTTP; import org.eclipse.jetty.http.HttpField; import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.http.HttpHeaderValue; @@ -259,7 +260,7 @@ public abstract class AbstractProxyServlet extends HttpServlet * * * - * + * @see #newHttpClient() * @return a {@link HttpClient} configured from the {@link #getServletConfig() servlet configuration} * @throws ServletException if the {@link HttpClient} cannot be created */ @@ -340,11 +341,17 @@ public abstract class AbstractProxyServlet extends HttpServlet } /** + * The servlet init parameter 'selectors' can be set for the number of + * selector threads to be used by the HttpClient. * @return a new HttpClient instance */ protected HttpClient newHttpClient() { - return new HttpClient(); + int selectors = (Runtime.getRuntime().availableProcessors() + 1) / 2; + String value = getServletConfig().getInitParameter("selectors"); + if (value != null) + selectors = Integer.parseInt(value); + return new HttpClient(new HttpClientTransportOverHTTP(selectors),null); } protected HttpClient getHttpClient()