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