List of usage examples for org.eclipse.jgit.http.server ServletUtils getRepository
public static Repository getRepository(ServletRequest req)
From source file:com.google.gitiles.ArchiveServlet.java
License:Open Source License
@Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { GitilesView view = ViewFilter.getView(req); Revision rev = view.getRevision();//from w ww . j a v a 2s . c o m Repository repo = ServletUtils.getRepository(req); ObjectId treeId = getTree(view, repo, rev); if (treeId.equals(ObjectId.zeroId())) { res.sendError(SC_NOT_FOUND); return; } Optional<ArchiveFormat> format = ArchiveFormat.byExtension(view.getExtension(), getAccess(req).getConfig()); if (!format.isPresent()) { res.setStatus(SC_NOT_FOUND); return; } String filename = getFilename(view, rev, view.getExtension()); setDownloadHeaders(res, filename, format.get().getMimeType()); res.setStatus(SC_OK); try { new ArchiveCommand(repo).setFormat(format.get().getRegisteredName()).setTree(treeId) .setOutputStream(res.getOutputStream()).call(); } catch (GitAPIException e) { throw new IOException(e); } }
From source file:com.google.gitiles.blame.BlameServlet.java
License:Open Source License
@Override protected void doGetHtml(HttpServletRequest req, HttpServletResponse res) throws IOException { GitilesView view = ViewFilter.getView(req); Repository repo = ServletUtils.getRepository(req); RevWalk rw = new RevWalk(repo); try {//from w w w . jav a2 s . c om GitilesAccess access = getAccess(req); RegionResult result = getRegions(view, access, repo, rw, res); if (result == null) { return; } String title = "Blame - " + view.getPathPart(); Map<String, ?> blobData = new BlobSoyData(rw.getObjectReader(), view).toSoyData(view.getPathPart(), result.blobId); if (blobData.get("lines") != null) { DateFormatter df = new DateFormatter(access, Format.ISO); renderHtml(req, res, "gitiles.blameDetail", ImmutableMap.of("title", title, "breadcrumbs", view.getBreadcrumbs(), "data", blobData, "regions", toSoyData(view, rw.getObjectReader(), result.regions, df))); } else { renderHtml(req, res, "gitiles.blameDetail", ImmutableMap.of("title", title, "breadcrumbs", view.getBreadcrumbs(), "data", blobData)); } } finally { rw.release(); } }
From source file:com.google.gitiles.blame.BlameServlet.java
License:Open Source License
@Override protected void doGetJson(HttpServletRequest req, HttpServletResponse res) throws IOException { GitilesView view = ViewFilter.getView(req); Repository repo = ServletUtils.getRepository(req); RevWalk rw = new RevWalk(repo); try {//from w w w .ja va2 s. c o m RegionResult result = getRegions(view, getAccess(req), repo, rw, res); if (result == null) { return; } // Output from BlameCache is 0-based for lines. We convert to 1-based for // JSON output later (in RegionAdapter); here we're just filling in the // transient fields. int start = 0; for (Region r : result.regions) { r.setStart(start); start += r.getCount(); } renderJson(req, res, ImmutableMap.of("regions", result.regions), new TypeToken<Map<String, List<Region>>>() { }.getType()); } finally { rw.release(); } }
From source file:com.google.gitiles.BlameServlet.java
License:Open Source License
@Override protected void doGetHtml(HttpServletRequest req, HttpServletResponse res) throws IOException { GitilesView view = ViewFilter.getView(req); Repository repo = ServletUtils.getRepository(req); RevWalk rw = new RevWalk(repo); try {//from w w w . j a v a 2 s. c om RevCommit commit = rw.parseCommit(view.getRevision().getId()); ObjectId blobId = resolveBlob(view, rw, commit); if (blobId == null) { res.setStatus(SC_NOT_FOUND); return; } String title = "Blame - " + view.getPathPart(); Map<String, ?> blobData = new BlobSoyData(rw, view).toSoyData(view.getPathPart(), blobId); if (blobData.get("data") != null) { List<Region> regions = cache.get(repo, commit, view.getPathPart()); if (regions.isEmpty()) { res.setStatus(SC_NOT_FOUND); return; } GitDateFormatter df = new GitDateFormatter(Format.DEFAULT); renderHtml(req, res, "gitiles.blameDetail", ImmutableMap.of("title", title, "breadcrumbs", view.getBreadcrumbs(), "data", blobData, "regions", toSoyData(view, rw.getObjectReader(), regions, df))); } else { renderHtml(req, res, "gitiles.blameDetail", ImmutableMap.of("title", title, "breadcrumbs", view.getBreadcrumbs(), "data", blobData)); } } finally { rw.release(); } }
From source file:com.google.gitiles.DefaultAccess.java
License:Open Source License
@Override public String getRepositoryName() { return getRepositoryName(ServletUtils.getRepository(req)); }
From source file:com.google.gitiles.DefaultAccess.java
License:Open Source License
@Override public RepositoryDescription getRepositoryDescription() throws IOException { return buildDescription(ServletUtils.getRepository(req), Collections.<String>emptySet()); }
From source file:com.google.gitiles.DescribeServlet.java
License:Open Source License
@Override protected void doGetText(HttpServletRequest req, HttpServletResponse res) throws IOException { String name = describe(ServletUtils.getRepository(req), ViewFilter.getView(req), req, res); if (name == null) { return;/* w w w. ja va2s.co m*/ } Writer out = startRenderText(req, res); out.write(RefServlet.sanitizeRefForText(name)); out.close(); }
From source file:com.google.gitiles.DescribeServlet.java
License:Open Source License
@Override protected void doGetJson(HttpServletRequest req, HttpServletResponse res) throws IOException { String name = describe(ServletUtils.getRepository(req), ViewFilter.getView(req), req, res); if (name == null) { return;//w w w .j a v a 2 s.c om } renderJson(req, res, ImmutableMap.of(ViewFilter.getView(req).getPathPart(), name), new TypeToken<Map<String, String>>() { }.getType()); }
From source file:com.google.gitiles.DescribeServlet.java
License:Open Source License
private NameRevCommand nameRevCommand(ObjectId id, HttpServletRequest req, HttpServletResponse res) throws IOException { Repository repo = ServletUtils.getRepository(req); GitilesView view = ViewFilter.getView(req); NameRevCommand cmd = new Git(repo).nameRev(); boolean all = getBooleanParam(view, ALL_PARAM); boolean tags = getBooleanParam(view, TAGS_PARAM); if (all && tags) { renderTextError(req, res, SC_BAD_REQUEST, "Cannot specify both \"all\" and \"tags\""); return null; }/*www. ja va2 s. c o m*/ if (all) { cmd.addPrefix(Constants.R_REFS); } else if (tags) { cmd.addPrefix(Constants.R_TAGS); } else { cmd.addAnnotatedTags(); } cmd.add(id); return cmd; }
From source file:com.google.gitiles.DiffServlet.java
License:Open Source License
@Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException { GitilesView view = ViewFilter.getView(req); Repository repo = ServletUtils.getRepository(req); RevWalk walk = new RevWalk(repo); try {// w w w . ja v a 2s . c o m boolean showCommit; AbstractTreeIterator oldTree; AbstractTreeIterator newTree; try { // If we are viewing the diff between a commit and one of its parents, // include the commit detail in the rendered page. showCommit = isParentOf(walk, view.getOldRevision(), view.getRevision()); oldTree = getTreeIterator(walk, view.getOldRevision().getId()); newTree = getTreeIterator(walk, view.getRevision().getId()); } catch (MissingObjectException e) { res.setStatus(SC_NOT_FOUND); return; } catch (IncorrectObjectTypeException e) { res.setStatus(SC_NOT_FOUND); return; } Map<String, Object> data = getData(req); data.put("title", "Diff - " + view.getRevisionRange()); if (showCommit) { data.put("commit", new CommitSoyData(linkifier, req, repo, walk, view) .toSoyData(walk.parseCommit(view.getRevision().getId()))); } if (!data.containsKey("repositoryName") && (view.getRepositoryName() != null)) { data.put("repositoryName", view.getRepositoryName()); } if (!data.containsKey("breadcrumbs")) { data.put("breadcrumbs", view.getBreadcrumbs()); } String[] html = renderAndSplit(data); res.setStatus(HttpServletResponse.SC_OK); res.setContentType(FormatType.HTML.getMimeType()); res.setCharacterEncoding(Charsets.UTF_8.name()); setCacheHeaders(req, res); OutputStream out = res.getOutputStream(); try { out.write(html[0].getBytes(Charsets.UTF_8)); formatHtmlDiff(out, repo, walk, oldTree, newTree, view.getTreePath()); out.write(html[1].getBytes(Charsets.UTF_8)); } finally { out.close(); } } finally { walk.release(); } }