From f6b200be4c8b90c26886c6cdd5809abac8c4ac15 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 27 Mar 2013 17:22:08 -0400 Subject: [PATCH] Reorganized to Apache Standard Directory Layout & integrated Moxie --- src/main/java/com/gitblit/Constants.java | 51 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 36 insertions(+), 15 deletions(-) diff --git a/src/com/gitblit/Constants.java b/src/main/java/com/gitblit/Constants.java similarity index 90% rename from src/com/gitblit/Constants.java rename to src/main/java/com/gitblit/Constants.java index bcca8c7..7663f8b 100644 --- a/src/com/gitblit/Constants.java +++ b/src/main/java/com/gitblit/Constants.java @@ -18,7 +18,9 @@ import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; - +import java.net.URL; +import java.util.jar.Attributes; +import java.util.jar.Manifest; /** * Constant values used by Gitblit. @@ -31,18 +33,6 @@ public static final String NAME = "Gitblit"; public static final String FULL_NAME = "Gitblit - a pure Java Git solution"; - - // The build script extracts this exact line so be careful editing it - // and only use A-Z a-z 0-9 .-_ in the string. - public static final String VERSION = "1.3.0-SNAPSHOT"; - - // The build script extracts this exact line so be careful editing it - // and only use A-Z a-z 0-9 .-_ in the string. - public static final String VERSION_DATE = "PENDING"; - - // The build script extracts this exact line so be careful editing it - // and only use A-Z a-z 0-9 .-_ in the string. - public static final String JGIT_VERSION = "JGit 2.2.0 (201212191850-r)"; public static final String ADMIN_ROLE = "#admin"; @@ -95,9 +85,40 @@ public static final String baseFolder$ = "${" + baseFolder + "}"; public static final String contextFolder$ = "${contextFolder}"; - + + public static String getVersion() { + String v = Constants.class.getPackage().getImplementationVersion(); + if (v == null) { + return "0.0.0-SNAPSHOT"; + } + return v; + } + public static String getGitBlitVersion() { - return NAME + " v" + VERSION; + return NAME + " v" + getVersion(); + } + + public static String getBuildDate() { + return getManifestValue("build-date", "PENDING"); + } + + private static String getManifestValue(String attrib, String defaultValue) { + Class<?> clazz = Constants.class; + String className = clazz.getSimpleName() + ".class"; + String classPath = clazz.getResource(className).toString(); + if (!classPath.startsWith("jar")) { + // Class not from JAR + return defaultValue; + } + try { + String manifestPath = classPath.substring(0, classPath.lastIndexOf("!") + 1) + "/META-INF/MANIFEST.MF"; + Manifest manifest = new Manifest(new URL(manifestPath).openStream()); + Attributes attr = manifest.getMainAttributes(); + String value = attr.getValue(attrib); + return value; + } catch (Exception e) { + } + return defaultValue; } /** -- Gitblit v1.9.1