ローカル・ファイルの変更のモニター
Liberty は、構成、アプリケーション、その他のリソースでの変更に対応して、非常に動的に動作することができます。この動的な動作の多くは、ローカル・ファイル・システムの変更のモニターに基づいています。 このモニターを実行するサービスは、FileMonitor SPI によってすべての Liberty フィーチャーから利用できます。ファイル・モニター・サービス は Liberty カーネルによって提供されるため、それを使用可能にするために server.xml ファイル内で フィーチャーを指定する必要はありません。
このタスクについて
FileMonitor SPI には、モニターするリソースと頻度を指定するさまざまなプロパティーがあります。 FileMonitor インターフェースを実装して、 実装クラスをサービス・レジストリーに登録する必要があります。
各 Liberty SPI の Java™ API 文書は、${wlp.install.dir}/dev ディレクトリーのいずれかの javadoc サブディレクトリー内の個別 .zip ファイル内にあります。
例
...
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);
}
...
}