You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2007/11/26 13:24:04 UTC

svn commit: r598246 - in /activemq/camel/trunk/components/camel-csv/src: main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java test/java/org/apache/camel/dataformat/csv/CsvRouteTest.java

Author: jstrachan
Date: Mon Nov 26 04:24:03 2007
New Revision: 598246

URL: http://svn.apache.org/viewvc?rev=598246&view=rev
Log:
tidied up the code to properly test the return results from the CSV marshalling; also ensure we close the streams as per Claus's suggestions - see https://issues.apache.org/activemq/browse/CAMEL-244

Modified:
    activemq/camel/trunk/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java
    activemq/camel/trunk/components/camel-csv/src/test/java/org/apache/camel/dataformat/csv/CsvRouteTest.java

Modified: activemq/camel/trunk/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java?rev=598246&r1=598245&r2=598246&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java (original)
+++ activemq/camel/trunk/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java Mon Nov 26 04:24:03 2007
@@ -21,7 +21,6 @@
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
-import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -45,40 +44,50 @@
     private CSVConfig config = new CSVConfig();
 
     public void marshal(Exchange exchange, Object object, OutputStream outputStream) throws Exception {
-        OutputStreamWriter out = new OutputStreamWriter(outputStream);
         Map map = ExchangeHelper.convertToMandatoryType(exchange, Map.class, object);
-        CSVConfig conf = createConfig();
-        // lets add fields
-        Set set = map.keySet();
-        for (Object value : set) {
-            if (value != null) {
-                String text = value.toString();
-                CSVField field = new CSVField(text);
-                conf.addField(field);
+        OutputStreamWriter out = new OutputStreamWriter(outputStream);
+        try {
+            CSVConfig conf = createConfig();
+            // lets add fields
+            Set set = map.keySet();
+            for (Object value : set) {
+                if (value != null) {
+                    String text = value.toString();
+                    CSVField field = new CSVField(text);
+                    conf.addField(field);
+                }
             }
+            CSVWriter writer = new CSVWriter(conf);
+            writer.setWriter(out);
+            writer.writeRecord(map);
+        }
+        finally {
+            out.close();
         }
-        CSVWriter writer = new CSVWriter(conf);
-        writer.setWriter(out);
-        writer.writeRecord(map);
-        out.close();
     }
 
     public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
-        CSVParser parser = new CSVParser(new InputStreamReader(inputStream), getStrategy());
-        List<List<String>> list = new ArrayList<List<String>>();
-        while (true) {
-            String[] strings = parser.getLine();
-            if (strings == null) {
-                break;
+        InputStreamReader in = new InputStreamReader(inputStream);
+        try {
+            CSVParser parser = new CSVParser(in, getStrategy());
+            List<List<String>> list = new ArrayList<List<String>>();
+            while (true) {
+                String[] strings = parser.getLine();
+                if (strings == null) {
+                    break;
+                }
+                List<String> line = Arrays.asList(strings);
+                list.add(line);
+            }
+            if (list.size() == 1) {
+                return list.get(0);
+            }
+            else {
+                return list;
             }
-            List<String> line = Arrays.asList(strings);
-            list.add(line);
-        }
-        if (list.size() == 1) {
-            return list.get(0);
         }
-        else {
-            return list;
+        finally {
+            in.close();
         }
     }
 

Modified: activemq/camel/trunk/components/camel-csv/src/test/java/org/apache/camel/dataformat/csv/CsvRouteTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-csv/src/test/java/org/apache/camel/dataformat/csv/CsvRouteTest.java?rev=598246&r1=598245&r2=598246&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-csv/src/test/java/org/apache/camel/dataformat/csv/CsvRouteTest.java (original)
+++ activemq/camel/trunk/components/camel-csv/src/test/java/org/apache/camel/dataformat/csv/CsvRouteTest.java Mon Nov 26 04:24:03 2007
@@ -50,7 +50,10 @@
         for (Exchange exchange : list) {
             Message in = exchange.getIn();
             String text = in.getBody(String.class);
-            log.debug("Received: " + text);
+
+            log.debug("Received " + text);
+            assertNotNull("Should be able to convert received body to a string", text);
+            assertEquals("text body", "abc,123", text.trim());
         }
     }