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 2010/10/12 07:54:17 UTC

svn commit: r1021635 - in /camel/trunk/components/camel-bindy/src: main/java/org/apache/camel/dataformat/bindy/csv/ main/java/org/apache/camel/dataformat/bindy/fixed/ main/java/org/apache/camel/dataformat/bindy/kvp/ test/java/org/apache/camel/dataforma...

Author: davsclaus
Date: Tue Oct 12 05:54:17 2010
New Revision: 1021635

URL: http://svn.apache.org/viewvc?rev=1021635&view=rev
Log:
CAMEL-3219: Fixed bindy using tab as separator.

Added:
    camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyTabSeparatorTest.java
    camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/tab/
    camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/tab/PurchaseOrder.java
Modified:
    camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java
    camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java
    camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/kvp/BindyKeyValuePairDataFormat.java
    camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPojoSimpleCsvMarshallTest.java
    camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallPositionModifiedTest.java
    camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallTest.java
    camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallPositionModifiedTest.java
    camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallTest.java

Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java?rev=1021635&r1=1021634&r2=1021635&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java Tue Oct 12 05:54:17 2010
@@ -32,6 +32,7 @@ import org.apache.camel.dataformat.bindy
 import org.apache.camel.dataformat.bindy.util.Converter;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.PackageScanClassResolver;
+import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -119,7 +120,7 @@ public class BindyCsvDataFormat implemen
 
         // Retrieve the separator defined to split the record
         String separator = factory.getSeparator();
-        ObjectHelper.notEmpty(separator, "The separator has not been defined in the annotation @CsvRecord or not instantiated during initModel.");
+        ObjectHelper.notNull(separator, "The separator has not been defined in the annotation @CsvRecord or not instantiated during initModel.");
 
         int count = 0;
 
@@ -204,7 +205,7 @@ public class BindyCsvDataFormat implemen
 
         } finally {
             scanner.close();
-            ObjectHelper.close(in, "in", LOG);
+            IOHelper.close(in, "in", LOG);
         }
 
     }

Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java?rev=1021635&r1=1021634&r2=1021635&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java Tue Oct 12 05:54:17 2010
@@ -20,7 +20,6 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -28,11 +27,11 @@ import java.util.Map;
 import java.util.Scanner;
 
 import org.apache.camel.Exchange;
-import org.apache.camel.dataformat.bindy.BindyCsvFactory;
 import org.apache.camel.dataformat.bindy.BindyFixedLengthFactory;
 import org.apache.camel.dataformat.bindy.util.Converter;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.PackageScanClassResolver;
+import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -162,7 +161,7 @@ public class BindyFixedLengthDataFormat 
 
         } finally {
             scanner.close();
-            ObjectHelper.close(in, "in", LOG);
+            IOHelper.close(in, "in", LOG);
         }
 
     }

Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/kvp/BindyKeyValuePairDataFormat.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/kvp/BindyKeyValuePairDataFormat.java?rev=1021635&r1=1021634&r2=1021635&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/kvp/BindyKeyValuePairDataFormat.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/kvp/BindyKeyValuePairDataFormat.java Tue Oct 12 05:54:17 2010
@@ -30,6 +30,7 @@ import org.apache.camel.dataformat.bindy
 import org.apache.camel.dataformat.bindy.util.Converter;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.PackageScanClassResolver;
+import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -145,7 +146,7 @@ public class BindyKeyValuePairDataFormat
 
         } finally {
             scanner.close();
-            ObjectHelper.close(in, "in", LOG);
+            IOHelper.close(in, "in", LOG);
         }
     }
 

Modified: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPojoSimpleCsvMarshallTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPojoSimpleCsvMarshallTest.java?rev=1021635&r1=1021634&r2=1021635&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPojoSimpleCsvMarshallTest.java (original)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPojoSimpleCsvMarshallTest.java Tue Oct 12 05:54:17 2010
@@ -97,7 +97,7 @@ public class BindyPojoSimpleCsvMarshallT
             getContext().addInterceptStrategy(tracer);
 
             // default should errors go to mock:error
-            errorHandler(deadLetterChannel(URI_MOCK_ERROR).redeliverDelay(0));
+            errorHandler(deadLetterChannel(URI_MOCK_ERROR).redeliveryDelay(0));
 
             onException(Exception.class).maximumRedeliveries(0).handled(true);
 

Modified: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallPositionModifiedTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallPositionModifiedTest.java?rev=1021635&r1=1021634&r2=1021635&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallPositionModifiedTest.java (original)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallPositionModifiedTest.java Tue Oct 12 05:54:17 2010
@@ -89,7 +89,7 @@ public class BindySimpleCsvMarshallPosit
             getContext().addInterceptStrategy(tracer);
 
             // default should errors go to mock:error
