I have added following implementation of IdempotentRepository to process a
specific file from directory  when the file is modified. This is using Camel
2.x, Is there an alternative approach ? 

<from
uri="file:src/data?noop=true&amp;idempotentRepository=#fileChanged&amp;delay=300000&amp;fileName=myfile.txt"/>

<bean id="fileChanged" class="mypkg.FileChangedRepository">
        <property name="fileDir" value="src/data" />
</bean>

public class FileChangedRepository implements IdempotentRepository<String>{

        private String fileDir; 
        private long lastModified =0;
        
        @Override
        public boolean add(String arg0) {
                return false;
        }

        @Override
        public boolean confirm(String arg0) {
                return true;
        }

        @Override
        public boolean contains(String arg0) {
                synchronized(this) {
                File file = new File(fileDir + File.separator + arg0);

                if (file.lastModified() > lastModified) {
                        lastModified = file.lastModified();
                        return false;
                }               
                return true;
               }
        }

        @Override
        public boolean remove(String arg0) {
                return false;
        }

        public void setFileDir(String fileDir) {
                this.fileDir = fileDir;
        }

        public String getFileDir() {
                return fileDir;
        }       
}
-- 
View this message in context: 
http://old.nabble.com/Identifying-and-processing-changed-file-when-noop%3Dtrue-tp27357357p27357357.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to