[ https://issues.apache.org/jira/browse/IO-132?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Niall Pemberton updated IO-132: ------------------------------- Fix Version/s: (was: 1.4) AFTER-1.4 No agreement on this - so punting to post 1.4 > File Listener/Monitor > --------------------- > > Key: IO-132 > URL: https://issues.apache.org/jira/browse/IO-132 > Project: Commons IO > Issue Type: New Feature > Reporter: Niall Pemberton > Assignee: Niall Pemberton > Fix For: AFTER-1.4 > > Attachments: AbstractFileObserver.java, > AbstractFileObserverTestCase.java, CollectionFileListener.java, > CollectionFileListenerTestCase.java, FileListener.java, > FileListenerAdaptor.java, FileMonitor.java, FileObserver.java, > FileObserverImpl.java, FileObserverImplTestCase.java, > JDKLoggingFileListener.java > > > Commons JCI has a "fam" (file alteration monitor) module[1] which provides a > listener for file and directory create/change/delete events. I have done some > work refactoring the JCI implementation and propose adding to to Commons IO. > There is already an existing request/propsal to add similar functionality in > IO-79 from Jim Harrington (which includes code). > There are IMO two main differences (IMO improvements) in this implementation > over exsiting JCI fam module: > 1) It uses a matching array technique to compare previous and current > directory contents which minimizes object creation > 2) FileFilters can be specified to monitor only portions of the file system, > ignoring files/directories of no interest. This is more efficient and reduces > the amount of noise from un-wanted file/directory events > From a quick look at IO-79, the above also applies to that proposal. > Additionally IMO the solution in IO-79 would benefit from been broken out > from the two DirectoryPoller and FilePoller artifacts. > There are also some changes to the API specified in JCI's fam: > 1) FileObserver (FilesystemAlterationObserver in fam) has additional init() > and destroy() methods > 2) FileMonitor (FilesystemAlterationMonitor in fam) has > addObserver/removeObserver methods rather than addListener/removeListener > methods. The issue (IMO) with fam is that the monitor is fixed to the > FilesystemAlterationObserverImpl implementation, rather than any > FilesystemAlterationObserver implementation. Also the ability to specify file > filters means that there is a need to be able to add more than one observer > for the same root directory. > [1] http://svn.apache.org/repos/asf/commons/proper/jci/trunk/fam/ -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.