You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/06/05 09:39:26 UTC

[camel] 01/07: CAMEL-13220: Remove deprecated producer. CAMEL-13612: camel-rest should seperate producer vs consumer component name.

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 a91ba267502c658501aa3eea29b27ba006855e07
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jun 5 10:25:33 2019 +0200

    CAMEL-13220: Remove deprecated producer. CAMEL-13612: camel-rest should seperate producer vs consumer component name.
---
 .../camel/component/http4/HttpComponent.java       |   7 +-
 .../component/jetty/DefaultJettyHttpBinding.java   | 219 -------------
 .../camel/component/jetty/JettyHttpBinding.java    |   2 +-
 .../camel/component/jetty/JettyHttpComponent.java  |  80 +----
 .../camel/component/jetty/JettyHttpEndpoint.java   | 181 +----------
 .../camel/component/jetty/JettyHttpProducer.java   | 344 ---------------------
 .../component/jetty/JettyRestHttpBinding.java      |   2 +
 .../jetty/cloud/JettyServiceExpression.java        |  51 ---
 .../jetty/cloud/JettyServiceExpressionFactory.java |  30 --
 .../camel-jetty/src/main/docs/jetty-component.adoc | 147 ++-------
 .../jetty/HttpEmptyQueryParameterTest.java         |   4 +-
 .../jetty/HttpFilterNoCamelHeadersTest.java        |   2 +-
 .../camel/component/jetty/HttpGetWithBodyTest.java |  53 ----
 .../jetty/HttpProducerUnsafeCharsTest.java         |   2 +-
 .../component/jetty/JettyHttpBindingRefTest.java   | 101 ------
 .../jetty/JettyHttpBridgeEncodedPathTest.java      |   2 +-
 .../jetty/JettyHttpClientOptionsTest.java          | 106 -------
 .../component/jetty/JettyHttpContentTypeTest.java  |   4 +-
 .../component/jetty/JettyStreamCacheIssueTest.java |   2 +-
 .../jetty/async/JettyAsyncThrottleTest.java        |  14 +-
 .../jetty/cloud/JettyServiceCallRouteTest.java     |  73 -----
 ...yProducerRecipientListCustomThreadPoolTest.java |  67 ----
 .../HttpJettyProducerRecipientListTest.java        |  67 ----
 .../HttpJettyProducerTwoEndpointTest.java          |  73 -----
 ...pJettyProducerTwoParametersWithSameKeyTest.java | 119 -------
 .../jettyproducer/HttpJettyUrlRewriteTest.java     |  65 ----
 .../JettyHttpProderReturnFaultTest.java            |  67 ----
 .../JettyHttpProducerAsyncTimeoutTest.java         |  57 ----
 .../JettyHttpProducerAsynchronousTest.java         |  78 -----
 ...yHttpProducerBridgePathWithSpacesAtEndTest.java |  61 ----
 .../JettyHttpProducerBridgePathWithSpacesTest.java |  57 ----
 .../jettyproducer/JettyHttpProducerBridgeTest.java |  95 ------
 .../JettyHttpProducerConcurrentTest.java           | 108 -------
 .../JettyHttpProducerConnectionFailureTest.java    |  66 ----
 .../JettyHttpProducerContentBasedRouteTest.java    |  81 -----
 ...HttpProducerContentTypeEncodingInQuoteTest.java |  96 ------
 .../JettyHttpProducerGetAsUriParamTest.java        |  70 -----
 ...tpProducerGetWithParamAsExchangeHeaderTest.java |  98 ------
 .../JettyHttpProducerGetWithParamTest.java         |  95 ------
 .../JettyHttpProducerGoogleAsynchronousTest.java   |  56 ----
 .../jettyproducer/JettyHttpProducerGoogleTest.java |  49 ---
 .../JettyHttpProducerInvalidDestinationTest.java   |  36 ---
 .../JettyHttpProducerJavaBodyTest.java             | 133 --------
 .../JettyHttpProducerPutContentTest.java           |  78 -----
 .../JettyHttpProducerQueryParamTest.java           |  88 ------
 .../JettyHttpProducerRedirectTest.java             |  59 ----
 .../JettyHttpProducerSendDynamicAwareTest.java     |  59 ----
 .../JettyHttpProducerSendFileTest.java             |  76 -----
 .../JettyHttpProducerSessionTest.java              | 119 -------
 .../JettyHttpProducerSimulate404ErrorTest.java     |  63 ----
 .../JettyHttpProducerSuspendResumeTest.java        |  74 -----
 .../JettyHttpProducerSuspendTest.java              |  67 ----
 ...ettyHttpProducerSuspendWhileInProgressTest.java |  90 ------
 .../JettyHttpProducerSynchronousFalseTest.java     |  71 -----
 .../JettyHttpProducerSynchronousTest.java          |  71 -----
 .../JettyHttpProducerTimeoutTest.java              |  60 ----
 .../JettyHttpProducerTransferExceptionTest.java    |  47 ---
 ...HttpsProducerRouteSetupWithSystemPropsTest.java |  69 -----
 .../JettyHttpsProducerSslContextInUriTest.java     |  87 ------
 .../jettyproducer/JettyProducerHandle404Test.java  |  30 --
 .../jettyproducer/JettyProducerHttpsRouteTest.java |  49 ---
 .../component/jetty/jettyproducer/MyCoolBean.java  |  39 ---
 .../jetty/jettyproducer/MyInputStream.java         |  35 ---
 .../jetty/rest/JettyRestRedirectTest.java          |  57 ----
 .../jetty/rest/RestBridgeEndpointTest.java         |   2 +-
 .../jetty/rest/RestNoBridgeEndpointTest.java       |   2 +-
 .../rest/producer/JettyRestProducerApiDocTest.java |   3 +-
 .../rest/producer/JettyRestProducerGetTest.java    |   2 +-
 .../JettyRestProducerGetUriParameterTest.java      |   2 +-
 .../producer/JettyRestProducerPojoInOutTest.java   |   3 +-
 .../rest/producer/JettyRestProducerPutTest.java    |   2 +-
 .../src/main/docs/rest-api-component.adoc          |   2 +-
 .../camel-rest/src/main/docs/rest-component.adoc   |  11 +-
 .../camel/component/rest/DefaultRestRegistry.java  |   2 +-
 .../camel/component/rest/RestApiComponent.java     |   4 +-
 .../camel/component/rest/RestApiEndpoint.java      |  26 +-
 .../apache/camel/component/rest/RestComponent.java |  69 ++++-
 .../apache/camel/component/rest/RestEndpoint.java  |  74 +++--
 .../apache/camel/model/rest/RestDefinition.java    |  34 +-
 .../camel/component/rest/RestEndpointTest.java     |   2 +-
 .../camel/support/RestProducerFactoryHelper.java   |   6 +-
 .../springboot/RestComponentConfiguration.java     |  49 ++-
 82 files changed, 244 insertions(+), 4559 deletions(-)

diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
index 46c37ef..3aca924 100644
--- a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
+++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
@@ -439,12 +439,15 @@ public class HttpComponent extends HttpCommonComponent implements RestProducerFa
         
         RestConfiguration config = configuration;
         if (config == null) {
-            config = camelContext.getRestConfiguration("http4", true);
+            config = camelContext.getRestConfiguration("http", false);
+            if (config == null) {
+                config = camelContext.getRestConfiguration("http4", true);
+            }
         }
 
         Map<String, Object> map = new HashMap<>();
         // build query string, and append any endpoint configuration properties
