CAMEL-8576 Added a option to let camel netty take the message body as byte 
buffer


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

Branch: refs/heads/master
Commit: 277aa22f9a600a423e6316dc2ff97190bce04931
Parents: b046a67
Author: Willem Jiang <willem.ji...@gmail.com>
Authored: Tue Mar 31 17:40:49 2015 +0800
Committer: Willem Jiang <willem.ji...@gmail.com>
Committed: Tue Mar 31 17:42:44 2015 +0800

----------------------------------------------------------------------
 .../camel/component/netty/NettyConfiguration.java       | 12 +++++++++++-
 .../camel/component/netty/NettyPayloadHelper.java       | 10 ++++++++--
 2 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/277aa22f/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
index 847ca45..8b9d983 100644
--- 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
+++ 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
@@ -94,7 +94,9 @@ public class NettyConfiguration extends 
NettyServerBootstrapConfiguration implem
     private boolean udpConnectionlessSending;
     @UriParam(defaultValue = "false")
     private boolean clientMode;
-    
+    @UriParam(defaultValue = "false")
+    private boolean useChannelBuffer;
+
     /**
      * Returns a copy of this configuration
      */
@@ -466,6 +468,14 @@ public class NettyConfiguration extends 
NettyServerBootstrapConfiguration implem
         this.clientMode = clientMode;
     }
 
+    public boolean isUseChannelBuffer() {
+        return useChannelBuffer;
+    }
+
+    public void setUseChannelBuffer(boolean useChannelBuffer) {
+        this.useChannelBuffer = useChannelBuffer;
+    }
+
     private static <T> void addToHandlersList(List<T> configured, List<T> 
handlers, Class<T> handlerType) {
         if (handlers != null) {
             for (T handler : handlers) {

http://git-wip-us.apache.org/repos/asf/camel/blob/277aa22f/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyPayloadHelper.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyPayloadHelper.java
 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyPayloadHelper.java
index c0839ee..b1dc812 100644
--- 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyPayloadHelper.java
+++ 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyPayloadHelper.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.netty;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultExchangeHolder;
+import org.jboss.netty.buffer.ChannelBuffer;
 
 /**
  * Helper to get and set the correct payload when transferring data using 
camel-netty.
@@ -39,8 +40,13 @@ public final class NettyPayloadHelper {
             // we should transfer the entire exchange over the wire (includes 
in/out)
             return DefaultExchangeHolder.marshal(exchange);
         } else {
-            // normal transfer using the body only
-            return exchange.getIn().getBody();
+            if (endpoint.getConfiguration().isUseChannelBuffer()) {
+                // The NettyConverter could help us for it
+                return exchange.getIn().getBody(ChannelBuffer.class);
+            } else {
+                // normal transfer using the body only
+                return exchange.getIn().getBody();
+            }
         }
     }
 

Reply via email to