package org.jgroups.auth.sasl; import java.io.File; import java.util.TimerTask; /** * FileWatchTask. Polls a file for modifications and invokes a provided {@link FileObserver} * * @author Tristan Tarrant * @since 8.0 */ public class FileWatchTask extends TimerTask { private final File file; private long modified; private final FileObserver observer; public FileWatchTask(File file, FileObserver observer) { if (!file.exists()) { throw new IllegalArgumentException("File '" + file + "' does not exist"); } this.file = file; this.modified = file.lastModified(); this.observer = observer; } @Override public void run() { long modifiedLocal = file.lastModified(); if (this.modified != modifiedLocal) { this.modified = modifiedLocal; observer.fileChanged(file); } } }