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 2008/03/10 03:27:49 UTC

svn commit: r635415 - in /activemq/camel/trunk/components/camel-mina/src: main/java/org/apache/camel/component/mina/ test/java/org/apache/camel/component/mina/ test/resources/

Author: ningjiang
Date: Sun Mar  9 19:27:48 2008
New Revision: 635415

URL: http://svn.apache.org/viewvc?rev=635415&view=rev
Log:
CAMEL-380 patch applied with thanks to Claus

Modified:
    activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaComponent.java
    activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConverter.java
    activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaConverterTest.java
    activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaUdpTest.java
    activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaUdpUsingTemplateTest.java
    activemq/camel/trunk/components/camel-mina/src/test/resources/log4j.properties

Modified: activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaComponent.java?rev=635415&r1=635414&r2=635415&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaComponent.java (original)
+++ activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaComponent.java Sun Mar  9 19:27:48 2008
@@ -235,9 +235,6 @@
 
     protected ByteBuffer toByteBuffer(Object message) throws CharacterCodingException {
         ByteBuffer answer = convertTo(ByteBuffer.class, message);
-        if (answer == null && message instanceof byte[]) {
-            answer = MinaConverter.toByteBuffer((byte[]) message);
-        }
         if (answer == null) {
             String value = convertTo(String.class, message);
             answer = ByteBuffer.allocate(value.length()).setAutoExpand(true);

Modified: activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConverter.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConverter.java?rev=635415&r1=635414&r2=635415&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConverter.java (original)
+++ activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConverter.java Sun Mar  9 19:27:48 2008
@@ -34,7 +34,6 @@
 public class MinaConverter {
     @Converter
     public static byte[] toByteArray(ByteBuffer buffer) {
-        // TODO is there a neater way?
         byte[] answer = new byte[buffer.remaining()];
         buffer.get(answer);
         return answer;
@@ -57,6 +56,8 @@
 
     @Converter
     public static ByteBuffer toByteBuffer(byte[] bytes) {
-        return ByteBuffer.wrap(bytes);
+        ByteBuffer buf = ByteBuffer.allocate(bytes.length);
+        buf.put(bytes);
+        return buf;
     }
 }

Modified: activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaConverterTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaConverterTest.java?rev=635415&r1=635414&r2=635415&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaConverterTest.java (original)
+++ activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaConverterTest.java Sun Mar  9 19:27:48 2008
@@ -44,7 +44,11 @@
         byte[] in = "Hello World".getBytes();
 
         ByteBuffer bb = MinaConverter.toByteBuffer(in);
-        byte[] out = bb.array();
+        assertNotNull(bb);
+
+        // convert back to byte[] and see if the bytes are equal
+        bb.flip(); // must flip to change direction to read
+        byte[] out = MinaConverter.toByteArray(bb);
 
         for (int i = 0; i < out.length; i++) {
             assertEquals(in[i], out[i]);

Modified: activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaUdpTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaUdpTest.java?rev=635415&r1=635414&r2=635415&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaUdpTest.java (original)
+++ activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaUdpTest.java Sun Mar  9 19:27:48 2008
@@ -19,20 +19,15 @@
 import java.net.DatagramPacket;
 import java.net.DatagramSocket;
 import java.net.InetAddress;
-import java.util.List;
 
 import org.apache.camel.ContextTestSupport;
-import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * @version $Revision$
  */
 public class MinaUdpTest extends ContextTestSupport {
-    private static final transient Log LOG = LogFactory.getLog(MinaUdpTest.class);
     protected int messageCount = 3;
     protected int port = 4445;
 
@@ -45,11 +40,6 @@
         sendUdpMessages();
 
         assertMockEndpointsSatisifed();
-        List<Exchange> list = endpoint.getReceivedExchanges();
-        Exchange exchange = list.get(0);
-        Object body = exchange.getIn().getBody();
-        LOG.debug("Type: " + body.getClass().getName() + " value: " + body);
-        LOG.debug("String value: " + exchange.getIn().getBody(String.class));
     }
 
     protected void sendUdpMessages() throws Exception {
@@ -63,7 +53,6 @@
             socket.send(packet);
             Thread.sleep(1000);
         }
-        LOG.debug("Sent " + messageCount + " messages");
     }
 
     protected RouteBuilder createRouteBuilder() {

Modified: activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaUdpUsingTemplateTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaUdpUsingTemplateTest.java?rev=635415&r1=635414&r2=635415&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaUdpUsingTemplateTest.java (original)
+++ activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaUdpUsingTemplateTest.java Sun Mar  9 19:27:48 2008
@@ -22,33 +22,48 @@
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * @version $Revision$
  */
 public class MinaUdpUsingTemplateTest extends ContextTestSupport {
-    private static final transient Log LOG = LogFactory.getLog(MinaUdpUsingTemplateTest.class);
 
     private int messageCount = 3;
 
     public void testMinaRoute() throws Exception {
         MockEndpoint endpoint = getMockEndpoint("mock:result");
         endpoint.expectedMessageCount(3);
+        endpoint.expectedBodiesReceived("Hello Message: 0", "Hello Message: 1", "Hello Message: 2");
 
         sendUdpMessages();
         // sleeping for while to let the mock endpoint get all the message
-        Thread.sleep(1000);
+        Thread.sleep(2000);
 
         assertMockEndpointsSatisifed();
-        List<Exchange> list = endpoint.getReceivedExchanges();
-        LOG.debug("Received: " + list);
     }
 
     protected void sendUdpMessages() throws Exception {
         for (int i = 0; i < messageCount; i++) {
             template.sendBody("mina:udp://127.0.0.1:4445", "Hello Message: " + i);
+        }
+    }
+
+    public void testSendingByteMessages() throws Exception {
+        MockEndpoint endpoint = getMockEndpoint("mock:result");
+        endpoint.expectedMessageCount(1);
+
+        byte[] in = "Hello from bytes".getBytes();
+        template.sendBody("mina:udp://127.0.0.1:4445", in);
+
+        // sleeping for while to let the mock endpoint get all the message
+        Thread.sleep(2000);
+
+        assertMockEndpointsSatisifed();
+        List<Exchange> list = endpoint.getReceivedExchanges();
+        byte[] out = list.get(0).getIn().getBody(byte[].class);
+
+        for (int i = 0; i < in.length; i++) {
+            assertEquals("Thew bytes should be the same", in[i], out[i]);
         }
     }
 

Modified: activemq/camel/trunk/components/camel-mina/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mina/src/test/resources/log4j.properties?rev=635415&r1=635414&r2=635415&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-mina/src/test/resources/log4j.properties (original)
+++ activemq/camel/trunk/components/camel-mina/src/test/resources/log4j.properties Sun Mar  9 19:27:48 2008
@@ -5,9 +5,9 @@
 ## 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.
@@ -32,4 +32,4 @@
 log4j.appender.file.file=target/camel-mina-test.log
 
 # debug loging for Camel
-log4j.logger.org.apache.camel.component.mina=DEBUG
+log4j.logger.org.apache.camel.component.mina=INFO