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 2014/12/11 14:30:13 UTC

[1/3] camel git commit: CAMEL-8120 Fixed the issue that ChannelHandlerFactories.newDelimiterBasedFrameDecoder always strips delimiters

Repository: camel
Updated Branches:
  refs/heads/master 3fef41ebc -> 81e4db372


CAMEL-8120 Fixed the issue that ChannelHandlerFactories.newDelimiterBasedFrameDecoder always strips delimiters


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

Branch: refs/heads/master
Commit: 791805ffc67e426ff8f68007e51c5acb4aa793e3
Parents: 3fef41e
Author: Willem Jiang <wi...@gmail.com>
Authored: Thu Dec 11 20:17:20 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Thu Dec 11 21:29:45 2014 +0800

----------------------------------------------------------------------
 .../camel/component/netty4/ChannelHandlerFactories.java      | 8 ++++++--
 .../netty4/codec/DatagramPacketDelimiterDecoder.java         | 7 ++++++-
 2 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/791805ff/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/ChannelHandlerFactories.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/ChannelHandlerFactories.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/ChannelHandlerFactories.java
index edd387f..d23ebd7 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/ChannelHandlerFactories.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/ChannelHandlerFactories.java
@@ -89,18 +89,22 @@ public final class ChannelHandlerFactories {
     }
    
     public static ChannelHandlerFactory newDelimiterBasedFrameDecoder(final int maxFrameLength, final ByteBuf[] delimiters, String protocol) {
+        return newDelimiterBasedFrameDecoder(maxFrameLength, delimiters, true, protocol);
+    }
+    
+    public static ChannelHandlerFactory newDelimiterBasedFrameDecoder(final int maxFrameLength, final ByteBuf[] delimiters, final boolean stripDelimiter, String protocol) {
         if ("udp".equals(protocol)) {
             return new DefaultChannelHandlerFactory() {
                 @Override
                 public ChannelHandler newChannelHandler() {
-                    return new DatagramPacketDelimiterDecoder(maxFrameLength, delimiters);
+                    return new DatagramPacketDelimiterDecoder(maxFrameLength, stripDelimiter, delimiters);
                 }
             };
         } else {
             return new DefaultChannelHandlerFactory() {
                 @Override
                 public ChannelHandler newChannelHandler() {
-                    return new DelimiterBasedFrameDecoder(maxFrameLength, true, delimiters);
+                    return new DelimiterBasedFrameDecoder(maxFrameLength, stripDelimiter, delimiters);
                 }
             };
         }

http://git-wip-us.apache.org/repos/asf/camel/blob/791805ff/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/codec/DatagramPacketDelimiterDecoder.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/codec/DatagramPacketDelimiterDecoder.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/codec/DatagramPacketDelimiterDecoder.java
index 5d67756..0961716 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/codec/DatagramPacketDelimiterDecoder.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/codec/DatagramPacketDelimiterDecoder.java
@@ -29,8 +29,13 @@ public class DatagramPacketDelimiterDecoder extends MessageToMessageDecoder<Addr
     private final DelimiterBasedFrameDecoder delegateDecoder;
     
     public DatagramPacketDelimiterDecoder(int maxFrameLength, ByteBuf[] delimiters) {
-        delegateDecoder = new DelimiterBasedFrameDecoder(maxFrameLength, true, delimiters);
+        this(maxFrameLength, true, delimiters);
     }
+    
+    public DatagramPacketDelimiterDecoder(int maxFrameLength, boolean stripDelimiter,  ByteBuf[] delimiters) {
+        delegateDecoder = new DelimiterBasedFrameDecoder(maxFrameLength, stripDelimiter, delimiters);
+    }
+    
     @Override
     protected void decode(ChannelHandlerContext ctx, AddressedEnvelope<Object, InetSocketAddress> msg,
                           List<Object> out) throws Exception {


[3/3] camel git commit: CAMEL-8145 Merged the patch into camel-mina2

Posted by ni...@apache.org.
CAMEL-8145 Merged the patch into camel-mina2


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

Branch: refs/heads/master
Commit: 81e4db372ab6d4b2ba02bec178568343d0670d79
Parents: d0d469b
Author: Willem Jiang <wi...@gmail.com>
Authored: Thu Dec 11 20:29:59 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Thu Dec 11 21:29:46 2014 +0800

----------------------------------------------------------------------
 .../apache/camel/component/mina2/Mina2Consumer.java |  8 ++++++--
 .../Mina2TcpWithInOutUsingPlainSocketTest.java      | 16 ++++++++++++++--
 2 files changed, 20 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/81e4db37/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Consumer.java
----------------------------------------------------------------------
diff --git a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Consumer.java b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Consumer.java
index 29ce424..df85635 100644
--- a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Consumer.java
+++ b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Consumer.java
@@ -346,8 +346,12 @@ public class Mina2Consumer extends DefaultConsumer {
             //
             boolean disconnect = getEndpoint().getConfiguration().isDisconnect();
             Object response = null;
-            response = Mina2PayloadHelper.getOut(getEndpoint(), exchange);
-
+            if (exchange.hasOut()) {
+                response = Mina2PayloadHelper.getOut(getEndpoint(), exchange);
+            } else {
+                response = Mina2PayloadHelper.getIn(getEndpoint(), exchange);
+            }
+            
             boolean failed = exchange.isFailed();
             if (failed && !getEndpoint().getConfiguration().isTransferExchange()) {
                 if (exchange.getException() != null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/81e4db37/components/camel-mina2/src/test/java/org/apache/camel/component/mina2/Mina2TcpWithInOutUsingPlainSocketTest.java
----------------------------------------------------------------------
diff --git a/components/camel-mina2/src/test/java/org/apache/camel/component/mina2/Mina2TcpWithInOutUsingPlainSocketTest.java b/components/camel-mina2/src/test/java/org/apache/camel/component/mina2/Mina2TcpWithInOutUsingPlainSocketTest.java
index 7aa7e3c..3ae322c 100644
--- a/components/camel-mina2/src/test/java/org/apache/camel/component/mina2/Mina2TcpWithInOutUsingPlainSocketTest.java
+++ b/components/camel-mina2/src/test/java/org/apache/camel/component/mina2/Mina2TcpWithInOutUsingPlainSocketTest.java
@@ -75,12 +75,22 @@ public class Mina2TcpWithInOutUsingPlainSocketTest extends BaseMina2Test {
         assertTrue("out should not be the same as in when the exchange has failed", !"force-exception".equals(out));
         assertEquals("should get the exception here", out, "java.lang.IllegalArgumentException: Forced exception");
     }
+    
+    @Test
+    public void testExchangeWithInOnly() throws IOException {
+        String out = sendAndReceive("force-set-in-body");
+        assertEquals("Get a wrong response message", "Update the in message!", out);
+    }
 
     private String sendAndReceive(String input) throws IOException {
+        return sendAndReceive(input, getPort());
+    }
+    
+    private String sendAndReceive(String input, int port) throws IOException {
         byte buf[] = new byte[128];
 
         Socket soc = new Socket();
-        soc.connect(new InetSocketAddress("localhost", getPort()));
+        soc.connect(new InetSocketAddress("localhost", port));
 
         // Send message using plain Socket to test if this works
         OutputStream os = null;
@@ -132,9 +142,11 @@ public class Mina2TcpWithInOutUsingPlainSocketTest extends BaseMina2Test {
                                 // clear out before throwing exception
                                 e.getOut().setBody(null);
                                 throw new IllegalArgumentException("Forced exception");
+                            } else if ("force-set-in-body".equals(in)) {
+                                e.getIn().setBody("Update the in message!");
                             } else {
                                 e.getOut().setBody("Hello " + in);
-                            }
+                            } 
                         }
                     });
             }


[2/3] camel git commit: CAMEL-8145 Mina Consumer should send the message back if the response is set on the in message

Posted by ni...@apache.org.
CAMEL-8145 Mina Consumer should send the message back if the response is set on the in message


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

Branch: refs/heads/master
Commit: d0d469b32d8afc27d620ef5bba6a395c0cf7001a
Parents: 791805f
Author: Willem Jiang <wi...@gmail.com>
Authored: Thu Dec 11 20:29:08 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Thu Dec 11 21:29:46 2014 +0800

----------------------------------------------------------------------
 .../java/org/apache/camel/component/mina/MinaConsumer.java   | 2 +-
 .../component/mina/MinaTcpWithInOutUsingPlainSocketTest.java | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d0d469b3/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
index 6616d94..c81c61a 100644
--- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
+++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
@@ -118,7 +118,7 @@ public class MinaConsumer extends DefaultConsumer {
             // if sync then we should return a response
             if (sync) {
                 Object body;
-                if (ExchangeHelper.isOutCapable(exchange)) {
+                if (exchange.hasOut()) {
                     body = MinaPayloadHelper.getOut(getEndpoint(), exchange);
                 } else {
                     body = MinaPayloadHelper.getIn(getEndpoint(), exchange);

http://git-wip-us.apache.org/repos/asf/camel/blob/d0d469b3/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpWithInOutUsingPlainSocketTest.java
----------------------------------------------------------------------
diff --git a/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpWithInOutUsingPlainSocketTest.java b/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpWithInOutUsingPlainSocketTest.java
index b29f27a..c4d678d 100644
--- a/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpWithInOutUsingPlainSocketTest.java
+++ b/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpWithInOutUsingPlainSocketTest.java
@@ -75,6 +75,12 @@ public class MinaTcpWithInOutUsingPlainSocketTest extends BaseMinaTest {
         assertTrue("out should not be the same as in when the exchange has failed", !"force-exception".equals(out));
         assertEquals("should get the exception here", out, "java.lang.IllegalArgumentException: Forced exception");
     }
+    
+    @Test
+    public void testExchangeWithInOnly() throws IOException {
+        String out = sendAndReceive("force-set-in-body");
+        assertEquals("Get a wrong response message", "Update the in message!", out);
+    }
 
     private String sendAndReceive(String input) throws IOException {
         byte buf[] = new byte[128];
@@ -129,6 +135,8 @@ public class MinaTcpWithInOutUsingPlainSocketTest extends BaseMinaTest {
                             // clear out before throwing exception
                             e.getOut().setBody(null);
                             throw new IllegalArgumentException("Forced exception");
+                        } else if ("force-set-in-body".equals(in)) {
+                            e.getIn().setBody("Update the in message!");
                         } else {
                             e.getOut().setBody("Hello " + in);
                         }