-            errorHandler(deadLetterChannel(URI_MOCK_ERROR).redeliverDelay(0));
+            errorHandler(deadLetterChannel(URI_MOCK_ERROR).redeliveryDelay(0));
 
             onException(Exception.class).maximumRedeliveries(0).handled(true);
 

Modified: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallTest.java?rev=1021635&r1=1021634&r2=1021635&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallTest.java (original)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallTest.java Tue Oct 12 05:54:17 2010
@@ -107,7 +107,7 @@ public class BindySimpleCsvMarshallTest 
             getContext().addInterceptStrategy(tracer);
 
             // default should errors go to mock:error
-            errorHandler(deadLetterChannel(URI_MOCK_ERROR).redeliverDelay(0));
+            errorHandler(deadLetterChannel(URI_MOCK_ERROR).redeliveryDelay(0));
 
             onException(Exception.class).maximumRedeliveries(0).handled(true);
 

Modified: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallPositionModifiedTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallPositionModifiedTest.java?rev=1021635&r1=1021634&r2=1021635&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallPositionModifiedTest.java (original)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallPositionModifiedTest.java Tue Oct 12 05:54:17 2010
@@ -104,7 +104,7 @@ public class BindySimpleCsvUnmarshallPos
             getContext().addInterceptStrategy(tracer);
 
             // default should errors go to mock:error
-            errorHandler(deadLetterChannel(URI_MOCK_ERROR).redeliverDelay(0));
+            errorHandler(deadLetterChannel(URI_MOCK_ERROR).redeliveryDelay(0));
 
             onException(Exception.class).maximumRedeliveries(0).handled(true);
 

Modified: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallTest.java?rev=1021635&r1=1021634&r2=1021635&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallTest.java (original)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallTest.java Tue Oct 12 05:54:17 2010
@@ -117,7 +117,7 @@ public class BindySimpleCsvUnmarshallTes
             getContext().addInterceptStrategy(tracer);
 
             // default should errors go to mock:error
-            errorHandler(deadLetterChannel(URI_MOCK_ERROR).redeliverDelay(0));
+            errorHandler(deadLetterChannel(URI_MOCK_ERROR).redeliveryDelay(0));
 
             onException(Exception.class).maximumRedeliveries(0).handled(true);
 

Added: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyTabSeparatorTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyTabSeparatorTest.java?rev=1021635&view=auto
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyTabSeparatorTest.java (added)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyTabSeparatorTest.java Tue Oct 12 05:54:17 2010
@@ -0,0 +1,83 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.dataformat.bindy.csv;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.dataformat.bindy.model.tab.PurchaseOrder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+/**
+ * @version $Revision$
+ */
+public class BindyTabSeparatorTest extends CamelTestSupport {
+
+    @Test
+    public void testUnmarshal() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:unmarshal");
+        mock.expectedMessageCount(1);
+
+        template.sendBody("direct:unmarshal", "123\tCamel in Action\t2");
+
+        assertMockEndpointsSatisfied();
+
+        List<Map> rows = mock.getReceivedExchanges().get(0).getIn().getBody(List.class);
+        PurchaseOrder order = (PurchaseOrder) rows.get(0).get(PurchaseOrder.class.getName());
+
+        assertEquals(123, order.getId());
+        assertEquals("Camel in Action", order.getName());
+        assertEquals(2, order.getAmount());
+    }
+
+    @Test
+    public void testMarshal() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:marshal");
+        mock.expectedBodiesReceived("123\tCamel in Action\t2\n");
+
+        PurchaseOrder order = new PurchaseOrder();
+        order.setId(123);
+        order.setName("Camel in Action");
+        order.setAmount(2);
+
+        template.sendBody("direct:marshal", order);
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                BindyCsvDataFormat bindy = new BindyCsvDataFormat("org.apache.camel.dataformat.bindy.model.tab");
+
+                from("direct:marshal")
+                    .marshal(bindy)
+                    .convertBodyTo(String.class)
+                    .to("mock:marshal");
+
+                from("direct:unmarshal")
+                    .unmarshal(bindy)
+                    .to("mock:unmarshal");
+            }
+        };
+    }
+}

Added: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/tab/PurchaseOrder.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/tab/PurchaseOrder.java?rev=1021635&view=auto
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/tab/PurchaseOrder.java (added)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/tab/PurchaseOrder.java Tue Oct 12 05:54:17 2010
@@ -0,0 +1,60 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.dataformat.bindy.model.tab;
+
+import org.apache.camel.dataformat.bindy.annotation.CsvRecord;
+import org.apache.camel.dataformat.bindy.annotation.DataField;
+
+/**
+ * @version $Revision$
+ */
+@CsvRecord(separator = "\t", crlf = "UNIX")
+public class PurchaseOrder {
+
+    @DataField(pos = 1)
+    private int id;
+
+    @DataField(pos = 2)
+    private String name;
+
+    @DataField(pos = 3)
+    private int amount;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAmount() {
+        return amount;
+    }
+
+    public void setAmount(int amount) {
+        this.amount = amount;
+    }
+}