From 6d0264e1970dbf205346d3655f21c39ac889a730 Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Fri, 6 Jan 2017 01:19:45 +0100 Subject: the all-versions page is fetched in order to allow generating an updated copy of that page. --- src/website/lombok/website/WebsiteMaker.java | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/website/lombok/website/WebsiteMaker.java b/src/website/lombok/website/WebsiteMaker.java index 299b4211..ef078db6 100644 --- a/src/website/lombok/website/WebsiteMaker.java +++ b/src/website/lombok/website/WebsiteMaker.java @@ -1,18 +1,26 @@ package lombok.website; +import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Writer; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.HashMap; +import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import de.java2html.Java2Html; import freemarker.cache.FileTemplateLoader; @@ -140,12 +148,30 @@ public class WebsiteMaker { } } - private Map createDataModel() { + private static final Pattern LOMBOK_LINK = Pattern.compile("^.*([^<]+).*$"); + private Map createDataModel() throws IOException { Map data = new HashMap(); data.put("version", lombok.core.Version.getVersion()); data.put("fullVersion", lombok.core.Version.getFullVersion()); data.put("year", "" + new GregorianCalendar().get(Calendar.YEAR)); data.put("usages", new HtmlMaker(new File(baseDir, "usageExamples"))); + InputStream in = new URL("https://projectlombok.org/all-versions.html").openStream(); + ArrayList> links = new ArrayList>(); + try { + BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8")); + for (String line = br.readLine(); line != null; line = br.readLine()) { + Matcher m = LOMBOK_LINK.matcher(line); + if (m.matches()) links.add(Arrays.asList(m.group(1), m.group(2))); + } + } finally { + in.close(); + } + + if (links.isEmpty() || !links.get(0).get(0).endsWith("lombok-" + lombok.core.Version.getVersion() + ".jar")) { + links.add(Arrays.asList("downloads/lombok-" + lombok.core.Version.getVersion() + ".jar", "lombok-" + lombok.core.Version.getVersion() + ".jar")); + } + + data.put("linksToVersions", links); return data; } -- cgit