You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2015/03/31 11:44:26 UTC

[4/4] camel git commit: CAMEL-8576 Added a option to let camel netty take the message body as byte buffer

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/780b41b4
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/780b41b4
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/780b41b4

Branch: refs/heads/master
Commit: 780b41b47647141eef375d2e518d6313cdacad88
Parents: dfdaed5
Author: Willem Jiang <wi...@gmail.com>
Authored: Tue Mar 31 17:42:28 2015 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Tue Mar 31 17:42:45 2015 +0800

----------------------------------------------------------------------
 .../camel/component/netty4/NettyConfiguration.java       | 10 ++++++++++
 .../camel/component/netty4/NettyPayloadHelper.java       | 11 ++++++++---
 2 files changed, 18 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/780b41b4/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConfiguration.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConfiguration.java
index d315f43..7fbe1d8 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConfiguration.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConfiguration.java
@@ -94,6 +94,8 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
     private boolean udpConnectionlessSending;
     @UriParam(defaultValue = "false")
     private boolean clientMode;
+    @UriParam(defaultValue = "false")
+    private boolean useByteBuf;
     
 
     /**
@@ -493,6 +495,14 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
         this.clientMode = clientMode;
     }
 
+    public boolean isUseByteBuf() {
+        return useByteBuf;
+    }
+
+    public void setUseByteBuf(boolean useByteBuf) {
+        this.useByteBuf = useByteBuf;
+    }
+
     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/780b41b4/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyPayloadHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyPayloadHelper.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyPayloadHelper.java
index 714957b..3e2a27c 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyPayloadHelper.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyPayloadHelper.java
@@ -18,8 +18,8 @@ package org.apache.camel.component.netty4;
 
 import java.net.InetSocketAddress;
 
+import io.netty.buffer.ByteBuf;
 import io.netty.channel.AddressedEnvelope;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultExchangeHolder;
 
@@ -43,8 +43,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().isUseByteBuf()) {
+                // Just leverage the type converter 
+                return exchange.getIn().getBody(ByteBuf.class);
+            } else {
+                // normal transfer using the body only
+                return exchange.getIn().getBody();
+            }
         }
     }