You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2017/10/10 04:38:41 UTC

[7/7] tomee-site-generator git commit: Improve download visibility

Improve download visibility


Project: http://git-wip-us.apache.org/repos/asf/tomee-site-generator/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee-site-generator/commit/13efde88
Tree: http://git-wip-us.apache.org/repos/asf/tomee-site-generator/tree/13efde88
Diff: http://git-wip-us.apache.org/repos/asf/tomee-site-generator/diff/13efde88

Branch: refs/heads/master
Commit: 13efde886213b2843d3fe528e90a802d6ba726ea
Parents: 1477534
Author: Andy Gumbrecht <ag...@tomitribe.com>
Authored: Mon Oct 9 21:34:49 2017 -0700
Committer: Andy Gumbrecht <ag...@tomitribe.com>
Committed: Mon Oct 9 21:34:49 2017 -0700

----------------------------------------------------------------------
 .../org/apache/tomee/website/Downloads.java     | 106 +++++--
 src/main/jbake/content/download-archive.adoc    | 314 +++++++++++++++++++
 src/main/jbake/content/download-ng.adoc         | 295 ++---------------
 3 files changed, 428 insertions(+), 287 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/13efde88/src/main/java/org/apache/tomee/website/Downloads.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/tomee/website/Downloads.java b/src/main/java/org/apache/tomee/website/Downloads.java
index cbb6e73..cb63681 100755
--- a/src/main/java/org/apache/tomee/website/Downloads.java
+++ b/src/main/java/org/apache/tomee/website/Downloads.java
@@ -14,12 +14,16 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.sql.Date;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Stream;
 
 import static java.time.format.DateTimeFormatter.RFC_1123_DATE_TIME;
@@ -41,8 +45,13 @@ public class Downloads {
     }
 
     public static void main(final String[] args) {
+
         System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "512");
-        Stream.of(
+
+        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"))
@@ -65,22 +74,30 @@ public class Downloads {
                 .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);
+                    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;
+                            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) {
@@ -89,15 +106,60 @@ public class Downloads {
 
                     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]"));
+                .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);
+            }
+        }
+
+
+    }
+
+    private static void printRow(Download d) {
+        System.out.println("" +
+                "|" + d.name.replace("Apache ", "") + (d.classifier.isEmpty() ? "" : (" " + d.classifier)) +
+                "|" + d.version +
+                "|" + new SimpleDateFormat("d MMM yyyy").format(Date.from(LocalDateTime.parse(d.date, RFC_1123_DATE_TIME).toInstant(ZoneOffset.UTC))) +
+                "|" + d.size + " MB " +
+                "|" + d.format.toUpperCase() +
+                "| " + d.url + "[icon:download[] " + d.format.toUpperCase() + "] " + d.sha1 + "[icon:download[] SHA1] " + d.md5 + "[icon:download[] MD5]");
+    }
+
+    private static void checkMaxVersion(AtomicReference<String> version1, AtomicReference<String> version7, Download o1, int versionComp) {
+        if (versionComp > 0) {
+            if (o1.version.startsWith("1.")) {
+                version1.set(o1.version);
+            } else if (o1.version.startsWith("7.")) {
+                version7.set(o1.version);
+            }
+        }
     }
 
     private static Download fillDownloadable(final Download download) {
@@ -114,7 +176,8 @@ public class Downloads {
             }
 
             download.setDate(connection.getHeaderField("Last-Modified").replaceAll(" +", " "));
-            download.setSize(toMega(ofNullable(connection.getHeaderField("Content-Length")).map(Long::parseLong).orElse(0L), ofNullable(connection.getHeaderField("Accept-Ranges")).orElse("bytes")));
+            download.setSize(toMega(ofNullable(connection.getHeaderField("Content-Length")).map(Long::parseLong).orElse(0L), ofNullable(connection.getHeaderField("Accept-Ranges")).orElse
+                    ("bytes")));
 
             connection.getInputStream().close();
         } catch (final IOException e) {
@@ -143,7 +206,8 @@ public class Downloads {
         final String artifactBase = version.base + "/" + version.version + "/" + artifactId + "-" + version.version;
         return version.extensions.stream()
                 .flatMap(e -> (version.classifiers.isEmpty() ? Stream.of(new ArtifactDescription("", e)) : version.classifiers.stream().map(c -> new ArtifactDescription(c, e))))
-                .map(a -> toDownload(artifactId, a.classifier, version.version, a.extension, artifactBase + (a.classifier.isEmpty() ? '.' + a.extension : ('-' + a.classifier + '.' + a.extension))));
+                .map(a -> toDownload(artifactId, a.classifier, version.version, a.extension, artifactBase + (a.classifier.isEmpty() ? '.' + a.extension : ('-' + a.classifier + '.' + a
+                        .extension))));
     }
 
     private static Download toDownload(final String artifactId, final String classifier, final String version, final String format, final String url) {