Repository: camel
Updated Branches:
  refs/heads/master 2bd185e92 -> e6da66a69


CAMEL-6707: fix issues reported by @davsclaus


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e6da66a6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e6da66a6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e6da66a6

Branch: refs/heads/master
Commit: e6da66a69840d8aa5ab1926974a92b779f90c868
Parents: 6a1f84e
Author: Arnaud Deprez <arnaud.dep...@lampiris.be>
Authored: Thu Apr 21 22:13:03 2016 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Fri Apr 22 07:44:45 2016 +0200

----------------------------------------------------------------------
 .../websocket/CamelWebSocketServlet.java        |  8 +--
 .../apache/camel/http/common/CamelServlet.java  | 53 +++++++-------
 .../camel/http/common/DefaultHttpBinding.java   | 62 ++++++++++------
 .../camel/http/common/HttpCommonComponent.java  |  1 +
 .../camel/http/common/HttpCommonEndpoint.java   | 16 +++--
 .../jetty/CamelContinuationServlet.java         | 23 +++---
 .../component/jetty/JettyHttpComponent.java     | 76 ++++++++++++++------
 .../jetty/ExplicitJettyAsyncRouteTest.java      |  2 +-
 ...pHttpMessageFormUrlEncodedFalseBodyTest.java |  6 +-
 .../component/jetty/HttpBridgeRouteTest.java    |  4 +-
 .../component/jetty/HttpsAsyncRouteTest.java    | 16 ++---
 .../camel/component/jetty/HttpsRouteTest.java   | 20 +++---
 .../component/servlet/ServletComponent.java     | 17 ++---
 .../component/servlet/ServletEndpoint.java      |  6 +-
 .../servlet/ServletAsyncArquillianTest.java     | 72 +++++++++++--------
 15 files changed, 227 insertions(+), 155 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/CamelWebSocketServlet.java
----------------------------------------------------------------------
diff --git 
a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/CamelWebSocketServlet.java
 
b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/CamelWebSocketServlet.java
index 2a84a73..9ddb21a 100644
--- 
a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/CamelWebSocketServlet.java
+++ 
b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/CamelWebSocketServlet.java
@@ -16,14 +16,14 @@
  */
 package org.apache.camel.component.atmosphere.websocket;
 
