You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/09/13 18:14:25 UTC

svn commit: r1170226 - in /camel/trunk/components/camel-bindy/src: main/java/org/apache/camel/dataformat/bindy/util/Converter.java test/java/org/apache/camel/dataformat/bindy/csv/BindyPipeDelimiterTest.java

Author: davsclaus
Date: Tue Sep 13 16:14:25 2011
New Revision: 1170226

URL: http://svn.apache.org/viewvc?rev=1170226&view=rev
Log:
CAMEL-4446: Fixed issue with camel-bindy in CSV mode for marshal not using correct separator char if using escaped charactor.

Modified:
    camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/util/Converter.java
    camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPipeDelimiterTest.java

Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/util/Converter.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/util/Converter.java?rev=1170226&r1=1170225&r2=1170226&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/util/Converter.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/util/Converter.java Tue Sep 13 16:14:25 2011
@@ -27,11 +27,12 @@ public final class Converter {
     }
 
     public static char getCharDelimitor(String separator) {
-
         if (separator.equals("\\u0001")) {
             return '\u0001';
         } else if (separator.equals("\\t") || separator.equals("\\u0009")) {
             return '\u0009';
+        } else if (separator.length() > 1) {
+            return separator.charAt(separator.length() - 1);
         } else {
             return separator.charAt(0);
         }

Modified: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPipeDelimiterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPipeDelimiterTest.java?rev=1170226&r1=1170225&r2=1170226&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPipeDelimiterTest.java (original)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPipeDelimiterTest.java Tue Sep 13 16:14:25 2011
@@ -32,11 +32,11 @@ import org.junit.Test;
 public class BindyPipeDelimiterTest extends CamelTestSupport {
 
     @Test
-    public void testBindyPipeDelimiter() throws Exception {
+    public void testBindyPipeDelimiterUnmarshal() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
 
-        template.sendBody("direct:start", "COL1|COL2|COL3\nHAPPY | NEW | YEAR");
+        template.sendBody("direct:unmarshal", "COL1|COL2|COL3\nHAPPY | NEW | YEAR");
 
         assertMockEndpointsSatisfied();
 
@@ -55,14 +55,33 @@ public class BindyPipeDelimiterTest exte
         assertEquals(" YEAR", rec2.getCol3());
     }
 
+    @Test
+    public void testBindyPipeDelimiterMarshal() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        mock.message(0).body().startsWith("HAPPY|NEW|YEAR");
+
+        MyData data = new MyData();
+        data.setCol1("HAPPY");
+        data.setCol2("NEW");
+        data.setCol3("YEAR");
+        template.sendBody("direct:marshal", data);
+
+        assertMockEndpointsSatisfied();
+    }
+
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:start")
+                from("direct:unmarshal")
                     .unmarshal().bindy(BindyType.Csv, "org.apache.camel.dataformat.bindy.model.simple.pipeline")
                     .to("mock:result");
+
+                from("direct:marshal")
+                    .marshal().bindy(BindyType.Csv, "org.apache.camel.dataformat.bindy.model.simple.pipeline")
+                    .to("mock:result");
             }
         };
     }