An implementation of Java 7’s WatchService for Java 6 on Mac OS X
Java 7 has an API to detect file system changes called Watch Service. This project uses JNA to hook into Apple’s File System Events API.
This is almost a direct drop-in replacement for Java 7’s Watch Service API. I’ve used the API source code from OpenJDK 7 as much as possible.
There’s a Demo example here.
A lot of source code is from OpenJDK.
Differences from Java 7’s API
You obtain a Watch Service instance as follows:
WatchService watcher = WatchService.newWatchService();
Instead of creating Path objects, use
WatchableFile file1 = new WatchableFile(new File("/path/to/watch"));
There is a tutorial for Java 7’s Watch Service API here.
Get the Maven dependency:
<dependency> <groupId>net.incongru.watchservice</groupId> <artifactId>barbary-watchservice</artifactId> <version>1.0</version> </dependency>