From 48c93ecc30b8ee8d04336bf73955293d25f9eeda Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Fri, 30 May 2014 02:57:41 +0200 Subject: edge releases now include the release timestamp in the ‘full version’ name. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/lombok/core/Version.java | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'src/core') diff --git a/src/core/lombok/core/Version.java b/src/core/lombok/core/Version.java index 0b6696da..6b1ed0f8 100644 --- a/src/core/lombok/core/Version.java +++ b/src/core/lombok/core/Version.java @@ -21,6 +21,8 @@ */ package lombok.core; +import java.io.InputStream; + /** * This class just holds lombok's current version. */ @@ -66,6 +68,38 @@ public class Version { } public static String getFullVersion() { - return String.format("v%s \"%s\"", VERSION, RELEASE_NAME); + String version = String.format("v%s \"%s\"", VERSION, RELEASE_NAME); + if (!isEdgeRelease()) return version; + + InputStream in = Version.class.getResourceAsStream("release-timestamp.txt"); + if (in == null) return version; + try { + byte[] data = new byte[65536]; + int p = 0; + while (p < data.length) { + int r = in.read(data, p, data.length - p); + if (r == -1) break; + p += r; + } + + String timestamp = new String(data, "UTF-8").trim(); + return version + " - " + timestamp; + } catch (Exception e) { + try { + in.close(); + } catch (Exception ignore) {} + } + + return version; + } + + public static boolean isEdgeRelease() { + int lastIdx = VERSION.lastIndexOf('.'); + if (lastIdx == -1) return false; + try { + return Integer.parseInt(VERSION.substring(lastIdx + 1)) % 1 == 1; + } catch (Exception e) { + return false; + } } } -- cgit