Example usage for org.eclipse.jgit.http.server ServletUtils getRepository

List of usage examples for org.eclipse.jgit.http.server ServletUtils getRepository

Introduction

In this page you can find the example usage for org.eclipse.jgit.http.server ServletUtils getRepository.

Prototype

public static Repository getRepository(ServletRequest req) 

Source Link

Document

Get the selected repository from the request.

Usage

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();
    }
}