-import org.apache.camel.component.servlet.CamelHttpTransportServlet;
-import org.apache.camel.http.common.HttpConsumer;
-
+import java.io.IOException;
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
+
+import org.apache.camel.component.servlet.CamelHttpTransportServlet;
+import org.apache.camel.http.common.HttpConsumer;
 
 /**
  * This servlet is used to add some websocket specific handling at the moment.

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-http-common/src/main/java/org/apache/camel/http/common/CamelServlet.java
----------------------------------------------------------------------
diff --git 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/CamelServlet.java
 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/CamelServlet.java
index 382a6a4..ed94745 100644
--- 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/CamelServlet.java
+++ 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/CamelServlet.java
@@ -16,6 +16,18 @@
  */
 package org.apache.camel.http.common;
 
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import javax.servlet.AsyncContext;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.RuntimeCamelException;
@@ -24,25 +36,12 @@ import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.servlet.AsyncContext;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Optional;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
 /**
  * A servlet to use as a Camel route as entry.
  */
 public class CamelServlet extends HttpServlet {
-    private static final long serialVersionUID = -7061982839117697829L;
     public static final String ASYNC_PARAM = "async";
+    private static final long serialVersionUID = -7061982839117697829L;
     protected final Logger log = LoggerFactory.getLogger(getClass());
     
     /**
@@ -50,7 +49,7 @@ public class CamelServlet extends HttpServlet {
      *  sure that it is already set via the init method
      */
     private String servletName;
-    private boolean async = false;
+    private boolean async;
 
     private ServletResolveConsumerStrategy servletResolveConsumerStrategy = 
new HttpServletResolveConsumerStrategy();
     private final ConcurrentMap<String, HttpConsumer> consumers = new 
ConcurrentHashMap<String, HttpConsumer>();
@@ -59,9 +58,9 @@ public class CamelServlet extends HttpServlet {
     public void init(ServletConfig config) throws ServletException {
         super.init(config);
         this.servletName = config.getServletName();
-        this.async = Optional.ofNullable(config.getInitParameter(ASYNC_PARAM))
-            .map(ObjectHelper::toBoolean)
-            .orElse(Boolean.FALSE);
+
+        final String asyncParam = config.getInitParameter(ASYNC_PARAM);
+        this.async = asyncParam == null ? false : 
ObjectHelper.toBoolean(asyncParam);
         log.trace("servlet '{}' initialized with: async={}", new 
Object[]{servletName, async});
     }
 
@@ -71,13 +70,12 @@ public class CamelServlet extends HttpServlet {
             final AsyncContext context = req.startAsync();
             //run async
             context.start(() -> doServiceAsync(context));
-        }
-        else {
+        } else {
             doService(req, resp);
         }
     }
 
-       /**
+    /**
      * This is used to handle request asynchronously
      * @param context the {@link AsyncContext}
      */
@@ -86,25 +84,22 @@ public class CamelServlet extends HttpServlet {
         final HttpServletResponse response = (HttpServletResponse) 
context.getResponse();
         try {
             doService(request, response);
-        }
-        //An error shouldn't occur as we should handle most of error in 
doService
-        catch (Exception e) {
+        } catch (Exception e) {
+            //An error shouldn't occur as we should handle most of error in 
doService
             log.error("Error processing request", e);
             try {
                 
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-            }
-            catch (Exception e1) {
+            } catch (Exception e1) {
                 log.debug("Cannot send reply to client!", e1);
             }
             //Need to wrap it in RuntimeException as it occurs in a Runnable
             throw new RuntimeCamelException(e);
-        }
-        finally {
+        } finally {
             context.complete();
         }
     }
 
-       /**
+    /**
      * This is the logical implementation to handle request with {@link 
CamelServlet}
      * This is where most exceptions should be handled
      *

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpBinding.java
----------------------------------------------------------------------
diff --git 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpBinding.java
 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpBinding.java
index 1f190fe..828d90c 100644
--- 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpBinding.java
+++ 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpBinding.java
@@ -16,7 +16,34 @@
  */
 package org.apache.camel.http.common;
 
-import org.apache.camel.*;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.TimeZone;
+import javax.activation.DataHandler;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.Exchange;
+import org.apache.camel.InvalidPayloadException;
+import org.apache.camel.Message;
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.StreamCache;
 import org.apache.camel.converter.stream.CachedOutputStream;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.util.GZIPHelper;
@@ -26,15 +53,6 @@ import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.activation.DataHandler;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.*;
-import java.net.URLDecoder;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
 /**
  * Binding between {@link HttpMessage} and {@link HttpServletResponse}.
  * <p/>
@@ -92,11 +110,11 @@ public class DefaultHttpBinding implements HttpBinding {
             readHeaders(request, message);
         }
         if (mapHttpMessageFormUrlEncodedBody) {
-               try {
-                               readFormUrlEncodedBody(request, message);
-                       } catch (UnsupportedEncodingException e) {
-                   throw new RuntimeCamelException("Cannot read Form URL 
encoded body due " + e.getMessage(), e);
-                       }
+            try {
+                readFormUrlEncodedBody(request, message);
+            } catch (UnsupportedEncodingException e) {
+                throw new RuntimeCamelException("Cannot read Form URL encoded 
body due " + e.getMessage(), e);
+            }
         }
 
         // populate the headers from the request
@@ -212,9 +230,9 @@ public class DefaultHttpBinding implements HttpBinding {
         }
     }
 
-       protected void readFormUrlEncodedBody(HttpServletRequest request, 
HttpMessage message) throws UnsupportedEncodingException {
+    protected void readFormUrlEncodedBody(HttpServletRequest request, 
HttpMessage message) throws UnsupportedEncodingException {
         LOG.trace("readFormUrlEncodedBody {}", request);
-               // should we extract key=value pairs from form bodies 
(application/x-www-form-urlencoded)
+        // should we extract key=value pairs from form bodies 
(application/x-www-form-urlencoded)
         // and map those to Camel headers
         if (mapHttpMessageBody && mapHttpMessageHeaders) {
             LOG.trace("HTTP method {} with Content-Type {}", 
request.getMethod(), request.getContentType());
@@ -260,16 +278,16 @@ public class DefaultHttpBinding implements HttpBinding {
                 }
             }
         }
-       }
+    }
 
     private String getRawPath(HttpServletRequest request) {
         String uri = request.getRequestURI();
-               /**
+        /**
          * In async case, it seems that request.getContextPath() can return 
null
          * @see https://dev.eclipse.org/mhonarc/lists/jetty-users/msg04669.html
          */
-        String contextPath = 
Optional.ofNullable(request.getContextPath()).orElse("");
-        String servletPath = 
Optional.ofNullable(request.getServletPath()).orElse("");
+        String contextPath = request.getContextPath() == null ? "" : 
request.getContextPath();
+        String servletPath = request.getServletPath() == null ? "" : 
request.getServletPath();
         return uri.substring(contextPath.length() + servletPath.length());
     }
 
