1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /*
- * Copyright (C) 2009-2010, Google Inc. and others
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Distribution License v. 1.0 which is available at
- * https://www.eclipse.org/org/documents/edl-v10.php.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
- package org.eclipse.jgit.http.server;
-
- import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
- import static org.eclipse.jgit.http.server.ServletUtils.getRepository;
- import static org.eclipse.jgit.http.server.ServletUtils.send;
-
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.IOException;
-
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
-
- import org.eclipse.jgit.util.HttpSupport;
- import org.eclipse.jgit.util.IO;
-
- /** Sends a small text meta file from the repository. */
- class TextFileServlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
-
- private final String fileName;
-
- TextFileServlet(String name) {
- this.fileName = name;
- }
-
- /** {@inheritDoc} */
- @Override
- public void doGet(final HttpServletRequest req,
- final HttpServletResponse rsp) throws IOException {
- try {
- rsp.setContentType(HttpSupport.TEXT_PLAIN);
- send(read(req), req, rsp);
- } catch (FileNotFoundException noFile) {
- rsp.sendError(SC_NOT_FOUND);
- }
- }
-
- private byte[] read(HttpServletRequest req) throws IOException {
- final File gitdir = getRepository(req).getDirectory();
- if (gitdir == null)
- throw new FileNotFoundException(fileName);
- return IO.readFully(new File(gitdir, fileName));
- }
- }
|