csvapache-camelbindy

Camel bindy marshal to file creates multiple header row


I have the following camel route:

from(inputDirectory)
  .unmarshal(jaxb)
  .process(jaxb2CSVDataProcessor)
  .split(body()) //because there is a list of CSVRecords
  .marshal(bindyCsvDataFormat)
  .to(outputDirectory); //appending to existing file using "?autoCreate=true&fileExist=Append"

for my CSV model class I am using annotations:

@CsvRecord(separator = ",", generateHeaderColumns = true)
...

and for properties

@DataField(pos = 0)
...

My problem is that the headers are appended every time a new csv record is appended.

Is there a non-dirty way to control this? Am I missing anything here?


Solution

  • I ended up adding a processor that checks if the csv file exists just before the "to" clause. In there I do a manipulation of the byte array and remove the headers.