public NuGetSettingsWatcher()

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);
  }