This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 6107119137cc41deacdc643120b3ab076bffa460 Author: Claus Ibsen <[email protected]> AuthorDate: Mon Nov 11 06:12:05 2019 +0100 Remove jetty 8 cruft that are no longer in use, and also some parts of jetty http producer --- .../camel/component/jetty/CamelHttpClient.java | 71 -------- .../camel/component/jetty/JettyHttpComponent.java | 185 ++------------------- .../camel-jetty/src/main/docs/jetty-component.adoc | 4 +- .../camel/component/jetty9/CamelHttpClient9.java | 61 ------- .../component/jetty9/JettyHttpComponent9.java | 7 - .../JettyHttpComponentConfiguration9.java | 26 --- 6 files changed, 13 insertions(+), 341 deletions(-) diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/CamelHttpClient.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/CamelHttpClient.java deleted file mode 100644 index 9f616b0..0000000 --- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/CamelHttpClient.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * 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.camel.component.jetty; - -import java.util.concurrent.Executor; - -import org.apache.camel.util.ObjectHelper; -import org.eclipse.jetty.client.HttpClient; -import org.eclipse.jetty.client.HttpClientTransport; -import org.eclipse.jetty.util.ssl.SslContextFactory; -import org.eclipse.jetty.util.thread.QueuedThreadPool; - -@Deprecated -public abstract class CamelHttpClient extends HttpClient { - - private boolean supportRedirect; - - public CamelHttpClient(SslContextFactory sslContextFactory) { - super(sslContextFactory); - } - - public CamelHttpClient(HttpClientTransport transport, SslContextFactory sslContextFactory) { - super(transport, sslContextFactory); - } - - @Override - protected void doStart() throws Exception { - if (!hasThreadPool()) { - // if there is no thread pool then create a default thread pool using daemon threads with default size (200) - QueuedThreadPool qtp = new QueuedThreadPool(); - qtp.setDaemon(true); - // let the thread names indicate they are from the client - qtp.setName("CamelJettyClient(" + ObjectHelper.getIdentityHashCode(this) + ")"); - setThreadPoolOrExecutor(qtp); - } - super.doStart(); - } - - protected abstract boolean hasThreadPool(); - - protected abstract void setThreadPoolOrExecutor(Executor pool); - - public abstract void setProxy(String host, int port); - - public boolean isSupportRedirect() { - return supportRedirect; - } - - public void setSupportRedirect(boolean supportRedirect) { - this.supportRedirect = supportRedirect; - } - - public abstract String getProxyHost(); - - public abstract int getProxyPort(); - -} diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java index 3689017..119acf5 100644 --- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java +++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java @@ -66,9 +66,6 @@ import org.apache.camel.util.PropertiesHelper; import org.apache.camel.util.StringHelper; import org.apache.camel.util.URISupport; import org.apache.camel.util.UnsafeUriCharactersEncoder; -import org.eclipse.jetty.client.HttpClient; -import org.eclipse.jetty.client.HttpClientTransport; -import org.eclipse.jetty.client.http.HttpClientTransportOverHTTP; import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.jmx.MBeanContainer; import org.eclipse.jetty.server.AbstractConnector; @@ -77,7 +74,6 @@ import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.MultiPartFormDataCompliance; import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.server.Response; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandlerCollection; import org.eclipse.jetty.server.handler.ErrorHandler; @@ -113,8 +109,6 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements protected Map<Integer, Connector> socketConnectors; protected Map<String, Object> sslSocketConnectorProperties; protected Map<String, Object> socketConnectorProperties; - protected Integer httpClientMinThreads; - protected Integer httpClientMaxThreads; protected Integer minThreads; protected Integer maxThreads; protected ThreadPool threadPool; @@ -714,108 +708,6 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements this.socketConnectors = socketConnectors; } - /** - * Creates a new {@link HttpClient} and configures its proxy/thread pool and SSL based on this - * component settings. - * - * @param endpoint the instance of JettyHttpEndpoint - * @param minThreads optional minimum number of threads in client thread pool - * @param maxThreads optional maximum number of threads in client thread pool - * @param ssl option SSL parameters - */ - public CamelHttpClient createHttpClient(JettyHttpEndpoint endpoint, Integer minThreads, Integer maxThreads, SSLContextParameters ssl) throws Exception { - SslContextFactory sslContextFactory = createSslContextFactory(ssl, true); - HttpClientTransport transport = createHttpClientTransport(maxThreads); - CamelHttpClient httpClient = createCamelHttpClient(transport, sslContextFactory); - - CamelContext context = endpoint.getCamelContext(); - - if (context != null - && ObjectHelper.isNotEmpty(context.getGlobalOption("http.proxyHost")) - && ObjectHelper.isNotEmpty(context.getGlobalOption("http.proxyPort"))) { - String host = context.getGlobalOption("http.proxyHost"); - int port = Integer.parseInt(context.getGlobalOption("http.proxyPort")); - log.debug("CamelContext properties http.proxyHost and http.proxyPort detected. Using http proxy host: {} port: {}", host, port); - httpClient.setProxy(host, port); - } - - if (ObjectHelper.isNotEmpty(endpoint.getProxyHost()) && endpoint.getProxyPort() > 0) { - String host = endpoint.getProxyHost(); - int port = endpoint.getProxyPort(); - log.debug("proxyHost and proxyPort options detected. Using http proxy host: {} port: {}", host, port); - httpClient.setProxy(host, port); - } - - // must have both min and max - if (minThreads != null || maxThreads != null) { - - // must have both options - if (minThreads == null || maxThreads == null) { - throw new IllegalArgumentException("Both min and max thread pool sizes must be provided."); - } - - // use QueueThreadPool as the default bounded is deprecated (see SMXCOMP-157) - QueuedThreadPool qtp = new QueuedThreadPool(); - qtp.setMinThreads(minThreads.intValue()); - qtp.setMaxThreads(maxThreads.intValue()); - // and we want to use daemon threads - qtp.setDaemon(true); - // let the thread names indicate they are from the client - qtp.setName("CamelJettyClient(" + ObjectHelper.getIdentityHashCode(httpClient) + ")"); - httpClient.setThreadPoolOrExecutor(qtp); - } - - if (log.isDebugEnabled()) { - if (minThreads != null) { - log.debug("Created HttpClient with thread pool {}-{} -> {}", minThreads, maxThreads, httpClient); - } else { - log.debug("Created HttpClient with default thread pool size -> {}", httpClient); - } - } - - return httpClient; - } - - private HttpClientTransport createHttpClientTransport(Integer maxThreads) { - if (maxThreads == null) { - return new HttpClientTransportOverHTTP(); - } - - int selectors = Math.max(1, Runtime.getRuntime().availableProcessors() / 2); - - if (selectors >= maxThreads) { - selectors = maxThreads - 1; - } - - return new HttpClientTransportOverHTTP(selectors); - } - - protected abstract CamelHttpClient createCamelHttpClient(HttpClientTransport transport, SslContextFactory sslContextFactory); - - public Integer getHttpClientMinThreads() { - return httpClientMinThreads; - } - - /** - * To set a value for minimum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured. - */ - @Metadata(description = "To set a value for minimum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured.", label = "producer") - public void setHttpClientMinThreads(Integer httpClientMinThreads) { - this.httpClientMinThreads = httpClientMinThreads; - } - - public Integer getHttpClientMaxThreads() { - return httpClientMaxThreads; - } - - /** - * To set a value for maximum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured. - */ - @Metadata(description = "To set a value for maximum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured.", label = "producer") - public void setHttpClientMaxThreads(Integer httpClientMaxThreads) { - this.httpClientMaxThreads = httpClientMaxThreads; - } - public Integer getMinThreads() { return minThreads; } @@ -907,7 +799,6 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements if (mbs != null) { mbContainer = new MBeanContainer(mbs); - startMbContainer(); } else { log.warn("JMX disabled in CamelContext. Jetty JMX extensions will remain disabled."); } @@ -1249,10 +1140,6 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements protected CamelServlet createServletForConnector(Server server, Connector connector, List<Handler> handlers, JettyHttpEndpoint endpoint) throws Exception { ServletContextHandler context = new ServletContextHandler(server, "/", ServletContextHandler.NO_SECURITY | ServletContextHandler.NO_SESSIONS); - if (Server.getVersion().startsWith("8")) { - context.getClass().getMethod("setConnectorNames", new Class[] {String[].class}) - .invoke(context, new Object[] {new String[] {connector.getName()}}); - } addJettyHandlers(server, handlers); @@ -1313,7 +1200,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements } protected Server createServer() { - Server s = null; + ThreadPool tp = threadPool; defaultQueuedThreadPool = null; // configure thread pool if min/max given @@ -1331,25 +1218,17 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements tp = defaultQueuedThreadPool; } - if (tp != null) { - try { - if (!Server.getVersion().startsWith("8")) { - s = Server.class.getConstructor(ThreadPool.class).newInstance(tp); - } else { - s = new Server(); - if (isEnableJmx()) { - enableJmx(s); - } - Server.class.getMethod("setThreadPool", ThreadPool.class).invoke(s, tp); - } - } catch (Exception e) { - //ignore - } - } - if (s == null) { + Server s; + if (tp != null) { + s = new Server(tp); + } else { s = new Server(); } + if (isEnableJmx()) { + enableJmx(s); + } + if (defaultQueuedThreadPool != null) { // let the thread names indicate they are from the server defaultQueuedThreadPool.setName("CamelJettyServer(" + ObjectHelper.getIdentityHashCode(s) + ")"); @@ -1364,19 +1243,14 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements // setup the error handler if it set to Jetty component if (getErrorHandler() != null) { s.addBean(getErrorHandler()); - } else if (!Server.getVersion().startsWith("8")) { - //need an error handler that won't leak information about the exception - //back to the client. + } else { + //need an error handler that won't leak information about the exception back to the client. ErrorHandler eh = new ErrorHandler() { public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException { String msg = HttpStatus.getMessage(response.getStatus()); request.setAttribute(RequestDispatcher.ERROR_MESSAGE, msg); - if (response instanceof Response) { - //need to use the deprecated method to support compiling with Jetty 8 - ((Response)response).setStatus(response.getStatus(), msg); - } super.handle(target, baseRequest, request, response); } protected void writeErrorPage(HttpServletRequest request, Writer writer, int code, @@ -1390,30 +1264,6 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements return s; } - - /** - * Starts {@link #mbContainer} and registers the container with itself as a managed bean - * logging an error if there is a problem starting the container. - * Does nothing if {@link #mbContainer} is {@code null}. - */ - protected void startMbContainer() { - if (mbContainer != null - && Server.getVersion().startsWith("8")) { - //JETTY8 only - try { - boolean b = (Boolean)mbContainer.getClass().getMethod("isStarted").invoke(mbContainer); - if (b) { - mbContainer.getClass().getMethod("start").invoke(mbContainer); - // Publish the container itself for consistency with - // traditional embedded Jetty configurations. - mbContainer.getClass().getMethod("addBean", Object.class).invoke(mbContainer, mbContainer); - } - } catch (Throwable e) { - log.warn("Could not start Jetty MBeanContainer. Jetty JMX extensions will remain disabled.", e); - } - } - } - @Override protected void doStart() throws Exception { super.doStart(); @@ -1423,8 +1273,6 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements if (config.getComponentProperties() != null && !config.getComponentProperties().isEmpty()) { setProperties(this, config.getComponentProperties()); } - - startMbContainer(); } @Override @@ -1446,13 +1294,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements } } if (mbContainer != null) { - try { - //JETTY8 - mbContainer.getClass().getMethod("stop").invoke(mbContainer); - } catch (Throwable t) { - //JETTY9 - mbContainer.getClass().getMethod("destroy").invoke(mbContainer); - } + mbContainer.destroy(); mbContainer = null; } } @@ -1465,9 +1307,6 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements try { Object o = getContainer(server); o.getClass().getMethod("addEventListener", Container.Listener.class).invoke(o, mbContainer); - if (Server.getVersion().startsWith("8")) { - return; - } mbContainer.getClass().getMethod("beanAdded", Container.class, Object.class) .invoke(mbContainer, null, server); } catch (RuntimeException rex) { diff --git a/components/camel-jetty/src/main/docs/jetty-component.adoc b/components/camel-jetty/src/main/docs/jetty-component.adoc index 30fea60..8bc91eb 100644 --- a/components/camel-jetty/src/main/docs/jetty-component.adoc +++ b/components/camel-jetty/src/main/docs/jetty-component.adoc @@ -49,7 +49,7 @@ You can append query options to the URI in the following format, // component options: START -The Jetty component supports 33 options, which are listed below. +The Jetty component supports 31 options, which are listed below. @@ -62,8 +62,6 @@ The Jetty component supports 33 options, which are listed below. | *errorHandler* (advanced) | This option is used to set the ErrorHandler that Jetty server uses. | | ErrorHandler | *sslSocketConnectors* (security) | A map which contains per port number specific SSL connectors. | | Map | *socketConnectors* (security) | A map which contains per port number specific HTTP connectors. Uses the same principle as sslSocketConnectors. | | Map -| *httpClientMinThreads* (producer) | To set a value for minimum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured. | | Integer -| *httpClientMaxThreads* (producer) | To set a value for maximum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured. | | Integer | *minThreads* (consumer) | To set a value for minimum number of threads in server thread pool. Notice that both a min and max size must be configured. | | Integer | *maxThreads* (consumer) | To set a value for maximum number of threads in server thread pool. Notice that both a min and max size must be configured. | | Integer | *threadPool* (consumer) | To use a custom thread pool for the server. This option should only be used in special circumstances. | | ThreadPool diff --git a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty9/CamelHttpClient9.java b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty9/CamelHttpClient9.java deleted file mode 100644 index 05f264b..0000000 --- a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty9/CamelHttpClient9.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * 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.camel.component.jetty9; - -import java.util.concurrent.Executor; - -import org.apache.camel.component.jetty.CamelHttpClient; -import org.eclipse.jetty.client.HttpClientTransport; -import org.eclipse.jetty.util.ssl.SslContextFactory; - -@Deprecated -public class CamelHttpClient9 extends CamelHttpClient { - - public CamelHttpClient9(SslContextFactory sslContextFactory) { - super(sslContextFactory); - } - - public CamelHttpClient9(HttpClientTransport transport, SslContextFactory sslContextFactory) { - super(transport, sslContextFactory); - } - - @Override - protected boolean hasThreadPool() { - return getExecutor() != null; - } - - @Override - protected void setThreadPoolOrExecutor(Executor pool) { - setExecutor(pool); - } - - @Override - public void setProxy(String host, int port) { - getProxyConfiguration().getProxies().add(new org.eclipse.jetty.client.HttpProxy(host, port)); - } - - @Override - public String getProxyHost() { - return getProxyConfiguration().getProxies().get(0).getAddress().getHost(); - } - - @Override - public int getProxyPort() { - return getProxyConfiguration().getProxies().get(0).getAddress().getPort(); - } - -} diff --git a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty9/JettyHttpComponent9.java b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty9/JettyHttpComponent9.java index b45f0d4..f6a4ed9 100644 --- a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty9/JettyHttpComponent9.java +++ b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty9/JettyHttpComponent9.java @@ -23,12 +23,10 @@ import java.util.HashMap; import java.util.Map; import org.apache.camel.RuntimeCamelException; -import org.apache.camel.component.jetty.CamelHttpClient; import org.apache.camel.component.jetty.JettyHttpComponent; import org.apache.camel.component.jetty.JettyHttpEndpoint; import org.apache.camel.spi.annotations.Component; import org.apache.camel.support.PropertyBindingSupport; -import org.eclipse.jetty.client.HttpClientTransport; import org.eclipse.jetty.server.AbstractConnector; import org.eclipse.jetty.server.ConnectionFactory; import org.eclipse.jetty.server.ForwardedRequestCustomizer; @@ -46,11 +44,6 @@ public class JettyHttpComponent9 extends JettyHttpComponent { private static final Logger LOG = LoggerFactory.getLogger(JettyHttpComponent9.class); @Override - protected CamelHttpClient createCamelHttpClient(HttpClientTransport transport, SslContextFactory sslContextFactory) { - return new CamelHttpClient9(transport, sslContextFactory); - } - - @Override protected JettyHttpEndpoint createEndpoint(URI endpointUri, URI httpUri) throws URISyntaxException { return new JettyHttpEndpoint9(this, endpointUri.toString(), httpUri); } diff --git a/platforms/spring-boot/components-starter/camel-jetty-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java b/platforms/spring-boot/components-starter/camel-jetty-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java index c9fba3e..c7914fa 100644 --- a/platforms/spring-boot/components-starter/camel-jetty-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java +++ b/platforms/spring-boot/components-starter/camel-jetty-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java @@ -70,16 +70,6 @@ public class JettyHttpComponentConfiguration9 */ private Map<Integer, Connector> socketConnectors; /** - * To set a value for minimum number of threads in HttpClient thread pool. - * Notice that both a min and max size must be configured. - */ - private Integer httpClientMinThreads; - /** - * To set a value for maximum number of threads in HttpClient thread pool. - * Notice that both a min and max size must be configured. - */ - private Integer httpClientMaxThreads; - /** * To set a value for minimum number of threads in server thread pool. * Notice that both a min and max size must be configured. */ @@ -260,22 +250,6 @@ public class JettyHttpComponentConfiguration9 this.socketConnectors = socketConnectors; } - public Integer getHttpClientMinThreads() { - return httpClientMinThreads; - } - - public void setHttpClientMinThreads(Integer httpClientMinThreads) { - this.httpClientMinThreads = httpClientMinThreads; - } - - public Integer getHttpClientMaxThreads() { - return httpClientMaxThreads; - } - - public void setHttpClientMaxThreads(Integer httpClientMaxThreads) { - this.httpClientMaxThreads = httpClientMaxThreads; - } - public Integer getMinThreads() { return minThreads; }
