public FetchAvailableToolsResult fetchAvailable()

in nuget-server/src/jetbrains/buildServer/nuget/server/tool/impl/AvailableOnPackagesNugetOrg.java [40:81]


  public FetchAvailableToolsResult fetchAvailable() {
    FetchAvailableToolsResult error = null;
    for (String feedUrl : Arrays.asList(NUGET_FEED_V2, NUGET_FEED_V1)) {
      try {
        final Collection<DownloadableToolVersion> fetchedTools = CollectionsUtil.filterAndConvertCollection(
                myReader.queryPackageVersions(myFeed, feedUrl, FeedConstants.NUGET_COMMANDLINE),
                new Converter<DownloadableToolVersion, NuGetPackage>() {
                  public DownloadableToolVersion createFrom(@NotNull final NuGetPackage source) {
                    return new DownloadableNuGetTool(
                            source.getPackageVersion(),
                            source.getDownloadUrl(),
                            source.getPackageId() + "." + source.getPackageVersion() + NUGET_EXTENSION);
                  }
                }, new Filter<NuGetPackage>() {
                  public boolean accept(@NotNull NuGetPackage data) {
                    final String[] version = data.getPackageVersion().split("\\.");
                    if (version.length < 2) return false;
                    int major = parse(version[0]);
                    if (major < 1) return false;

                    int minor = parse(version[1]);
                    return !(major == 1 && minor < 4);

                  }

                  private int parse(String s) {
                    try {
                      return Integer.parseInt(s.trim());
                    } catch (Exception e) {
                      return -1;
                    }
                  }
                }
        );
        return FetchAvailableToolsResult.createSuccessful(fetchedTools);
      } catch (IOException e) {
        LOG.debug(e);
        error = FetchAvailableToolsResult.createError("Failed to fetch versions from: " + feedUrl, e);
      }
    }
    return error;
  }