Hi all, I'm trying to understand how to fix the following. setup: 1: send in a file to ftpserver 2: the file is later moved to another folder by another process
in a route, I want to 1: read file name(s) from database (select filename from atable where state='file_not_moved') 2: check that file exists in ftpserver/folder 3: [true] update atable set status='file_moved' where state='file_not_moved' and filename=:filname I haven't understood the *best* way of doing this Scenario1 (using IdempotentRepository ) I have however solved this to poll the complete folder and a custom IdempotentRepository (that updates the state in the table). This however scans the complete folder (I use a FileFilter to limit it somewhat) and the folder can be quite big (grows with 6000 files a day) from("file://urltoprocessedfolder&noop=true&idempotent=true&idempotentRepository=#idempotentXmlProcessed&sortBy=file:modified?filter=#xmlFilter" ) .log(LoggingLevel.ERROR, logger, "writing idempotent to ${id}") .to("mock:end"); Scenario2 (using enrich) from("sql:select filename from atable where state='file_not_moved'") .enrich("file://urltoprocessedfolder?noop=true&readLock=none&fileName=${header.filename}"); this works but it seems shady somehow Is the *best* way to create a predicate that actually check if the file exists? like (not correct code) from("sql:select filename from atable where state='file_not_moved'") .choice() .when(predicateThatChecksIfFileExists(${filename})) .to(""sql:update atable set state='file_moved' where filename=:#filename") .otherwise() .to("dummy:a"); as soon I use the ftpcomponent as a producer, it creates the file... -- View this message in context: http://camel.465427.n5.nabble.com/how-to-check-that-a-file-exists-in-ftpserver-tp5758705.html Sent from the Camel - Users mailing list archive at Nabble.com.