in nuget-server-common/src/jetbrains/buildServer/nuget/server/settings/impl/NuGetSettingsWatcher.java [26:67]
public NuGetSettingsWatcher(@NotNull final NuGetSettingsManagerConfiguration configuration,
@NotNull final EventDispatcher<BuildServerListener> events,
@NotNull final NuGetSettingsPersistance persist,
@NotNull final NuGetSettingsManagerImpl settings) {
final File nuGetConfigXml = configuration.getNuGetConfigXml();
myWatcher = new FileWatcher(nuGetConfigXml);
LOG.debug("Registered file watcher for path " + nuGetConfigXml.getAbsolutePath());
myWatcher.setSleepingPeriod(SLEEPING_PERIOD_MSEC);
events.addListener(new BuildServerAdapter() {
@Override
public void serverStartup() {
myWatcher.start();
}
@Override
public void serverShutdown() {
myWatcher.stop();
}
});
myWatcher.registerListener(requestor -> {
LOG.debug("Settings reload event received. Requestor - " + requestor);
reloadSettings(settings, persist);
});
settings.addListener(new NuGetSettingsEventAdapter() {
@Override
public void settingsChanged(@NotNull NuGetSettingsComponent component) {
myWatcher.runActionWithDisabledObserver(() -> {
try {
persist.saveSettings(settings.getState());
} catch (IOException e) {
LOG.warn("Failed to save NuGet settings. " + e.getMessage());
LOG.debug("Failed to save NuGet settings. " + e.getMessage(), e);
}
});
}
});
reloadSettings(settings, persist);
}