FileComponent maybe use inotify interface implemented by jnotify
----------------------------------------------------------------
Key: CAMEL-3146
URL: https://issues.apache.org/activemq/browse/CAMEL-3146
Project: Apache Camel
Issue Type: Improvement
Components: camel-core
Affects Versions: 2.4.0
Reporter: Lars Gohlke
Priority: Minor
What about using jnotify?
The fallback could be always the old behaviour, but in case it could be used it
would be an really good improvement in terms of performance
sample from http://jnotify.sourceforge.net/sample.html
public void sample() throws Exception {
// path to watch
String path = System.getProperty("user.home");
// watch mask, specify events you care about,
// or JNotify.FILE_ANY for all events.
int mask = JNotify.FILE_CREATED |
JNotify.FILE_DELETED |
JNotify.FILE_MODIFIED |
JNotify.FILE_RENAMED;
// watch subtree?
boolean watchSubtree = true;
// add actual watch
int watchID = JNotify.addWatch(path, mask, watchSubtree, new Listener());
// sleep a little, the application will exit if you
// don't (watching is asynchronous), depending on your
// application, this may not be required
Thread.sleep(1000000);
// to remove watch the watch
boolean res = JNotify.removeWatch(watchID);
if (!res) {
// invalid watch ID specified.
}
}
class Listener implements JNotifyListener {
public void fileRenamed(int wd, String rootPath, String oldName,
String newName) {
print("renamed " + rootPath + " : " + oldName + " -> " + newName);
}
public void fileModified(int wd, String rootPath, String name) {
print("modified " + rootPath + " : " + name);
}
public void fileDeleted(int wd, String rootPath, String name) {
print("deleted " + rootPath + " : " + name);
}
public void fileCreated(int wd, String rootPath, String name) {
print("created " + rootPath + " : " + name);
}
void print(String msg) {
System.err.println(msg);
}
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.