@@ -619,7 +637,7 @@ public class DefaultHttpBinding implements HttpBinding {
         this.mapHttpMessageFormUrlEncodedBody = 
mapHttpMessageFormUrlEncodedBody;
     }
 
-       protected static SimpleDateFormat getHttpDateFormat() {
+    protected static SimpleDateFormat getHttpDateFormat() {
         SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT, 
Locale.US);
         dateFormat.setTimeZone(TIME_ZONE_GMT);
         return dateFormat;

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonComponent.java
 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonComponent.java
index a99472e..189c269 100644
--- 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonComponent.java
+++ 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonComponent.java
@@ -86,4 +86,5 @@ public abstract class HttpCommonComponent extends 
HeaderFilterStrategyComponent
     public void setAllowJavaSerializedObject(boolean 
allowJavaSerializedObject) {
         this.allowJavaSerializedObject = allowJavaSerializedObject;
     }
+
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java
 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java
index 9007322..99f03ea 100644
--- 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java
+++ 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java
@@ -16,12 +16,16 @@
  */
 package org.apache.camel.http.common;
 
-import org.apache.camel.impl.DefaultEndpoint;
-import org.apache.camel.spi.*;
-
 import java.net.URI;
 import java.net.URISyntaxException;
 
+import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.spi.HeaderFilterStrategyAware;
+import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
+
 public abstract class HttpCommonEndpoint extends DefaultEndpoint implements 
HeaderFilterStrategyAware {
 
     // Note: all options must be documented with description in annotations so 
extended components can access the documentation
@@ -43,9 +47,9 @@ public abstract class HttpCommonEndpoint extends 
DefaultEndpoint implements Head
                     + " You may also set the option throwExceptionOnFailure to 
be false to let the HttpProducer send all the fault response back.")
     boolean bridgeEndpoint;
     @UriParam(label = "producer",
-            description = "If the option is true, HttpProducer will set the 
Host header to the value contained in the current exchange Host header, " +
-                    "useful in reverse proxy applications where you want the 
Host header received by the downstream server to reflect the URL called by the 
upstream client, " +
-                    "this allows applications which use the Host header to 
generate accurate URL's for a proxied service")
+            description = "If the option is true, HttpProducer will set the 
Host header to the value contained in the current exchange Host header, "
+                + "useful in reverse proxy applications where you want the 
Host header received by the downstream server to reflect the URL called by the 
upstream client, "
+                + "this allows applications which use the Host header to 
generate accurate URL's for a proxied service")
     boolean preserveHostHeader;
     @UriParam(label = "consumer",
             description = "Whether or not the consumer should try to find a 
target consumer by matching the URI prefix if no exact match is found.")

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/CamelContinuationServlet.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/CamelContinuationServlet.java
 
b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/CamelContinuationServlet.java
index d9abfe2..f1299f4 100644
--- 
a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/CamelContinuationServlet.java
+++ 
b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/CamelContinuationServlet.java
@@ -16,24 +16,29 @@
  */
 package org.apache.camel.component.jetty;
 
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 import org.apache.camel.AsyncCallback;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
-import org.apache.camel.http.common.*;
+import org.apache.camel.http.common.CamelServlet;
+import org.apache.camel.http.common.HttpCommonEndpoint;
+import org.apache.camel.http.common.HttpConstants;
+import org.apache.camel.http.common.HttpConsumer;
+import org.apache.camel.http.common.HttpHelper;
+import org.apache.camel.http.common.HttpMessage;
 import org.apache.camel.impl.DefaultExchange;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.UnsafeUriCharactersEncoder;
 import org.eclipse.jetty.continuation.Continuation;
 import org.eclipse.jetty.continuation.ContinuationSupport;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
 /**
  * Servlet which leverage <a 
href="http://wiki.eclipse.org/Jetty/Feature/Continuations";>Jetty 
Continuations</a>.
  *

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
----------------------------------------------------------------------
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 828514b..7b3e7bf 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
@@ -16,16 +16,61 @@
  */
 package org.apache.camel.component.jetty;
 
-import org.apache.camel.*;
-import org.apache.camel.http.common.*;
-import org.apache.camel.spi.*;
-import org.apache.camel.util.*;
+import java.io.File;
+import java.io.IOException;
+import java.io.Writer;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.security.GeneralSecurityException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import javax.management.MBeanServer;
+import javax.servlet.Filter;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Consumer;
+import org.apache.camel.Endpoint;
+import org.apache.camel.Processor;
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.http.common.CamelServlet;
+import org.apache.camel.http.common.HttpBinding;
+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.HttpRestServletResolveConsumerStrategy;
+import org.apache.camel.http.common.UrlRewrite;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.spi.ManagementAgent;
+import org.apache.camel.spi.ManagementStrategy;
+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.util.FileUtil;
+import org.apache.camel.util.HostUtils;
+import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
+import org.apache.camel.util.UnsafeUriCharactersEncoder;
 import org.apache.camel.util.jsse.SSLContextParameters;
 import org.eclipse.jetty.client.HttpClient;
 import org.eclipse.jetty.http.HttpStatus;
 import org.eclipse.jetty.jmx.MBeanContainer;
-import org.eclipse.jetty.server.*;
+import org.eclipse.jetty.server.AbstractConnector;
+import org.eclipse.jetty.server.Connector;
 import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Response;
+import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
 import org.eclipse.jetty.server.handler.ErrorHandler;
 import org.eclipse.jetty.server.handler.HandlerCollection;
@@ -43,21 +88,6 @@ import org.eclipse.jetty.util.thread.ThreadPool;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.management.MBeanServer;
-import javax.servlet.Filter;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.IOException;
-import java.io.Writer;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.security.GeneralSecurityException;
-import java.util.*;
-
 /**
  * An HttpComponent which starts an embedded Jetty for to handle consuming from
  * the http endpoints.
@@ -152,7 +182,7 @@ public abstract class JettyHttpComponent extends 
HttpCommonComponent implements
         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);
-        Optional<Boolean> async = 
Optional.ofNullable(getAndRemoveParameter(parameters, "async", Boolean.class));
+        Boolean async = getAndRemoveParameter(parameters, "async", 
Boolean.class);
 
         // extract httpClient. parameters
         Map<String, Object> httpClientParameters = 
IntrospectionSupport.extractProperties(parameters, "httpClient.");
@@ -174,7 +204,9 @@ public abstract class JettyHttpComponent extends 
HttpCommonComponent implements
         endpointUri = new URI(scheme + ":" + endpointUri);
 
         JettyHttpEndpoint endpoint = createEndpoint(endpointUri, httpUri);
-        async.ifPresent(endpoint::setAsync);
+        if (async != null) {
+            endpoint.setAsync(async);
+        }
 
         if (headerFilterStrategy != null) {
             endpoint.setHeaderFilterStrategy(headerFilterStrategy);

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/ExplicitJettyAsyncRouteTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/ExplicitJettyAsyncRouteTest.java
 
b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/ExplicitJettyAsyncRouteTest.java
index 63fba47..8b36461 100644
--- 
a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/ExplicitJettyAsyncRouteTest.java
+++ 
b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/ExplicitJettyAsyncRouteTest.java
@@ -16,12 +16,12 @@
  */
 package org.apache.camel.component.jetty;
 
+import javax.servlet.http.HttpServletRequest;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.Test;
 
-import javax.servlet.http.HttpServletRequest;
 
 /**
  * Unit test for wiki demonstration.

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpBindingMapHttpMessageFormUrlEncodedFalseBodyTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpBindingMapHttpMessageFormUrlEncodedFalseBodyTest.java
 
b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpBindingMapHttpMessageFormUrlEncodedFalseBodyTest.java
index 0a99d9b..8f3df8d 100644
--- 
a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpBindingMapHttpMessageFormUrlEncodedFalseBodyTest.java
+++ 
b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpBindingMapHttpMessageFormUrlEncodedFalseBodyTest.java
@@ -29,9 +29,9 @@ public class 
HttpBindingMapHttpMessageFormUrlEncodedFalseBodyTest extends BaseJe
     
     @Test
     public void testSendToJetty() throws Exception {
-       Map<String,Object> map = new HashMap<String,Object>();
-       map.put("content-type", "application/x-www-form-urlencoded");
-       map.put(Exchange.HTTP_METHOD, HttpMethods.POST);
+        Map<String, Object> map = new HashMap<>();
+        map.put("content-type", "application/x-www-form-urlencoded");
+        map.put(Exchange.HTTP_METHOD, HttpMethods.POST);
         
template.requestBodyAndHeaders("http://localhost:{{port}}/myapp/myservice?query1=a&query2=b";,
 "b1=x&b2=y", map);
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpBridgeRouteTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpBridgeRouteTest.java
 
b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpBridgeRouteTest.java
index edfbd3a..6b9cf2a 100644
--- 
a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpBridgeRouteTest.java
+++ 
b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpBridgeRouteTest.java
@@ -16,14 +16,14 @@
  */
 package org.apache.camel.component.jetty;
 
+import java.io.ByteArrayInputStream;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.Test;
 
-import java.io.ByteArrayInputStream;
-
 public class HttpBridgeRouteTest extends BaseJettyTest {
 
     protected int port1;

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpsAsyncRouteTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpsAsyncRouteTest.java
 
b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpsAsyncRouteTest.java
index 6e3041b..a9e986e 100644
--- 
a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpsAsyncRouteTest.java
+++ 
b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpsAsyncRouteTest.java
@@ -16,6 +16,14 @@
  */
 package org.apache.camel.component.jetty;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.SocketException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
@@ -27,14 +35,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.SocketException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
 
 public class HttpsAsyncRouteTest extends HttpsRouteTest {
 

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpsRouteTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpsRouteTest.java
 
b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpsRouteTest.java
index 9a3e04b..3403897 100644
--- 
a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpsRouteTest.java
+++ 
b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/HttpsRouteTest.java
@@ -16,6 +16,16 @@
  */
 package org.apache.camel.component.jetty;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.SocketException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
@@ -28,16 +38,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.SocketException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
 public class HttpsRouteTest extends BaseJettyTest {
 
     public static final String NULL_VALUE_MARKER = 
CamelTestSupport.class.getCanonicalName();

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java
 
b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java
index 2a16ebf..161c275 100644
--- 
a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java
+++ 
b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java
@@ -16,6 +16,11 @@
  */
 package org.apache.camel.component.servlet;
 
+import java.net.URI;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.Consumer;
 import org.apache.camel.Endpoint;
@@ -32,12 +37,6 @@ import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
 import org.apache.camel.util.UnsafeUriCharactersEncoder;
 
-import java.net.URI;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
-
 public class ServletComponent extends HttpCommonComponent implements 
RestConsumerFactory, RestApiConsumerFactory {
 
     private String servletName = "CamelServlet";
@@ -62,7 +61,7 @@ public class ServletComponent extends HttpCommonComponent 
implements RestConsume
         String servletName = getAndRemoveParameter(parameters, "servletName", 
String.class, getServletName());
         String httpMethodRestrict = getAndRemoveParameter(parameters, 
"httpMethodRestrict", String.class);
         HeaderFilterStrategy headerFilterStrategy = 
resolveAndRemoveReferenceParameter(parameters, "headerFilterStrategy", 
HeaderFilterStrategy.class);
-        Optional<Boolean> async = 
Optional.ofNullable(getAndRemoveParameter(parameters, "async", Boolean.class));
+        Boolean async = getAndRemoveParameter(parameters, "async", 
Boolean.class);
 
         if (lenientContextPath()) {
             // the uri must have a leading slash for the context-path matching 
to work with servlet, and it can be something people
@@ -82,7 +81,9 @@ public class ServletComponent extends HttpCommonComponent 
implements RestConsume
 
         ServletEndpoint endpoint = createServletEndpoint(uri, this, httpUri);
         endpoint.setServletName(servletName);
-        async.ifPresent(endpoint::setAsync);
+        if (async != null) {
+            endpoint.setAsync(async);
+        }
         if (headerFilterStrategy != null) {
             endpoint.setHeaderFilterStrategy(headerFilterStrategy);
         } else {

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
 
b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
index a22ffdb..5beefc3 100644
--- 
a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
+++ 
b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.servlet;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
@@ -25,9 +28,6 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 
-import java.net.URI;
-import java.net.URISyntaxException;
-
 /**
  * To use a HTTP Servlet as entry for Camel routes when running in a servlet 
container.
  */

http://git-wip-us.apache.org/repos/asf/camel/blob/e6da66a6/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/ServletAsyncArquillianTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/ServletAsyncArquillianTest.java
 
b/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/ServletAsyncArquillianTest.java
index 8ce0d98..8d50058 100644
--- 
a/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/ServletAsyncArquillianTest.java
+++ 
b/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/ServletAsyncArquillianTest.java
@@ -1,5 +1,24 @@
+/**
+ * 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.servlet;
 
+import java.net.URL;
+import java.nio.file.Paths;
+import java.text.MessageFormat;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.container.test.api.RunAsClient;
 import org.jboss.arquillian.junit.Arquillian;
@@ -10,13 +29,10 @@ import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import java.net.URL;
-import java.nio.file.Paths;
-import java.text.MessageFormat;
-
 import static com.jayway.restassured.RestAssured.given;
 import static org.hamcrest.CoreMatchers.equalTo;
 
+
 /**
  * @author arnaud.deprez
  * @since 18/04/16
@@ -24,29 +40,29 @@ import static org.hamcrest.CoreMatchers.equalTo;
 @RunWith(Arquillian.class)
 public class ServletAsyncArquillianTest {
 
-       @Deployment
-       public static Archive<?> createTestArchive() {
-               // this is a WAR project so use WebArchive
-               return ShrinkWrap.create(WebArchive.class)
-                       // add the web.xml
-                       
.setWebXML(Paths.get("src/test/resources/org/apache/camel/component/servlet/web-spring-async.xml").toFile());
-       }
+    @Deployment
+    public static Archive<?> createTestArchive() {
+        // this is a WAR project so use WebArchive
+        return ShrinkWrap.create(WebArchive.class)
+            // add the web.xml
+            
.setWebXML(Paths.get("src/test/resources/org/apache/camel/component/servlet/web-spring-async.xml").toFile());
+    }
 
-       /**
-        *
-        * @param url the URL is the URL to the web application that was 
deployed
-        * @throws Exception
-        */
-       @Test
-       @RunAsClient
-       public void testHello(@ArquillianResource URL url) throws Exception {
-               final String name = "Arnaud";
-               given().
-                       baseUri(url.toString()).
-                       queryParam("name", name).
-               when().
-                       get("/services/hello").
-               then().
-                       body(equalTo(MessageFormat.format("Hello {0} how are 
you?", name)));
-       }
+    /**
+     *
+     * @param url the URL is the URL to the web application that was deployed
+     * @throws Exception
+     */
+    @Test
+    @RunAsClient
+    public void testHello(@ArquillianResource URL url) throws Exception {
+        final String name = "Arnaud";
+        given().
+            baseUri(url.toString()).
+            queryParam("name", name).
+        when().
+            get("/services/hello").
+        then().
+            body(equalTo(MessageFormat.format("Hello {0} how are you?", 
name)));
+    }
 }

Reply via email to