From db4f6b5740c6ea45d9e2209dc569bc18904a8b4d Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 26 Nov 2013 16:07:04 -0500
Subject: [PATCH] Define manager interfaces and update all of Gitblit to use managers

---
 src/main/java/com/gitblit/SyndicationServlet.java |   24 ++++++++++++++++--------
 1 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/gitblit/SyndicationServlet.java b/src/main/java/com/gitblit/SyndicationServlet.java
index 6b3c01c..ae50c3e 100644
--- a/src/main/java/com/gitblit/SyndicationServlet.java
+++ b/src/main/java/com/gitblit/SyndicationServlet.java
@@ -31,6 +31,9 @@
 import org.slf4j.LoggerFactory;
 
 import com.gitblit.AuthenticationFilter.AuthenticatedRequest;
+import com.gitblit.manager.IProjectManager;
+import com.gitblit.manager.IRepositoryManager;
+import com.gitblit.manager.IRuntimeManager;
 import com.gitblit.models.FeedEntryModel;
 import com.gitblit.models.ProjectModel;
 import com.gitblit.models.RefModel;
@@ -38,6 +41,7 @@
 import com.gitblit.models.UserModel;
 import com.gitblit.utils.HttpUtils;
 import com.gitblit.utils.JGitUtils;
+import com.gitblit.utils.MessageProcessor;
 import com.gitblit.utils.StringUtils;
 import com.gitblit.utils.SyndicationUtils;
 
@@ -126,6 +130,10 @@
 			javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException,
 			java.io.IOException {
 
+		IStoredSettings settings = GitBlit.getManager(IRuntimeManager.class).getSettings();
+		IRepositoryManager repositoryManager = GitBlit.getManager(IRepositoryManager.class);
+		IProjectManager projectManager = GitBlit.getManager(IProjectManager.class);
+
 		String servletUrl = request.getContextPath() + request.getServletPath();
 		String url = request.getRequestURI().substring(servletUrl.length());
 		if (url.charAt(0) == '/' && url.length() > 1) {
@@ -143,7 +151,7 @@
 				searchType = type;
 			}
 		}
-		int length = GitBlit.getInteger(Keys.web.syndicationEntries, 25);
+		int length = settings.getInteger(Keys.web.syndicationEntries, 25);
 		if (StringUtils.isEmpty(objectId)) {
 			objectId = org.eclipse.jgit.lib.Constants.HEAD;
 		}
@@ -175,7 +183,7 @@
 			if (request instanceof AuthenticatedRequest) {
 				user = ((AuthenticatedRequest) request).getUser();
 			}
-			ProjectModel project = GitBlit.self().getProjectModel(repositoryName, user);
+			ProjectModel project = projectManager.getProjectModel(repositoryName, user);
 			if (project != null) {
 				isProjectFeed = true;
 				repositories = new ArrayList<String>(project.repositories);
@@ -193,7 +201,7 @@
 		}
 
 
-		boolean mountParameters = GitBlit.getBoolean(Keys.web.mountParameters, true);
+		boolean mountParameters = settings.getBoolean(Keys.web.mountParameters, true);
 		String urlPattern;
 		if (mountParameters) {
 			// mounted parameters
@@ -203,13 +211,13 @@
 			urlPattern = "{0}/commit/?r={1}&h={2}";
 		}
 		String gitblitUrl = HttpUtils.getGitblitURL(request);
-		char fsc = GitBlit.getChar(Keys.web.forwardSlashCharacter, '/');
+		char fsc = settings.getChar(Keys.web.forwardSlashCharacter, '/');
 
 		List<FeedEntryModel> entries = new ArrayList<FeedEntryModel>();
 
 		for (String name : repositories) {
-			Repository repository = GitBlit.self().getRepository(name);
-			RepositoryModel model = GitBlit.self().getRepositoryModel(name);
+			Repository repository = repositoryManager.getRepository(name);
+			RepositoryModel model = repositoryManager.getRepositoryModel(name);
 
 			if (repository == null) {
 				if (model.isCollectingGarbage) {
@@ -234,6 +242,7 @@
 						offset, length);
 			}
 			Map<ObjectId, List<RefModel>> allRefs = JGitUtils.getAllRefs(repository, model.showRemoteBranches);
+			MessageProcessor processor = new MessageProcessor(settings);
 
 			// convert RevCommit to SyndicatedEntryModel
 			for (RevCommit commit : commits) {
@@ -244,8 +253,7 @@
 						StringUtils.encodeURL(model.name.replace('/', fsc)), commit.getName());
 				entry.published = commit.getCommitterIdent().getWhen();
 				entry.contentType = "text/html";
-				String message = GitBlit.self().processCommitMessage(model,
-						commit.getFullMessage());
+				String message = processor.processCommitMessage(model, commit.getFullMessage());
 				entry.content = message;
 				entry.repository = model.name;
 				entry.branch = objectId;

--
Gitblit v1.9.1