Fix URI for new UI
New UI makes opens the links relative to the page, causing incorrect
result.
Change-Id: Iec3a0ff45554b11d7a36e7fc5da50c6f76646442
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
(cherry picked from commit e2224e0eb9da755e87aa3d4b64714a980b2a6a11)
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java b/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java
index 61d621a..cf0e9df 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java
@@ -15,6 +15,7 @@
package com.googlesource.gerrit.plugins.gitiles;
import com.google.common.base.MoreObjects;
+import com.google.gerrit.common.Nullable;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.common.WebLinkInfo;
import com.google.gerrit.extensions.webui.BranchWebLink;
@@ -24,9 +25,12 @@
import com.google.gerrit.extensions.webui.PatchSetWebLink;
import com.google.gerrit.extensions.webui.ProjectWebLink;
import com.google.gerrit.extensions.webui.TagWebLink;
+import com.google.gerrit.server.config.CanonicalWebUrl;
import com.google.gerrit.server.config.PluginConfigFactory;
import com.google.inject.Inject;
import com.google.inject.Singleton;
+import java.net.MalformedURLException;
+import java.net.URL;
import org.eclipse.jgit.lib.Config;
@Singleton
@@ -43,10 +47,23 @@
private final String target;
@Inject
- public GitilesWeblinks(@PluginName String pluginName, PluginConfigFactory configFactory) {
+ public GitilesWeblinks(
+ @PluginName String pluginName,
+ @Nullable @CanonicalWebUrl String gerritUrl,
+ PluginConfigFactory configFactory)
+ throws MalformedURLException {
+
+ String baseGerritUrl;
+ if (gerritUrl != null) {
+ URL u = new URL(gerritUrl);
+ baseGerritUrl = u.getPath();
+ } else {
+ baseGerritUrl = "/";
+ }
+
Config config = configFactory.getGlobalPluginConfig("gitiles");
name = MoreObjects.firstNonNull(config.getString("gerrit", null, "linkname"), "browse");
- baseUrl = "plugins/" + pluginName;
+ baseUrl = baseGerritUrl + "plugins/" + pluginName;
target = MoreObjects.firstNonNull(config.getString("gerrit", null, "target"), Target.BLANK);
}