private static List getDownloadables()

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