public void update()

in nuget-server/src/jetbrains/buildServer/nuget/server/trigger/impl/checker/PackageCheckerTeamCity.java [44:87]


  public void update(@NotNull ExecutorService executor, @NotNull Collection<CheckablePackage> entries) {
    for (final CheckablePackage entry : entries) {
      entry.setExecuting();
      executor.submit(ExceptionUtil.catchAll("Check update of NuGet package " + entry.getPackage().getPackageId(), new Runnable() {
        private boolean isNetworkSource(@NotNull String uri) {
          uri = uri.toLowerCase().trim();
          return uri.startsWith("http://") || uri.startsWith("https://");
        }

        @NotNull
        private String getUri(@NotNull final SourcePackageReference request) {
          String uri = request.getSource();
          if (uri == null) uri = FeedConstants.NUGET_FEED_V2;
          return uri;
        }

        public void run() {
          final String packageId = entry.getPackage().getPackageId();
          final String uri = getUri(entry.getPackage());

          if (!isNetworkSource(uri)) {
            entry.setResult(CheckResult.failed("Current environment does not allow to start NuGet.exe processes, " +
                    "TeamCity provided emulation supports only HTTP or HTTPS NuGet package feed URLs, " +
                    "but was: " + uri));
            return;
          }

          try {
            final Collection<NuGetPackage> packages = myReader.queryPackageVersions(myClient.withCredentials(entry.getPackage().getCredentials()), uri, packageId);
            final Collection<SourcePackageInfo> infos = new ArrayList<SourcePackageInfo>();
            for (NuGetPackage aPackage : packages) {
              infos.add(new SourcePackageInfo(entry.getPackage().getSource(), packageId, aPackage.getPackageVersion()));
            }

            entry.setResult(CheckResult.fromResult(infos));
          } catch (Throwable e) {
            final String msg = "Failed to check changes of " + packageId + ". " + e.getMessage();
            LOG.warnAndDebugDetails(msg, e);
            entry.setResult(CheckResult.failed(msg));
          }
        }
      }));
    }
  }