--/*\r
-- * Copyright 2012 gitblit.com.\r
-- *\r
-- * Licensed under the Apache License, Version 2.0 (the "License");\r
-- * you may not use this file except in compliance with the License.\r
-- * You may obtain a copy of the License at\r
-- *\r
-- * http://www.apache.org/licenses/LICENSE-2.0\r
-- *\r
-- * Unless required by applicable law or agreed to in writing, software\r
-- * distributed under the License is distributed on an "AS IS" BASIS,\r
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-- * See the License for the specific language governing permissions and\r
-- * limitations under the License.\r
-- */\r
--package com.gitblit.servlet;\r
--\r
- import com.google.inject.Inject;\r
- import com.google.inject.Singleton;\r
-import java.io.IOException;\r
-import java.io.InputStream;\r
-import java.util.Date;\r
-\r
-import javax.servlet.ServletException;\r
--import javax.servlet.http.HttpServletRequest;\r
--import javax.servlet.http.HttpServletResponse;\r
-\r
-import org.eclipse.jgit.lib.Repository;\r
-import org.eclipse.jgit.revwalk.RevCommit;\r
--\r
--import com.gitblit.Constants;\r
- import com.gitblit.manager.IRepositoryManager;\r
- import com.gitblit.manager.IRuntimeManager;\r
-import com.gitblit.utils.JGitUtils;\r
--\r
--/**\r
-- * Serves the content of a gh-pages branch.\r
-- *\r
-- * @author James Moger\r
-- *\r
-- */\r
- @Singleton\r
--public class PagesServlet extends RawServlet {\r
--\r
-- private static final long serialVersionUID = 1L;\r
--\r
--\r
-- /**\r
-- * Returns an url to this servlet for the specified parameters.\r
-- *\r
-- * @param baseURL\r
-- * @param repository\r
-- * @param path\r
-- * @return an url\r
-- */\r
-- public static String asLink(String baseURL, String repository, String path) {\r
-- if (baseURL.length() > 0 && baseURL.charAt(baseURL.length() - 1) == '/') {\r
-- baseURL = baseURL.substring(0, baseURL.length() - 1);\r
-- }\r
-- return baseURL + Constants.PAGES + repository + "/" + (path == null ? "" : ("/" + path));\r
- }\r
- \r
- @Inject\r
- public PagesServlet(\r
- IRuntimeManager runtimeManager,\r
- IRepositoryManager repositoryManager) {\r
- \r
- super(runtimeManager, repositoryManager);\r
-- }\r
--\r
-- @Override\r
-- protected String getBranch(String repository, HttpServletRequest request) {\r
-- return "gh-pages";\r
-- }\r
--\r
-- @Override\r
-- protected String getPath(String repository, String branch, HttpServletRequest request) {\r
-- String pi = request.getPathInfo().substring(1);\r
-- if (pi.equals(repository)) {\r
-- return "";\r
-- }\r
-- String path = pi.substring(pi.indexOf(repository) + repository.length() + 1);\r
-- if (path.endsWith("/")) {\r
-- path = path.substring(0, path.length() - 1);\r
-- }\r
-- return path;\r
-- }\r
--\r
-- @Override\r
-- protected boolean renderIndex() {\r
-- return true;\r
-- }\r
--\r
-- @Override\r
-- protected void setContentType(HttpServletResponse response, String contentType) {\r
-- response.setContentType(contentType);;\r
- }\r
-\r
- @Override\r
- protected void streamFromRepo(HttpServletResponse response, Repository repository,\r
- RevCommit commit, String requestedPath) throws IOException {\r
-\r
- response.setDateHeader("Last-Modified", JGitUtils.getCommitDate(commit).getTime());\r
- response.setHeader("Cache-Control", "public, max-age=3600, must-revalidate");\r
-\r
- super.streamFromRepo(response, repository, commit, requestedPath);\r
- }\r
-\r
- @Override\r
- protected void sendContent(HttpServletResponse response, Date date, InputStream is) throws ServletException, IOException {\r
- response.setDateHeader("Last-Modified", date.getTime());\r
- response.setHeader("Cache-Control", "public, max-age=3600, must-revalidate");\r
-\r
- super.sendContent(response, date, is);\r
-- }\r
--}\r
++/*
++ * Copyright 2012 gitblit.com.
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++package com.gitblit.servlet;
++
++import java.io.IOException;
++import java.io.InputStream;
++import java.util.Date;
++
++import javax.servlet.ServletException;
++import javax.servlet.http.HttpServletRequest;
++import javax.servlet.http.HttpServletResponse;
++
++import org.eclipse.jgit.lib.Repository;
++import org.eclipse.jgit.revwalk.RevCommit;
++
++import com.gitblit.Constants;
++import com.gitblit.manager.IRepositoryManager;
++import com.gitblit.manager.IRuntimeManager;
++import com.gitblit.utils.JGitUtils;
++import com.google.inject.Inject;
++import com.google.inject.Singleton;
++
++/**
++ * Serves the content of a gh-pages branch.
++ *
++ * @author James Moger
++ *
++ */
++@Singleton
++public class PagesServlet extends RawServlet {
++
++ private static final long serialVersionUID = 1L;
++
++
++ /**
++ * Returns an url to this servlet for the specified parameters.
++ *
++ * @param baseURL
++ * @param repository
++ * @param path
++ * @return an url
++ */
++ public static String asLink(String baseURL, String repository, String path) {
++ if (baseURL.length() > 0 && baseURL.charAt(baseURL.length() - 1) == '/') {
++ baseURL = baseURL.substring(0, baseURL.length() - 1);
++ }
++ return baseURL + Constants.PAGES + repository + "/" + (path == null ? "" : ("/" + path));
++ }
++
++ @Inject
++ public PagesServlet(
++ IRuntimeManager runtimeManager,
++ IRepositoryManager repositoryManager) {
++
++ super(runtimeManager, repositoryManager);
++ }
++
++ @Override
++ protected String getBranch(String repository, HttpServletRequest request) {
++ return "gh-pages";
++ }
++
++ @Override
++ protected String getPath(String repository, String branch, HttpServletRequest request) {
++ String pi = request.getPathInfo().substring(1);
++ if (pi.equals(repository)) {
++ return "";
++ }
++ String path = pi.substring(pi.indexOf(repository) + repository.length() + 1);
++ if (path.endsWith("/")) {
++ path = path.substring(0, path.length() - 1);
++ }
++ return path;
++ }
++
++ @Override
++ protected boolean renderIndex() {
++ return true;
++ }
++
++ @Override
++ protected void setContentType(HttpServletResponse response, String contentType) {
++ response.setContentType(contentType);;
++ }
++
++ @Override
++ protected void streamFromRepo(HttpServletResponse response, Repository repository,
++ RevCommit commit, String requestedPath) throws IOException {
++
++ response.setDateHeader("Last-Modified", JGitUtils.getCommitDate(commit).getTime());
++ response.setHeader("Cache-Control", "public, max-age=3600, must-revalidate");
++
++ super.streamFromRepo(response, repository, commit, requestedPath);
++ }
++
++ @Override
++ protected void sendContent(HttpServletResponse response, Date date, InputStream is) throws ServletException, IOException {
++ response.setDateHeader("Last-Modified", date.getTime());
++ response.setHeader("Cache-Control", "public, max-age=3600, must-revalidate");
++
++ super.sendContent(response, date, is);
++ }
++}