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());
}
}