James Moger
2013-11-18 cacf8bff097fbb66a7be1bfe267b5da2605145f8
src/main/java/com/gitblit/git/GitServlet.java
@@ -15,11 +15,16 @@
 */
package com.gitblit.git;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import com.gitblit.GitBlit;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.manager.ISessionManager;
import com.gitblit.manager.IUserManager;
/**
 * The GitServlet provides http/https access to Git repositories.
@@ -28,15 +33,37 @@
 * @author James Moger
 *
 */
@Singleton
public class GitServlet extends org.eclipse.jgit.http.server.GitServlet {
   private static final long serialVersionUID = 1L;
   private final IRuntimeManager runtimeManager;
   private final IUserManager userManager;
   private final ISessionManager sessionManager;
   private final IRepositoryManager repositoryManager;
   @Inject
   public GitServlet(
         IRuntimeManager runtimeManager,
         IUserManager userManager,
         ISessionManager sessionManager,
         IRepositoryManager repositoryManager) {
      super();
      this.runtimeManager = runtimeManager;
      this.userManager = userManager;
      this.sessionManager = sessionManager;
      this.repositoryManager = repositoryManager;
   }
   @Override
   public void init(ServletConfig config) throws ServletException {
      setRepositoryResolver(new RepositoryResolver<HttpServletRequest>(GitBlit.getRepositoriesFolder()));
      setUploadPackFactory(new GitblitUploadPackFactory<HttpServletRequest>());
      setReceivePackFactory(new GitblitReceivePackFactory<HttpServletRequest>());
      setRepositoryResolver(new RepositoryResolver<HttpServletRequest>(sessionManager, repositoryManager));
      setUploadPackFactory(new GitblitUploadPackFactory<HttpServletRequest>(sessionManager));
      setReceivePackFactory(new GitblitReceivePackFactory<HttpServletRequest>(runtimeManager, userManager, repositoryManager));
      super.init(config);
   }
}