CAMEL-9208 - camel-netty4-http doesn't use nettyHttpBinding from URI

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

Branch: refs/heads/camel-2.16.x
Commit: 0f09a8621d76f07e882cb73bab1aca4064395961
Parents: c1e0f30
Author: Jonathan Anstey <jans...@gmail.com>
Authored: Fri Oct 9 15:56:51 2015 -0230
Committer: Jonathan Anstey <jans...@gmail.com>
Committed: Fri Oct 9 15:58:07 2015 -0230

----------------------------------------------------------------------
 .../component/netty4/http/NettyHttpComponent.java  | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/0f09a862/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
 
b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
index 989d2ee..82f783d 100644
--- 
a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
+++ 
b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
@@ -105,16 +105,25 @@ public class NettyHttpComponent extends NettyComponent 
implements HeaderFilterSt
             config.setPort(shared.getPort());
         }
 
-        // create the address uri which includes the remainder parameters 
(which is not configuration parameters for this component)
+        NettyHttpBinding bindingFromUri = 
resolveAndRemoveReferenceParameter(parameters, "nettyHttpBinding", 
NettyHttpBinding.class);
+
+        // create the address uri which includes the remainder parameters 
(which
+        // is not configuration parameters for this component)
         URI u = new URI(UnsafeUriCharactersEncoder.encodeHttpURI(remaining));
-        
+
         String addressUri = URISupport.createRemainingURI(u, 
parameters).toString();
 
         NettyHttpEndpoint answer = new NettyHttpEndpoint(addressUri, this, 
config);
 
-        // must use a copy of the binding on the endpoint to avoid sharing 
same instance that can cause side-effects
+        // must use a copy of the binding on the endpoint to avoid sharing same
+        // instance that can cause side-effects
         if (answer.getNettyHttpBinding() == null) {
-            Object binding = getNettyHttpBinding();
+            Object binding = null;
+            if (bindingFromUri != null) {
+                binding = bindingFromUri;
+            } else {
+                binding = getNettyHttpBinding();
+            }
             if (binding instanceof RestNettyHttpBinding) {
                 NettyHttpBinding copy = ((RestNettyHttpBinding) 
binding).copy();
                 answer.setNettyHttpBinding(copy);

Reply via email to