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

Reply via email to