From aa6d43e8b28ff73d69a920e9b3a7b284cfce00c3 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 29 Nov 2013 11:05:51 -0500
Subject: [PATCH] Extract SessionManager from GitBlit singleton

---
 src/main/java/com/gitblit/BranchGraphServlet.java |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/gitblit/BranchGraphServlet.java b/src/main/java/com/gitblit/BranchGraphServlet.java
index 293a291..58a5778 100644
--- a/src/main/java/com/gitblit/BranchGraphServlet.java
+++ b/src/main/java/com/gitblit/BranchGraphServlet.java
@@ -36,6 +36,8 @@
 import java.util.TreeSet;
 
 import javax.imageio.ImageIO;
+import javax.inject.Inject;
+import javax.inject.Singleton;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
@@ -50,6 +52,8 @@
 import org.eclipse.jgit.revplot.PlotWalk;
 import org.eclipse.jgit.revwalk.RevCommit;
 
+import com.gitblit.manager.IRepositoryManager;
+import com.gitblit.manager.IRuntimeManager;
 import com.gitblit.utils.JGitUtils;
 import com.gitblit.utils.StringUtils;
 
@@ -59,6 +63,7 @@
  * @author James Moger
  *
  */
+@Singleton
 public class BranchGraphServlet extends HttpServlet {
 
 	private static final long serialVersionUID = 1L;
@@ -72,8 +77,18 @@
 
 	private final Stroke[] strokeCache;
 
-	public BranchGraphServlet() {
+	private final IStoredSettings settings;
+
+	private final IRepositoryManager repositoryManager;
+
+	@Inject
+	public BranchGraphServlet(
+			IRuntimeManager runtimeManager,
+			IRepositoryManager repositoryManager) {
+
 		super();
+		this.settings = runtimeManager.getSettings();
+		this.repositoryManager = repositoryManager;
 
 		strokeCache = new Stroke[4];
 		for (int i = 1; i < strokeCache.length; i++)
@@ -104,7 +119,7 @@
 		String objectId = req.getParameter("h");
 		Repository r = null;
 		try {
-			r = GitBlit.self().getRepository(repository);
+			r = repositoryManager.getRepository(repository);
 			if (StringUtils.isEmpty(objectId)) {
 				objectId = JGitUtils.getHEADRef(r);
 			}
@@ -128,7 +143,7 @@
 			String objectId = request.getParameter("h");
 			String length = request.getParameter("l");
 
-			r = GitBlit.self().getRepository(repository);
+			r = repositoryManager.getRepository(repository);
 
 			rw = new PlotWalk(r);
 			if (StringUtils.isEmpty(objectId)) {
@@ -138,7 +153,7 @@
 			rw.markStart(rw.lookupCommit(r.resolve(objectId)));
 
 			// default to the items-per-page setting, unless specified
-			int maxCommits = GitBlit.getInteger(Keys.web.itemsPerPage, 50);
+			int maxCommits = settings.getInteger(Keys.web.itemsPerPage, 50);
 			int requestedCommits = maxCommits;
 			if (!StringUtils.isEmpty(length)) {
 				int l = Integer.parseInt(length);

--
Gitblit v1.9.1