camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: Camel-csv 2.2.0: reading a single line csv file
Date Wed, 05 May 2010 04:46:58 GMT
On Tue, May 4, 2010 at 5:19 PM, Claus Ibsen <claus.ibsen@gmail.com> wrote:
> Hi
>
> On Tue, May 4, 2010 at 8:57 AM, Attilio Donà <attilio.dona@gmail.com> wrote:
>>
>> Hi all,
>>
>> I've to read a csv file and I want use camel to do this. Camel bindy seems
>> to me that doesn't know the csv convention that a field separator can be a
>> character field using double quotes:
>>
>> "contains,  comma", "another field"
>>
>
> Yeah that would be good to be able to do with camel-bindy. Do you mind
> creating a JIRA ticket?
>

I have created the JIRA ticket
https://issues.apache.org/activemq/browse/CAMEL-2691


>
>> So the adopted solution is camel-csv.
>>
>> Using camel-csv to parse the csv file as in the camel manual works only if
>> the csv file has more than one line of data:
>>
>> // Some comments here
>> public void doHandleCsvData(List> csvData)
>> {
>>    // do magic here as in the manual if the file as more than one row of
>> data
>> }
>>
>> If the csv file has 1 row the parameter passed to the method bean
>> doHandleCsvData is a List.
>>
>> As a quick workaround, instead of using parametrized generics, it is
>> possible to do something like this:
>>
>>
>>         public void modelsCsvFile(Exchange exchange) {
>>                 List csvData = (List) exchange.getIn().getBody();
>>
>>                 if (csvData.get(0).getClass().equals(String.class)) {
>>                         log.debug("single row file");
>>
>>                         Vendor vendor = vendorDAO.bind((String)csvData.get(0));
>>                         Model model = new Model(vendor, (String)csvData.get(1));
>>                         modelDAO.bind(model);
>>                         return;
>>                 }
>>
>>                 for (List row : (List)csvData) {
>>                         log.debug("read [{}] [{}]", row.get(0), row.get(1));
>>
>>                         Vendor vendor = vendorDAO.bind((String)row.get(0));
>>                         Model model = new Model(vendor, (String)row.get(1));
>>                         modelDAO.bind(model);
>>
>>                 }
>>
>> Attilio
>>
>> --
>> View this message in context: http://old.nabble.com/Camel-csv-2.2.0%3A-reading-a-single-line-csv-file-tp28443740p28443740.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Mime
View raw message