- * Do not translate this constants interface. - */ -public interface Version extends Constants { - String version(); +public interface ClientVersion extends ClientBundle { + /** Version number of this client software build. */ + @Source("Version") + TextResource version(); } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java index 27695c37c5..959eb79dfe 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java @@ -20,8 +20,8 @@ import com.google.gerrit.client.rpc.GerritCallback; import com.google.gerrit.client.ui.LinkMenuBar; import com.google.gerrit.client.ui.LinkMenuItem; import com.google.gerrit.client.ui.Screen; +import com.google.gerrit.common.ClientVersion; import com.google.gerrit.common.PageLinks; -import com.google.gerrit.common.Version; import com.google.gerrit.common.auth.SignInMode; import com.google.gerrit.common.data.GerritConfig; import com.google.gerrit.common.data.HostPageData; @@ -65,7 +65,6 @@ public class Gerrit implements EntryPoint { public static final SystemInfoService SYSTEM_SVC; private static String myHost; - private static String myVersion; private static GerritConfig myConfig; private static Account myAccount; @@ -322,25 +321,22 @@ public class Gerrit implements EntryPoint { keyHelp.setStyleName(RESOURCES.css().keyhelp()); btmmenu.add(keyHelp); - final String vs = getVersion(); + String vs; + if (GWT.isScript()) { + final ClientVersion v = GWT.create(ClientVersion.class); + vs = v.version().getText(); + if (vs.startsWith("v")) { + vs = vs.substring(1); + } + } else { + vs = "dev"; + } + final HTML version = new HTML(M.poweredBy(vs)); version.setStyleName(RESOURCES.css().version()); btmmenu.add(version); } - /** @return version number of the Gerrit application software */ - public static String getVersion() { - if (myVersion == null) { - if (GWT.isScript()) { - final Version v = GWT.create(Version.class); - myVersion = v.version(); - } else { - myVersion = "dev"; - } - } - return myVersion; - } - private void onModuleLoad2(final RootPanel starting) { refreshMenuBar(); diff --git a/gerrit-server/src/main/java/com/google/gerrit/common/Version.java b/gerrit-server/src/main/java/com/google/gerrit/common/Version.java index b4c5e7b872..8ad4d48509 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/common/Version.java +++ b/gerrit-server/src/main/java/com/google/gerrit/common/Version.java @@ -14,9 +14,10 @@ package com.google.gerrit.common; +import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; -import java.util.Properties; +import java.io.InputStreamReader; public class Version { private static final String version; @@ -30,18 +31,24 @@ public class Version { } private static String loadVersion() { - InputStream in = Version.class.getResourceAsStream("Version.properties"); + InputStream in = Version.class.getResourceAsStream("Version"); if (in == null) { return null; } try { - final Properties p = new Properties(); + BufferedReader r = new BufferedReader(new InputStreamReader(in, "UTF-8")); try { - p.load(in); + String vs = r.readLine(); + if (vs != null && vs.startsWith("v")) { + vs = vs.substring(1); + } + if (vs != null && vs.isEmpty()) { + vs = null; + } + return vs; } finally { - in.close(); + r.close(); } - return p.getProperty("version"); } catch (IOException e) { return null; }