more adapted rendering for the download page
diff --git a/geronimo-microprofile-site/src/main/java/org/apache/geronimo/microprofile/site/Downloads.java b/geronimo-microprofile-site/src/main/java/org/apache/geronimo/microprofile/site/Downloads.java
index 589bf84..04c7e0e 100644
--- a/geronimo-microprofile-site/src/main/java/org/apache/geronimo/microprofile/site/Downloads.java
+++ b/geronimo-microprofile-site/src/main/java/org/apache/geronimo/microprofile/site/Downloads.java
@@ -19,6 +19,10 @@
import static java.time.format.DateTimeFormatter.RFC_1123_DATE_TIME;
import static java.util.Arrays.asList;
import static java.util.Optional.ofNullable;
+import static java.util.function.Function.identity;
+import static java.util.stream.Collectors.groupingBy;
+import static java.util.stream.Collectors.toList;
+import static java.util.stream.Collectors.toMap;
import java.io.IOException;
import java.io.InputStream;
@@ -30,7 +34,9 @@
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import java.util.Locale;
+import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Stream;
@@ -70,38 +76,75 @@
System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "512");
- Stream.of("org/apache/geronimo/config/geronimo-config-impl", "org/apache/geronimo/safeguard/safeguard-impl",
+ final List<Download> downloads = Stream.of("org/apache/geronimo/config/geronimo-config-impl", "org/apache/geronimo/safeguard/safeguard-impl",
"org/apache/geronimo/geronimo-jwt-auth", "org/apache/geronimo/geronimo-opentracing",
"org/apache/geronimo/geronimo-health", "org/apache/geronimo/geronimo-metrics",
"org/apache/geronimo/geronimo-openapi-impl", "org/apache/geronimo/geronimo-microprofile-aggregator")
.flatMap(Downloads::toVersions)
.map(v -> v.base.endsWith("geronimo-microprofile-aggregator") ? v.extensions("pom") : v.extensions("jar"))
.flatMap(Downloads::toDownloadable).map(Downloads::fillDownloadable).filter(Objects::nonNull)
- .sorted((o1, o2) -> {
- final int formatComp = o2.format.compareTo(o1.format); // pom before jar
- if (formatComp != 0) {
- return formatComp;
- }
+ .sorted(Downloads::versionComparator)
+ .map(Downloads::toCentral)
+ .collect(toList());
- final int nameComp = o1.name.compareTo(o2.name);
- if (nameComp != 0) {
- return nameComp;
- }
+ final Collection<Download> lastReleases = downloads.stream()
+ .collect(toMap(Download::getName, identity(), (a, b) -> a))
+ .values().stream()
+ .sorted(Downloads::versionComparator)
+ .collect(toList());
- final int versionComp = o2.version.compareTo(o1.version);
- if (versionComp != 0) {
- return versionComp;
- }
+ System.out.println("= Downloads\n:jbake-date: 2018-07-24\n:icons: font\n\n");
+ System.out.println("== Last releases\n\n");
+ System.out.println(tableHeader());
+ lastReleases.forEach(Downloads::printRow);
+ System.out.println(tableFooter());
+ System.out.println();
+ System.out.println("== Previous releases\n\n");
+ downloads.stream()
+ .filter(it -> !lastReleases.contains(it))
+ .collect(groupingBy(Download::getName))
+ .forEach((name, dls) -> {
+ System.out.println("=== " + name + "\n\n");
+ System.out.println(tableHeader());
+ dls.forEach(Downloads::printRow);
+ System.out.println(tableFooter());
+ System.out.println();
+ });
+ System.out.println();
+ }
- 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;
- }
+ private static String tableFooter() {
+ return "|===";
+ }
- return o1.url.compareTo(o2.url);
- }).map(Downloads::toCentral).forEach(Downloads::printRow);
+ private static String tableHeader() {
+ return "[.table.table-bordered,options=\"header\"]\n|===\n|Name|Version|Date|Size|Type|Links";
+ }
+
+ private static int versionComparator(final Download o1, final Download o2) {
+ final int formatComp = o2.format.compareTo(o1.format); // pom before jar
+ if (formatComp != 0) {
+ return formatComp;
+ }
+
+ final int nameComp = o1.name.compareTo(o2.name);
+ if (nameComp != 0) {
+ return nameComp;
+ }
+
+ final int versionComp = o2.version.compareTo(o1.version);
+ if (versionComp != 0) {
+ 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);
}
private static Download toCentral(final Download download) {
diff --git a/geronimo-microprofile-site/src/main/jbake/content/downloads.adoc b/geronimo-microprofile-site/src/main/jbake/content/downloads.adoc
index b7ae472..dcd781f 100644
--- a/geronimo-microprofile-site/src/main/jbake/content/downloads.adoc
+++ b/geronimo-microprofile-site/src/main/jbake/content/downloads.adoc
@@ -2,29 +2,90 @@
:jbake-date: 2018-07-24
:icons: font
+
+== Last releases
+
+
[.table.table-bordered,options="header"]
|===
-
|Name|Version|Date|Size|Type|Links
-
+|Geronimo Microprofile Aggregator|1.0.0|18 Dec 2018|7 kB |POM| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-microprofile-aggregator/1.0.0/geronimo-microprofile-aggregator-1.0.0.pom[icon:download[] POM] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-microprofile-aggregator/1.0.0/geronimo-microprofile-aggregator-1.0.0.pom.sha1[icon:download[] SHA1]
|Geronimo Config|1.2.1|17 Dec 2018|70 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.2.1/geronimo-config-impl-1.2.1.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.2.1/geronimo-config-impl-1.2.1.jar.sha1[icon:download[] SHA1]
-|Geronimo Config|1.2|10 Jun 2018|70 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.2/geronimo-config-impl-1.2.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.2/geronimo-config-impl-1.2.jar.sha1[icon:download[] SHA1]
-|Geronimo Config|1.1|2 Jan 2018|59 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.1/geronimo-config-impl-1.1.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.1/geronimo-config-impl-1.1.jar.sha1[icon:download[] SHA1]
-|Geronimo Config|1.0|10 Sep 2017|53 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.0/geronimo-config-impl-1.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.0/geronimo-config-impl-1.0.jar.sha1[icon:download[] SHA1]
|Geronimo Health|1.0.1|17 Dec 2018|13 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-health/1.0.1/geronimo-health-1.0.1.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-health/1.0.1/geronimo-health-1.0.1.jar.sha1[icon:download[] SHA1]
-|Geronimo Health|1.0.0|16 Jul 2018|19 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-health/1.0.0/geronimo-health-1.0.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-health/1.0.0/geronimo-health-1.0.0.jar.sha1[icon:download[] SHA1]
|Geronimo Jwt Auth|1.0.1|17 Dec 2018|67 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-jwt-auth/1.0.1/geronimo-jwt-auth-1.0.1.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-jwt-auth/1.0.1/geronimo-jwt-auth-1.0.1.jar.sha1[icon:download[] SHA1]
-|Geronimo Jwt Auth|1.0.0|13 Jun 2018|67 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-jwt-auth/1.0.0/geronimo-jwt-auth-1.0.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-jwt-auth/1.0.0/geronimo-jwt-auth-1.0.0.jar.sha1[icon:download[] SHA1]
|Geronimo Metrics|1.0.2|2 Jan 2019|36 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-metrics/1.0.2/geronimo-metrics-1.0.2.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-metrics/1.0.2/geronimo-metrics-1.0.2.jar.sha1[icon:download[] SHA1]
-|Geronimo Metrics|1.0.1|17 Dec 2018|36 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-metrics/1.0.1/geronimo-metrics-1.0.1.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-metrics/1.0.1/geronimo-metrics-1.0.1.jar.sha1[icon:download[] SHA1]
-|Geronimo Metrics|1.0.0|15 Jun 2018|73 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-metrics/1.0.0/geronimo-metrics-1.0.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-metrics/1.0.0/geronimo-metrics-1.0.0.jar.sha1[icon:download[] SHA1]
|Geronimo Openapi|1.0.3|2 Jan 2019|169 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-openapi-impl/1.0.3/geronimo-openapi-impl-1.0.3.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-openapi-impl/1.0.3/geronimo-openapi-impl-1.0.3.jar.sha1[icon:download[] SHA1]
+|Geronimo Opentracing|1.0.1|17 Dec 2018|30 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-opentracing/1.0.1/geronimo-opentracing-1.0.1.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-opentracing/1.0.1/geronimo-opentracing-1.0.1.jar.sha1[icon:download[] SHA1]
+|Geronimo Safeguard|1.2.0|17 Dec 2018|117 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/safeguard/safeguard-impl/1.2.0/safeguard-impl-1.2.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/safeguard/safeguard-impl/1.2.0/safeguard-impl-1.2.0.jar.sha1[icon:download[] SHA1]
+|===
+
+== Previous releases
+
+
+=== Geronimo Safeguard
+
+
+[.table.table-bordered,options="header"]
+|===
+|Name|Version|Date|Size|Type|Links
+|Geronimo Safeguard|1.0|6 Jan 2018|64 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/safeguard/safeguard-impl/1.0/safeguard-impl-1.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/safeguard/safeguard-impl/1.0/safeguard-impl-1.0.jar.sha1[icon:download[] SHA1]
+|===
+
+=== Geronimo Jwt Auth
+
+
+[.table.table-bordered,options="header"]
+|===
+|Name|Version|Date|Size|Type|Links
+|Geronimo Jwt Auth|1.0.0|13 Jun 2018|67 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-jwt-auth/1.0.0/geronimo-jwt-auth-1.0.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-jwt-auth/1.0.0/geronimo-jwt-auth-1.0.0.jar.sha1[icon:download[] SHA1]
+|===
+
+=== Geronimo Health
+
+
+[.table.table-bordered,options="header"]
+|===
+|Name|Version|Date|Size|Type|Links
+|Geronimo Health|1.0.0|16 Jul 2018|19 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-health/1.0.0/geronimo-health-1.0.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-health/1.0.0/geronimo-health-1.0.0.jar.sha1[icon:download[] SHA1]
+|===
+
+=== Geronimo Openapi
+
+
+[.table.table-bordered,options="header"]
+|===
+|Name|Version|Date|Size|Type|Links
|Geronimo Openapi|1.0.2|18 Dec 2018|169 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-openapi-impl/1.0.2/geronimo-openapi-impl-1.0.2.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-openapi-impl/1.0.2/geronimo-openapi-impl-1.0.2.jar.sha1[icon:download[] SHA1]
|Geronimo Openapi|1.0.1|1 Aug 2018|157 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-openapi-impl/1.0.1/geronimo-openapi-impl-1.0.1.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-openapi-impl/1.0.1/geronimo-openapi-impl-1.0.1.jar.sha1[icon:download[] SHA1]
|Geronimo Openapi|1.0.0|16 Jul 2018|157 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-openapi-impl/1.0.0/geronimo-openapi-impl-1.0.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-openapi-impl/1.0.0/geronimo-openapi-impl-1.0.0.jar.sha1[icon:download[] SHA1]
-|Geronimo Opentracing|1.0.1|17 Dec 2018|30 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-opentracing/1.0.1/geronimo-opentracing-1.0.1.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-opentracing/1.0.1/geronimo-opentracing-1.0.1.jar.sha1[icon:download[] SHA1]
-|Geronimo Opentracing|1.0.0|24 Jul 2018|87 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-opentracing/1.0.0/geronimo-opentracing-1.0.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-opentracing/1.0.0/geronimo-opentracing-1.0.0.jar.sha1[icon:download[] SHA1]
-|Geronimo Safeguard|1.2.0|17 Dec 2018|117 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/safeguard/safeguard-impl/1.2.0/safeguard-impl-1.2.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/safeguard/safeguard-impl/1.2.0/safeguard-impl-1.2.0.jar.sha1[icon:download[] SHA1]
-|Geronimo Safeguard|1.0|6 Jan 2018|64 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/safeguard/safeguard-impl/1.0/safeguard-impl-1.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/safeguard/safeguard-impl/1.0/safeguard-impl-1.0.jar.sha1[icon:download[] SHA1]
-
|===
+
+=== Geronimo Metrics
+
+
+[.table.table-bordered,options="header"]
+|===
+|Name|Version|Date|Size|Type|Links
+|Geronimo Metrics|1.0.1|17 Dec 2018|36 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-metrics/1.0.1/geronimo-metrics-1.0.1.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-metrics/1.0.1/geronimo-metrics-1.0.1.jar.sha1[icon:download[] SHA1]
+|Geronimo Metrics|1.0.0|15 Jun 2018|73 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-metrics/1.0.0/geronimo-metrics-1.0.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-metrics/1.0.0/geronimo-metrics-1.0.0.jar.sha1[icon:download[] SHA1]
+|===
+
+=== Geronimo Config
+
+
+[.table.table-bordered,options="header"]
+|===
+|Name|Version|Date|Size|Type|Links
+|Geronimo Config|1.2|10 Jun 2018|70 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.2/geronimo-config-impl-1.2.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.2/geronimo-config-impl-1.2.jar.sha1[icon:download[] SHA1]
+|Geronimo Config|1.1|2 Jan 2018|59 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.1/geronimo-config-impl-1.1.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.1/geronimo-config-impl-1.1.jar.sha1[icon:download[] SHA1]
+|Geronimo Config|1.0|10 Sep 2017|53 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.0/geronimo-config-impl-1.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/config/geronimo-config-impl/1.0/geronimo-config-impl-1.0.jar.sha1[icon:download[] SHA1]
+|===
+
+=== Geronimo Opentracing
+
+
+[.table.table-bordered,options="header"]
+|===
+|Name|Version|Date|Size|Type|Links
+|Geronimo Opentracing|1.0.0|24 Jul 2018|87 kB |JAR| http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-opentracing/1.0.0/geronimo-opentracing-1.0.0.jar[icon:download[] JAR] http://repo.maven.apache.org/maven2/org/apache/geronimo/geronimo-opentracing/1.0.0/geronimo-opentracing-1.0.0.jar.sha1[icon:download[] SHA1]
+|===
\ No newline at end of file