in src/main/java/org/apache/tomee/website/AbstractDownloadsNG.java [49:107]
public static void generate(String baseUrl) throws MalformedURLException {
final List<AbstractDownloadsNG.Download> downloads = getDownloadables(baseUrl);
final AtomicReference<String> version1 = new AtomicReference<>();
final AtomicReference<String> version7 = new AtomicReference<>();
final AtomicReference<String> version8 = new AtomicReference<>();
final AtomicReference<String> version9 = new AtomicReference<>();
List<AbstractDownloadsNG.Download> filled = downloads.stream().parallel()
.map(AbstractDownloadsNG::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, version8, version9, o1, versionComp);
return versionComp;
}
final int nameComp = o1.name.compareTo(o2.name);
if (nameComp != 0) {
checkMaxVersion(version1, version7, version8, version9, 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 = version9.get();
System.out.println("|Name|Version|Date|Size|Signatures & Hashes");
for (AbstractDownloadsNG.Download d : filled) {
if (!versionCurrent.equals(d.version)) {
versionCurrent = d.version;
System.out.println("|||||");
}
printRow(d);
}
}