From bdfdc9c65c5eb2786b7dd8e33ba8a12a3bafe86d 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 NotificationManager from GitBlit singleton

---
 src/main/java/com/gitblit/GCExecutor.java |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/gitblit/GCExecutor.java b/src/main/java/com/gitblit/GCExecutor.java
index 681065b..3ab9895 100644
--- a/src/main/java/com/gitblit/GCExecutor.java
+++ b/src/main/java/com/gitblit/GCExecutor.java
@@ -31,6 +31,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.gitblit.manager.IRepositoryManager;
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.utils.FileUtils;
 
@@ -53,14 +54,20 @@
 
 	private final IStoredSettings settings;
 
+	private final IRepositoryManager repositoryManager;
+
 	private AtomicBoolean running = new AtomicBoolean(false);
 
 	private AtomicBoolean forceClose = new AtomicBoolean(false);
 
 	private final Map<String, GCStatus> gcCache = new ConcurrentHashMap<String, GCStatus>();
 
-	public GCExecutor(IStoredSettings settings) {
+	public GCExecutor(
+			IStoredSettings settings,
+			IRepositoryManager repositoryManager) {
+
 		this.settings = settings;
+		this.repositoryManager = repositoryManager;
 	}
 
 	/**
@@ -131,7 +138,7 @@
 		running.set(true);
 		Date now = new Date();
 
-		for (String repositoryName : GitBlit.self().getRepositoryList()) {
+		for (String repositoryName : repositoryManager.getRepositoryList()) {
 			if (forceClose.get()) {
 				break;
 			}
@@ -143,8 +150,8 @@
 			RepositoryModel model = null;
 			Repository repository = null;
 			try {
-				model = GitBlit.self().getRepositoryModel(repositoryName);
-				repository = GitBlit.self().getRepository(repositoryName);
+				model = repositoryManager.getRepositoryModel(repositoryName);
+				repository = repositoryManager.getRepository(repositoryName);
 				if (repository == null) {
 					logger.warn(MessageFormat.format("GCExecutor is missing repository {0}?!?", repositoryName));
 					continue;
@@ -204,7 +211,7 @@
 					if (garbageCollected) {
 						// update the last GC date
 						model.lastGC = new Date();
-						GitBlit.self().updateConfiguration(repository, model);
+						repositoryManager.updateConfiguration(repository, model);
 					}
 
 					repository.close();

--
Gitblit v1.9.1