From db96816b8100669482e465a0187022014fc99c90 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Wed, 30 Dec 2009 10:12:27 -0800 Subject: [PATCH] Remove the duplicate Version class We had two different com.google.gerrit.common.Version classes which meant that under the GWT debug environment the server didn't have access to its own version number. Fix that by using ClientVersion from within the GWT UI, and leave the real Version name for the rest of the runtime. Change-Id: I3b5af1a866fb1b4a6dbe25269962fe80d8d26436 Signed-off-by: Shawn O. Pearce --- gerrit-common/.gitignore | 1 - gerrit-common/pom.xml | 6 ++-- .../google/gerrit/common/ClientVersion.java | 14 ++++------ .../java/com/google/gerrit/client/Gerrit.java | 28 ++++++++----------- .../com/google/gerrit/common/Version.java | 19 +++++++++---- 5 files changed, 34 insertions(+), 34 deletions(-) rename gerrit-gwtui/src/main/java/com/google/gerrit/common/Version.java => gerrit-common/src/main/java/com/google/gerrit/common/ClientVersion.java (71%) diff --git a/gerrit-common/.gitignore b/gerrit-common/.gitignore index ea79d40f9b..903c6c80f5 100644 --- a/gerrit-common/.gitignore +++ b/gerrit-common/.gitignore @@ -2,4 +2,3 @@ /.classpath /.project /.settings/org.maven.ide.eclipse.prefs -/src/main/resources/com/google/gerrit/common/Version.properties diff --git a/gerrit-common/pom.xml b/gerrit-common/pom.xml index d261395c3c..69370c391e 100644 --- a/gerrit-common/pom.xml +++ b/gerrit-common/pom.xml @@ -67,14 +67,14 @@ limitations under the License. generate-resources - - + + - version=${v} + ${v} diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/common/Version.java b/gerrit-common/src/main/java/com/google/gerrit/common/ClientVersion.java similarity index 71% rename from gerrit-gwtui/src/main/java/com/google/gerrit/common/Version.java rename to gerrit-common/src/main/java/com/google/gerrit/common/ClientVersion.java index d831c7158e..42ee5dd3d9 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/common/Version.java +++ b/gerrit-common/src/main/java/com/google/gerrit/common/ClientVersion.java @@ -14,13 +14,11 @@ package com.google.gerrit.common; -import com.google.gwt.i18n.client.Constants; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.TextResource; -/** - * Automatically generated version code. - *

- * 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; }