Index: src/main/java/hudson/plugins/viewVC/ViewVCRepositoryBrowser.java
===================================================================
--- src/main/java/hudson/plugins/viewVC/ViewVCRepositoryBrowser.java (revision 27718)
+++ src/main/java/hudson/plugins/viewVC/ViewVCRepositoryBrowser.java (working copy)
@@ -21,17 +21,31 @@
*/
public class ViewVCRepositoryBrowser extends SubversionRepositoryBrowser {
- private static final String CHANGE_SET_FORMAT = "viewvc/?view=rev&root=%s&revision=%d";
- private static final String DIFF_FORMAT = "viewvc/%s?root=%s&r1=%d&r2=%d&diff_format=h";
- private static final String FILE_FORMAT = "viewvc/%s?root=%s&view=markup";
+ private static final String CHANGE_SET_FORMAT = "?view=rev&root=%s&revision=%d";
+ private static final String DIFF_FORMAT = "%s?root=%s&r1=%d&r2=%d&diff_format=h";
+ private static final String FILE_FORMAT = "%s?root=%s&view=markup";
+
+ private static final String DEFAULT_PATH = "viewvc/";
- public final URL url;
+ /**
+ * This old versions assumed that viewvc would always be in the URL.
+ */
+ private final URL url;
+
+ /** The root */
private final String location;
+ /**
+ * So we can migrate from URLs before HUDSON-4043
+ */
+ public boolean urlFixed = false;
+
+
@DataBoundConstructor
public ViewVCRepositoryBrowser(URL url, String location) throws MalformedURLException {
this.url = normalizeToEndWithSlash(url);
this.location = location;
+ this.urlFixed = true;
}
public String getLocation() {
@@ -39,19 +53,27 @@
return location;
}
+ public URL getUrl() {
+ try {
+ return (urlFixed)?url:new URL(url, DEFAULT_PATH);
+ } catch (MalformedURLException e) {
+ return url;
+ }
+ }
+
@Override
public URL getDiffLink(Path path) throws IOException {
- return new URL(url, String.format(DIFF_FORMAT, path.getValue(), getLocation(), path.getLogEntry().getRevision() - 1, path.getLogEntry().getRevision()));
+ return new URL(getUrl(), String.format(DIFF_FORMAT, path.getValue(), getLocation(), path.getLogEntry().getRevision() - 1, path.getLogEntry().getRevision()));
}
@Override
public URL getFileLink(Path path) throws IOException {
- return new URL(url, String.format(FILE_FORMAT, path.getValue(), getLocation()));
+ return new URL(getUrl(), String.format(FILE_FORMAT, path.getValue(), getLocation()));
}
@Override
public URL getChangeSetLink(LogEntry changeSet) throws IOException {
- return new URL(url, String.format(CHANGE_SET_FORMAT, getLocation(), changeSet.getRevision()));
+ return new URL(getUrl(), String.format(CHANGE_SET_FORMAT, getLocation(), changeSet.getRevision()));
}
@Extension
@@ -60,6 +82,7 @@
super(ViewVCRepositoryBrowser.class);
}
+ @Override
public String getDisplayName() {
return "ViewVC";
}
Index: pom.xml
===================================================================
--- pom.xml (revision 27718)
+++ pom.xml (working copy)
@@ -3,8 +3,7 @@
org.jvnet.hudson.plugins
plugin
- 1.318
- ../pom.xml
+ 1.347
Hudson ViewVC plugin