-        if (config.getComponent() == null || config.getComponent().equals("http4")) {
+        if (config.getProducerComponent() == null || config.getProducerComponent().equals("http") || config.getProducerComponent().equals("http4")) {
             // setup endpoint options
             if (config.getEndpointProperties() != null && !config.getEndpointProperties().isEmpty()) {
                 map.putAll(config.getEndpointProperties());
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java
deleted file mode 100644
index fafc826..0000000
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java
+++ /dev/null
@@ -1,219 +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.io.IOException;
-import java.io.InputStream;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.http.common.HttpConstants;
-import org.apache.camel.http.common.HttpHeaderFilterStrategy;
-import org.apache.camel.http.common.HttpHelper;
-import org.apache.camel.http.common.HttpOperationFailedException;
-import org.apache.camel.http.common.HttpProtocolHeaderFilterStrategy;
-import org.apache.camel.spi.HeaderFilterStrategy;
-import org.apache.camel.support.MessageHelper;
-import org.apache.camel.util.IOHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class DefaultJettyHttpBinding implements JettyHttpBinding {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultJettyHttpBinding.class);
-    private HeaderFilterStrategy headerFilterStrategy = new HttpHeaderFilterStrategy();
-    private HeaderFilterStrategy httpProtocolHeaderFilterStrategy = new HttpProtocolHeaderFilterStrategy();
-    private boolean throwExceptionOnFailure;
-    private boolean transferException;
-    private boolean allowJavaSerializedObject;
-    private String okStatusCodeRange;
-
-    public DefaultJettyHttpBinding() {
-    }
-
-    public void populateResponse(Exchange exchange, JettyContentExchange httpExchange) throws Exception {
-        int responseCode = httpExchange.getResponseStatus();
-
-        LOG.debug("HTTP responseCode: {}", responseCode);
-
-        Message in = exchange.getIn();
-        if (!isThrowExceptionOnFailure()) {
-            // if we do not use failed exception then populate response for all response codes
-            populateResponse(exchange, httpExchange, in, getHeaderFilterStrategy(), responseCode);
-        } else {
-            boolean ok = HttpHelper.isStatusCodeOk(responseCode, okStatusCodeRange);
-            if (ok) {
-                // only populate response for OK response
-                populateResponse(exchange, httpExchange, in, getHeaderFilterStrategy(), responseCode);
-            } else {
-                // operation failed so populate exception to throw
-                Exception ex = populateHttpOperationFailedException(exchange, httpExchange, responseCode);
-                if (ex != null) {
-                    throw ex;
-                } else {
-                    populateResponse(exchange, httpExchange, in, getHeaderFilterStrategy(), responseCode);
-                }
-            }
-        }
-    }
-
-    public HeaderFilterStrategy getHeaderFilterStrategy() {
-        return headerFilterStrategy;
-    }
-
-    public void setHeaderFilterStrategy(HeaderFilterStrategy headerFilterStrategy) {
-        this.headerFilterStrategy = headerFilterStrategy;
-    }
-
-    public boolean isThrowExceptionOnFailure() {
-        return throwExceptionOnFailure;
-    }
-
-    public void setThrowExceptionOnFailure(boolean throwExceptionOnFailure) {
-        this.throwExceptionOnFailure = throwExceptionOnFailure;
-    }
-
-    public boolean isTransferException() {
-        return transferException;
-    }
-
-    public void setTransferException(boolean transferException) {
-        this.transferException = transferException;
-    }
-
-    public boolean isAllowJavaSerializedObject() {
-        return allowJavaSerializedObject;
-    }
-
-    public void setAllowJavaSerializedObject(boolean allowJavaSerializedObject) {
-        this.allowJavaSerializedObject = allowJavaSerializedObject;
-    }
-
-    public String getOkStatusCodeRange() {
-        return okStatusCodeRange;
-    }
-
-    public void setOkStatusCodeRange(String okStatusCodeRange) {
-        this.okStatusCodeRange = okStatusCodeRange;
-    }
-
-    protected void populateResponse(Exchange exchange, JettyContentExchange httpExchange,
-                                    Message in, HeaderFilterStrategy strategy, int responseCode) throws IOException {
-        Message answer = exchange.getOut();
-
-        answer.setHeader(Exchange.HTTP_RESPONSE_CODE, responseCode);
-
-        // must use response fields to get the http headers as
-        // httpExchange.getHeaders() does not work well with multi valued headers
-        Map<String, Collection<String>> headers = httpExchange.getResponseHeaders();
-        for (Map.Entry<String, Collection<String>> ent : headers.entrySet()) {
-            String name = ent.getKey();
-            Collection<String> values = ent.getValue();
-            for (String value : values) {
-                if (name.toLowerCase().equals("content-type")) {
-                    name = Exchange.CONTENT_TYPE;
-                    exchange.setProperty(Exchange.CHARSET_NAME, IOHelper.getCharsetNameFromContentType(value));
-                }
-                if (strategy != null && !strategy.applyFilterToExternalHeaders(name, value, exchange)) {
-                    HttpHelper.appendHeader(answer.getHeaders(), name, value);
-                }
-            }
-        }
-        
-        // preserve headers from in by copying any non existing headers
-        // to avoid overriding existing headers with old values
-        // We also need to apply the httpProtocolHeaderFilterStrategy to filter the http protocol header
-        MessageHelper.copyHeaders(exchange.getIn(), answer, httpProtocolHeaderFilterStrategy, false);
-
-        // extract body after headers has been set as we want to ensure content-type from Jetty HttpExchange
-        // has been populated first
-        answer.setBody(extractResponseBody(exchange, httpExchange));
-    }
-
-    protected Exception populateHttpOperationFailedException(Exchange exchange, JettyContentExchange httpExchange,
-                                                                                int responseCode) throws IOException {
-        HttpOperationFailedException answer;
-        String uri = httpExchange.getUrl();
-        Map<String, String> headers = getSimpleMap(httpExchange.getResponseHeaders());
-        Object responseBody = extractResponseBody(exchange, httpExchange);
-
-        if (transferException && responseBody instanceof Exception) {
-            // if the response was a serialized exception then use that
-            return (Exception) responseBody;
-        }
-
-        // make a defensive copy of the response body in the exception so its detached from the cache
-        String copy = null;
-        if (responseBody != null) {
-            copy = exchange.getContext().getTypeConverter().convertTo(String.class, exchange, responseBody);
-        }
-
-        if (responseCode >= 300 && responseCode < 400) {
-            Collection<String> loc = httpExchange.getResponseHeaders().get("location");
-            if (loc != null && !loc.isEmpty()) {
-                String locationHeader = loc.iterator().next();
-                answer = new HttpOperationFailedException(uri, responseCode, null, locationHeader, headers, copy);
-            } else {
-                // no redirect location
-                answer = new HttpOperationFailedException(uri, responseCode, null, null, headers, copy);
-            }
-        } else {
-            // internal server error (error code 500)
-            answer = new HttpOperationFailedException(uri, responseCode, null, null, headers, copy);
-        }
-
-        return answer;
-    }
-
-    protected Object extractResponseBody(Exchange exchange, JettyContentExchange httpExchange) throws IOException {
-        Map<String, String> headers = getSimpleMap(httpExchange.getResponseHeaders());
-        String contentType = headers.get(Exchange.CONTENT_TYPE);
-
-        // if content type is serialized java object, then de-serialize it to a Java object
-        if (contentType != null && HttpConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT.equals(contentType)) {
-            // only deserialize java if allowed
-            if (isAllowJavaSerializedObject() || isTransferException()) {
-                try {
-                    InputStream is = exchange.getContext().getTypeConverter().mandatoryConvertTo(InputStream.class, httpExchange.getResponseContentBytes());
-                    return HttpHelper.deserializeJavaObjectFromStream(is, exchange.getContext());
-                } catch (Exception e) {
-                    throw new RuntimeCamelException("Cannot deserialize body to Java object", e);
-                }
-            } else {
-                // empty body
-                return null;
-            }
-        } else {
-            // just grab the raw content body
-            return httpExchange.getBody();
-        }
-    }
-
-    Map<String, String> getSimpleMap(Map<String, Collection<String>> headers) {
-        Map<String, String> result = new HashMap<>();
-        for (String key : headers.keySet()) {
-            Collection<String> valueCol = headers.get(key);
-            String value = (valueCol == null) ? null : valueCol.iterator().next();
-            result.put(key, value);
-        }
-        return result;
-    }
-}
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpBinding.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpBinding.java
index 57e72f8..615846e 100644
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpBinding.java
+++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpBinding.java
@@ -20,7 +20,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.spi.HeaderFilterStrategy;
 
 /**
- * Jetty specific binding to parse the response when using {@link org.apache.camel.component.jetty.JettyHttpProducer}
+ * Jetty specific binding to parse the request/response from Jetty and Camel.
  */
 public interface JettyHttpBinding {
 
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 e4b7920..a6e35cd 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
@@ -40,7 +40,6 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Consumer;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Processor;
-import org.apache.camel.Producer;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.SSLContextParametersAware;
 import org.apache.camel.http.common.CamelServlet;
@@ -49,7 +48,6 @@ import org.apache.camel.http.common.HttpCommonComponent;
 import org.apache.camel.http.common.HttpCommonEndpoint;
 import org.apache.camel.http.common.HttpConfiguration;
 import org.apache.camel.http.common.HttpConsumer;
-import org.apache.camel.http.common.HttpRestHeaderFilterStrategy;
 import org.apache.camel.http.common.HttpRestServletResolveConsumerStrategy;
 import org.apache.camel.http.common.UrlRewrite;
 import org.apache.camel.spi.HeaderFilterStrategy;
@@ -59,9 +57,7 @@ import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RestApiConsumerFactory;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.spi.RestConsumerFactory;
-import org.apache.camel.spi.RestProducerFactory;
 import org.apache.camel.support.IntrospectionSupport;
-import org.apache.camel.support.RestProducerFactoryHelper;
 import org.apache.camel.support.jsse.SSLContextParameters;
 import org.apache.camel.support.service.ServiceHelper;
 import org.apache.camel.util.FileUtil;
@@ -100,7 +96,7 @@ import org.eclipse.jetty.util.thread.ThreadPool;
  * An HttpComponent which starts an embedded Jetty for to handle consuming from
  * the http endpoints.
  */
-public abstract class JettyHttpComponent extends HttpCommonComponent implements RestConsumerFactory, RestApiConsumerFactory, RestProducerFactory, SSLContextParametersAware {
+public abstract class JettyHttpComponent extends HttpCommonComponent implements RestConsumerFactory, RestApiConsumerFactory, SSLContextParametersAware {
     public static final String TMP_DIR = "CamelJettyTempDir";
 
     protected static final HashMap<String, ConnectorRef> CONNECTORS = new HashMap<>();
@@ -189,14 +185,8 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         ssl = ssl != null ? ssl : retrieveGlobalSslContextParameters();
         String proxyHost = getAndRemoveParameter(parameters, "proxyHost", String.class, getProxyHost());
         Integer proxyPort = getAndRemoveParameter(parameters, "proxyPort", Integer.class, getProxyPort());
-        Integer httpClientMinThreads = getAndRemoveParameter(parameters, "httpClientMinThreads", Integer.class, this.httpClientMinThreads);
-        Integer httpClientMaxThreads = getAndRemoveParameter(parameters, "httpClientMaxThreads", Integer.class, this.httpClientMaxThreads);
-        HttpClient httpClient = resolveAndRemoveReferenceParameter(parameters, "httpClient", HttpClient.class);
         Boolean async = getAndRemoveParameter(parameters, "async", Boolean.class);
 
-        // extract httpClient. parameters
-        Map<String, Object> httpClientParameters = IntrospectionSupport.extractProperties(parameters, "httpClient.");
-
         // extract filterInit. parameters
         Map<String, String> filterInitParameters =  IntrospectionSupport.extractStringProperties(IntrospectionSupport.extractProperties(parameters, "filterInit."));
 
@@ -236,9 +226,6 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         }
         // setup the proxy host and proxy port
 
-        if (httpClientParameters != null && !httpClientParameters.isEmpty()) {
-            endpoint.setHttpClientParameters(httpClientParameters);
-        }
         if (filterInitParameters != null && !filterInitParameters.isEmpty()) {
             endpoint.setFilterInitParameters(filterInitParameters);
         }
@@ -258,9 +245,6 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
             // fallback to component configured
             jettyBinding = getJettyHttpBinding();
         }
-        if (jettyBinding != null) {
-            endpoint.setJettyBinding(jettyBinding);
-        }
         if (enableJmx != null) {
             endpoint.setEnableJmx(enableJmx);
         } else {
@@ -290,15 +274,6 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         if (ssl != null) {
             endpoint.setSslContextParameters(ssl);
         }
-        if (httpClientMinThreads != null) {
-            endpoint.setHttpClientMinThreads(httpClientMinThreads);
-        }
-        if (httpClientMaxThreads != null) {
-            endpoint.setHttpClientMaxThreads(httpClientMaxThreads);
-        }
-        if (httpClient != null) {
-            endpoint.setHttpClient(httpClient);
-        }
         endpoint.setSendServerVersion(isSendServerVersion());
 
         setProperties(endpoint, parameters);
@@ -1265,59 +1240,6 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         return consumer;
     }
 
-    @Override
-    public Producer createProducer(CamelContext camelContext, String host,
-                                   String verb, String basePath, String uriTemplate, String queryParameters,
-                                   String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
-
-        // avoid leading slash
-        basePath = FileUtil.stripLeadingSeparator(basePath);
-        uriTemplate = FileUtil.stripLeadingSeparator(uriTemplate);
-
-        // get the endpoint
-        String url = "jetty:" + host;
-        if (!ObjectHelper.isEmpty(basePath)) {
-            url += "/" + basePath;
-        }
-        if (!ObjectHelper.isEmpty(uriTemplate)) {
-            url += "/" + uriTemplate;
-        }
-
-        RestConfiguration config = configuration;
-        if (config == null) {
-            config = camelContext.getRestConfiguration("jetty", true);
-        }
-
-        Map<String, Object> map = new HashMap<>();
-        // build query string, and append any endpoint configuration properties
-        if (config.getComponent() == null || config.getComponent().equals("jetty")) {
-            // setup endpoint options
-            if (config.getEndpointProperties() != null && !config.getEndpointProperties().isEmpty()) {
-                map.putAll(config.getEndpointProperties());
-            }
-        }
-
-        // get the endpoint
-        String query = URISupport.createQueryString(map);
-        if (!query.isEmpty()) {
-            url = url + "?" + query;
-        }
-
-        // there are cases where we might end up here without component being created beforehand
-        // we need to abide by the component properties specified in the parameters when creating
-        // the component
-        RestProducerFactoryHelper.setupComponentFor(url, camelContext, (Map<String, Object>) parameters.get("component"));
-
-        JettyHttpEndpoint endpoint = camelContext.getEndpoint(url, JettyHttpEndpoint.class);
-        if (parameters != null && !parameters.isEmpty()) {
-            setProperties(camelContext, endpoint, parameters);
-        }
-        String path = uriTemplate != null ? uriTemplate : basePath;
-        endpoint.setHeaderFilterStrategy(new HttpRestHeaderFilterStrategy(path, queryParameters));
-
-        return endpoint.createProducer();
-    }
-
     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);
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java
index 5cba345..45d3f03 100644
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java
+++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java
@@ -18,7 +18,6 @@ package org.apache.camel.component.jetty;
 
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import javax.servlet.Filter;
@@ -26,37 +25,16 @@ import javax.servlet.Filter;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
-import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.http.common.HttpCommonEndpoint;
-import org.apache.camel.http.common.cookie.CookieHandler;
 import org.apache.camel.spi.UriParam;
-import org.apache.camel.support.PropertyBindingSupport;
-import org.apache.camel.support.SynchronousDelegateProducer;
 import org.apache.camel.support.jsse.SSLContextParameters;
-import org.eclipse.jetty.client.HttpClient;
 import org.eclipse.jetty.server.Handler;
 
 public abstract class JettyHttpEndpoint extends HttpCommonEndpoint {
 
-    @UriParam(label = "producer,advanced",
-            description = "Sets a shared HttpClient to use for all producers created by this endpoint. By default each producer will"
-                    + " use a new http client, and not share. Important: Make sure to handle the lifecycle of the shared"
-                    + " client, such as stopping the client, when it is no longer in use. Camel will call the start method on the client to ensure"
-                    + " its started when this endpoint creates a producer. This options should only be used in special circumstances.")
-    private HttpClient httpClient;
     @UriParam(label = "consumer",
             description = "Specifies whether to enable the session manager on the server side of Jetty.")
     private boolean sessionSupport;
-    @UriParam(label = "producer", defaultValue = "8",
-            description = "To set a value for minimum number of threads in HttpClient thread pool."
-                    + " This setting override any setting configured on component level."
-                    + " Notice that both a min and max size must be configured. If not set it default to min 8 threads used in Jettys thread pool.")
-    private Integer httpClientMinThreads;
-    @UriParam(label = "producer", defaultValue = "254",
-            description = "To set a value for maximum number of threads in HttpClient thread pool."
-                    + " This setting override any setting configured on component level."
-                    + " Notice that both a min and max size must be configured. If not set it default to max 254 threads used in Jettys thread pool.")
-    private Integer httpClientMaxThreads;
     @UriParam(label = "consumer",
             description = "If this option is true, Jetty JMX support will be enabled for this endpoint. See Jetty JMX support for more details.")
     private boolean enableJmx;
@@ -82,10 +60,6 @@ public abstract class JettyHttpEndpoint extends HttpCommonEndpoint {
     @UriParam(label = "consumer",
             description = "If the option is true, Jetty server will setup the CrossOriginFilter which supports the CORS out of box.")
     private boolean enableCORS;
-    @UriParam(label = "producer,advanced", prefix = "httpClient.", multiValue = true,
-            description = "Configuration of Jetty's HttpClient. For example, setting httpClient.idleTimeout=30000 sets the idle timeout to 30 seconds."
-            + " And httpClient.timeout=30000 sets the request timeout to 30 seconds, in case you want to timeout sooner if you have long running request/response calls.")
-    private Map<String, Object> httpClientParameters;
     @UriParam(label = "consumer,advanced", javaType = "java.lang.String",
             description = "Specifies a comma-delimited set of Handler instances to lookup in your Registry."
             + " These handlers are added to the Jetty servlet context (for example, to add security)."
@@ -100,30 +74,16 @@ public abstract class JettyHttpEndpoint extends HttpCommonEndpoint {
             description = "Configuration of the filter init parameters. These parameters will be applied to the filter list before starting the jetty server.")
     private Map<String, String> filterInitParameters;
 
-    @UriParam(label = "producer,advanced",
-        description = "To use a custom JettyHttpBinding which be used to customize how a response should be written for the producer.")
-    private JettyHttpBinding jettyBinding;
-    @UriParam(label = "producer,advanced",
-            description = "To use a custom JettyHttpBinding which be used to customize how a response should be written for the producer.")
-    @Deprecated
-    private String jettyBindingRef;
-    @UriParam(label = "consumer,advanced",
-            description = "Option to disable throwing the HttpOperationFailedException in case of failed responses from the remote server."
-            + " This allows you to get all responses regardless of the HTTP status code.")
-    @Deprecated
-    private String httpBindingRef;
+//    @UriParam(label = "consumer,advanced",
+//            description = "Option to disable throwing the HttpOperationFailedException in case of failed responses from the remote server."
+//            + " This allows you to get all responses regardless of the HTTP status code.")
+
     @UriParam(label = "consumer,advanced",
             description = "Allows using a custom multipart filter. Note: setting multipartFilterRef forces the value of enableMultipartFilter to true.")
     private Filter multipartFilter;
-    @UriParam(label = "consumer,advanced",
-            description = "Allows using a custom multipart filter. Note: setting multipartFilterRef forces the value of enableMultipartFilter to true.")
-    @Deprecated
-    private String multipartFilterRef;
     @UriParam(label = "security",
             description = "To configure security using SSLContextParameters")
     private SSLContextParameters sslContextParameters;
-    @UriParam(label = "producer", description = "Configure a cookie handler to maintain a HTTP session")
-    private CookieHandler cookieHandler;
 
     public JettyHttpEndpoint(JettyHttpComponent component, String uri, URI httpURL) throws URISyntaxException {
         super(uri, component, httpURL);
@@ -136,48 +96,7 @@ public abstract class JettyHttpEndpoint extends HttpCommonEndpoint {
 
     @Override
     public Producer createProducer() throws Exception {
-        JettyHttpProducer answer = new JettyHttpProducer(this);
-        if (httpClient != null) {
-            // use shared client, and ensure its started so we can use it
-            httpClient.start();
-            answer.setSharedClient(httpClient);
-            answer.setBinding(getJettyBinding(httpClient));
-        } else {
-            HttpClient httpClient = createJettyHttpClient();
-            answer.setClient(httpClient);
-            answer.setBinding(getJettyBinding(httpClient));
-        }
-
-        if (isSynchronous()) {
-            return new SynchronousDelegateProducer(answer);
-        } else {
-            return answer;
-        }
-    }
-
-    protected HttpClient createJettyHttpClient() throws Exception {
-        // create a new client
-        // thread pool min/max from endpoint take precedence over from component
-        Integer min = httpClientMinThreads != null ? httpClientMinThreads : getComponent().getHttpClientMinThreads();
-        Integer max = httpClientMaxThreads != null ? httpClientMaxThreads : getComponent().getHttpClientMaxThreads();
-        HttpClient httpClient = getComponent().createHttpClient(this, min, max, sslContextParameters);
-
-        // set optional http client parameters
-        if (httpClientParameters != null) {
-            // copy parameters as we need to re-use them again if creating a new producer later
-            Map<String, Object> params = new HashMap<>(httpClientParameters);
-            // Can not be set on httpClient for jetty 9
-            params.remove("timeout");
-            PropertyBindingSupport.bindProperties(getCamelContext(), httpClient, params);
-            // validate we could set all parameters
-            if (params.size() > 0) {
-                throw new ResolveEndpointFailedException(getEndpointUri(), "There are " + params.size()
-                        + " parameters that couldn't be set on the endpoint."
-                        + " Check the uri if the parameters are spelt correctly and that they are properties of the endpoint."
-                        + " Unknown parameters=[" + params + "]");
-            }
-        }
-        return httpClient;
+        throw new UnsupportedOperationException("This component does not support producer.");
     }
 
     @Override
@@ -212,47 +131,6 @@ public abstract class JettyHttpEndpoint extends HttpCommonEndpoint {
         this.handlers = handlers;
     }
 
-    public HttpClient getHttpClient() throws Exception {
-        return httpClient;
-    }
-
-    /**
-     * Sets a shared {@link HttpClient} to use for all producers
-     * created by this endpoint. By default each producer will
-     * use a new http client, and not share.
-     * <p/>
-     * <b>Important: </b> Make sure to handle the lifecycle of the shared
-     * client, such as stopping the client, when it is no longer in use.
-     * Camel will call the <tt>start</tt> method on the client to ensure
-     * its started when this endpoint creates a producer.
-     * <p/>
-     * This options should only be used in special circumstances.
-     */
-    public void setHttpClient(HttpClient httpClient) {
-        this.httpClient = httpClient;
-    }
-
-    public synchronized JettyHttpBinding getJettyBinding(HttpClient httpClient) {
-        if (jettyBinding == null) {
-            jettyBinding = new DefaultJettyHttpBinding();
-            jettyBinding.setHeaderFilterStrategy(getHeaderFilterStrategy());
-            jettyBinding.setThrowExceptionOnFailure(isThrowExceptionOnFailure());
-            jettyBinding.setTransferException(isTransferException());
-            if (getComponent() != null) {
-                jettyBinding.setAllowJavaSerializedObject(getComponent().isAllowJavaSerializedObject());
-            }
-            jettyBinding.setOkStatusCodeRange(getOkStatusCodeRange());
-        }
-        return jettyBinding;
-    }
-
-    /**
-     * To use a custom JettyHttpBinding which be used to customize how a response should be written for the producer.
-     */
-    public void setJettyBinding(JettyHttpBinding jettyBinding) {
-        this.jettyBinding = jettyBinding;
-    }
-
     public boolean isEnableJmx() {
         return this.enableJmx;
     }
@@ -359,44 +237,6 @@ public abstract class JettyHttpEndpoint extends HttpCommonEndpoint {
         this.sslContextParameters = sslContextParameters;
     }
 
-    public Integer getHttpClientMinThreads() {
-        return httpClientMinThreads;
-    }
-
-    /**
-     * To set a value for minimum number of threads in HttpClient thread pool.
-     * This setting override any setting configured on component level.
-     * Notice that both a min and max size must be configured. If not set it default to min 8 threads used in Jettys thread pool.
-     */
-    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.
-     * This setting override any setting configured on component level.
-     * Notice that both a min and max size must be configured. If not set it default to max 254 threads used in Jettys thread pool.
-     */
-    public void setHttpClientMaxThreads(Integer httpClientMaxThreads) {
-        this.httpClientMaxThreads = httpClientMaxThreads;
-    }
-
-    public Map<String, Object> getHttpClientParameters() {
-        return httpClientParameters;
-    }
-
-    /**
-     * Configuration of Jetty's HttpClient. For example, setting httpClient.idleTimeout=30000 sets the idle timeout to 30 seconds.
-     * And httpClient.timeout=30000 sets the request timeout to 30 seconds, in case you want to timeout sooner if you have long running request/response calls.
-     */
-    public void setHttpClientParameters(Map<String, Object> httpClientParameters) {
-        this.httpClientParameters = httpClientParameters;
-    }
-
     public Map<String, String> getFilterInitParameters() {
         return filterInitParameters;
     }
@@ -419,17 +259,6 @@ public abstract class JettyHttpEndpoint extends HttpCommonEndpoint {
         this.enableCORS = enableCORS;
     }
 
-    public CookieHandler getCookieHandler() {
-        return cookieHandler;
-    }
-
-    /**
-     * Configure a cookie handler to maintain a HTTP session
-     */
-    public void setCookieHandler(CookieHandler cookieHandler) {
-        this.cookieHandler = cookieHandler;
-    }
-
     public abstract JettyContentExchange createContentExchange();
 
 }
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java
deleted file mode 100644
index 51bb4d7..0000000
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java
+++ /dev/null
@@ -1,344 +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.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.Serializable;
-import java.net.CookieStore;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.camel.AsyncCallback;
-import org.apache.camel.AsyncProcessor;
-import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.http.common.HttpConstants;
-import org.apache.camel.http.common.HttpHelper;
-import org.apache.camel.spi.HeaderFilterStrategy;
-import org.apache.camel.support.DefaultAsyncProducer;
-import org.apache.camel.support.ExchangeHelper;
-import org.apache.camel.support.ObjectHelper;
-import org.apache.camel.util.IOHelper;
-import org.apache.camel.util.URISupport;
-import org.eclipse.jetty.client.HttpClient;
-import org.eclipse.jetty.util.component.LifeCycle;
-
-@Deprecated
-public class JettyHttpProducer extends DefaultAsyncProducer implements AsyncProcessor {
-
-    private HttpClient client;
-    private boolean sharedClient;
-    private JettyHttpBinding binding;
-
-    /**
-     * Creates this producer.
-     * <p/>
-     * A client must be set before use, eg either {@link #setClient(org.eclipse.jetty.client.HttpClient)}
-     * or {@link #setSharedClient(org.eclipse.jetty.client.HttpClient)}.
-     *
-     * @param endpoint  the endpoint
-     */
-    public JettyHttpProducer(Endpoint endpoint) {
-        super(endpoint);
-    }
-
-    /**
-     * Creates this producer
-     *
-     * @param endpoint  the endpoint
-     * @param client    the non-shared client to use
-     */
-    public JettyHttpProducer(Endpoint endpoint, HttpClient client) {
-        super(endpoint);
-        setClient(client);
-    }
-
-    @Override
-    public JettyHttpEndpoint getEndpoint() {
-        return (JettyHttpEndpoint) super.getEndpoint();
-    }
-
-    public boolean process(Exchange exchange, final AsyncCallback callback) {
-        try {
-            processInternal(exchange, callback);
-        } catch (Exception e) {
-            // error occurred before we had a chance to go async
-            // so set exception and invoke callback true
-            exchange.setException(e);
-            callback.done(true);
-            return true;
-        }
-
-        // we should continue processing this asynchronously
-        return false;
-    }
-
-    private void processInternal(Exchange exchange, AsyncCallback callback) throws Exception {
-        // creating the url to use takes 2-steps
-        String url = HttpHelper.createURL(exchange, getEndpoint());
-        URI uri = HttpHelper.createURI(exchange, url, getEndpoint());
-        // get the url from the uri
-        url = uri.toASCIIString();
-
-        // execute any custom url rewrite
-        String rewriteUrl = HttpHelper.urlRewrite(exchange, url, getEndpoint(), this);
-        if (rewriteUrl != null) {
-            // update url and query string from the rewritten url
-            url = rewriteUrl;
-        }
-
-        String methodName = HttpHelper.createMethod(exchange, getEndpoint(), exchange.getIn().getBody() != null).name();
-
-        JettyContentExchange httpExchange = getEndpoint().createContentExchange();
-        httpExchange.init(exchange, getBinding(), client, callback);
-
-        // url must have scheme
-        try {
-            uri = new URI(url);
-            String scheme = uri.getScheme();
-            if (scheme == null) {
-                throw new IllegalArgumentException("Url must include scheme: " + url + ". If you are bridging endpoints set bridgeEndpoint=true."
-                        + " If you want to call a specific url, then you may need to remove all CamelHttp* headers in the route before this."
-                        + " See more details at: http://camel.apache.org/how-to-remove-the-http-protocol-headers-in-the-camel-message.html");
-            }
-        } catch (URISyntaxException e) {
-            // ignore
-        }
-
-        httpExchange.setURL(url); // Url has to be set first
-        httpExchange.setMethod(methodName);
-        
-        if (getEndpoint().getHttpClientParameters() != null) {
-            // For jetty 9 these parameters can not be set on the client
-            // so we need to set them on the httpExchange
-            String timeout = (String)getEndpoint().getHttpClientParameters().get("timeout");
-            if (timeout != null) {
-                httpExchange.setTimeout(new Long(timeout));
-            }
-            String supportRedirect = (String)getEndpoint().getHttpClientParameters().get("supportRedirect");
-            if (supportRedirect != null) {
-                httpExchange.setSupportRedirect(Boolean.valueOf(supportRedirect));
-            }
-        }
-
-        log.trace("Using URL: {} with method: {}", url, methodName);
-
-        // if there is a body to send as data
-        if (exchange.getIn().getBody() != null) {
-            String contentType = ExchangeHelper.getContentType(exchange);
-            if (contentType != null) {
-                httpExchange.setRequestContentType(contentType);
-            }
-            if (contentType != null && HttpConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT.equals(contentType)) {
-                if (getEndpoint().getComponent().isAllowJavaSerializedObject() || getEndpoint().isTransferException()) {
-                    // serialized java object
-                    Serializable obj = exchange.getIn().getMandatoryBody(Serializable.class);
-                    // write object to output stream
-                    ByteArrayOutputStream bos = new ByteArrayOutputStream();
-                    try {
-                        HttpHelper.writeObjectToStream(bos, obj);
-                        httpExchange.setRequestContent(bos.toByteArray());
-                    } finally {
-                        IOHelper.close(bos, "body", log);
-                    }
-                } else {
-                    throw new RuntimeCamelException("Content-type " + HttpConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT + " is not allowed");
-                }
-            } else {
-                Object body = exchange.getIn().getBody();
-                if (body instanceof String) {
-                    String data = (String) body;
-                    // be a bit careful with String as any type can most likely be converted to String
-                    // so we only do an instanceof check and accept String if the body is really a String
-                    // do not fallback to use the default charset as it can influence the request
-                    // (for example application/x-www-form-urlencoded forms being sent)
-                    String charset = ExchangeHelper.getCharsetName(exchange, false);
-                    httpExchange.setRequestContent(data, charset);
-                } else {
-                    // then fallback to input stream
-                    InputStream is = exchange.getContext().getTypeConverter().mandatoryConvertTo(InputStream.class, exchange, exchange.getIn().getBody());
-                    // setup the content length if it is possible
-                    String length = exchange.getIn().getHeader(Exchange.CONTENT_LENGTH, String.class);
-                    if (org.apache.camel.util.ObjectHelper.isNotEmpty(length)) {
-                        httpExchange.addRequestHeader(Exchange.CONTENT_LENGTH, length);
-                        //send with content-length
-                        httpExchange.setRequestContent(is, new Integer(length));
-                        
-                    } else {
-                        //send chunked
-                        httpExchange.setRequestContent(is);
-                    }
-                }
-            }
-        }
-
-        // if we bridge endpoint then we need to skip matching headers with the HTTP_QUERY to avoid sending
-        // duplicated headers to the receiver, so use this skipRequestHeaders as the list of headers to skip
-        Map<String, Object> skipRequestHeaders = null;
-        if (getEndpoint().isBridgeEndpoint()) {
-            exchange.setProperty(Exchange.SKIP_GZIP_ENCODING, Boolean.TRUE);
-            String queryString = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
-            if (queryString != null) {
-                skipRequestHeaders = URISupport.parseQuery(queryString, false, true);
-            }
-        }
-
-        // propagate headers as HTTP headers
-        Message in = exchange.getIn();
-        HeaderFilterStrategy strategy = getEndpoint().getHeaderFilterStrategy();
-        for (Map.Entry<String, Object> entry : in.getHeaders().entrySet()) {
-            String key = entry.getKey();
-            Object headerValue = in.getHeader(key);
-
-            if (headerValue != null) {
-                // use an iterator as there can be multiple values. (must not use a delimiter, and allow empty values)
-                final Iterator<?> it = ObjectHelper.createIterator(headerValue, null, true);
-
-                // the values to add as a request header
-                final List<String> values = new ArrayList<>();
-
-                // if its a multi value then check each value if we can add it and for multi values they
-                // should be combined into a single value
-                while (it.hasNext()) {
-                    String value = exchange.getContext().getTypeConverter().convertTo(String.class, it.next());
-
-                    // we should not add headers for the parameters in the uri if we bridge the endpoint
-                    // as then we would duplicate headers on both the endpoint uri, and in HTTP headers as well
-                    if (skipRequestHeaders != null && skipRequestHeaders.containsKey(key)) {
-                        continue;
-                    }
-                    if (value != null && strategy != null && !strategy.applyFilterToCamelHeaders(key, value, exchange)) {
-                        values.add(value);
-                    }
-                }
-
-                // add the value(s) as a http request header
-                if (values.size() > 0) {
-                    // use the default toString of a ArrayList to create in the form [xxx, yyy]
-                    // if multi valued, for a single value, then just output the value as is
-                    String s = values.size() > 1 ? values.toString() : values.get(0);
-                    httpExchange.addRequestHeader(key, s);
-                }
-            }
-        }
-
-        if (getEndpoint().isConnectionClose()) {
-            httpExchange.addRequestHeader("Connection", "close");
-        }
-
-        //In reverse proxy applications it can be desirable for the downstream service to see the original Host header
-        //if this option is set, and the exchange Host header is not null, we will set it's current value on the httpExchange
-        if (getEndpoint().isPreserveHostHeader()) {
-            String hostHeader = exchange.getIn().getHeader("Host", String.class);
-            if (hostHeader != null) {
-                //HttpClient 4 will check to see if the Host header is present, and use it if it is, see org.apache.http.protocol.RequestTargetHost in httpcore
-                httpExchange.addRequestHeader("Host", hostHeader);
-            }
-        }
-
-        // set the callback, which will handle all the response logic
-        if (log.isDebugEnabled()) {
-            log.debug("Sending HTTP request to: {}", httpExchange.getUrl());
-        }
-
-        if (getEndpoint().getCookieHandler() != null) {
-            // this will store the cookie in the cookie store
-            CookieStore cookieStore = getEndpoint().getCookieHandler().getCookieStore(exchange);
-            if (!client.getCookieStore().equals(cookieStore)) {
-                client.setCookieStore(cookieStore);
-            }
-        }
-
-        httpExchange.send(client);
-    }
-
-    public JettyHttpBinding getBinding() {
-        return binding;
-    }
-
-    public void setBinding(JettyHttpBinding binding) {
-        this.binding = binding;
-    }
-
-    public HttpClient getClient() {
-        return client;
-    }
-
-    public void setClient(HttpClient client) {
-        this.client = client;
-        this.sharedClient = false;
-    }
-
-    public HttpClient getSharedClient() {
-        if (sharedClient) {
-            return client;
-        } else {
-            return null;
-        }
-    }
-
-    public void setSharedClient(HttpClient sharedClient) {
-        this.client = sharedClient;
-        this.sharedClient = true;
-    }
-
-    private Object getClientThreadPool() {
-        try {
-            return client.getClass().getMethod("getThreadPool").invoke(client);
-        } catch (Throwable t) {
-            // not found in Jetty 9 which is OK as the threadpool is auto started on Jetty 9
-        }
-        return null;
-    }
-    
-    @Override
-    protected void doStart() throws Exception {
-        // only start non-shared client
-        if (!sharedClient && client != null) {
-            client.start();
-            // start the thread pool
-            Object tp = getClientThreadPool();
-            if (tp instanceof LifeCycle) {
-                log.debug("Starting client thread pool {}", tp);
-                ((LifeCycle) tp).start();
-            }
-        }
-        super.doStart();
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        super.doStop();
-        // only stop non-shared client
-        if (!sharedClient && client != null) {
-            client.stop();
-            // stop thread pool
-            Object tp = getClientThreadPool();
-            if (tp instanceof LifeCycle) {
-                log.debug("Stopping client thread pool {}", tp);
-                ((LifeCycle) tp).stop();
-            }
-        }
-    }
-}
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyRestHttpBinding.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyRestHttpBinding.java
index c5e76f3..16ac7e0 100644
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyRestHttpBinding.java
+++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyRestHttpBinding.java
@@ -23,9 +23,11 @@ import org.apache.camel.http.common.HttpCommonEndpoint;
 import org.apache.camel.http.common.HttpMessage;
 
 public class JettyRestHttpBinding extends DefaultHttpBinding {
+
     @Deprecated
     public JettyRestHttpBinding() {
     }
+
     public JettyRestHttpBinding(HttpCommonEndpoint ep) {
         super(ep);
         setHeaderFilterStrategy(ep.getHeaderFilterStrategy());
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/cloud/JettyServiceExpression.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/cloud/JettyServiceExpression.java
deleted file mode 100644
index af58a4c..0000000
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/cloud/JettyServiceExpression.java
+++ /dev/null
@@ -1,51 +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.cloud;
-
-import org.apache.camel.impl.cloud.DefaultServiceCallExpression;
-import org.apache.camel.util.ObjectHelper;
-
-public final class JettyServiceExpression extends DefaultServiceCallExpression {
-    public JettyServiceExpression() {
-    }
-
-    public JettyServiceExpression(String hostHeader, String portHeader) {
-        super(hostHeader, portHeader);
-    }
-
-    @Override
-    protected String doBuildCamelEndpointUri(String host, Integer port, String contextPath, String scheme) {
-        if (!ObjectHelper.equal(scheme, "jetty")) {
-            return super.doBuildCamelEndpointUri(host, port, contextPath, scheme);
-        }
-
-        String answer = scheme + ":http://" + host;
-        if (port != null) {
-            answer = answer + ":" + port;
-        }
-
-        if (contextPath != null) {
-            if (!contextPath.startsWith("/")) {
-                contextPath = "/" + contextPath;
-            }
-
-            answer += contextPath;
-        }
-
-        return answer;
-    }
-}
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/cloud/JettyServiceExpressionFactory.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/cloud/JettyServiceExpressionFactory.java
deleted file mode 100644
index 3eca084..0000000
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/cloud/JettyServiceExpressionFactory.java
+++ /dev/null
@@ -1,30 +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.cloud;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.Expression;
-import org.apache.camel.cloud.ServiceExpressionFactory;
-import org.apache.camel.spi.annotations.CloudServiceFactory;
-
-@CloudServiceFactory("jetty-service-expression")
-public class JettyServiceExpressionFactory implements ServiceExpressionFactory {
-    @Override
-    public Expression newInstance(CamelContext camelContext) throws Exception {
-        return new JettyServiceExpression();
-    }
-}
diff --git a/components/camel-jetty/src/main/docs/jetty-component.adoc b/components/camel-jetty/src/main/docs/jetty-component.adoc
index ce80b40..7e30f84 100644
--- a/components/camel-jetty/src/main/docs/jetty-component.adoc
+++ b/components/camel-jetty/src/main/docs/jetty-component.adoc
@@ -3,13 +3,9 @@
 
 *Available as of Camel version 1.2*
 
-WARNING: The producer is deprecated - do not use. We only recommend using jetty as consumer (eg from jetty)
-
 The *jetty* component provides HTTP-based endpoints
 for consuming and producing HTTP requests. That is, the Jetty component
-behaves as a simple Web server. +
- Jetty can also be used as a http client which mean you can also use it
-with Camel as a producer.
+behaves as a simple Web server.
 
 *Stream*
 
@@ -269,34 +265,7 @@ message header not only from Get Method, but also other HTTP method.
 
 === Usage
 
-The Jetty component supports both consumer and producer endpoints.
-Another option for producing to other HTTP endpoints, is to use the
-<<http-component,HTTP Component>>
-
-=== Producer Example
-
-WARNING: The producer is deprecated - do not use. We only recommend using jetty as consumer (eg from jetty)
-
-The following is a basic example of how to send an HTTP request to an
-existing HTTP endpoint.
-
-in Java DSL
-
-[source,java]
-----
-from("direct:start")
-  .to("jetty://http://www.google.com");
-----
-
-or in Spring XML
-
-[source,xml]
-----
-<route>
-    <from uri="direct:start"/>
-    <to uri="jetty://http://www.google.com"/>
-<route>
-----
+The Jetty component supports consumer endpoints.
 
 === Consumer Example
 
@@ -351,7 +320,7 @@ exchange. For example, the following route enables sessions:
 <route>
     <from uri="jetty:http://0.0.0.0/myapp/myservice/?sessionSupport=true"/>
     <processRef ref="myCode"/>
-<route>
+</route>
 ----
 
 The `myCode` Processor can be instantiated by a
@@ -359,7 +328,7 @@ Spring `bean` element:
 
 [source,xml]
 ----
-<bean id="myCode"class="com.mycompany.MyCodeProcessor"/>
+<bean id="myCode" class="com.mycompany.MyCodeProcessor"/>
 ----
 
 Where the processor implementation can access the `HttpSession` as
@@ -410,7 +379,6 @@ Spring DSL based configuration of endpoint
 
 [source,xml]
 ----
-...
   <camel:sslContextParameters
       id="sslContextParameters">
     <camel:keyManagers
@@ -419,10 +387,10 @@ Spring DSL based configuration of endpoint
           resource="/users/home/server/keystore.jks"
           password="keystorePassword"/>
     </camel:keyManagers>
-  </camel:sslContextParameters>...
-...
+  </camel:sslContextParameters>
+
   <to uri="jetty:https://127.0.0.1/mail/?sslContextParameters=#sslContextParameters"/>
-...
+
 ----
 
 [[Jetty-ConfiguringJettyDirectly]]
@@ -440,21 +408,6 @@ Jetty also needs to know where to load your keystore from and what
 passwords to use in order to load the correct SSL certificate. Set the
 following JVM System Properties:
 
-*until Camel 2.2*
-
-* `jetty.ssl.keystore` specifies the location of the Java keystore file,
-which contains the Jetty server's own X.509 certificate in a _key
-entry_. A key entry stores the X.509 certificate (effectively, the
-_public key_) and also its associated private key.
-* `jetty.ssl.password` the store password, which is required to access
-the keystore file (this is the same password that is supplied to the
-`keystore` command's `-storepass` option).
-* `jetty.ssl.keypassword` the key password, which is used to access the
-certificate's key entry in the keystore (this is the same password that
-is supplied to the `keystore` command's `-keypass` option).
-
-*from Camel 2.3 onwards*
-
 * `org.eclipse.jetty.ssl.keystore` specifies the location of the Java
 keystore file, which contains the Jetty server's own X.509 certificate
 in a _key entry_. A key entry stores the X.509 certificate (effectively,
@@ -475,52 +428,7 @@ Some SSL properties aren't exposed directly by Camel, however Camel does
 expose the underlying SslSocketConnector, which will allow you to set
 properties like needClientAuth for mutual authentication requiring a
 client certificate or wantClientAuth for mutual authentication where a
-client doesn't need a certificate but can have one. There's a slight
-difference between the various Camel versions:
-
-*Up to Camel 2.2*
-
-[source,xml]
-----
-<bean id="jetty" class="org.apache.camel.component.jetty.JettyHttpComponent">
-    <property name="sslSocketConnectors">
-        <map>
-            <entry key="8043">
-                <bean class="org.mortbay.jetty.security.SslSocketConnector">
-                    <property name="password"value="..."/>
-                    <property name="keyPassword"value="..."/>
-                    <property name="keystore"value="..."/>
-                    <property name="needClientAuth"value="..."/>
-                    <property name="truststore"value="..."/>
-                </bean>
-            </entry>
-        </map>
-    </property>
-</bean>
-----
-
-*Camel 2.3, 2.4*
-
-[source,xml]
-----
-<bean id="jetty" class="org.apache.camel.component.jetty.JettyHttpComponent">
-    <property name="sslSocketConnectors">
-        <map>
-            <entry key="8043">
-                <bean class="org.eclipse.jetty.server.ssl.SslSocketConnector">
-                    <property name="password"value="..."/>
-                    <property name="keyPassword"value="..."/>
-                    <property name="keystore"value="..."/>
-                    <property name="needClientAuth"value="..."/>
-                    <property name="truststore"value="..."/>
-                </bean>
-            </entry>
-        </map>
-    </property>
-</bean>
-----
-
-*From Camel 2.5 we switch to use SslSelectChannelConnector *
+client doesn't need a certificate but can have one.
 
 [source,xml]
 ----
@@ -529,11 +437,11 @@ difference between the various Camel versions:
         <map>
             <entry key="8043">
                 <bean class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
-                    <property name="password"value="..."/>
-                    <property name="keyPassword"value="..."/>
-                    <property name="keystore"value="..."/>
-                    <property name="needClientAuth"value="..."/>
-                    <property name="truststore"value="..."/>
+                    <property name="password" value="..."/>
+                    <property name="keyPassword" value="..."/>
+                    <property name="keystore" value="..."/>
+                    <property name="needClientAuth" value="..."/>
+                    <property name="truststore" value="..."/>
                 </bean>
             </entry>
         </map>
@@ -546,8 +454,6 @@ Jetty to listen on.
 
 ==== Configuring general SSL properties
 
-*Available as of Camel 2.5*
-
 Instead of a per port number specific SSL socket connector (as shown
 above) you can now configure general properties which applies for all
 SSL socket connectors (which is not explicit configured as above with
@@ -558,11 +464,11 @@ the port number as entry).
 <bean id="jetty" class="org.apache.camel.component.jetty.JettyHttpComponent">
     <property name="sslSocketConnectorProperties">
         <map>
-            <entry key="password"value="..."/>
-            <entry key="keyPassword"value="..."/>
-            <entry key="keystore"value="..."/>
-            <entry key="needClientAuth"value="..."/>
-            <entry key="truststore"value="..."/>
+            <entry key="password" value="..."/>
+            <entry key="keyPassword" value="..."/>
+            <entry key="keystore" value="..."/>
+            <entry key="needClientAuth" value="..."/>
+            <entry key="truststore" value="..."/>
         </map>
     </property>
 </bean>
@@ -581,8 +487,6 @@ X509Certificate cert = (X509Certificate) req.getAttribute("javax.servlet.request
 
 ==== Configuring general HTTP properties
 
-*Available as of Camel 2.5*
-
 Instead of a per port number specific HTTP socket connector (as shown
 above) you can now configure general properties which applies for all
 HTTP socket connectors (which is not explicit configured as above with
@@ -661,7 +565,7 @@ Spring registry as follows:
 
 [source,xml]
 ----
-<bean id="mybinding"class="com.mycompany.MyHttpBinding"/>
+<bean id="mybinding" class="com.mycompany.MyHttpBinding"/>
 ----
 
 And then we can reference this binding when we define the route:
@@ -682,7 +586,6 @@ configured in Spring XML as follows:
 
 [source,xml]
 ----
-<-- Jetty Security handling -->
 <bean id="userRealm" class="org.mortbay.jetty.plus.jaas.JAASUserRealm">
     <property name="name" value="tracker-users"/>
     <property name="loginModuleName" value="ldaploginmodule"/>
@@ -705,12 +608,10 @@ configured in Spring XML as follows:
 </bean>
 ----
 
-*And from Camel 2.3 onwards* you can configure a list of Jetty handlers
-as follows:
+You can configure a list of Jetty handlers as follows:
 
 [source,xml]
 ----
-<-- Jetty Security handling -->
 <bean id="constraint" class="org.eclipse.jetty.http.security.Constraint">
     <property name="name" value="BASIC"/>
     <property name="roles" value="tracker-users"/>
@@ -757,19 +658,15 @@ reply message. For example as show here, where we return
 
 === Multi-part Form support
 
-From Camel 2.3.0, camel-jetty support to multipart form post out of box.
+The camel-jetty component supports multipart form post out of box.
 The submitted form-data are mapped into the message header. Camel-jetty
 creates an attachment for each uploaded file. The file name is mapped to
 the name of the attachment. The content type is set as the content type
 of the attachment file name. You can find the example here.
 
-*Note: getName() functions as shown below in versions 2.5 and higher. In
-earlier versions you receive the temporary file name for the attachment
-instead*
-
 === Jetty JMX support
 
-From Camel 2.3.0, camel-jetty supports the enabling of Jetty's JMX
+The camel-jetty component supports the enabling of Jetty's JMX
 capabilities at the component and endpoint level with the endpoint
 configuration taking priority. Note that JMX must be enabled within the
 Camel context in order to enable JMX support in this component as the
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpEmptyQueryParameterTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpEmptyQueryParameterTest.java
index 9c2c652..2840566 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpEmptyQueryParameterTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpEmptyQueryParameterTest.java
@@ -24,14 +24,14 @@ public class HttpEmptyQueryParameterTest extends BaseJettyTest {
     @Test
     public void testEmpty() throws Exception {
         getMockEndpoint("mock:input").expectedHeaderReceived("id", 123);
-        String out = fluentTemplate.to("jetty:http://localhost:{{port}}/foo?id=123").request(String.class);
+        String out = fluentTemplate.to("http://localhost:{{port}}/foo?id=123").request(String.class);
         assertEquals("Header: 123", out);
         assertMockEndpointsSatisfied();
 
         resetMocks();
 
         getMockEndpoint("mock:input").expectedHeaderReceived("id", "");
-        out = fluentTemplate.to("jetty:http://localhost:{{port}}/foo?id=").request(String.class);
+        out = fluentTemplate.to("http://localhost:{{port}}/foo?id=").request(String.class);
         assertEquals("Header: ", out);
         assertMockEndpointsSatisfied();
     }
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpFilterNoCamelHeadersTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpFilterNoCamelHeadersTest.java
index 8cca940..7d1f9fb 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpFilterNoCamelHeadersTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpFilterNoCamelHeadersTest.java
@@ -58,7 +58,7 @@ public class HttpFilterNoCamelHeadersTest extends BaseJettyTest {
             public void configure() throws Exception {
                 from("direct:start")
                     .setHeader(Exchange.FILE_NAME, constant("test.txt"))
-                    .to("jetty:http://localhost:{{port}}/test/filter")
+                    .to("http://localhost:{{port}}/test/filter")
                     .to("mock:result");
 
                 from("jetty:http://localhost:{{port}}/test/filter")
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGetWithBodyTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGetWithBodyTest.java
deleted file mode 100644
index ecced97..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGetWithBodyTest.java
+++ /dev/null
@@ -1,53 +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 org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.junit.Test;
-
-public class HttpGetWithBodyTest extends BaseJettyTest {
-
-    @Test
-    public void testGetWithBody() throws Exception {
-        // use jetty http producer as it support GET with body (regular camel-http producer does not)
-        Exchange result = template.request("jetty:http://localhost:{{port}}/myapp", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(Exchange.HTTP_METHOD, "GET");
-                exchange.getIn().setBody("Camel");
-            }
-        });
-        assertNotNull(result);
-
-        assertEquals("Hello Camel", result.getOut().getBody(String.class));
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                from("jetty:http://localhost:{{port}}/myapp?disableStreamCache=false")
-                    .convertBodyTo(String.class)
-                    .to("log:foo")
-                    .transform(body().prepend("Hello "));
-            }
-        };
-    }
-
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpProducerUnsafeCharsTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpProducerUnsafeCharsTest.java
index 691fc44..dedddd8 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpProducerUnsafeCharsTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpProducerUnsafeCharsTest.java
@@ -28,7 +28,7 @@ public class HttpProducerUnsafeCharsTest extends BaseJettyTest {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
 
-        template.sendBodyAndHeader("jetty:http://localhost:{{port}}/test?bridgeEndpoint=true", "Hello World",
+        template.sendBodyAndHeader("http://localhost:{{port}}/test?bridgeEndpoint=true", "Hello World",
                 Exchange.HTTP_URI, "/<>{}");
 
         assertMockEndpointsSatisfied();
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpBindingRefTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpBindingRefTest.java
deleted file mode 100644
index a29965a..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpBindingRefTest.java
+++ /dev/null
@@ -1,101 +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.io.IOException;
-
-import org.apache.camel.CamelExecutionException;
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.http.common.HttpOperationFailedException;
-import org.apache.camel.impl.JndiRegistry;
-import org.apache.camel.spi.HeaderFilterStrategy;
-import org.junit.Test;
-
-/**
- * Unit test for jetty http binding ref option.
- */
-public class JettyHttpBindingRefTest extends BaseJettyTest {
-
-    @Test
-    public void testDefaultJettyHttpBinding() throws Exception {
-        Object out = template.requestBody("jetty:http://localhost:{{port}}/myapp/myservice?jettyHttpBindingRef=default", "Hello World");
-        assertEquals("Bye World", context.getTypeConverter().convertTo(String.class, out));
-
-        try {
-            template.requestBody("jetty:http://localhost:{{port}}/myapp/myotherservice", "Hello World");
-            fail();
-        } catch (CamelExecutionException e) {
-            assertNotNull(e.getCause());
-            assertTrue(e.getCause() instanceof HttpOperationFailedException);
-
-            assertFalse("Not exactly the message the server returned.".equals(((HttpOperationFailedException) e.getCause()).getResponseBody()));
-        }
-    }
-
-    @Test
-    public void testCustomJettyHttpBinding() throws Exception {
-        
-        Object out = template.requestBody("jetty:http://localhost:{{port}}/myapp/myotherservice?jettyHttpBindingRef=myownbinder", "Hello World");
-        assertEquals("Not exactly the message the server returned.", context.getTypeConverter().convertTo(String.class, out));
-    }
-
-    @Override
-    protected JndiRegistry createRegistry() throws Exception {
-        JndiRegistry jndi = super.createRegistry();
-        jndi.bind("default", new DefaultJettyHttpBinding());
-        jndi.bind("myownbinder", new MyJettyHttpBinding());
-        return jndi;
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                errorHandler(noErrorHandler());
-
-                from("jetty:http://localhost:{{port}}/myapp/myservice").transform().constant("Bye World");
-
-                from("jetty:http://localhost:{{port}}/myapp/myotherservice").process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        throw new IllegalStateException("Not implemented");
-                    }
-                });
-            }
-        };
-    }
-
-    // START SNIPPET: e1
-    public class MyJettyHttpBinding extends DefaultJettyHttpBinding {
-        @Override
-        protected void populateResponse(Exchange exchange, JettyContentExchange httpExchange, Message in,
-                                        HeaderFilterStrategy strategy, int responseCode) throws IOException {
-
-            Message answer = exchange.getOut();
-
-            answer.setHeaders(in.getHeaders());
-            answer.setHeader(Exchange.HTTP_RESPONSE_CODE, responseCode);
-            answer.setBody("Not exactly the message the server returned.");
-        }
-    }
-    // END SNIPPET: e1
-
-}
-
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpBridgeEncodedPathTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpBridgeEncodedPathTest.java
index 92cf170..8aeb813 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpBridgeEncodedPathTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpBridgeEncodedPathTest.java
@@ -54,7 +54,7 @@ public class JettyHttpBridgeEncodedPathTest extends BaseJettyTest {
                 };
                 from("jetty://http://localhost:" + port2 + "/jettyTestRouteA?matchOnUriPrefix=true")
                         .log("Using JettyTestRouteA route: CamelHttpPath=[${header.CamelHttpPath}], CamelHttpUri=[${header.CamelHttpUri}]")
-                        .to("jetty://http://localhost:" + port1 + "/jettyTestRouteB?throwExceptionOnFailure=false&bridgeEndpoint=true");
+                        .to("http://localhost:" + port1 + "/jettyTestRouteB?throwExceptionOnFailure=false&bridgeEndpoint=true");
 
                 from("jetty://http://localhost:" + port1 + "/jettyTestRouteB?matchOnUriPrefix=true")
                         .log("Using JettyTestRouteB route: CamelHttpPath=[${header.CamelHttpPath}], CamelHttpUri=[${header.CamelHttpUri}]")
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpClientOptionsTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpClientOptionsTest.java
deleted file mode 100644
index 2236403..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpClientOptionsTest.java
+++ /dev/null
@@ -1,106 +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.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.http4.HttpProducer;
-import org.apache.camel.http.common.HttpCommonEndpoint;
-import org.apache.http.HttpConnection;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.methods.HttpHead;
-import org.apache.http.client.protocol.HttpClientContext;
-import org.apache.http.conn.routing.HttpRoute;
-import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
-import org.apache.http.protocol.HttpCoreContext;
-import org.eclipse.jetty.client.HttpClient;
-import org.junit.Test;
-
-
-/**
- * Unit test for http client options.
- */
-public class JettyHttpClientOptionsTest extends BaseJettyTest {
-
-    @Test
-    public void testCustomHttpBinding() throws Exception {
-        // assert jetty was configured with our timeout
-        HttpCommonEndpoint jettyEndpoint = context.getEndpoint("http://localhost:{{port}}/myapp/myservice?socketTimeout=5555", HttpCommonEndpoint.class);
-        assertNotNull("Jetty endpoint should not be null ", jettyEndpoint);
-        AtomicInteger soTimeout = new AtomicInteger();
-        HttpProducer producer = (HttpProducer)jettyEndpoint.createProducer();
-        HttpClientContext ctx = new HttpClientContext() {
-            @Override
-            public void setAttribute(String id, Object obj) {
-                if (obj instanceof HttpConnection) {
-                    HttpConnection con = (HttpConnection) obj;
-                    if (con.isOpen()) {
-                        int so = con.getSocketTimeout();
-                        if (so >= 0) {
-                            soTimeout.set(so);
-                        }
-                    }
-                }
-                super.setAttribute(id, obj);
-            }
-        };
-        HttpResponse response = producer.getHttpClient().execute(new HttpHost("localhost", getPort()), new HttpHead(), ctx);
-        assertEquals("Get the wrong http client parameter", 5555, soTimeout.get());
-
-        // send and receive
-        Object out = template.requestBody("http://localhost:{{port}}/myapp/myservice", "Hello World");
-        assertEquals("Bye World", context.getTypeConverter().convertTo(String.class, out));
-    }
-    
-    @Test
-    public void testProxySettingOfJettyHttpClient() throws Exception {
-        // setup the Proxy setting through the URI
-        HttpCommonEndpoint jettyEndpoint = context.getEndpoint("jetty://http://localhost:{{port}}/proxy/setting?proxyHost=192.168.0.1&proxyPort=9090", HttpCommonEndpoint.class);
-        assertNotNull("Jetty endpoint should not be null ", jettyEndpoint);
-        JettyHttpProducer producer = (JettyHttpProducer)jettyEndpoint.createProducer();
-        assertProxyAddress(producer.getClient(), "192.168.0.1", 9090);
-
-        // setup the context properties
-        context.getGlobalOptions().put("http.proxyHost", "192.168.0.2");
-        context.getGlobalOptions().put("http.proxyPort", "8080");
-        jettyEndpoint = context.getEndpoint("jetty://http://localhost:{{port}}/proxy2/setting", HttpCommonEndpoint.class);
-        producer = (JettyHttpProducer)jettyEndpoint.createProducer();
-        assertProxyAddress(producer.getClient(), "192.168.0.2", 8080);
-        context.getGlobalOptions().clear();
-
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("jetty:http://localhost:{{port}}/myapp/myservice?httpClient.soTimeout=5555").transform().constant("Bye World");
-            }
-        };
-    }
-    
-    private void assertProxyAddress(HttpClient client, String expectedHost, int expectedPort) {
-        CamelHttpClient camelHttpClient = (CamelHttpClient)client;
-        assertEquals("Got the wrong http proxy host parameter", expectedHost, camelHttpClient.getProxyHost());
-        assertEquals("Got the wrong http proxy port paramerter", expectedPort, camelHttpClient.getProxyPort());
-    }
-
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpContentTypeTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpContentTypeTest.java
index 1c0896e..8b599a5 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpContentTypeTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpContentTypeTest.java
@@ -37,7 +37,7 @@ public class JettyHttpContentTypeTest extends BaseJettyTest {
         getMockEndpoint("mock:input").expectedPropertyReceived(Exchange.CHARSET_NAME, CHARSET);
 
         byte[] data = "Hello World".getBytes(Charset.forName(CHARSET));
-        String out = template.requestBodyAndHeader("jetty:http://127.0.0.1:{{port}}/foo", data,
+        String out = template.requestBodyAndHeader("http://127.0.0.1:{{port}}/foo", data,
                 "content-type", "text/plain; charset=\"" + CHARSET + "\"", String.class);
         assertEquals("Bye World", out);
 
@@ -54,7 +54,7 @@ public class JettyHttpContentTypeTest extends BaseJettyTest {
         getMockEndpoint("mock:input").expectedPropertyReceived(Exchange.CHARSET_NAME, CHARSET);
 
         byte[] data = "Hello World".getBytes(Charset.forName(CHARSET));
-        String out = template.requestBodyAndHeader("jetty:http://127.0.0.1:{{port}}/foo", data,
+        String out = template.requestBodyAndHeader("http://127.0.0.1:{{port}}/foo", data,
                 "content-type", "text/plain;charset=\"" + CHARSET + "\";action=\"http://somewhere.com/foo\"", String.class);
         assertEquals("Bye World", out);
 
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyStreamCacheIssueTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyStreamCacheIssueTest.java
index 44180a1..d32419e 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyStreamCacheIssueTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyStreamCacheIssueTest.java
@@ -51,7 +51,7 @@ public class JettyStreamCacheIssueTest extends BaseJettyTest {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:input").to("jetty:http://localhost:" + getPort() + "/input");
+                from("direct:input").to("http://localhost:" + getPort() + "/input");
 
                 from("jetty:http://localhost:" + getPort() + "/input").process(new Processor() {
                     @Override
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/async/JettyAsyncThrottleTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/async/JettyAsyncThrottleTest.java
index 502c24e..6df6910 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/async/JettyAsyncThrottleTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/async/JettyAsyncThrottleTest.java
@@ -30,11 +30,11 @@ public class JettyAsyncThrottleTest extends BaseJettyTest {
     public void testJettyAsync() throws Exception {
         getMockEndpoint("mock:result").expectedMinimumMessageCount(1);
 
-        template.asyncRequestBody("jetty:http://localhost:{{port}}/myservice", null);
-        template.asyncRequestBody("jetty:http://localhost:{{port}}/myservice", null);
-        template.asyncRequestBody("jetty:http://localhost:{{port}}/myservice", null);
-        template.asyncRequestBody("jetty:http://localhost:{{port}}/myservice", null);
-        template.asyncRequestBody("jetty:http://localhost:{{port}}/myservice", null);
+        template.asyncRequestBody("http://localhost:{{port}}/myservice", null);
+        template.asyncRequestBody("http://localhost:{{port}}/myservice", null);
+        template.asyncRequestBody("http://localhost:{{port}}/myservice", null);
+        template.asyncRequestBody("http://localhost:{{port}}/myservice", null);
+        template.asyncRequestBody("http://localhost:{{port}}/myservice", null);
 
         assertMockEndpointsSatisfied();
         int size = getMockEndpoint("mock:result").getReceivedExchanges().size();
@@ -57,8 +57,8 @@ public class JettyAsyncThrottleTest extends BaseJettyTest {
                     .removeHeaders("*")
                     .throttle(2).asyncDelayed()
                         .loadBalance().failover()
-                            .to("jetty:http://localhost:" + port2 + "/foo")
-                            .to("jetty:http://localhost:" + port3 + "/bar")
+                            .to("http://localhost:" + port2 + "/foo")
+                            .to("http://localhost:" + port3 + "/bar")
                         .end()
                     .to("mock:result");
 
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/cloud/JettyServiceCallRouteTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/cloud/JettyServiceCallRouteTest.java
deleted file mode 100644
index a93ec92..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/cloud/JettyServiceCallRouteTest.java
+++ /dev/null
@@ -1,73 +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.cloud;
-
-import org.apache.camel.ResolveEndpointFailedException;
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Assert;
-import org.junit.Test;
-
-public class JettyServiceCallRouteTest extends CamelTestSupport {
-
-    @Test
-    public void testCustomSchema() throws Exception {
-        Assert.assertEquals("8081", template.requestBody("direct:custom", "hello", String.class));
-        Assert.assertEquals("8082", template.requestBody("direct:custom", "hello", String.class));
-    }
-
-    @Test
-    public void testDefaultSchema() throws Exception {
-        try {
-            Assert.assertEquals("8081", template.requestBody("direct:default", "hello", String.class));
-        } catch (RuntimeCamelException e) {
-            assertTrue(e.getCause() instanceof ResolveEndpointFailedException);
-        }
-    }
-
-    @Override
-    protected RoutesBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:custom")
-                    .serviceCall()
-                        .name("myService")
-                        .component("jetty")
-                        .staticServiceDiscovery()
-                            .servers("myService@localhost:8081")
-                            .servers("myService@localhost:8082")
-                        .endParent();
-
-                from("direct:default")
-                    .serviceCall()
-                        .name("myService")
-                        .staticServiceDiscovery()
-                            .servers("myService@localhost:8081")
-                            .servers("myService@localhost:8082")
-                        .endParent();
-
-                from("jetty:http://localhost:8081")
-                    .transform().constant("8081");
-                from("jetty:http://localhost:8082")
-                    .transform().constant("8082");
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerRecipientListCustomThreadPoolTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerRecipientListCustomThreadPoolTest.java
deleted file mode 100644
index 87627e3..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerRecipientListCustomThreadPoolTest.java
+++ /dev/null
@@ -1,67 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-public class HttpJettyProducerRecipientListCustomThreadPoolTest extends BaseJettyTest {
-
-    @Test
-    public void testRecipientList() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        Exchange a = template.request("direct:a", new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader("slip", "jetty://http://localhost:" + getPort() + "/myapp?foo=123&bar=cheese&httpClientMinThreads=4&httpClientMaxThreads=8");
-            }
-        });
-        assertNotNull(a);
-
-        assertEquals("Bye cheese", a.getOut().getBody(String.class));
-        assertEquals(246, a.getOut().getHeader("foo", Integer.class).intValue());
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:a").recipientList(header("slip"));
-
-                from("jetty://http://localhost:{{port}}/myapp").process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        int foo = exchange.getIn().getHeader("foo", Integer.class);
-                        String bar = exchange.getIn().getHeader("bar", String.class);
-
-                        exchange.getOut().setHeader("foo", foo * 2);
-                        exchange.getOut().setBody("Bye " + bar);
-                    }
-                });
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerRecipientListTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerRecipientListTest.java
deleted file mode 100644
index 483e0c3..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerRecipientListTest.java
+++ /dev/null
@@ -1,67 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-public class HttpJettyProducerRecipientListTest extends BaseJettyTest {
-
-    @Test
-    public void testRecipientList() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        Exchange a = template.request("direct:a", new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader("slip", "jetty://http://localhost:" + getPort() + "/myapp?foo=123&bar=cheese");
-            }
-        });
-        assertNotNull(a);
-
-        assertEquals("Bye cheese", a.getOut().getBody(String.class));
-        assertEquals(246, a.getOut().getHeader("foo", Integer.class).intValue());
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:a").recipientList(header("slip"));
-
-                from("jetty://http://localhost:{{port}}/myapp").process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        int foo = exchange.getIn().getHeader("foo", Integer.class);
-                        String bar = exchange.getIn().getHeader("bar", String.class);
-
-                        exchange.getOut().setHeader("foo", foo * 2);
-                        exchange.getOut().setBody("Bye " + bar);
-                    }
-                });
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerTwoEndpointTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerTwoEndpointTest.java
deleted file mode 100644
index 6a1882e..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerTwoEndpointTest.java
+++ /dev/null
@@ -1,73 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-public class HttpJettyProducerTwoEndpointTest extends BaseJettyTest {
-
-    @Test
-    public void testTwoEndpoints() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        Exchange a = template.request("direct:a", null);
-        assertNotNull(a);
-
-        Exchange b = template.request("direct:b", null);
-        assertNotNull(b);
-
-        assertEquals("Bye cheese", a.getOut().getBody(String.class));
-        assertEquals(246, a.getOut().getHeader("foo", Integer.class).intValue());
-
-        assertEquals("Bye cake", b.getOut().getBody(String.class));
-        assertEquals(912, b.getOut().getHeader("foo", Integer.class).intValue());
-
-        assertEquals(5, context.getEndpoints().size());
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:a").to("jetty://http://localhost:{{port}}/myapp?foo=123&bar=cheese");
-
-                from("direct:b").to("jetty://http://localhost:{{port}}/myapp?foo=456&bar=cake");
-
-                from("jetty://http://localhost:{{port}}/myapp").process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        int foo = exchange.getIn().getHeader("foo", Integer.class);
-                        String bar = exchange.getIn().getHeader("bar", String.class);
-
-                        exchange.getOut().setHeader("foo", foo * 2);
-                        exchange.getOut().setBody("Bye " + bar);
-                    }
-                });
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerTwoParametersWithSameKeyTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerTwoParametersWithSameKeyTest.java
deleted file mode 100644
index 91e8d25..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyProducerTwoParametersWithSameKeyTest.java
+++ /dev/null
@@ -1,119 +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.jettyproducer;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-/**
- *
- */
-public class HttpJettyProducerTwoParametersWithSameKeyTest extends BaseJettyTest {
-
-    @Test
-    public void testTwoParametersWithSameKey() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        Exchange out = template.request("jetty:http://localhost:{{port}}/myapp?from=me&to=foo&to=bar", null);
-
-        assertNotNull(out);
-        assertFalse("Should not fail", out.isFailed());
-        assertEquals("OK", out.getOut().getBody(String.class));
-        assertEquals("yes", out.getOut().getHeader("bar"));
-
-        List<?> foo = out.getOut().getHeader("foo", List.class);
-        assertEquals(2, foo.size());
-        assertEquals("123", foo.get(0));
-        assertEquals("456", foo.get(1));
-    }
-
-    @Test
-    public void testTwoHeadersWithSameKeyHeader() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        Exchange out = template.request("jetty:http://localhost:{{port}}/myapp", new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody(null);
-                exchange.getIn().setHeader("from", "me");
-                List<String> list = new ArrayList<>();
-                list.add("foo");
-                list.add("bar");
-                exchange.getIn().setHeader("to", list);
-            }
-        });
-
-        assertNotNull(out);
-        assertFalse("Should not fail", out.isFailed());
-        assertEquals("OK", out.getOut().getBody(String.class));
-        assertEquals("yes", out.getOut().getHeader("bar"));
-
-        List<?> foo = out.getOut().getHeader("foo", List.class);
-        assertNotNull(foo);
-        assertEquals(2, foo.size());
-        assertEquals("123", foo.get(0));
-        assertEquals("456", foo.get(1));
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("jetty://http://localhost:{{port}}/myapp").process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        String from = exchange.getIn().getHeader("from", String.class);
-                        assertEquals("me", from);
-
-                        List<?> values = exchange.getIn().getHeader("to", List.class);
-                        assertNotNull(values);
-                        assertEquals(2, values.size());
-                        assertEquals("foo", values.get(0));
-                        assertEquals("bar", values.get(1));
-
-                        // response
-                        exchange.getOut().setBody("OK");
-                        // use multiple values for the foo header in the reply
-                        List<Integer> list = new ArrayList<>();
-                        list.add(123);
-                        list.add(456);
-                        exchange.getOut().setHeader("foo", list);
-                        exchange.getOut().setHeader("bar", "yes");
-                    }
-                });
-            }
-        };
-    }
-
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyUrlRewriteTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyUrlRewriteTest.java
deleted file mode 100644
index 05b840a..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/HttpJettyUrlRewriteTest.java
+++ /dev/null
@@ -1,65 +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.jettyproducer;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.component.jetty.MyUrlRewrite;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.JndiRegistry;
-import org.junit.Test;
-
-public class HttpJettyUrlRewriteTest extends BaseJettyTest {
-
-    private int port1;
-    private int port2;
-
-    @Override
-    protected JndiRegistry createRegistry() throws Exception {
-        JndiRegistry jndi = super.createRegistry();
-        jndi.bind("myRewrite", new MyUrlRewrite());
-        return jndi;
-    }
-
-    @Test
-    public void testUrlRewrite() throws Exception {
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedMessageCount(1);
-
-        String response = template.requestBody("jetty:http://localhost:" + port1 + "/foo?phrase=Bye", "Camel", String.class);
-        assertEquals("Get a wrong response", "Bye Camel", response);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() {
-                port1 = getPort();
-                port2 = getNextPort();
-
-                from("jetty:http://localhost:" + port1 + "?matchOnUriPrefix=true")
-                    .to("jetty:http://localhost:" + port2 + "?throwExceptionOnFailure=false&bridgeEndpoint=true&urlRewrite=#myRewrite");
-
-                from("jetty://http://localhost:" + port2 + "/bar")
-                        .transform().simple("${header.phrase} ${body}")
-                        .to("mock:result");
-            }
-        };
-    }    
-
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProderReturnFaultTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProderReturnFaultTest.java
deleted file mode 100644
index 0df8f31..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProderReturnFaultTest.java
+++ /dev/null
@@ -1,67 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.http.common.HttpOperationFailedException;
-import org.junit.Test;
-
-public class JettyHttpProderReturnFaultTest extends BaseJettyTest {
-
-    @Test
-    public void testHttpFault() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        Exchange exchange = template.request("jetty://http://localhost:{{port}}/test", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody("Hello World!");
-            }
-            
-        });
-        assertTrue(exchange.isFailed());
-        HttpOperationFailedException exception = exchange.getException(HttpOperationFailedException.class);
-        assertNotNull(exception);
-        assertEquals("This is a fault", exception.getResponseBody());
-        assertEquals(500, exception.getStatusCode());
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("jetty://http://localhost:{{port}}/test")
-                    .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
-                            exchange.getOut().setFault(true);
-                            exchange.getOut().setBody("This is a fault");
-                        }
-                    });
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerAsyncTimeoutTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerAsyncTimeoutTest.java
deleted file mode 100644
index 8b42a2c..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerAsyncTimeoutTest.java
+++ /dev/null
@@ -1,57 +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.jettyproducer;
-
-import org.apache.camel.ExchangeTimedOutException;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-public class JettyHttpProducerAsyncTimeoutTest extends BaseJettyTest {
-
-    private String url = "jetty://http://127.0.0.1:" + getPort() + "/timeout?httpClient.timeout=2000";
-
-    @Test
-    public void testTimeout() throws Exception {
-        
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        getMockEndpoint("mock:result").expectedMessageCount(0);
-        getMockEndpoint("mock:error").expectedMessageCount(0);
-        getMockEndpoint("mock:timeout").expectedMessageCount(1);
-
-        template.sendBody("direct:start", null);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                onException(Exception.class).handled(true).to("mock:error");
-                onException(ExchangeTimedOutException.class).handled(true).to("mock:timeout");
-
-                from("direct:start").to(url).to("mock:result");
-
-                from(url).delay(5000).transform(constant("Bye World"));
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerAsynchronousTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerAsynchronousTest.java
deleted file mode 100644
index 6ed4f85..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerAsynchronousTest.java
+++ /dev/null
@@ -1,78 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
-
-public class JettyHttpProducerAsynchronousTest extends BaseJettyTest {
-
-    private static String thread1;
-    private static String thread2;
-
-    private String url = "jetty://http://127.0.0.1:" + getPort() + "/foo";
-
-    @Test
-    public void testAsynchronous() throws Exception {
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        thread1 = "";
-        thread2 = "";
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedMessageCount(1);
-        mock.message(0).body().isEqualTo("Bye World");
-
-        Object body = null;
-        template.sendBody("direct:start", body);
-
-        assertMockEndpointsSatisfied();
-
-        assertNotSame("Should not use same threads", thread1, thread2);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:start").process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        thread1 = Thread.currentThread().getName();
-                    }
-                }).to(url).process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        thread2 = Thread.currentThread().getName();
-                    }
-                }).to("mock:result");
-
-                from(url).process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        exchange.getIn().setHeader("customer", "gold");
-                        exchange.getIn().setBody("Bye World");
-                    }
-                });
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerBridgePathWithSpacesAtEndTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerBridgePathWithSpacesAtEndTest.java
deleted file mode 100644
index 61f2a87..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerBridgePathWithSpacesAtEndTest.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.jetty.jettyproducer;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-/**
- * As {@link JettyHttpProducerBridgePathWithSpacesTest} but content path ends with a space
- */
-public class JettyHttpProducerBridgePathWithSpacesAtEndTest extends BaseJettyTest {
-
-    private int port1;
-    private int port2;
-
-    @Test
-    public void testProxy() throws Exception {
-       
-        // give Jetty time to startup properly
-        Thread.sleep(2000);
-
-        String reply = template.requestBody("jetty:http://127.0.0.1:" + port1 + "/foo ", "World", String.class);
-        assertEquals("Bye World", reply);
-
-        // and with more spaces
-        String reply2 = template.requestBody("jetty:http://127.0.0.1:" + port1 + "/foo /bar baz", "Camel", String.class);
-        assertEquals("Bye Camel", reply2);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                port1 = getPort();
-                port2 = getNextPort();
-
-                from("jetty:http://127.0.0.1:" + port1 + "/foo ?matchOnUriPrefix=true")
-                    .to("jetty:http://127.0.0.1:" + port2 + "/proxy foo ?bridgeEndpoint=true&throwExceptionOnFailure=false");
-
-                from("jetty:http://127.0.0.1:" + port2 + "/proxy foo ?matchOnUriPrefix=true")
-                    .transform().simple("Bye ${body}");
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerBridgePathWithSpacesTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerBridgePathWithSpacesTest.java
deleted file mode 100644
index 479f5b1..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerBridgePathWithSpacesTest.java
+++ /dev/null
@@ -1,57 +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.jettyproducer;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-/**
- *
- */
-public class JettyHttpProducerBridgePathWithSpacesTest extends BaseJettyTest {
-
-    private int port1;
-    private int port2;
-
-    @Test
-    public void testProxy() throws Exception {
-        
-        // give Jetty time to startup properly
-        Thread.sleep(2000);
-
-        String reply = template.requestBody("jetty:http://127.0.0.1:" + port1 + "/foo bar", "World", String.class);
-        assertEquals("Bye World", reply);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                port1 = getPort();
-                port2 = getNextPort();
-
-                from("jetty:http://127.0.0.1:" + port1 + "/foo bar?matchOnUriPrefix=true")
-                    .to("jetty:http://127.0.0.1:" + port2 + "/proxy bar?bridgeEndpoint=true&throwExceptionOnFailure=false");
-
-                from("jetty:http://127.0.0.1:" + port2 + "/proxy bar?matchOnUriPrefix=true")
-                    .transform().simple("Bye ${body}");
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerBridgeTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerBridgeTest.java
deleted file mode 100644
index ded2821..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerBridgeTest.java
+++ /dev/null
@@ -1,95 +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.jettyproducer;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-/**
- *
- */
-public class JettyHttpProducerBridgeTest extends BaseJettyTest {
-
-    private int port1;
-    private int port2;
-
-    @Test
-    public void testProxy() throws Exception {
-        // give Jetty time to startup properly
-        Thread.sleep(2000);
-
-        getMockEndpoint("mock:bar").expectedMessageCount(1);
-        getMockEndpoint("mock:bar").message(0).header("bridgeEndpoint").isNull();
-        getMockEndpoint("mock:bar").message(0).header("throwExceptionOnFailure").isNull();
-
-        String reply = template.requestBody("jetty:http://127.0.0.1:" + port1 + "/foo", "World", String.class);
-        assertEquals("Bye World", reply);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Test
-    public void testProxyWithHeader() throws Exception {
-        // give Jetty time to startup properly
-        Thread.sleep(2000);
-
-        getMockEndpoint("mock:bar").expectedMessageCount(1);
-        getMockEndpoint("mock:bar").expectedHeaderReceived("beer", "Carlsberg");
-        getMockEndpoint("mock:bar").message(0).header("bridgeEndpoint").isNull();
-        getMockEndpoint("mock:bar").message(0).header("throwExceptionOnFailure").isNull();
-
-        String reply = template.requestBodyAndHeader("jetty:http://127.0.0.1:" + port1 + "/foo", "Camel", "beer", "Carlsberg", String.class);
-        assertEquals("Bye Camel", reply);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Test
-    public void testProxyWithQueryParameter() throws Exception {
-        // give Jetty time to startup properly
-        Thread.sleep(2000);
-
-        getMockEndpoint("mock:bar").expectedMessageCount(1);
-        getMockEndpoint("mock:bar").expectedHeaderReceived("beer", "Carlsberg");
-        getMockEndpoint("mock:bar").message(0).header("bridgeEndpoint").isNull();
-        getMockEndpoint("mock:bar").message(0).header("throwExceptionOnFailure").isNull();
-
-        String reply = template.requestBody("jetty:http://127.0.0.1:" + port1 + "/foo?beer=Carlsberg", "Apache", String.class);
-        assertEquals("Bye Apache", reply);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                port1 = getPort();
-                port2 = getNextPort();
-
-                from("jetty:http://127.0.0.1:" + port1 + "/foo")
-                    .to("jetty:http://127.0.0.1:" + port2 + "/bar?bridgeEndpoint=true&throwExceptionOnFailure=false");
-
-                from("jetty:http://127.0.0.1:" + port2 + "/bar")
-                    .to("mock:bar")
-                    .transform().simple("Bye ${body}");
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerConcurrentTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerConcurrentTest.java
deleted file mode 100644
index b073d64..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerConcurrentTest.java
+++ /dev/null
@@ -1,108 +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.jettyproducer;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-/**
- * Jetty HTTP producer concurrent test.
- */
-public class JettyHttpProducerConcurrentTest extends BaseJettyTest {
-
-    @Test
-    public void testNoConcurrentProducers() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(2000);
-
-        doSendMessages(1, 1);
-    }
-
-    @Test
-    public void testConcurrentProducers() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(2000);
-
-        doSendMessages(10, 5);
-    }
-
-    private void doSendMessages(int files, int poolSize) throws Exception {
-        getMockEndpoint("mock:result").expectedMessageCount(files);
-        getMockEndpoint("mock:result").assertNoDuplicates(body());
-
-        ExecutorService executor = Executors.newFixedThreadPool(poolSize);
-        // we access the responses Map below only inside the main thread,
-        // so no need for a thread-safe Map implementation
-        Map<Integer, Future<String>> responses = new HashMap<>();
-        for (int i = 0; i < files; i++) {
-            final int index = i;
-            Future<String> out = executor.submit(new Callable<String>() {
-                public String call() throws Exception {
-                    return template.requestBody("jetty://http://localhost:{{port}}/echo", "" + index, String.class);
-                }
-            });
-            responses.put(index, out);
-        }
-
-        assertMockEndpointsSatisfied();
-
-        assertEquals(files, responses.size());
-
-        // get all responses
-        Set<String> unique = new HashSet<>();
-        for (Future<String> future : responses.values()) {
-            unique.add(future.get());
-        }
-
-        // should be 'files' unique responses
-        assertEquals("Should be " + files + " unique responses", files, unique.size());
-        executor.shutdownNow();
-    }
-
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                // expose a echo service
-                from("jetty:http://localhost:{{port}}/echo")
-                        .convertBodyTo(String.class)
-                        .to("log:input")
-                        .transform(body().append(body())).to("mock:result");
-            }
-        };
-    }
-
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerConnectionFailureTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerConnectionFailureTest.java
deleted file mode 100644
index d9fb6e5..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerConnectionFailureTest.java
+++ /dev/null
@@ -1,66 +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.jettyproducer;
-
-import java.io.IOException;
-
-import org.apache.camel.CamelExchangeException;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
-
-/**
- * Unit test to verify that we can have URI options for external system (endpoint is lenient)
- */
-public class JettyHttpProducerConnectionFailureTest extends BaseJettyTest {
-
-    private String serverUri = "jetty://http://localhost:{{port}}/myservice";
-
-    @Test
-    public void testHttpGetWithParamsViaURI() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedMessageCount(0);
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        // use another port with no connection
-        try {
-            template.requestBody("jetty://http://localhost:9999/myservice", null, Object.class);
-            fail("Should have thrown an exception");
-        } catch (Exception e) {
-            CamelExchangeException cause = assertIsInstanceOf(CamelExchangeException.class, e.getCause());
-            assertIsInstanceOf(IOException.class, cause.getCause());
-        }
-
-        assertMockEndpointsSatisfied();
-    }
-
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                from(serverUri).to("mock:result");
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerContentBasedRouteTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerContentBasedRouteTest.java
deleted file mode 100644
index 9b84d79..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerContentBasedRouteTest.java
+++ /dev/null
@@ -1,81 +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.jettyproducer;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
-
-/**
- * Unit test with a simple route test.
- */
-public class JettyHttpProducerContentBasedRouteTest extends BaseJettyTest {
-
-    private String serverUri = "jetty://http://localhost:" + getPort() + "/myservice";
-
-    @Test
-    public void testSendOne() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        MockEndpoint mock = getMockEndpoint("mock:one");
-
-        mock.expectedHeaderReceived("one", "true");
-
-        template.requestBody(serverUri + "?one=true", null, Object.class);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Test
-    public void testSendOther() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        MockEndpoint mock = getMockEndpoint("mock:other");
-
-        mock.expectedHeaderReceived("two", "true");
-
-        template.requestBody(serverUri + "?two=true", null, Object.class);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                from(serverUri)
-                    .choice()
-                    .when().simple("${header.one}").to("mock:one")
-                    .otherwise()
-                    .to("mock:other");
-            }
-        };
-    }
-
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerContentTypeEncodingInQuoteTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerContentTypeEncodingInQuoteTest.java
deleted file mode 100644
index 3daa05b..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerContentTypeEncodingInQuoteTest.java
+++ /dev/null
@@ -1,96 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
-
-public class JettyHttpProducerContentTypeEncodingInQuoteTest extends BaseJettyTest {
-    
-    @Test
-    public void testHttpProducerEncodingInQuoteTest() throws Exception {
-        // these tests do not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedMinimumMessageCount(1);
-
-        Exchange out = template.send("jetty:http://localhost:{{port}}/myapp/myservice", new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody("Hello World");
-                exchange.getIn().setHeader("Content-Type", "text/plain;charset=\"UTF-8\"");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        assertEquals("OK", out.getOut().getBody(String.class));
-        // camel-jetty may remove quotes from charset
-        String res = out.getOut().getHeader("Content-Type").toString();
-        res = res.replace("\"UTF-8\"", "UTF-8");
-        assertEquals("text/plain;charset=UTF-8", res);
-    }
-
-    @Test
-    public void testHttpProducerEncodingInQuoteAndActionParameterTest() throws Exception {
-        // these tests do not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedMinimumMessageCount(1);
-
-        Exchange out = template.send("jetty:http://localhost:{{port}}/myapp/myservice", new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody("Hello World");
-                exchange.getIn().setHeader("Content-Type", "text/plain;charset=\"UTF-8\";action=\"http://somewhere.com/foo\"");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        assertEquals("OK", out.getOut().getBody(String.class));
-        // camel-jetty may remove quotes from charset
-        String res = out.getOut().getHeader("Content-Type").toString();
-        res = res.replace("\"UTF-8\"", "UTF-8");
-        assertEquals("text/plain;charset=UTF-8;action=\"http://somewhere.com/foo\"", res);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                from("jetty:http://localhost:{{port}}/myapp/myservice")
-                    .to("mock:result")
-                    .transform(constant("OK"));
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGetAsUriParamTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGetAsUriParamTest.java
deleted file mode 100644
index 7a2f689..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGetAsUriParamTest.java
+++ /dev/null
@@ -1,70 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.http.common.HttpMessage;
-import org.junit.Test;
-
-/**
- * Unit test to verify that we can have URI options for external system (endpoint is lenient)
- */
-public class JettyHttpProducerGetAsUriParamTest extends BaseJettyTest {
-
-    private String serverUri = "jetty://http://localhost:" + getPort() + "/myservice?httpMethod=GET";
-    private MyParamsProcessor processor = new MyParamsProcessor();
-
-    @Test
-    public void testHttpGetWithParamsViaURI() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedBodiesReceived("Bye World");
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        template.requestBody(serverUri, "Hello World");
-
-        assertMockEndpointsSatisfied();
-    }
-
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                from(serverUri).process(processor).to("mock:result");
-            }
-        };
-    }
-
-    private static class MyParamsProcessor implements Processor {
-        public void process(Exchange exchange) throws Exception {
-            HttpMessage message = (HttpMessage)exchange.getIn();
-            assertNotNull(message.getRequest());
-
-            exchange.getOut().setBody("Bye World");
-            exchange.getOut().setHeader(Exchange.HTTP_METHOD, "POST");
-        }
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGetWithParamAsExchangeHeaderTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGetWithParamAsExchangeHeaderTest.java
deleted file mode 100644
index c55e656..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGetWithParamAsExchangeHeaderTest.java
+++ /dev/null
@@ -1,98 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
-
-/**
- * Unit test to verify that we can have URI options for external system (endpoint is lenient)
- */
-public class JettyHttpProducerGetWithParamAsExchangeHeaderTest extends BaseJettyTest {
-
-    private String serverUri = "jetty://http://localhost:" + getPort() + "/myservice";
-
-    @Test
-    public void testHttpGetWithParamsViaURI() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedHeaderReceived("one", "einz");
-        mock.expectedHeaderReceived("two", "twei");
-        mock.expectedHeaderReceived(Exchange.HTTP_METHOD, "GET");
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        template.requestBody(serverUri + "?one=einz&two=twei", null, Object.class);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Test
-    public void testHttpGetWithParamsViaHeader() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedHeaderReceived("one", "uno");
-        mock.expectedHeaderReceived("two", "dos");
-        mock.expectedHeaderReceived(Exchange.HTTP_METHOD, "GET");
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        template.requestBodyAndHeader(serverUri, null, Exchange.HTTP_QUERY, "one=uno&two=dos");
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Test
-    public void testHttpPost() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedBodiesReceived("Hello World");
-        mock.expectedHeaderReceived(Exchange.HTTP_METHOD, "POST");
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        template.requestBody(serverUri, "Hello World");
-
-        assertMockEndpointsSatisfied();
-    }
-
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                from(serverUri).to("mock:result");
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGetWithParamTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGetWithParamTest.java
deleted file mode 100644
index f392413..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGetWithParamTest.java
+++ /dev/null
@@ -1,95 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.http.common.HttpMessage;
-import org.junit.Test;
-
-/**
- * Unit test to verify that we can have URI options for external system (endpoint is lenient)
- */
-public class JettyHttpProducerGetWithParamTest extends BaseJettyTest {
-
-    private String serverUri = "jetty://http://localhost:" + getPort() + "/myservice";
-    private MyParamsProcessor processor = new MyParamsProcessor();
-
-    @Test
-    public void testHttpGetWithParamsViaURI() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedBodiesReceived("Bye World");
-        mock.expectedHeaderReceived("one", "eins");
-        mock.expectedHeaderReceived("two", "zwei");
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        template.requestBody(serverUri + "?one=uno&two=dos", "Hello World");
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Test
-    public void testHttpGetWithParamsViaHeader() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedBodiesReceived("Bye World");
-        mock.expectedHeaderReceived("one", "eins");
-        mock.expectedHeaderReceived("two", "zwei");
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        template.requestBodyAndHeader(serverUri, "Hello World", Exchange.HTTP_QUERY, "one=uno&two=dos");
-
-        assertMockEndpointsSatisfied();
-    }
-
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                from(serverUri).process(processor).to("mock:result");
-            }
-        };
-    }
-
-    private static class MyParamsProcessor implements Processor {
-        public void process(Exchange exchange) throws Exception {
-            HttpMessage message = (HttpMessage)exchange.getIn();
-            assertNotNull(message.getRequest());
-            assertEquals("uno", message.getRequest().getParameter("one"));
-            assertEquals("dos", message.getRequest().getParameter("two"));
-
-            exchange.getOut().setBody("Bye World");
-            exchange.getOut().setHeader("one", "eins");
-            exchange.getOut().setHeader("two", "zwei");
-        }
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGoogleAsynchronousTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGoogleAsynchronousTest.java
deleted file mode 100644
index f5bef98..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGoogleAsynchronousTest.java
+++ /dev/null
@@ -1,56 +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.jettyproducer;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class JettyHttpProducerGoogleAsynchronousTest extends CamelTestSupport {
-
-    @Test
-    @Ignore("ignore online tests")
-    public void testGoogleFrontPageAsync() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedMessageCount(1);
-        mock.message(0).body(String.class).contains("google");
-
-        template.sendBody("direct:start", null);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:start")
-                    // to prevent redirect being thrown as an exception
-                    .to("jetty://http://www.google.com?throwExceptionOnFailure=false")
-                    .to("mock:result");
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGoogleTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGoogleTest.java
deleted file mode 100644
index f955b85..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerGoogleTest.java
+++ /dev/null
@@ -1,49 +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.jettyproducer;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class JettyHttpProducerGoogleTest extends CamelTestSupport {
-
-    @Test
-    @Ignore("ignore online tests")
-    public void testGoogleFrontPage() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        String reply = template.requestBody("direct:start", null, String.class);
-        assertNotNull(reply);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                // to prevent redirect being thrown as an exception
-                from("direct:start").to("jetty://http://www.google.com?throwExceptionOnFailure=false");
-            }
-        };
-    }
-}
-
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerInvalidDestinationTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerInvalidDestinationTest.java
deleted file mode 100644
index 4e455eb..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerInvalidDestinationTest.java
+++ /dev/null
@@ -1,36 +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.jettyproducer;
-
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
-
-public class JettyHttpProducerInvalidDestinationTest extends CamelTestSupport {
-    
-    @Test
-    public void testInvalidDestination() throws Exception {
-        final MyInputStream is = new MyInputStream("Content".getBytes());
-        try {
-            template.requestBody("jetty:http://localhost:50000/invalidDestination", is);
-            fail("Should have thrown exception");
-        } catch (Exception ex) {
-            // need to check if the input stream is closed
-            assertTrue("The input stream should be closed", is.isClosed());
-        }
-    }
-
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerJavaBodyTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerJavaBodyTest.java
deleted file mode 100644
index 5bf31c6..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerJavaBodyTest.java
+++ /dev/null
@@ -1,133 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.http.common.HttpCommonComponent;
-import org.apache.camel.http.common.HttpConstants;
-import org.junit.Test;
-
-public class JettyHttpProducerJavaBodyTest extends BaseJettyTest {
-
-    @Override
-    public boolean isUseRouteBuilder() {
-        return false;
-    }
-
-    @Test
-    public void testHttpSendJavaBodyAndReceiveString() throws Exception {
-        HttpCommonComponent jetty = context.getComponent("jetty", HttpCommonComponent.class);
-        jetty.setAllowJavaSerializedObject(true);
-
-        context.addRoutes(new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("jetty:http://localhost:{{port}}/myapp/myservice")
-                    .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
-                            MyCoolBean cool = exchange.getIn().getBody(MyCoolBean.class);
-                            assertNotNull(cool);
-
-                            assertEquals(123, cool.getId());
-                            assertEquals("Camel", cool.getName());
-
-                            // we send back plain test
-                            exchange.getOut().setHeader(Exchange.CONTENT_TYPE, "text/plain");
-                            exchange.getOut().setBody("OK");
-                        }
-                    });
-            }
-        });
-        context.start();
-
-        MyCoolBean cool = new MyCoolBean(123, "Camel");
-
-        String reply = template.requestBodyAndHeader("jetty:http://localhost:{{port}}/myapp/myservice", cool,
-                Exchange.CONTENT_TYPE, HttpConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT, String.class);
-
-        assertEquals("OK", reply);
-    }
-
-    @Test
-    public void testHttpSendJavaBodyAndReceiveJavaBody() throws Exception {
-        HttpCommonComponent jetty = context.getComponent("jetty", HttpCommonComponent.class);
-        jetty.setAllowJavaSerializedObject(true);
-
-        context.addRoutes(new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("jetty:http://localhost:{{port}}/myapp/myservice")
-                    .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
-                            MyCoolBean cool = exchange.getIn().getBody(MyCoolBean.class);
-                            assertNotNull(cool);
-
-                            assertEquals(123, cool.getId());
-                            assertEquals("Camel", cool.getName());
-
-                            MyCoolBean reply = new MyCoolBean(456, "Camel rocks");
-                            exchange.getOut().setBody(reply);
-                            exchange.getOut().setHeader(Exchange.CONTENT_TYPE, HttpConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT);
-                        }
-                    });
-            }
-        });
-        context.start();
-
-        MyCoolBean cool = new MyCoolBean(123, "Camel");
-
-        MyCoolBean reply = template.requestBodyAndHeader("jetty:http://localhost:{{port}}/myapp/myservice", cool,
-                Exchange.CONTENT_TYPE, HttpConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT, MyCoolBean.class);
-
-        assertEquals(456, reply.getId());
-        assertEquals("Camel rocks", reply.getName());
-    }
-
-    @Test
-    public void testHttpSendStringAndReceiveJavaBody() throws Exception {
-        HttpCommonComponent jetty = context.getComponent("jetty", HttpCommonComponent.class);
-        jetty.setAllowJavaSerializedObject(true);
-
-        context.addRoutes(new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("jetty:http://localhost:{{port}}/myapp/myservice")
-                    .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
-                            String body = exchange.getIn().getBody(String.class);
-                            assertNotNull(body);
-                            assertEquals("Hello World", body);
-
-                            MyCoolBean reply = new MyCoolBean(456, "Camel rocks");
-                            exchange.getOut().setBody(reply);
-                            exchange.getOut().setHeader(Exchange.CONTENT_TYPE, HttpConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT);
-                        }
-                    });
-            }
-        });
-        context.start();
-
-        MyCoolBean reply = template.requestBody("jetty:http://localhost:{{port}}/myapp/myservice", "Hello World", MyCoolBean.class);
-
-        assertEquals(456, reply.getId());
-        assertEquals("Camel rocks", reply.getName());
-    }
-
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerPutContentTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerPutContentTest.java
deleted file mode 100644
index e08b520..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerPutContentTest.java
+++ /dev/null
@@ -1,78 +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.jettyproducer;
-
-import java.io.File;
-import java.io.InputStream;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
-
-public class JettyHttpProducerPutContentTest extends BaseJettyTest {
-    
-    @Test
-    public void testHttpProducerPutContentTest() throws Exception {
-        // these tests do not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedMinimumMessageCount(1);
-        mock.message(0).body().isInstanceOf(InputStream.class);
-        mock.message(0).header("Content-Type").isEqualTo("image/jpeg");
-
-        Exchange out = template.send("jetty://http://localhost:{{port}}/myapp/myservice", new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody(new File("src/test/data/logo.jpeg"));
-                exchange.getIn().setHeader("Content-Type", "image/jpeg");
-                exchange.getIn().setHeader(Exchange.HTTP_METHOD, org.apache.camel.component.http4.HttpMethods.PUT);
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        assertEquals("OK", out.getOut().getBody(String.class));
-        assertEquals("text/plain", out.getOut().getHeader("Content-Type"));
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                from("jetty:http://localhost:{{port}}/myapp/myservice")
-                    .to("mock:result")
-                    .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
-                            String body = exchange.getIn().getBody(String.class);
-                            assertNotNull("Body should not be null", body);
-                            assertTrue("CamelHttpMethod is not PUT", exchange.getIn().getHeader("CamelHttpMethod").equals("PUT"));
-                            assertTrue("Content-Type is not image/jpeg", exchange.getIn().getHeader("Content-Type").equals("image/jpeg"));
-                        }
-                    })
-                    .transform(constant("OK")).setHeader("Content-Type", constant("text/plain"));
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerQueryParamTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerQueryParamTest.java
deleted file mode 100644
index 407c3f7..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerQueryParamTest.java
+++ /dev/null
@@ -1,88 +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.jettyproducer;
-
-import java.util.Map;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-public class JettyHttpProducerQueryParamTest extends BaseJettyTest {
-
-    private String url = "jetty://http://127.0.0.1:" + getPort() + "/cheese";
-
-    @Test
-    public void testQueryParameters() throws Exception {
-        
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        Exchange exchange = template.request(url + "?quote=Camel%20rocks", null);
-        assertNotNull(exchange);
-
-        String body = exchange.getOut().getBody(String.class);
-        Map<?, ?> headers = exchange.getOut().getHeaders();
-
-        assertEquals("Bye World", body);
-        assertEquals("Carlsberg", headers.get("beer"));
-    }
-
-    @Test
-    public void testQueryParametersWithHeader() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        Exchange exchange = template.request(url, new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(Exchange.HTTP_QUERY, "quote=Camel rocks");
-            }
-        });
-        assertNotNull(exchange);
-
-        String body = exchange.getOut().getBody(String.class);
-        Map<?, ?> headers = exchange.getOut().getHeaders();
-
-        assertEquals("Bye World", body);
-        assertEquals("Carlsberg", headers.get("beer"));
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from(url).process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        String quote = exchange.getIn().getHeader("quote", String.class);
-                        assertEquals("Camel rocks", quote);
-
-                        exchange.getOut().setBody("Bye World");
-                        exchange.getOut().setHeader("beer", "Carlsberg");
-                    }
-                });
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerRedirectTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerRedirectTest.java
deleted file mode 100644
index e97f16d..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerRedirectTest.java
+++ /dev/null
@@ -1,59 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.http.common.HttpOperationFailedException;
-import org.junit.Test;
-
-public class JettyHttpProducerRedirectTest extends BaseJettyTest {
-
-    @Test
-    public void testHttpRedirect() throws Exception {
-        try {
-            template.requestBody("jetty:http://localhost:{{port}}/test", "Hello World", String.class);
-            fail("Should have thrown an exception");
-        } catch (RuntimeCamelException e) {
-            HttpOperationFailedException cause = assertIsInstanceOf(HttpOperationFailedException.class, e.getCause());
-            assertEquals(301, cause.getStatusCode());
-            assertEquals(true, cause.isRedirectError());
-            assertEquals(true, cause.hasRedirectLocation());
-            assertEquals("http://localhost:" + getPort() + "/test", cause.getUri());
-            assertEquals("http://localhost:" + getPort() + "/newtest", cause.getRedirectLocation());
-        }
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("jetty://http://localhost:{{port}}/test")
-                    .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
-                            exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 301);
-                            exchange.getOut().setHeader("Location", "http://localhost:" + getPort() + "/newtest");
-                        }
-                    });
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSendDynamicAwareTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSendDynamicAwareTest.java
deleted file mode 100644
index ccac907..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSendDynamicAwareTest.java
+++ /dev/null
@@ -1,59 +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.jettyproducer;
-
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-public class JettyHttpProducerSendDynamicAwareTest  extends BaseJettyTest {
-
-    @Test
-    public void testDynamicAware() throws Exception {
-        String out = fluentTemplate.to("direct:moes").withHeader("drink", "beer").request(String.class);
-        assertEquals("Drinking beer", out);
-
-        out = fluentTemplate.to("direct:joes").withHeader("drink", "wine").request(String.class);
-        assertEquals("Drinking wine", out);
-
-        // and there should only be one http endpoint as they are both on same host
-        boolean found = context.getEndpointMap().containsKey("jetty://http://localhost:" + getPort() + "?throwExceptionOnFailure=false");
-        assertTrue("Should find static uri", found);
-
-        // we only have 2xdirect and 2xjetty
-        assertEquals(4, context.getEndpointMap().size());
-    }
-
-    @Override
-    protected RoutesBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:moes")
-                    .toD("jetty:http://localhost:{{port}}/moes?throwExceptionOnFailure=false&drink=${header.drink}");
-
-                from("direct:joes")
-                    .toD("jetty:http://localhost:{{port}}/joes?throwExceptionOnFailure=false&drink=${header.drink}");
-
-                from("jetty:http://localhost:{{port}}/?matchOnUriPrefix=true")
-                    .transform().simple("Drinking ${header.drink[0]}");
-            }
-        };
-    }
-
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSendFileTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSendFileTest.java
deleted file mode 100644
index 6107569..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSendFileTest.java
+++ /dev/null
@@ -1,76 +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.jettyproducer;
-
-import java.io.File;
-import java.io.InputStream;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
-
-public class JettyHttpProducerSendFileTest extends BaseJettyTest {
-
-    @Test
-    public void testSendImage() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedMinimumMessageCount(1);
-        mock.message(0).body().isInstanceOf(InputStream.class);
-        mock.message(0).header("Content-Type").isEqualTo("image/jpeg");
-
-        Exchange out = template.send("jetty://http://localhost:{{port}}/myapp/myservice", new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody(new File("src/test/data/logo.jpeg"));
-                exchange.getIn().setHeader("Content-Type", "image/jpeg");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        assertEquals("OK", out.getOut().getBody(String.class));
-        assertEquals("text/plain", out.getOut().getHeader("Content-Type"));
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                from("jetty:http://localhost:{{port}}/myapp/myservice")
-                    .to("mock:result")
-                    .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
-                            String body = exchange.getIn().getBody(String.class);
-                            assertNotNull("Body should not be null", body);
-                        }
-                    })
-                    .transform(constant("OK")).setHeader("Content-Type", constant("text/plain"));
-            }
-        };
-    }
-
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSessionTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSessionTest.java
deleted file mode 100644
index c54d514..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSessionTest.java
+++ /dev/null
@@ -1,119 +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.jettyproducer;
-import javax.servlet.http.HttpSession;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.http.common.HttpMessage;
-import org.apache.camel.http.common.cookie.ExchangeCookieHandler;
-import org.apache.camel.http.common.cookie.InstanceCookieHandler;
-import org.apache.camel.impl.JndiRegistry;
-import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public class JettyHttpProducerSessionTest extends CamelTestSupport {
-    private static volatile int port;
-
-    @BeforeClass
-    public static void initPort() throws Exception {
-        port = AvailablePortFinder.getNextAvailable(24000);
-    }
-
-    @Test
-    public void testNoSession() throws Exception {
-        getMockEndpoint("mock:result").expectedBodiesReceived("New New World", "Old Old World");
-        template.sendBody("direct:start", "World");
-        template.sendBody("direct:start", "World");
-        assertMockEndpointsSatisfied();
-    }
-
-    @Test
-    public void testInstanceSession() throws Exception {
-        getMockEndpoint("mock:result").expectedBodiesReceived("Old New World", "Old Old World");
-        template.sendBody("direct:instance", "World");
-        template.sendBody("direct:instance", "World");
-        assertMockEndpointsSatisfied();
-    }
-
-    @Test
-    public void testExchangeSession() throws Exception {
-        getMockEndpoint("mock:result").expectedBodiesReceived("Old New World", "Old New World");
-        template.sendBody("direct:exchange", "World");
-        template.sendBody("direct:exchange", "World");
-        assertMockEndpointsSatisfied();
-    }
-
-    @Override
-    protected JndiRegistry createRegistry() throws Exception {
-        JndiRegistry jndiRegistry = super.createRegistry();
-        jndiRegistry.bind("instanceCookieHandler", new InstanceCookieHandler());
-        jndiRegistry.bind("exchangeCookieHandler", new ExchangeCookieHandler());
-        return jndiRegistry;
-    }
-
-    private String getTestServerEndpointSessionUrl() {
-        // session handling will not work for localhost
-        return "http://127.0.0.1:" + port + "/session";
-    }
-
-    private String getTestServerEndpointSessionUri() {
-        return "jetty:" + getTestServerEndpointSessionUrl() + "?sessionSupport=true";
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:start")
-                    .to("jetty://" + getTestServerEndpointSessionUrl())
-                    .to("jetty://" + getTestServerEndpointSessionUrl())
-                    .to("mock:result");
-
-                from("direct:instance")
-                    .to("jetty://" + getTestServerEndpointSessionUrl() + "?cookieHandler=#instanceCookieHandler")
-                    .to("jetty://" + getTestServerEndpointSessionUrl() + "?cookieHandler=#instanceCookieHandler")
-                    .to("mock:result");
-
-                from("direct:exchange")
-                    .to("jetty://" + getTestServerEndpointSessionUrl() + "?cookieHandler=#exchangeCookieHandler")
-                    .to("jetty://" + getTestServerEndpointSessionUrl() + "?cookieHandler=#exchangeCookieHandler")
-                    .to("mock:result");
-
-                from(getTestServerEndpointSessionUri())
-                    .process(new Processor() {
-                        @Override
-                        public void process(Exchange exchange) throws Exception {
-                            HttpMessage message = exchange.getIn(HttpMessage.class);
-                            HttpSession session = message.getRequest().getSession();
-                            String body = message.getBody(String.class);
-                            if ("bar".equals(session.getAttribute("foo"))) {
-                                message.setBody("Old " + body);
-                            } else {
-                                session.setAttribute("foo", "bar");
-                                message.setBody("New " + body);
-                            }
-                        }
-                    });
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSimulate404ErrorTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSimulate404ErrorTest.java
deleted file mode 100644
index 2219a17..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSimulate404ErrorTest.java
+++ /dev/null
@@ -1,63 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.http.common.HttpOperationFailedException;
-import org.junit.Test;
-
-public class JettyHttpProducerSimulate404ErrorTest extends BaseJettyTest {
-
-    private String url = "jetty://http://127.0.0.1:" + getPort() + "/bar";
-
-    @Test
-    public void test404() throws Exception {
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        try {
-            template.sendBody(url, null);
-            fail("Should have thrown exception");
-        } catch (Exception e) {
-            HttpOperationFailedException cause = assertIsInstanceOf(HttpOperationFailedException.class, e.getCause());
-            assertEquals(404, cause.getStatusCode());
-            assertEquals("http://127.0.0.1:" + getPort() + "/bar", cause.getUri());
-            assertEquals("Page not found", cause.getResponseBody());
-            assertNotNull(cause.getResponseHeaders());
-        }
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from(url).process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        Thread.sleep(1000);
-
-                        exchange.getOut().setBody("Page not found");
-                        exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 404);
-                    }
-                });
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendResumeTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendResumeTest.java
deleted file mode 100644
index 5172b75..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendResumeTest.java
+++ /dev/null
@@ -1,74 +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.jettyproducer;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.http.common.HttpConsumer;
-import org.apache.camel.http.common.HttpOperationFailedException;
-import org.junit.Test;
-
-public class JettyHttpProducerSuspendResumeTest extends BaseJettyTest {
-
-    private String serverUri = "jetty://http://localhost:" + getPort() + "/cool";
-
-    @Test
-    public void testJettySuspendResume() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        context.getShutdownStrategy().setTimeout(50);
-
-        String reply = template.requestBody(serverUri, "World", String.class);
-        assertEquals("Bye World", reply);
-
-        // now suspend jetty
-        HttpConsumer consumer = (HttpConsumer) context.getRoute("route1").getConsumer();
-        assertNotNull(consumer);
-
-        // suspend
-        consumer.suspend();
-
-        try {
-            template.requestBody(serverUri, "Moon", String.class);
-            fail("Should throw exception");
-        } catch (Exception e) {
-            HttpOperationFailedException cause = assertIsInstanceOf(HttpOperationFailedException.class, e.getCause());
-            assertEquals(503, cause.getStatusCode());
-        }
-
-        // resume
-        consumer.resume();
-
-        // and send request which should be processed
-        reply = template.requestBody(serverUri, "Moon", String.class);
-        assertEquals("Bye Moon", reply);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from(serverUri).id("route1")
-                    .transform(body().prepend("Bye "));
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendTest.java
deleted file mode 100644
index 09e575e..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendTest.java
+++ /dev/null
@@ -1,67 +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.jettyproducer;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.http.common.HttpConsumer;
-import org.apache.camel.http.common.HttpOperationFailedException;
-import org.junit.Test;
-
-public class JettyHttpProducerSuspendTest extends BaseJettyTest {
-
-    private String serverUri = "jetty://http://localhost:" + getPort() + "/cool";
-
-    @Test
-    public void testJettySuspend() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        context.getShutdownStrategy().setTimeout(50);
-
-        String reply = template.requestBody(serverUri, "World", String.class);
-        assertEquals("Bye World", reply);
-
-        // now suspend jetty
-        HttpConsumer consumer = (HttpConsumer) context.getRoute("route1").getConsumer();
-        assertNotNull(consumer);
-
-        // suspend
-        consumer.suspend();
-
-        try {
-            template.requestBody(serverUri, "Moon", String.class);
-            fail("Should throw exception");
-        } catch (Exception e) {
-            HttpOperationFailedException cause = assertIsInstanceOf(HttpOperationFailedException.class, e.getCause());
-            assertEquals(503, cause.getStatusCode());
-        }
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from(serverUri).id("route1")
-                    .transform(body().prepend("Bye "));
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendWhileInProgressTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendWhileInProgressTest.java
deleted file mode 100644
index 312a5ef..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendWhileInProgressTest.java
+++ /dev/null
@@ -1,90 +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.jettyproducer;
-
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.apache.camel.http.common.HttpOperationFailedException;
-import org.junit.Ignore;
-import org.junit.Test;
-
-@Ignore
-public class JettyHttpProducerSuspendWhileInProgressTest extends BaseJettyTest {
-
-    private String serverUri = "jetty://http://localhost:" + getPort() + "/cool";
-
-    @Test
-    public void testJettySuspendWhileInProgress() throws Exception {
-        // these tests does not run well on AIX or Windows
-        if (isPlatform("aix") || isPlatform("windows")) {
-            return;
-        }
-
-        context.getShutdownStrategy().setTimeout(50);
-
-        // send a request/reply and have future handle so we can shutdown while in progress
-        Future<String> reply = template.asyncRequestBodyAndHeader(serverUri, null, "name", "Camel", String.class);
-
-        // shutdown camel while in progress, wait 2 sec so the first req has been received in Camel route
-        Executors.newSingleThreadExecutor().execute(new Runnable() {
-            public void run() {
-                try {
-                    Thread.sleep(2000);
-                    context.stop();
-                } catch (Exception e) {
-                    // ignore
-                }
-            }
-        });
-
-        // wait a bit more before sending next
-        Thread.sleep(5000);
-
-        // now send a new req/reply
-        Future<String> reply2 = template.asyncRequestBodyAndHeader(serverUri, null, "name", "Tiger", String.class);
-
-        // the first should wait to have its reply returned
-        assertEquals("Bye Camel", reply.get(20, TimeUnit.SECONDS));
-
-        // the 2nd should have a 503 returned as we are shutting down
-        try {
-            reply2.get(20, TimeUnit.SECONDS);
-            fail("Should throw exception");
-        } catch (Exception e) {
-            RuntimeCamelException rce = assertIsInstanceOf(RuntimeCamelException.class, e.getCause());
-            HttpOperationFailedException hofe = assertIsInstanceOf(HttpOperationFailedException.class, rce.getCause());
-            assertEquals(503, hofe.getStatusCode());
-        }
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                from(serverUri)
-                    .log("Got data will wait 10 sec with reply")
-                    .delay(10000)
-                    .transform(simple("Bye ${header.name}"));
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSynchronousFalseTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSynchronousFalseTest.java
deleted file mode 100644
index 7cd861e..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSynchronousFalseTest.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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-public class JettyHttpProducerSynchronousFalseTest extends BaseJettyTest {
-
-    private static String beforeThreadName;
-    private static String afterThreadName;
-    private String url = "jetty://http://127.0.0.1:" + getPort() + "/sync?synchronous=false";
-
-    @Test
-    public void testSynchronous() throws Exception {
-        
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        getMockEndpoint("mock:result").expectedMessageCount(1);
-
-        template.sendBody("direct:start", null);
-
-        assertMockEndpointsSatisfied();
-
-        assertFalse("Should use different threads", beforeThreadName.equalsIgnoreCase(afterThreadName));
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:start")
-                    .to("log:before")
-                    .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
-                            beforeThreadName = Thread.currentThread().getName();
-                        }
-                    })
-                    .to(url)
-                    .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
-                            afterThreadName = Thread.currentThread().getName();
-                        }
-                    })
-                    .to("log:after")
-                    .to("mock:result");
-
-                from(url).transform(constant("Bye World"));
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSynchronousTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSynchronousTest.java
deleted file mode 100644
index 42e2633..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSynchronousTest.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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-public class JettyHttpProducerSynchronousTest extends BaseJettyTest {
-
-    private static String beforeThreadName;
-    private static String afterThreadName;
-    private String url = "jetty://http://127.0.0.1:" + getPort() + "/sync?synchronous=true";
-
-    @Test
-    public void testSynchronous() throws Exception {
-        
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        getMockEndpoint("mock:result").expectedMessageCount(1);
-
-        template.sendBody("direct:start", null);
-
-        assertMockEndpointsSatisfied();
-
-        assertTrue("Should use same threads", beforeThreadName.equalsIgnoreCase(afterThreadName));
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:start")
-                    .to("log:before")
-                    .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
-                            beforeThreadName = Thread.currentThread().getName();
-                        }
-                    })
-                    .to(url)
-                    .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
-                            afterThreadName = Thread.currentThread().getName();
-                        }
-                    })
-                    .to("log:after")
-                    .to("mock:result");
-
-                from(url).transform(constant("Bye World"));
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerTimeoutTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerTimeoutTest.java
deleted file mode 100644
index b506619..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerTimeoutTest.java
+++ /dev/null
@@ -1,60 +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.jettyproducer;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.ExchangeTimedOutException;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-public class JettyHttpProducerTimeoutTest extends BaseJettyTest {
-
-    private String url = "jetty://http://127.0.0.1:" + getPort() + "/timeout?httpClient.timeout=2000";
-
-    @Test
-    public void testTimeout() throws Exception {
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-        final MyInputStream is = new MyInputStream("Content".getBytes());
-
-        Exchange reply = template.request(url, new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody(is);
-            }
-        });
-        Exception e = reply.getException();
-        assertNotNull("Should have thrown an exception", e);
-        ExchangeTimedOutException cause = assertIsInstanceOf(ExchangeTimedOutException.class, e);
-        assertEquals(2000, cause.getTimeout());
-        assertTrue("The input stream should be closed", is.isClosed());
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from(url).delay(5000).transform(constant("Bye World"));
-            }
-        };
-    }
-    
-    
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerTransferExceptionTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerTransferExceptionTest.java
deleted file mode 100644
index c9472fa..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerTransferExceptionTest.java
+++ /dev/null
@@ -1,47 +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.jettyproducer;
-
-import org.apache.camel.CamelExecutionException;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-public class JettyHttpProducerTransferExceptionTest extends BaseJettyTest {
-
-    @Test
-    public void testTransferException() throws Exception {
-        try {
-            template.requestBody("jetty:http://localhost:{{port}}/myapp/myservice?transferException=true", "");
-            fail("Should have thrown exception");
-        } catch (CamelExecutionException e) {
-            IllegalArgumentException cause = assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
-            assertEquals("Damn", cause.getMessage());
-        }
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("jetty:http://localhost:{{port}}/myapp/myservice?transferException=true")
-                    .throwException(new IllegalArgumentException("Damn"));
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpsProducerRouteSetupWithSystemPropsTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpsProducerRouteSetupWithSystemPropsTest.java
deleted file mode 100644
index 6341796..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpsProducerRouteSetupWithSystemPropsTest.java
+++ /dev/null
@@ -1,69 +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.jettyproducer;
-
-import java.net.URL;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.junit.Before;
-
-public class JettyHttpsProducerRouteSetupWithSystemPropsTest extends JettyProducerHttpsRouteTest {
-
-    @Override
-    @Before
-    public void setUp() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        // ensure jsse clients can validate the self signed dummy localhost cert,
-        // use the server keystore as the trust store for these tests
-        URL trustStoreUrl = this.getClass().getClassLoader().getResource("jsse/localhost.ks");
-        setSystemProp("javax.net.ssl.trustStore", trustStoreUrl.getPath());
-
-        // setup SSL using system properties
-        setSystemProp("org.eclipse.jetty.ssl.keystore", trustStoreUrl.getPath());
-        setSystemProp("org.eclipse.jetty.ssl.keypassword", pwd);
-        setSystemProp("org.eclipse.jetty.ssl.password", pwd);
-
-        super.setUp();
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() {
-                from("jetty:https://localhost:" + port1 + "/test").to("mock:a");
-
-                Processor proc = new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        exchange.getOut().setBody("<b>Hello World</b>");
-                    }
-                };
-                from("jetty:https://localhost:" + port1 + "/hello").process(proc);
-
-                from("jetty:https://localhost:" + port2 + "/test").to("mock:b");
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpsProducerSslContextInUriTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpsProducerSslContextInUriTest.java
deleted file mode 100644
index 2d919ac..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpsProducerSslContextInUriTest.java
+++ /dev/null
@@ -1,87 +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.jettyproducer;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.net.URL;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.JettyHttpComponent;
-import org.apache.camel.impl.JndiRegistry;
-import org.apache.camel.support.jsse.KeyManagersParameters;
-import org.apache.camel.support.jsse.KeyStoreParameters;
-import org.apache.camel.support.jsse.SSLContextParameters;
-
-public class JettyHttpsProducerSslContextInUriTest extends JettyProducerHttpsRouteTest {
-
-    @Override
-    protected JndiRegistry createRegistry() throws Exception {
-        KeyStoreParameters ksp = new KeyStoreParameters();
-        ksp.setResource(this.getClass().getClassLoader().getResource("jsse/localhost.ks").toString());
-        ksp.setPassword(pwd);
-
-        KeyManagersParameters kmp = new KeyManagersParameters();
-        kmp.setKeyPassword(pwd);
-        kmp.setKeyStore(ksp);
-
-        //TrustManagersParameters tmp = new TrustManagersParameters();
-        //tmp.setKeyStore(ksp);
-
-        SSLContextParameters sslContextParameters = new SSLContextParameters();
-        sslContextParameters.setKeyManagers(kmp);
-        //sslContextParameters.setTrustManagers(tmp);
-
-        JndiRegistry registry = super.createRegistry();
-        registry.bind("sslContextParameters", sslContextParameters);
-
-        return registry;
-    }
-    
-    protected void invokeHttpEndpoint() throws IOException {
-        template.sendBodyAndHeader(getHttpProducerScheme() + "localhost:" + port1 + "/test?sslContextParameters=#sslContextParameters", expectedBody, "Content-Type",
-                                   "application/xml");
-        template.sendBodyAndHeader(getHttpProducerScheme() + "localhost:" + port2 + "/test?sslContextParameters=#sslContextParameters", expectedBody, "Content-Type",
-                                   "application/xml");
-    }
-    
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() throws URISyntaxException {
-                JettyHttpComponent componentJetty = (JettyHttpComponent) context.getComponent("jetty");
-                componentJetty.setSslPassword(pwd);
-                componentJetty.setSslKeyPassword(pwd);
-                URL keyStoreUrl = this.getClass().getClassLoader().getResource("jsse/localhost.ks");
-                componentJetty.setKeystore(keyStoreUrl.toURI().getPath());
-                
-                from("jetty:https://localhost:" + port1 + "/test?sslContextParameters=#sslContextParameters").to("mock:a");
-
-                Processor proc = new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        exchange.getOut().setBody("<b>Hello World</b>");
-                    }
-                };
-                from("jetty:https://localhost:" + port1 + "/hello?sslContextParameters=#sslContextParameters").process(proc);
-                
-                from("jetty:https://localhost:" + port2 + "/test?sslContextParameters=#sslContextParameters").to("mock:b");
-            }
-        };
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyProducerHandle404Test.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyProducerHandle404Test.java
deleted file mode 100644
index 799c665..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyProducerHandle404Test.java
+++ /dev/null
@@ -1,30 +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.jettyproducer;
-
-import org.apache.camel.component.jetty.JettyHandle404Test;
-
-/**
- * Based on end user on forum how to get the 404 error code in his enrich aggregator
- */
-public class JettyProducerHandle404Test extends JettyHandle404Test {
-
-    public String getProducerUrl() {
-        return "jetty://http://localhost:{{port}}/myserver?user=Camel";
-    }
-
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyProducerHttpsRouteTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyProducerHttpsRouteTest.java
deleted file mode 100644
index 5d305be..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyProducerHttpsRouteTest.java
+++ /dev/null
@@ -1,49 +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.jettyproducer;
-
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.component.jetty.HttpsRouteTest;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
-
-public class JettyProducerHttpsRouteTest extends HttpsRouteTest {
-
-    public String getHttpProducerScheme() {
-        return "jetty://https://";
-    }
-
-    @Test
-    public void testEndpointWithoutHttps() throws Exception {
-        // these tests does not run well on Windows
-        if (isPlatform("windows")) {
-            return;
-        }
-
-        // give Jetty time to startup properly
-        Thread.sleep(1000);
-
-        MockEndpoint mockEndpoint = resolveMandatoryEndpoint("mock:a", MockEndpoint.class);
-        try {
-            template.sendBodyAndHeader("jetty://http://localhost:" + port1 + "/test", expectedBody, "Content-Type", "application/xml");
-            fail("expect exception on access to https endpoint via http");
-        } catch (RuntimeCamelException expected) {
-        }
-        assertTrue("mock endpoint was not called", mockEndpoint.getExchanges().isEmpty());
-    }
-
-}
\ No newline at end of file
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/MyCoolBean.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/MyCoolBean.java
deleted file mode 100644
index aed0282..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/MyCoolBean.java
+++ /dev/null
@@ -1,39 +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.jettyproducer;
-
-import java.io.Serializable;
-
-public class MyCoolBean implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-    private final int id;
-    private final String name;
-
-    public MyCoolBean(int id, String name) {
-        this.id = id;
-        this.name = name;
-    }
-
-    public int getId() {
-        return id;
-    }
-
-    public String getName() {
-        return name;
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/MyInputStream.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/MyInputStream.java
deleted file mode 100644
index 3035b3a..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/MyInputStream.java
+++ /dev/null
@@ -1,35 +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.jettyproducer;
-
-import java.io.ByteArrayInputStream;
-
-public class MyInputStream extends ByteArrayInputStream {
-    private boolean closed;
-
-    public MyInputStream(byte[] buf) {
-        super(buf);
-    }
-    
-    public void close() {
-        closed = true;
-    }
-    
-    public boolean isClosed() {
-        return closed;
-    }
-}
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/JettyRestRedirectTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/JettyRestRedirectTest.java
deleted file mode 100644
index 1b13e68..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/JettyRestRedirectTest.java
+++ /dev/null
@@ -1,57 +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.rest;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jetty.BaseJettyTest;
-import org.junit.Test;
-
-public class JettyRestRedirectTest extends BaseJettyTest {
-   
-    @Test
-    public void testRedirectInvocation() throws Exception {
-        String response = template.requestBody("jetty:http://localhost:" + getPort2() + "/metadata/profile/tag?httpClient.supportRedirect=true", "<hello>Camel</hello>", String.class);
-        assertEquals("It should support the redirect out of box.", "Mock profile", response);
-    }
-
-    
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-
-        return new RouteBuilder() {
-            public void configure() {
-                restConfiguration().component("jetty").host("localhost").scheme("http").port(getPort2());
-                rest("/metadata/profile")
-                    .get("/{id}").to("direct:profileLookup")
-                    .post("/tag").to("direct:tag");
-
-                from("direct:profileLookup").transform().constant("Mock profile");
-                from("direct:tag").log("${headers}").process(new Processor() {
-                    @Override
-                    public void process(Exchange ex) throws Exception {
-                        ex.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 302);
-                        ex.getOut().setHeader("location", "/metadata/profile/1");
-                    }
-                }).log("${headers}").transform().constant("Redirecting...");
-            }
-        };
-    }
-    
-}
-
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestBridgeEndpointTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestBridgeEndpointTest.java
index 6224110..5c45773 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestBridgeEndpointTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestBridgeEndpointTest.java
@@ -40,7 +40,7 @@ public class RestBridgeEndpointTest extends BaseJettyTest {
                 // configure to use jetty on localhost with the given port
                 restConfiguration().component("jetty").host("localhost").port(getPort());
 
-                rest("/api/").get("/{id}/").to("jetty:http://localhost:" + getPort2() + "?bridgeEndpoint=true");
+                rest("/api/").get("/{id}/").to("http://localhost:" + getPort2() + "?bridgeEndpoint=true");
 
                 from("jetty:http://localhost:" + getPort2() + "?matchOnUriPrefix=true")
                     .to("mock:result")
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestNoBridgeEndpointTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestNoBridgeEndpointTest.java
index eed2aeb..c0df9ff 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestNoBridgeEndpointTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestNoBridgeEndpointTest.java
@@ -44,7 +44,7 @@ public class RestNoBridgeEndpointTest extends BaseJettyTest {
 
                 from("direct:foo")
                     .removeHeaders("CamelHttp*")
-                    .to("jetty:http://localhost:" + getPort2());
+                    .to("http://localhost:" + getPort2());
 
                 from("jetty:http://localhost:" + getPort2() + "?matchOnUriPrefix=true")
                     .to("mock:result")
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerApiDocTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerApiDocTest.java
index 9f3b54c..2d1d548 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerApiDocTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerApiDocTest.java
@@ -34,7 +34,8 @@ public class JettyRestProducerApiDocTest extends BaseJettyTest {
             @Override
             public void configure() throws Exception {
                 // configure to use localhost with the given port
-                restConfiguration().component("jetty").host("localhost").port(getPort()).producerApiDoc("hello-api.json");
+                restConfiguration().component("jetty").producerComponent("http")
+                        .host("localhost").port(getPort()).producerApiDoc("hello-api.json");
 
                 from("direct:start")
                         .to("rest:get:api:hello/hi/{name}");
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerGetTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerGetTest.java
index ad916c5..9c8623b 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerGetTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerGetTest.java
@@ -36,7 +36,7 @@ public class JettyRestProducerGetTest extends BaseJettyTest {
             @Override
             public void configure() throws Exception {
                 // configure to use localhost with the given port
-                restConfiguration().component("jetty").host("localhost").port(getPort());
+                restConfiguration().component("jetty").producerComponent("http").host("localhost").port(getPort());
 
                 from("direct:start")
                         .to("rest:get:users/{id}/basic");
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerGetUriParameterTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerGetUriParameterTest.java
index c95e6a0..e661bba 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerGetUriParameterTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerGetUriParameterTest.java
@@ -36,7 +36,7 @@ public class JettyRestProducerGetUriParameterTest extends BaseJettyTest {
             @Override
             public void configure() throws Exception {
                 // configure to use localhost with the given port
-                restConfiguration().component("jetty").host("localhost").port(getPort());
+                restConfiguration().component("jetty").producerComponent("http").host("localhost").port(getPort());
 
                 from("direct:start")
                         .to("rest:get:users/basic?id={id}");
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerPojoInOutTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerPojoInOutTest.java
index 6644ef7..a72f25a 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerPojoInOutTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerPojoInOutTest.java
@@ -86,7 +86,8 @@ public class JettyRestProducerPojoInOutTest extends BaseJettyTest {
             public void configure() throws Exception {
                 // configure to use jetty on localhost with the given port
                 // and enable auto binding mode
-                restConfiguration().component("jetty").host("localhost").port(getPort()).bindingMode(RestBindingMode.auto);
+                restConfiguration().component("jetty").producerComponent("http")
+                        .host("localhost").port(getPort()).bindingMode(RestBindingMode.auto);
 
                 // use the rest DSL to define the rest services
                 rest("/users/")
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerPutTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerPutTest.java
index 15a23a6..2b69de9 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerPutTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/producer/JettyRestProducerPutTest.java
@@ -37,7 +37,7 @@ public class JettyRestProducerPutTest extends BaseJettyTest {
             @Override
             public void configure() throws Exception {
                 // configure to use localhost with the given port
-                restConfiguration().component("jetty").host("localhost").port(getPort());
+                restConfiguration().component("jetty").producerComponent("http").host("localhost").port(getPort());
 
                 from("direct:start")
                         .to("rest:put:users/{id}");
diff --git a/components/camel-rest/src/main/docs/rest-api-component.adoc b/components/camel-rest/src/main/docs/rest-api-component.adoc
index d8fef02..256181e 100644
--- a/components/camel-rest/src/main/docs/rest-api-component.adoc
+++ b/components/camel-rest/src/main/docs/rest-api-component.adoc
@@ -51,7 +51,7 @@ with the following path and query parameters:
 | Name | Description | Default | Type
 | *apiComponentName* (consumer) | The Camel Rest API component to use for generating the API of the REST services, such as swagger. |  | String
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
-| *componentName* (consumer) | The Camel Rest component to use for the REST transport, such as restlet, spark-rest. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used. |  | String
+| *consumerComponentName* (consumer) | The Camel Rest component to use for (consumer) the REST transport, such as jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used. |  | String
 | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-rest/src/main/docs/rest-component.adoc b/components/camel-rest/src/main/docs/rest-component.adoc
index 07a2cc2..675d43f 100644
--- a/components/camel-rest/src/main/docs/rest-component.adoc
+++ b/components/camel-rest/src/main/docs/rest-component.adoc
@@ -19,14 +19,16 @@ rest://method:path[:uriTemplate]?[options]
 === URI Options
 
 // component options: START
-The REST component supports 5 options, which are listed below.
+The REST component supports 7 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *componentName* (common) | The Camel Rest component to use for the REST transport, such as restlet, spark-rest. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory (consumer) or org.apache.camel.spi.RestProducerFactory (producer) is registered in the registry. If either one is found, then that is being used. |  | String
+| *consumerComponentName* (consumer) | The Camel Rest component to use for (consumer) the REST transport, such as jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used. |  | String
+| *producerComponentName* (producer) | The Camel Rest component to use for (producer) the REST transport, such as http, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered in the registry. If either one is found, then that is being used. |  | String
+| *componentName* (producer) | *Deprecated* The Camel Rest component to use for (producer) the REST transport, such as http, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered in the registry. If either one is found, then that is being used. |  | String
 | *apiDoc* (producer) | The swagger api doc resource to use. The resource is loaded from classpath by default and must be in JSon format. |  | String
 | *host* (producer) | Host and port of HTTP service to use (override host in swagger schema) |  | String
 | *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
@@ -55,25 +57,26 @@ with the following path and query parameters:
 |===
 
 
-==== Query Parameters (16 parameters):
+==== Query Parameters (17 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *componentName* (common) | The Camel Rest component to use for the REST transport, such as restlet, spark-rest. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used. |  | String
 | *consumes* (common) | Media type such as: 'text/xml', or 'application/json' this REST service accepts. By default we accept all kinds of types. |  | String
 | *inType* (common) | To declare the incoming POJO binding type as a FQN class name |  | String
 | *outType* (common) | To declare the outgoing POJO binding type as a FQN class name |  | String
 | *produces* (common) | Media type such as: 'text/xml', or 'application/json' this REST service returns. |  | String
 | *routeId* (common) | Name of the route this REST services creates |  | String
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
+| *consumerComponentName* (consumer) | The Camel Rest component to use for (consumer) the REST transport, such as jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used. |  | String
 | *description* (consumer) | Human description to document this REST service |  | String
 | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
 | *apiDoc* (producer) | The swagger api doc resource to use. The resource is loaded from classpath by default and must be in JSon format. |  | String
 | *bindingMode* (producer) | Configures the binding mode for the producer. If set to anything other than 'off' the producer will try to convert the body of the incoming message from inType to the json or xml, and the response from json or xml to outType. |  | RestBindingMode
 | *host* (producer) | Host and port of HTTP service to use (override host in swagger schema) |  | String
+| *producerComponentName* (producer) | The Camel Rest component to use for (producer) the REST transport, such as http, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered in the registry. If either one is found, then that is being used. |  | String
 | *queryParameters* (producer) | Query parameters for the HTTP service to call |  | String
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java
index 848806f..7532935 100644
--- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java
+++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java
@@ -84,7 +84,7 @@ public class DefaultRestRegistry extends ServiceSupport implements StaticService
             if (restApiEndpoint == null && restEndpoint != null) {
                 // no rest-api has been explicit enabled, then we need to create it first
                 RestEndpoint rest = (RestEndpoint) restEndpoint;
-                String componentName = rest.getComponentName();
+                String componentName = rest.getProducerComponentName();
 
                 if (componentName != null) {
                     RestConfiguration config = camelContext.getRestConfiguration(componentName, true);
diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiComponent.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiComponent.java
index dc37d2e..93bc285 100644
--- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiComponent.java
+++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiComponent.java
@@ -39,8 +39,8 @@ public class RestApiComponent extends DefaultComponent {
         answer.setParameters(parameters);
 
         // if no explicit component name was given, then fallback and use default configured component name
-        if (answer.getComponentName() == null && getCamelContext().getRestConfiguration() != null) {
-            answer.setComponentName(getCamelContext().getRestConfiguration().getComponent());
+        if (answer.getConsumerComponentName() == null && getCamelContext().getRestConfiguration() != null) {
+            answer.setConsumerComponentName(getCamelContext().getRestConfiguration().getComponent());
         }
 
         return answer;
diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
index 410b63f..4ec16ce 100644
--- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
+++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
@@ -55,7 +55,7 @@ public class RestApiEndpoint extends DefaultEndpoint {
     @UriPath
     private String contextIdPattern;
     @UriParam
-    private String componentName;
+    private String consumerComponentName;
     @UriParam
     private String apiComponentName;
 
@@ -93,18 +93,18 @@ public class RestApiEndpoint extends DefaultEndpoint {
         this.contextIdPattern = contextIdPattern;
     }
 
-    public String getComponentName() {
-        return componentName;
+    public String getConsumerComponentName() {
+        return consumerComponentName;
     }
 
     /**
-     * The Camel Rest component to use for the REST transport, such as restlet, spark-rest.
+     * The Camel Rest component to use for (consumer) the REST transport, such as jetty, servlet, undertow.
      * If no component has been explicit configured, then Camel will lookup if there is a Camel component
      * that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry.
      * If either one is found, then that is being used.
      */
-    public void setComponentName(String componentName) {
-        this.componentName = componentName;
+    public void setConsumerComponentName(String consumerComponentName) {
+        this.consumerComponentName = consumerComponentName;
     }
 
     public String getApiComponentName() {
@@ -133,7 +133,7 @@ public class RestApiEndpoint extends DefaultEndpoint {
     public Producer createProducer() throws Exception {
         RestApiProcessorFactory factory = null;
 
-        RestConfiguration config = getCamelContext().getRestConfiguration(componentName, true);
+        RestConfiguration config = getCamelContext().getRestConfiguration(consumerComponentName, true);
 
         // lookup in registry
         Set<RestApiProcessorFactory> factories = getCamelContext().getRegistry().findByType(RestApiProcessorFactory.class);
@@ -213,12 +213,12 @@ public class RestApiEndpoint extends DefaultEndpoint {
 
         // we use the rest component as the HTTP consumer to service the API
         // the API then uses the api component (eg usually camel-swagger-java) to build the API
-        if (getComponentName() != null) {
-            Object comp = getCamelContext().getRegistry().lookupByName(getComponentName());
+        if (getConsumerComponentName() != null) {
+            Object comp = getCamelContext().getRegistry().lookupByName(getConsumerComponentName());
             if (comp instanceof RestApiConsumerFactory) {
                 factory = (RestApiConsumerFactory) comp;
             } else {
-                comp = getCamelContext().getComponent(getComponentName());
+                comp = getCamelContext().getComponent(getConsumerComponentName());
                 if (comp instanceof RestApiConsumerFactory) {
                     factory = (RestApiConsumerFactory) comp;
                 }
@@ -226,12 +226,12 @@ public class RestApiEndpoint extends DefaultEndpoint {
 
             if (factory == null) {
                 if (comp != null) {
-                    throw new IllegalArgumentException("Component " + getComponentName() + " is not a RestApiConsumerFactory");
+                    throw new IllegalArgumentException("Component " + getConsumerComponentName() + " is not a RestApiConsumerFactory");
                 } else {
-                    throw new NoSuchBeanException(getComponentName(), RestApiConsumerFactory.class.getName());
+                    throw new NoSuchBeanException(getConsumerComponentName(), RestApiConsumerFactory.class.getName());
                 }
             }
-            cname = getComponentName();
+            cname = getConsumerComponentName();
         }
 
         // try all components
diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestComponent.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestComponent.java
index 915bea8..654bb01 100644
--- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestComponent.java
+++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestComponent.java
@@ -45,8 +45,13 @@ public class RestComponent extends DefaultComponent {
 
     public static final String DEFAULT_REST_CONFIGURATION_ID = "rest-configuration";
 
-    @Metadata(label = "common")
+    @Deprecated
+    @Metadata(label = "producer")
     private String componentName;
+    @Metadata(label = "consumer")
+    private String consumerComponentName;
+    @Metadata(label = "producer")
+    private String producerComponentName;
     @Metadata(label = "producer")
     private String apiDoc;
     @Metadata(label = "producer")
@@ -58,15 +63,18 @@ public class RestComponent extends DefaultComponent {
 
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        String restConfigurationName = getAndRemoveParameter(parameters, "componentName", String.class, componentName);
+        String cname = getAndRemoveParameter(parameters, "consumerComponentName", String.class, consumerComponentName);
+        String pname = getAndRemoveParameter(parameters, "producerComponentName", String.class, producerComponentName);
 
         RestEndpoint answer = new RestEndpoint(uri, this);
-        answer.setComponentName(restConfigurationName);
+        answer.setConsumerComponentName(cname);
+        answer.setProducerComponentName(pname);
         answer.setApiDoc(apiDoc);
 
         RestConfiguration config = new RestConfiguration();
         mergeConfigurations(config, findGlobalRestConfiguration());
-        mergeConfigurations(config, getCamelContext().getRestConfiguration(restConfigurationName, true));
+        mergeConfigurations(config, getCamelContext().getRestConfiguration(cname, false));
+        mergeConfigurations(config, getCamelContext().getRestConfiguration(pname, false));
 
         // if no explicit host was given, then fallback and use default configured host
         String h = getAndRemoveOrResolveReferenceParameter(parameters, "host", String.class, host);
@@ -124,13 +132,13 @@ public class RestComponent extends DefaultComponent {
         answer.setUriTemplate(uriTemplate);
 
         // if no explicit component name was given, then fallback and use default configured component name
-        if (answer.getComponentName() == null) {
+        if (answer.getProducerComponentName() == null) {
             String name = config.getProducerComponent();
-            if (name == null) {
-                // fallback and use the consumer name
-                name = config.getComponent();
-            }
-            answer.setComponentName(name);
+            answer.setProducerComponentName(name);
+        }
+        if (answer.getConsumerComponentName() == null) {
+            String name = config.getComponent();
+            answer.setConsumerComponentName(name);
         }
         // if no explicit producer api was given, then fallback and use default configured
         if (answer.getApiDoc() == null) {
@@ -140,19 +148,50 @@ public class RestComponent extends DefaultComponent {
         return answer;
     }
 
+    public String getConsumerComponentName() {
+        return consumerComponentName;
+    }
+
+    /**
+     * The Camel Rest component to use for (consumer) the REST transport, such as jetty, servlet, undertow.
+     * If no component has been explicit configured, then Camel will lookup if there is a Camel component
+     * that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry.
+     * If either one is found, then that is being used.
+     */
+    public void setConsumerComponentName(String consumerComponentName) {
+        this.consumerComponentName = consumerComponentName;
+    }
+
+    public String getProducerComponentName() {
+        return producerComponentName;
+    }
+
+    /**
+     * The Camel Rest component to use for (producer) the REST transport, such as http, undertow.
+     * If no component has been explicit configured, then Camel will lookup if there is a Camel component
+     * that integrates with the Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered in the registry.
+     * If either one is found, then that is being used.
+     */
+    public void setProducerComponentName(String producerComponentName) {
+        this.producerComponentName = producerComponentName;
+    }
+
+    @Deprecated
     public String getComponentName() {
-        return componentName;
+        return producerComponentName;
     }
 
     /**
-     * The Camel Rest component to use for the REST transport, such as restlet, spark-rest.
+     * The Camel Rest component to use for (producer) the REST transport, such as http, undertow.
      * If no component has been explicit configured, then Camel will lookup if there is a Camel component
-     * that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory (consumer)
-     * or org.apache.camel.spi.RestProducerFactory (producer) is registered in the registry.
+     * that integrates with the Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered in the registry.
      * If either one is found, then that is being used.
+     *
+     * @deprecated use producerComponentName instead
      */
+    @Deprecated
     public void setComponentName(String componentName) {
-        this.componentName = componentName;
+        this.producerComponentName = componentName;
     }
 
     public String getApiDoc() {
diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
index 414716b..90f2e35 100644
--- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
+++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
@@ -47,8 +47,8 @@ import static org.apache.camel.support.RestProducerFactoryHelper.setupComponent;
 @UriEndpoint(firstVersion = "2.14.0", scheme = "rest", title = "REST", syntax = "rest:method:path:uriTemplate", label = "core,rest", lenientProperties = true)
 public class RestEndpoint extends DefaultEndpoint {
 
-    public static final String[] DEFAULT_REST_CONSUMER_COMPONENTS = new String[]{"coap", "netty-http", "netty4-http", "jetty", "restlet", "servlet", "spark-java", "undertow"};
-    public static final String[] DEFAULT_REST_PRODUCER_COMPONENTS = new String[]{"http", "http4", "netty4-http", "jetty", "restlet", "undertow"};
+    public static final String[] DEFAULT_REST_CONSUMER_COMPONENTS = new String[]{"coap", "netty4-http", "jetty", "restlet", "servlet", "spark-java", "undertow"};
+    public static final String[] DEFAULT_REST_PRODUCER_COMPONENTS = new String[]{"http", "netty4-http", "restlet", "undertow"};
     public static final String DEFAULT_API_COMPONENT_NAME = "swagger";
     public static final String RESOURCE_PATH = "META-INF/services/org/apache/camel/rest/";
 
@@ -63,8 +63,6 @@ public class RestEndpoint extends DefaultEndpoint {
     @UriParam(label = "common")
     private String produces;
     @UriParam(label = "common")
-    private String componentName;
-    @UriParam(label = "common")
     private String inType;
     @UriParam(label = "common")
     private String outType;
@@ -80,6 +78,10 @@ public class RestEndpoint extends DefaultEndpoint {
     private String queryParameters;
     @UriParam(label = "producer", enums = "auto,off,json,xml,json_xml")
     private RestConfiguration.RestBindingMode bindingMode;
+    @UriParam(label = "producer")
+    private String producerComponentName;
+    @UriParam(label = "consumer")
+    private String consumerComponentName;
 
     private Map<String, Object> parameters;
 
@@ -149,18 +151,32 @@ public class RestEndpoint extends DefaultEndpoint {
         this.produces = produces;
     }
 
-    public String getComponentName() {
-        return componentName;
+    public String getProducerComponentName() {
+        return producerComponentName;
     }
 
     /**
-     * The Camel Rest component to use for the REST transport, such as restlet, spark-rest.
+     * The Camel Rest component to use for (producer) the REST transport, such as http, undertow.
+     * If no component has been explicit configured, then Camel will lookup if there is a Camel component
+     * that integrates with the Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered in the registry.
+     * If either one is found, then that is being used.
+     */
+    public void setProducerComponentName(String producerComponentName) {
+        this.producerComponentName = producerComponentName;
+    }
+
+    public String getConsumerComponentName() {
+        return consumerComponentName;
+    }
+
+    /**
+     * The Camel Rest component to use for (consumer) the REST transport, such as jetty, servlet, undertow.
      * If no component has been explicit configured, then Camel will lookup if there is a Camel component
      * that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry.
      * If either one is found, then that is being used.
      */
-    public void setComponentName(String componentName) {
-        this.componentName = componentName;
+    public void setConsumerComponentName(String consumerComponentName) {
+        this.consumerComponentName = consumerComponentName;
     }
 
     public String getInType() {
@@ -297,13 +313,13 @@ public class RestEndpoint extends DefaultEndpoint {
             }
         }
 
-        String cname = getComponentName();
-        if (cname != null) {
-            Object comp = getCamelContext().getRegistry().lookupByName(getComponentName());
+        String pname = getProducerComponentName();
+        if (pname != null) {
+            Object comp = getCamelContext().getRegistry().lookupByName(getProducerComponentName());
             if (comp instanceof RestProducerFactory) {
                 factory = (RestProducerFactory) comp;
             } else {
-                comp = setupComponent(getComponentName(), getCamelContext(), (Map<String, Object>) parameters.get("component"));
+                comp = setupComponent(getProducerComponentName(), getCamelContext(), (Map<String, Object>) parameters.get("component"));
                 if (comp instanceof RestProducerFactory) {
                     factory = (RestProducerFactory) comp;
                 }
@@ -311,12 +327,12 @@ public class RestEndpoint extends DefaultEndpoint {
 
             if (factory == null) {
                 if (comp != null) {
-                    throw new IllegalArgumentException("Component " + getComponentName() + " is not a RestProducerFactory");
+                    throw new IllegalArgumentException("Component " + getProducerComponentName() + " is not a RestProducerFactory");
                 } else {
-                    throw new NoSuchBeanException(getComponentName(), RestProducerFactory.class.getName());
+                    throw new NoSuchBeanException(getProducerComponentName(), RestProducerFactory.class.getName());
                 }
             }
-            cname = getComponentName();
+            pname = getProducerComponentName();
         }
 
         // try all components
@@ -325,13 +341,13 @@ public class RestEndpoint extends DefaultEndpoint {
                 Component comp = setupComponent(name, getCamelContext(), (Map<String, Object>) parameters.get("component"));
                 if (comp instanceof RestProducerFactory) {
                     factory = (RestProducerFactory) comp;
-                    cname = name;
+                    pname = name;
                     break;
                 }
             }
         }
 
-        parameters.put("componentName", cname);
+        parameters.put("producerComponentName", pname);
 
         // lookup in registry
         if (factory == null) {
@@ -341,13 +357,13 @@ public class RestEndpoint extends DefaultEndpoint {
             }
         }
 
-        // no explicit factory found then try to see if we can find any of the default rest consumer components
+        // no explicit factory found then try to see if we can find any of the default rest producer components
         // and there must only be exactly one so we safely can pick this one
         if (factory == null) {
             RestProducerFactory found = null;
             String foundName = null;
             for (String name : DEFAULT_REST_PRODUCER_COMPONENTS) {
-                Object comp = setupComponent(getComponentName(), getCamelContext(), (Map<String, Object>) parameters.get("component"));
+                Object comp = setupComponent(name, getCamelContext(), (Map<String, Object>) parameters.get("component"));
                 if (comp instanceof RestProducerFactory) {
                     if (found == null) {
                         found = (RestProducerFactory) comp;
@@ -366,7 +382,11 @@ public class RestEndpoint extends DefaultEndpoint {
         if (factory != null) {
             log.debug("Using RestProducerFactory: {}", factory);
             
-            RestConfiguration config = getCamelContext().getRestConfiguration(cname, true);
+            RestConfiguration config = getCamelContext().getRestConfiguration(pname, false);
+            if (config == null) {
+                // fallback to default
+                config = getCamelContext().getRestConfiguration();
+            }
 
             Producer producer;
             if (apiDocFactory != null) {
@@ -392,12 +412,12 @@ public class RestEndpoint extends DefaultEndpoint {
     public Consumer createConsumer(Processor processor) throws Exception {
         RestConsumerFactory factory = null;
         String cname = null;
-        if (getComponentName() != null) {
-            Object comp = getCamelContext().getRegistry().lookupByName(getComponentName());
+        if (getConsumerComponentName() != null) {
+            Object comp = getCamelContext().getRegistry().lookupByName(getConsumerComponentName());
             if (comp instanceof RestConsumerFactory) {
                 factory = (RestConsumerFactory) comp;
             } else {
-                comp = getCamelContext().getComponent(getComponentName());
+                comp = getCamelContext().getComponent(getConsumerComponentName());
                 if (comp instanceof RestConsumerFactory) {
                     factory = (RestConsumerFactory) comp;
                 }
@@ -405,12 +425,12 @@ public class RestEndpoint extends DefaultEndpoint {
 
             if (factory == null) {
                 if (comp != null) {
-                    throw new IllegalArgumentException("Component " + getComponentName() + " is not a RestConsumerFactory");
+                    throw new IllegalArgumentException("Component " + getConsumerComponentName() + " is not a RestConsumerFactory");
                 } else {
-                    throw new NoSuchBeanException(getComponentName(), RestConsumerFactory.class.getName());
+                    throw new NoSuchBeanException(getConsumerComponentName(), RestConsumerFactory.class.getName());
                 }
             }
-            cname = getComponentName();
+            cname = getConsumerComponentName();
         }
 
         // try all components
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
index 314e17c..a8ddb45 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
@@ -680,31 +680,11 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition>
             }
         }
         for (RestConfiguration config : camelContext.getRestConfigurations()) {
-            addRouteDefinition(camelContext, answer, config.getComponent());
+            addRouteDefinition(camelContext, answer, config.getComponent(), config.getProducerComponent());
         }
         return answer;
     }
 
-    /**
-     * Transforms this REST definition into a list of {@link org.apache.camel.model.RouteDefinition} which
-     * Camel routing engine can add and run. This allows us to define REST services using this
-     * REST DSL and turn those into regular Camel routes.
-     *
-     * @param camelContext        The Camel context
-     * @param restConfiguration   The rest configuration to use
-     */
-    public List<RouteDefinition> asRouteDefinition(CamelContext camelContext, RestConfiguration restConfiguration) {
-        ObjectHelper.notNull(camelContext, "CamelContext");
-        ObjectHelper.notNull(restConfiguration, "RestConfiguration");
-
-        // sanity check this rest definition do not have duplicates
-        validateUniquePaths();
-
-        List<RouteDefinition> answer = new ArrayList<>();
-        addRouteDefinition(camelContext, answer, restConfiguration.getComponent());
-        return answer;
-    }
-
     protected void validateUniquePaths() {
         Set<String> paths = new HashSet<>();
         for (VerbDefinition verb : verbs) {
@@ -737,7 +717,10 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition>
         }
         options.put("routeId", routeId);
         if (configuration.getComponent() != null && !configuration.getComponent().isEmpty()) {
-            options.put("componentName", configuration.getComponent());
+            options.put("consumerComponentName", configuration.getComponent());
+        }
+        if (configuration.getComponent() != null && !configuration.getComponent().isEmpty()) {
+            options.put("producerComponentName", configuration.getProducerComponent());
         }
         if (configuration.getApiContextIdPattern() != null) {
             options.put("contextIdPattern", configuration.getApiContextIdPattern());
@@ -763,7 +746,7 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition>
     }
 
     @SuppressWarnings("rawtypes")
-    private void addRouteDefinition(CamelContext camelContext, List<RouteDefinition> answer, String component) {
+    private void addRouteDefinition(CamelContext camelContext, List<RouteDefinition> answer, String component, String producerComponent) {
         for (VerbDefinition verb : getVerbs()) {
             // either the verb has a singular to or a embedded route
             RouteDefinition route = verb.getRoute();
@@ -868,7 +851,10 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition>
             }
 
             if (component != null && !component.isEmpty()) {
-                options.put("componentName", component);
+                options.put("consumerComponentName", component);
+            }
+            if (producerComponent != null && !producerComponent.isEmpty()) {
+                options.put("producerComponentName", producerComponent);
             }
 
             // include optional description, which we favor from 1) to/route description 2) verb description 3) rest description
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/rest/RestEndpointTest.java b/core/camel-core/src/test/java/org/apache/camel/component/rest/RestEndpointTest.java
index df1f9fa..1ae8b88 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/rest/RestEndpointTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/rest/RestEndpointTest.java
@@ -63,7 +63,7 @@ public class RestEndpointTest {
     @Test
     public void shouldConfigureBindingMode() throws Exception {
         final RestEndpoint restEndpoint = new RestEndpoint("rest:GET:/path", restComponent);
-        restEndpoint.setComponentName("mock-rest");
+        restEndpoint.setConsumerComponentName("mock-rest");
         restEndpoint.setParameters(new HashMap<>());
         restEndpoint.setHost("http://localhost");
 
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
index 743f551..c3f8f94 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
@@ -51,7 +51,11 @@ public final class RestProducerFactoryHelper {
     }
 
     public static Component setupComponent(final String componentName, final CamelContext camelContext,
-        final Map<String, Object> componentProperties) throws Exception {
+                                           final Map<String, Object> componentProperties) throws Exception {
+        if (componentName == null) {
+            return null;
+        }
+
         if (componentProperties == null || componentProperties.isEmpty()) {
             return camelContext.getComponent(componentName);
         }
diff --git a/platforms/spring-boot/components-starter/camel-rest-starter/src/main/java/org/apache/camel/component/rest/springboot/RestComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-rest-starter/src/main/java/org/apache/camel/component/rest/springboot/RestComponentConfiguration.java
index 5687d7e..c1f131d 100644
--- a/platforms/spring-boot/components-starter/camel-rest-starter/src/main/java/org/apache/camel/component/rest/springboot/RestComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-rest-starter/src/main/java/org/apache/camel/component/rest/springboot/RestComponentConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.rest.springboot;
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 
 /**
  * The rest component is used for either hosting REST services (consumer) or
@@ -38,13 +39,30 @@ public class RestComponentConfiguration
      */
     private Boolean enabled;
     /**
-     * The Camel Rest component to use for the REST transport, such as restlet,
-     * spark-rest. If no component has been explicit configured, then Camel will
-     * lookup if there is a Camel component that integrates with the Rest DSL,
-     * or if a org.apache.camel.spi.RestConsumerFactory (consumer) or
-     * org.apache.camel.spi.RestProducerFactory (producer) is registered in the
-     * registry. If either one is found, then that is being used.
+     * The Camel Rest component to use for (consumer) the REST transport, such
+     * as jetty, servlet, undertow. If no component has been explicit
+     * configured, then Camel will lookup if there is a Camel component that
+     * integrates with the Rest DSL, or if a
+     * org.apache.camel.spi.RestConsumerFactory is registered in the registry.
+     * If either one is found, then that is being used.
      */
+    private String consumerComponentName;
+    /**
+     * The Camel Rest component to use for (producer) the REST transport, such
+     * as http, undertow. If no component has been explicit configured, then
+     * Camel will lookup if there is a Camel component that integrates with the
+     * Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered
+     * in the registry. If either one is found, then that is being used.
+     */
+    private String producerComponentName;
+    /**
+     * The Camel Rest component to use for (producer) the REST transport, such
+     * as http, undertow. If no component has been explicit configured, then
+     * Camel will lookup if there is a Camel component that integrates with the
+     * Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered
+     * in the registry. If either one is found, then that is being used.
+     */
+    @Deprecated
     private String componentName;
     /**
      * The swagger api doc resource to use. The resource is loaded from
@@ -67,10 +85,29 @@ public class RestComponentConfiguration
      */
     private Boolean basicPropertyBinding = false;
 
+    public String getConsumerComponentName() {
+        return consumerComponentName;
+    }
+
+    public void setConsumerComponentName(String consumerComponentName) {
+        this.consumerComponentName = consumerComponentName;
+    }
+
+    public String getProducerComponentName() {
+        return producerComponentName;
+    }
+
+    public void setProducerComponentName(String producerComponentName) {
+        this.producerComponentName = producerComponentName;
+    }
+
+    @Deprecated
+    @DeprecatedConfigurationProperty
     public String getComponentName() {
         return componentName;
     }
 
+    @Deprecated
     public void setComponentName(String componentName) {
         this.componentName = componentName;
     }