James Moger
2013-11-20 bdfdc9c65c5eb2786b7dd8e33ba8a12a3bafe86d
src/main/java/com/gitblit/DownloadZipServlet.java
@@ -20,6 +20,8 @@
import java.text.ParseException;
import java.util.Date;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletResponse;
@@ -29,6 +31,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.utils.CompressionUtils;
import com.gitblit.utils.JGitUtils;
import com.gitblit.utils.MarkdownUtils;
@@ -41,11 +45,16 @@
 * @author James Moger
 *
 */
@Singleton
public class DownloadZipServlet extends HttpServlet {
   private static final long serialVersionUID = 1L;
   private transient Logger logger = LoggerFactory.getLogger(DownloadZipServlet.class);
   private final IStoredSettings settings;
   private final IRepositoryManager repositoryManager;
   public static enum Format {
      zip(".zip"), tar(".tar"), gz(".tar.gz"), xz(".tar.xz"), bzip2(".tar.bzip2");
@@ -66,8 +75,14 @@
      }
   }
   public DownloadZipServlet() {
   @Inject
   public DownloadZipServlet(
         IRuntimeManager runtimeManager,
         IRepositoryManager repositoryManager) {
      super();
      this.settings = runtimeManager.getSettings();
      this.repositoryManager = repositoryManager;
   }
   /**
@@ -101,7 +116,7 @@
   private void processRequest(javax.servlet.http.HttpServletRequest request,
         javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException,
         java.io.IOException {
      if (!GitBlit.getBoolean(Keys.web.allowZipDownloads, true)) {
      if (!settings.getBoolean(Keys.web.allowZipDownloads, true)) {
         logger.warn("Zip downloads are disabled");
         response.sendError(HttpServletResponse.SC_FORBIDDEN);
         return;
@@ -130,9 +145,9 @@
            name += "-" + objectId;
         }
         Repository r = GitBlit.self().getRepository(repository);
         Repository r = repositoryManager.getRepository(repository);
         if (r == null) {
            if (GitBlit.self().isCollectingGarbage(repository)) {
            if (repositoryManager.isCollectingGarbage(repository)) {
               error(response, MessageFormat.format("# Error\nGitblit is busy collecting garbage in {0}", repository));
               return;
            } else {