diff options
Diffstat (limited to 'src/core/lombok')
-rw-r--r-- | src/core/lombok/core/Version.java | 36 |
1 files changed, 35 insertions, 1 deletions
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; + } } } |