James Moger
2014-04-23 ddaed96036ebf82430e09ad62ff9f7a7dc828dfe
src/main/java/com/gitblit/servlet/PagesServlet.java
@@ -23,14 +23,12 @@
import java.util.Set;
import java.util.TreeSet;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jgit.lib.FileMode;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevTree;
@@ -40,9 +38,8 @@
import com.gitblit.Constants;
import com.gitblit.IStoredSettings;
import com.gitblit.Keys;
import com.gitblit.Keys.web;
import com.gitblit.dagger.DaggerServlet;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.models.PathModel;
import com.gitblit.models.RefModel;
import com.gitblit.utils.ArrayUtils;
@@ -53,31 +50,28 @@
import com.gitblit.wicket.MarkupProcessor;
import com.gitblit.wicket.MarkupProcessor.MarkupDocument;
import dagger.ObjectGraph;
/**
 * Serves the content of a gh-pages branch.
 *
 * @author James Moger
 *
 */
@Singleton
public class PagesServlet extends HttpServlet {
public class PagesServlet extends DaggerServlet {
   private static final long serialVersionUID = 1L;
   private transient Logger logger = LoggerFactory.getLogger(PagesServlet.class);
   private final IStoredSettings settings;
   private IStoredSettings settings;
   private final IRepositoryManager repositoryManager;
   private IRepositoryManager repositoryManager;
   @Inject
   public PagesServlet(
         IRuntimeManager runtimeManager,
         IRepositoryManager repositoryManager) {
      super();
      this.settings = runtimeManager.getSettings();
      this.repositoryManager = repositoryManager;
   @Override
   protected void inject(ObjectGraph dagger) {
      this.settings = dagger.get(IStoredSettings.class);
      this.repositoryManager = dagger.get(IRepositoryManager.class);
   }
   /**
@@ -235,11 +229,17 @@
               response.getWriter().append("<thead><tr><th>path</th><th>mode</th><th>size</th></tr>");
               response.getWriter().append("</thead>");
               response.getWriter().append("<tbody>");
               String pattern = "<tr><td><a href=\"{0}\">{0}</a></td><td>{1}</td><td>{2}</td></tr>";
               String pattern = "<tr><td><a href=\"{0}\">{1}</a></td><td>{2}</td><td>{3}</td></tr>";
               final ByteFormat byteFormat = new ByteFormat();
               List<PathModel> entries = JGitUtils.getFilesInPath(r, resource, commit);
               if (!entries.isEmpty()) {
                  if (entries.get(0).path.indexOf('/') > -1) {
                     // we are in a subdirectory, add parent directory link
                     entries.add(0, new PathModel("..", resource + "/..", 0, FileMode.TREE.getBits(), null, null));
                  }
               }
               for (PathModel entry : entries) {
                  response.getWriter().append(MessageFormat.format(pattern, entry.name, JGitUtils.getPermissionsFromMode(entry.mode), byteFormat.format(entry.size)));
                  response.getWriter().append(MessageFormat.format(pattern, entry.path, entry.name, JGitUtils.getPermissionsFromMode(entry.mode), byteFormat.format(entry.size)));
               }
               response.getWriter().append("</tbody>");
               response.getWriter().append("</table>");