Lokale Dateien hinsichtlich Änderungen überwachen
Das Liberty-Profil hat ein hochdynamisches Verhalten, das auf Änderungen an der Konfiguration, an Anwendungen und anderen Ressourcen reagiert. Ein Großteil dieses dynamischen Verhaltens basiert auf der Überwachung des lokalen Dateisystems hinsichtlich Änderungen. Der Service, der diese Überwachung durchführt, ist für alle Liberty-Features über die FileMonitor-SPI verfügbar. Der Dateiüberwachungsservice wird vom Liberty-Kernel bereitgestellt, daher müssen Sie kein Feature in der Datei server.xml angeben, um den Service verfügbar zu machen.
Informationen zu diesem Vorgang
Die FileMonitor-SPI stellt verschiedene Eigenschaften bereit, mit denen angegeben werden kann, welche Ressourcen mit welcher Häufigkeit überwacht werden. Sie müssen die FileMonitor-Schnittstelle implementieren und die Implementierungsklasse in der Service-Registry registrieren.
Die Java™-API-Dokumentation für die einzelnen Liberty Profile-SPIs wird detailliert im Abschnitt Programmierschnittstellen (APIs) des Information Center beschrieben und ist außerdem als eigenständige .zip-Datei in einem der Javadoc-Unterverzeichnisse des Verzeichnisses ${wlp.install.dir}/dev verfügbar.
Beispiel
...
import com.ibm.wsspi.kernel.filemonitor.FileMonitor;
...
public class MyFileMonitor implements FileMonitor {
...
private final BundleContext bundleContex;
...
public MyFileMonitor(BundleContext bundleContext) {
this.bundleContext = BundleContext;
...
}
public ServiceRegistration<FileMonitor> monitorFiles(Collection<String> paths, long monitorInterval) {
...
final Hashtable<String, Object> fileMonitorProps = new Hashtable<String, Object>();
fileMonitorProps.put(FileMonitor.MONITOR_FILES, paths);
fileMonitorProps.put(FileMonitor.MONITOR_INTERVAL, monitorInterval);
...
return bundleContext.registerService(FileMonitor.class, this, fileMonitorProps);
}
...
}