GitHub wizard to 2.12-SNAPSHOT behaviour Starting from 2.12-SNAPSHOT, the RequestDispatcher wrapped for a plugin servlet has a different behaviour (possibly more consistent than before) Before 2.12-SNAPSHOT required the full URL whilst now only the path relative to the plugin servlet. Change-Id: I3673a57008b65b75ccc1112d36a3028d31729015
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/velocity/VelocityViewServlet.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/velocity/VelocityViewServlet.java index cd1a202..75e3c47 100644 --- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/velocity/VelocityViewServlet.java +++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/velocity/VelocityViewServlet.java
@@ -19,8 +19,6 @@ import com.google.inject.Provider; import com.google.inject.Singleton; import com.google.inject.name.Named; - -import com.googlesource.gerrit.plugins.github.GitHubConfig.NextPage; import com.googlesource.gerrit.plugins.github.oauth.GitHubLogin; import com.googlesource.gerrit.plugins.github.oauth.ScopedProvider; @@ -47,7 +45,7 @@ public class VelocityViewServlet extends HttpServlet { private static final Logger log = LoggerFactory .getLogger(VelocityViewServlet.class); - private static final String STATIC_PREFIX = "/static"; + private static final String STATIC_PREFIX = "/static/"; private static final long serialVersionUID = 529071287765413268L; private final RuntimeInstance velocityRuntime; private final Provider<PluginVelocityModel> modelProvider; @@ -73,16 +71,11 @@ HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; - String servletPath = req.getPathInfo(); - NextPage nextPage = (NextPage) req.getAttribute("destUrl"); - String destUrl = null; - if (nextPage != null && !nextPage.uri.startsWith("/")) { - destUrl = - servletPath.substring(0, servletPath.lastIndexOf("/")) + "/" - + nextPage.uri; - } - - String pathInfo = STATIC_PREFIX + MoreObjects.firstNonNull(destUrl, servletPath); + String pathInfo = + STATIC_PREFIX + + MoreObjects.firstNonNull( + (String) req.getAttribute("destUrl"), + req.getPathInfo()); try { Template template = velocityRuntime.getTemplate(pathInfo, "UTF-8");
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/VelocityControllerServlet.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/VelocityControllerServlet.java index 1d7b65e..561fbd0 100644 --- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/VelocityControllerServlet.java +++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/VelocityControllerServlet.java
@@ -122,7 +122,7 @@ private void redirectToNextStep(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { - String sourceUri = req.getRequestURI(); + String sourceUri = req.getPathInfo(); int pathPos = sourceUri.lastIndexOf('/') + 1; String sourcePage = sourceUri.substring(pathPos); String sourcePath = sourceUri.substring(0, pathPos); @@ -137,7 +137,7 @@ } else { RequestDispatcher requestDispatcher = req.getRequestDispatcher(nextPageURL(sourcePath, nextPage)); - req.setAttribute("destUrl", nextPage); + req.setAttribute("destUrl", nextPage.uri); requestDispatcher.forward(req, resp); } }