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/LuceneExecutor.java |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/gitblit/LuceneExecutor.java b/src/main/java/com/gitblit/LuceneExecutor.java
index 28523ce..b7b71c5 100644
--- a/src/main/java/com/gitblit/LuceneExecutor.java
+++ b/src/main/java/com/gitblit/LuceneExecutor.java
@@ -85,6 +85,7 @@
 import org.slf4j.LoggerFactory;
 
 import com.gitblit.Constants.SearchObjectType;
+import com.gitblit.manager.IRepositoryManager;
 import com.gitblit.models.PathModel.PathChangeModel;
 import com.gitblit.models.RefModel;
 import com.gitblit.models.RepositoryModel;
@@ -127,6 +128,7 @@
 	private final Logger logger = LoggerFactory.getLogger(LuceneExecutor.class);
 
 	private final IStoredSettings storedSettings;
+	private final IRepositoryManager repositoryManager;
 	private final File repositoriesFolder;
 
 	private final Map<String, IndexSearcher> searchers = new ConcurrentHashMap<String, IndexSearcher>();
@@ -135,9 +137,13 @@
 	private final String luceneIgnoreExtensions = "7z arc arj bin bmp dll doc docx exe gif gz jar jpg lib lzh odg odf odt pdf ppt png so swf xcf xls xlsx zip";
 	private Set<String> excludedExtensions;
 
-	public LuceneExecutor(IStoredSettings settings, File repositoriesFolder) {
+	public LuceneExecutor(
+			IStoredSettings settings,
+			IRepositoryManager repositoryManager) {
+
 		this.storedSettings = settings;
-		this.repositoriesFolder = repositoriesFolder;
+		this.repositoryManager = repositoryManager;
+		this.repositoriesFolder = repositoryManager.getRepositoriesFolder();
 		String exts = luceneIgnoreExtensions;
 		if (settings != null) {
 			exts = settings.getString(Keys.web.luceneIgnoreExtensions, exts);
@@ -160,17 +166,17 @@
 		String exts = storedSettings.getString(Keys.web.luceneIgnoreExtensions, luceneIgnoreExtensions);
 		excludedExtensions = new TreeSet<String>(StringUtils.getStringsFromValue(exts));
 
-		if (GitBlit.self().isCollectingGarbage()) {
+		if (repositoryManager.isCollectingGarbage()) {
 			// busy collecting garbage, try again later
 			return;
 		}
 
-		for (String repositoryName: GitBlit.self().getRepositoryList()) {
-			RepositoryModel model = GitBlit.self().getRepositoryModel(repositoryName);
+		for (String repositoryName: repositoryManager.getRepositoryList()) {
+			RepositoryModel model = repositoryManager.getRepositoryModel(repositoryName);
 			if (model.hasCommits && !ArrayUtils.isEmpty(model.indexedBranches)) {
-				Repository repository = GitBlit.self().getRepository(model.name);
+				Repository repository = repositoryManager.getRepository(model.name);
 				if (repository == null) {
-					if (GitBlit.self().isCollectingGarbage(model.name)) {
+					if (repositoryManager.isCollectingGarbage(model.name)) {
 						logger.info(MessageFormat.format("Skipping Lucene index of {0}, busy garbage collecting", repositoryName));
 					}
 					continue;

--
Gitblit v1.9.1