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&idempotentRepository=#fileChanged&delay=300000&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.