If the CSVRecord is in the same package than the route it doesnt work ( in
my previous project) but if I put it in a sub package it works fine


2013/3/5 Jean Francois LE BESCONT <jflebesc...@gmail.com>

> Thanks Willem  for the help.
>
> I used 2.10.3 passed in 2.10.4 verify my toString method. I finally
> create an other project for this test and it work fine in this new project
> ... Probably an import problem ...
>
>
> 2013/3/5 Willem jiang <willem.ji...@gmail.com>
>
>> Can you double check the AED toString method?
>> I tried to write some unit test, but I could not reproduce the error that
>> you got.
>>
>> BTW, which version of Camel are  you using?
>> Did you try it with latest release Camel 2.10.4 ?
>>
>>
>> --
>> Willem Jiang
>>
>> Red Hat, Inc.
>> FuseSource is now part of Red Hat
>> Web: http://www.fusesource.com | http://www.redhat.com
>> Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/)
>> (English)
>>           http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
>> Twitter: willemjiang
>> Weibo: 姜宁willem
>>
>>
>>
>>
>>
>> On Tuesday, March 5, 2013 at 1:09 AM, Jean Francois LE BESCONT wrote:
>>
>> > Hey !
>> >
>> > I would like to bind a CSV content. But camel looks to do strange
>> things.
>> >
>> > My File : VDE_AED.csv is a simple UNIX file :
>> >
>> > bob;mazone4;01/12/2012;jack
>> > bob;mazone5;01/12/2012?;jack
>> > bob;mazone4;01/12/2012;jack
>> >
>> > ( the second line has to be rejected)
>> >
>> > I have a CSV Record :
>> >
>> > @CsvRecord(separator = ";" , crlf = "UNIX" )
>> > public class AED {
>> >
>> > @DataField(pos = 1, required = true)
>> > private String nom = "";
>> >
>> > @DataField(pos = 2, required = true)
>> > private String zone = "";
>> >
>> > @DataField(pos = 3, pattern = "dd/MM/yyyy", required = true)
>> > private Date date = null;
>> >
>> > @DataField(pos = 4, required = true)
>> > private String titulaire = "";
>> > [... get set tostring ]
>> >
>> > And a simpliest route :
>> >
>> >
>> >
>> > errorHandler(deadLetterChannel("direct:error"));
>> >
>> > from("file://C:/Temp/camel?noop=true")
>> > .log("Ticket : ${body}")
>> > .split()
>> > .tokenize("\n")
>> > .unmarshal()
>> > .bindy(BindyType.Csv, AED.class)
>> > .log("Ticket in : ${body}")
>> > .marshal()
>> > .bindy(BindyType.Csv, AED.class)
>> > .log("end ${file:name}").end();
>> >
>> >
>> > from("direct:error").log("ERROR : '${body}' ").end();
>> >
>> >
>> >
>> > - All my line are rejected when required = true for the first column :
>> >
>> > @DataField(pos = 1, required = true)
>> > private String nom = "";
>> >
>> > - When @DataField(pos = 1, required = false)
>> > private String nom = "";
>> >
>> >
>> >
>> > Correct line are bindy except the first column which stay null.
>> >
>> >
>> > [read #5 - file://C:/Temp/camel] route1 INFO Ticket :
>> bob;mazone4;01/12/2012;jack
>> > bob;mazone5;01/12/2012?;jack
>> > bob;mazone4;01/12/2012;jack
>> >
>> > [read #5 - file://C:/Temp/camel] route1 INFO Ticket in : Descripteur
>> [nom=, zone=mazone4, date=Sat Dec 01 00:00:00 CET 2012, titulaire=jack]
>> > [read #5 - file://C:/Temp/camel] route1 INFO Fin traitement VDE_AED.csv
>> > [read #5 - file://C:/Temp/camel] route2 INFO ERROR :
>> 'bob;mazone5;01/12/2012?;jack'
>> > [read #5 - file://C:/Temp/camel] route1 INFO Ticket in : Descripteur
>> [nom=, zone=mazone4, date=Sat Dec 01 00:00:00 CET 2012, titulaire=jack]
>> > [read #5 - file://C:/Temp/camel] route1 INFO Fin traitement VDE_AED.csv
>> >
>> >
>> >
>> >
>> > By the way I am using camel 2.10.3
>> >
>> > Strange isn't it ?
>> >
>> >
>> > Attachments:
>> > - VDE_AED.csv
>> >
>> >
>>
>>
>>
>>
>

Reply via email to