There is a camel component for dozer: 
http://camel.apache.org/dozer-type-conversion.html
It allows you to simply use .convertBodyTo(...)
No custom processor needed!

Regards,
Diether

________________________________
Van: jeff [via Camel] [ml-node+s465427n5732116...@n5.nabble.com]
Verzonden: dinsdag 7 mei 2013 13:45
To: Wuyts Diether
Onderwerp: Re: From bind to bind

I have found a trick with dozer :

<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.4.0</version>
</dependency>


with a processor which convert from Ticket  to TicketOUT

new Processor() {

   public void process(Exchange exchange) throws Exception {
      Ticket ticket = (Ticket) exchange.getIn().getBody();
      TicketOUT ticketOUT = dozerBeanMapper.map(ticket, TicketOUT.class);
      exchange.getIn().setBody(ticketOUT);
}
})

With :

@CsvRecord(separator = ";" )
public class Ticket {

@DataField(pos = 1, required = true)
@Mapping("TCK_TYPE2")
public String TCK_TYPE;
[...]
}

And

@CsvRecord(separator = ";" )
public class TicketOUT {

@DataField(pos = 2, required = true)
public String TCK_TYPE2;

[...]
}


Not necessary the best intergration solution but it is fast and pretty
clean. With 20 fields per class, the route convert 68 000 body per second.

Jeff




2013/5/7 Jean Francois LE BESCONT <[hidden email]<UrlBlockedError.aspx>>

> Ho By the way , I am using JRE 1.7 and CAMEL 2.11
>
>
> 2013/5/7 Jean Francois LE BESCONT <[hidden email]<UrlBlockedError.aspx>>
>
>> Hi !
>>
>> I would like to know if someone has already found a clean solution to
>> this point.
>>
>> I have a directory with CSV file with :
>>
>> A;1
>> B;2
>> ...
>>
>> The bind is like :
>>
>> @CsvRecord(separator = ";" )
>> public class BindFileCSV {
>>
>> @DataField(pos = 1)
>> public String COL1;
>>
>> @DataField(pos = 2 )
>>  public String COL2;
>>
>> }
>>
>> Classic...
>>
>> i would like to bind output with differents schemas regarding to a header
>> value
>>
>>    from("file://C:/Temp/camel/rep1/?noop=true")
>>             .routeId("ROUTE_1")
>>             .id("ROUTE_1")
>>             .split().tokenize("\n")
>>             .streaming()
>>                 .unmarshal()
>>                 .bindy(BindyType.Csv, Ticket.class)
>>                 .choice()
>>                     .when( header("PROP").isEqualTo("1"))
>>                         .marshal()
>>                         .bindy(BindyType.Csv, TicketOUT1.class)
>>
>> .recipientList(simple("stream:file?fileName=C:/Temp/camel/rep1/out/yop.csv"))
>>                     .end()
>>                     .when( header("PROP").isEqualTo("2"))
>>     .marshal()
>>                         .bindy(BindyType.Csv, TicketOUT2.class)
>>
>> .recipientList(simple("stream:file?fileName=C:/Temp/camel/rep2/out/yop.csv"))
>>                     .end()
>>                     .otherwise()
>>
>>             .end()
>>             .log("fin")
>>         .end()
>>         ;
>>
>> I there an elegant way of to do the conversion from Ticket to TicketOUT1
>>  ?
>>
>> Thanks !
>>
>> JF
>>
>
>


________________________________
If you reply to this email, your message will be added to the discussion below:
http://camel.465427.n5.nabble.com/From-bind-to-bind-tp5732109p5732116.html
To start a new topic under Camel - Users, email 
ml-node+s465427n465428...@n5.nabble.com
To unsubscribe from Camel - Users, click 
here<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=465428&code=ZGlldGhlci53dXl0c0BvcHRpcy5iZXw0NjU0Mjh8OTE4NjI3OTg5>.
NAML<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>




--
View this message in context: 
http://camel.465427.n5.nabble.com/From-bind-to-bind-tp5732109p5732118.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to