The file: endpoint supports what you want.

Set as below and on failure it will move the file to the .error directory.  You 
can also use simple language to make it more dynamic and move to anywhere you 
want.

&moveFailed=.error

-----Original Message-----
From: Jonathan Cook [mailto:jonathan.c...@erars.plus.com] 
Sent: Friday, May 17, 2019 1:04 PM
To: users@camel.apache.org
Subject: Strategy for deleting/moving files

[[ SEI WARNING *** This email was sent from an external source. Do not open 
attachments or click on links from unknown or suspicious senders. *** ]]


Hello,

I am using the file endpoint with delete=true. My routes pick up files 
from a directory and then pass through a number of steps, so are 
reasonably complex. I have a dead letter route where in the event of an 
error I want to move the original file to a kind of failed directory area.

But the problem is that when an error occurs, by the time the code runs 
inside the dead letter route, the original file has already been deleted 
by the FileComponent because of delete=true. If I set this to false it 
works OK but the file stays at the original folder which I don't want.

Do I have to manage this myself, i.e not use delete=true and have 
another step in my route (bean or processor) which would delete or move 
the file from the original directory at the end of all the processing 
rather than rely on the file component?

Thanks for any suggestions!

Paul

Reply via email to