in src/main/java/org/apache/tomee/website/Downloads.java [43:101]
public static void main(final String[] args) {
System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "512");
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) -> {
final int nameComp = o1.name.compareTo(o2.name);
if (nameComp != 0) {
return nameComp;
}
final int versionComp = o2.version.compareTo(o1.version);
if (versionComp != 0) {
if (o2.version.startsWith(o1.version) && o2.version.contains("-M")) { // milestone
return -1;
}
if (o1.version.startsWith(o2.version) && o1.version.contains("-M")) { // milestone
return 1;
}
return versionComp;
}
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())
.forEach(d ->
System.out.println("" +
"|" + d.name + (d.classifier.isEmpty() ? "" : (" " + d.classifier)) +
"|" + d.version +
"|" + d.date +
"|" + d.size + " MB " +
"|" + d.format +
"| " + d.url + "[icon:download[] " + d.format + "] " + d.sha1 + "[icon:download[] sha1] " + d.md5 + "[icon:download[] md5] " + d.asc + "[icon:download[] asc]"));
}