Refactor XDocServlet: Move retrieval of revision into helper method Change-Id: I567bc93450d862a38fb2b84c4f83217ac1661c73 Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java index fcdc08f..e6fa865 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java +++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java
@@ -126,23 +126,7 @@ } ProjectControl projectControl = projectControlFactory.validateFor(key.project); - String rev = key.revision; - if (rev == null) { - rev = cfg.getIndexRef(); - } - if (Constants.HEAD.equals(rev)) { - rev = getHead.get().apply(new ProjectResource(projectControl)); - } else { - if (!ObjectId.isId(rev)) { - if (!rev.startsWith(Constants.R_REFS)) { - rev = Constants.R_HEADS + rev; - } - if (!projectControl.controlForRef(rev).isVisible()) { - Resource.NOT_FOUND.send(req, res); - return; - } - } - } + String rev = getRevision(cfg, key.revision, projectControl); Repository repo = repoManager.openRepository(key.project); try { @@ -274,6 +258,28 @@ return "image".equals(mimeType.getMediaType()); } + private String getRevision(XDocProjectConfig cfg, String revision, + ProjectControl projectControl) throws ResourceNotFoundException, + AuthException, IOException { + String rev = revision; + if (rev == null) { + rev = cfg.getIndexRef(); + } + if (Constants.HEAD.equals(rev)) { + rev = getHead.get().apply(new ProjectResource(projectControl)); + } else { + if (!ObjectId.isId(rev)) { + if (!rev.startsWith(Constants.R_REFS)) { + rev = Constants.R_HEADS + rev; + } + if (!projectControl.controlForRef(rev).isVisible()) { + throw new ResourceNotFoundException(); + } + } + } + return rev; + } + private static String computeETag(Project.NameKey project, ObjectId revId, String file) { return Hashing.md5().newHasher()