public static void main()

in src/main/java/org/apache/tomee/website/Downloads.java [47:143]


    public static void main(final String[] args) {

        System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "512");

        AtomicReference<String> version1 = new AtomicReference<>();
        AtomicReference<String> version7 = new AtomicReference<>();

        final List<Download> downloads = Stream.of(
                Stream.of("org/apache/openejb/openejb", "org/apache/tomee/tomee-project")
                        .flatMap(Downloads::toVersions)
                        .map(v -> v.extensions("zip"))
                        .map(v -> v.classifiers("source-release")),
                versionStream("apache-tomee")
                        .map(v -> v.version.startsWith("1.") ?
                                v.classifiers("plus", "plume", "webprofile", "jaxrs") : v.classifiers("plus", "plume", "webprofile"))
                        .map(v -> v.extensions("tar.gz", "zip")),
                versionStream("openejb-standalone")
                        .map(v -> v.extensions("tar.gz", "zip")),
                versionStream("tomee-webapp")
                        .map(v -> v.extensions("war")),
                versionStream("tomee-plus-webapp")
                        .map(v -> v.extensions("war")),
                versionStream("tomee-plume-webapp")
                        .map(v -> v.extensions("war")))
                .flatMap(s -> s)
                .flatMap(Downloads::toDownloadable)
                .parallel()
                .map(Downloads::fillDownloadable)
                .filter(Objects::nonNull /* skipped */)
                .sorted((o1, o2) -> {

                    int versionComp = o2.version.compareTo(o1.version);

                    if (versionComp != 0) {
                        if (o2.version.startsWith(o1.version) && o2.version.contains("-M")) { // milestone
                            versionComp = -1;
                        } else if (o1.version.startsWith(o2.version) && o1.version.contains("-M")) { // milestone
                            versionComp = 1;
                        }

                        checkMaxVersion(version1, version7, o1, versionComp);

                        return versionComp;
                    }

                    final int nameComp = o1.name.compareTo(o2.name);

                    if (nameComp != 0) {

                        checkMaxVersion(version1, version7, o1, nameComp);

                        return nameComp;
                    }

                    final long dateComp = LocalDateTime.parse(o2.date, RFC_1123_DATE_TIME).toInstant(ZoneOffset.UTC).toEpochMilli()
                            - LocalDateTime.parse(o1.date, RFC_1123_DATE_TIME).toInstant(ZoneOffset.UTC).toEpochMilli();
                    if (dateComp != 0) {
                        return (int) dateComp;
                    }

                    return o1.url.compareTo(o2.url);
                })
                .collect(toList());

        String versionCurrent = version7.get();

        //Current
        for (final Download d : downloads) {
            if (d.version.startsWith(version7.get()) || d.version.startsWith(version1.get())) {

                if (!versionCurrent.equals(d.version)) {
                    versionCurrent = d.version;
                    System.out.println("||||||");
                }

                printRow(d);
            }
        }

        System.out.println();
        versionCurrent = version7.get();

        //Archive
        for (final Download d : downloads) {
            if (!d.version.startsWith(version7.get()) && !d.version.startsWith(version1.get())) {

                if (!versionCurrent.equals(d.version)) {
                    versionCurrent = d.version;
                    System.out.println("||||||");
                }

                printRow(d);
            }
        }


    }