in src/main/java/org/apache/tomee/website/AbstractDownloadsNG.java [121:165]
private static List<AbstractDownloadsNG.Download> getDownloadables(final String base) throws MalformedURLException {
final QuickDistLinkParser quickDistLinkParser = new QuickDistLinkParser();
final Results results = quickDistLinkParser.fetch(new URL(base));
final List<AbstractDownloadsNG.Download> downloads = new ArrayList<>();
//parse the links, generate download set
for (Link distLink : results.links) {
final String version = getVersionFromURI(distLink.getUri());
final Results distResults = quickDistLinkParser.fetch(new URL(base + distLink.getUri()));
final List<Link> links = distResults.links
.stream()
.filter(l -> l.getUri().endsWith("tar.gz")
|| l.getUri().endsWith("zip")
|| l.getUri().endsWith("war"))
.collect(Collectors.toList());
final Set<String> available = distResults.links
.stream()
.map(l -> distResults.baseUrl + l.getUri())
.collect(Collectors.toSet());
for (Link link : links) {
final String url = distResults.baseUrl + link.getUri();
final String baseName = getBaseNameFromURI(link.getUri());
final String extension = getExtensionFromURI(link.getUri());
final String ascURL = checkURLAvailable(url + ".asc", available, true);
final String sha1URL = checkURLAvailable(url + ".sha1", available, false);
final String sha256URL = checkURLAvailable(url + ".sha256", available, false);
final String sha512URL = checkURLAvailable(url + ".sha512", available, false);
if (sha1URL.isEmpty() && sha256URL.isEmpty() && sha512URL.isEmpty()) {
throw new RuntimeException("Release " + baseName + " does not have a valid hash. This shouldn't happen!");
}
downloads.add(toDownload(baseName, version, extension, url, sha1URL, sha256URL, sha512URL, ascURL));
}
}
return downloads;
}