From 32539684194f55a76ec171852f582bdafa4c5631 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] Create a Gitblit aggregate manager delegate for git upload/receive tasks

---
 src/main/java/com/gitblit/GitBlit.java |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java
index 31dedf1..b121b2b 100644
--- a/src/main/java/com/gitblit/GitBlit.java
+++ b/src/main/java/com/gitblit/GitBlit.java
@@ -65,7 +65,6 @@
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
 import javax.servlet.annotation.WebListener;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
@@ -95,6 +94,7 @@
 import com.gitblit.Constants.FederationToken;
 import com.gitblit.Constants.PermissionType;
 import com.gitblit.Constants.RegistrantType;
+import com.gitblit.dagger.DaggerContextListener;
 import com.gitblit.fanout.FanoutNioService;
 import com.gitblit.fanout.FanoutService;
 import com.gitblit.fanout.FanoutSocketService;
@@ -164,7 +164,7 @@
  *
  */
 @WebListener
-public class GitBlit extends InjectionContextListener
+public class GitBlit extends DaggerContextListener
 					 implements IRuntimeManager,
 								INotificationManager,
 								IUserManager,
@@ -611,7 +611,7 @@
 	public void setUserService(IUserService userService) {
 		logger.info("Setting up user service " + userService.toString());
 		this.userService = userService;
-		this.userService.setup(settings);
+		this.userService.setup(getManager(IRuntimeManager.class));
 	}
 
 	@Override
@@ -3479,9 +3479,9 @@
 
 		// prepare service executors
 		mailExecutor = new MailExecutor(settings);
-		luceneExecutor = new LuceneExecutor(settings, repositoriesFolder);
-		gcExecutor = new GCExecutor(settings);
-		mirrorExecutor = new MirrorExecutor(settings);
+		luceneExecutor = new LuceneExecutor(settings, getManager(IRepositoryManager.class));
+		gcExecutor = new GCExecutor(settings, getManager(IRepositoryManager.class));
+		mirrorExecutor = new MirrorExecutor(settings, getManager(IRepositoryManager.class));
 
 		// initialize utilities
 		String prefix = settings.getString(Keys.git.userRepositoryPrefix, "~");
@@ -3641,7 +3641,9 @@
 		String bindInterface = settings.getString(Keys.git.daemonBindInterface, "localhost");
 		if (port > 0) {
 			try {
-				gitDaemon = new GitDaemon(bindInterface, port, getRepositoriesFolder());
+				// HACK temporary pending manager separation and injection
+				Gitblit gitblit = new Gitblit(this, this, this, this, this, this, this, this);
+				gitDaemon = new GitDaemon(gitblit);
 				gitDaemon.start();
 			} catch (IOException e) {
 				gitDaemon = null;
@@ -3854,7 +3856,7 @@
 	 * shutting down or because the servlet container is re-deploying Gitblit.
 	 */
 	@Override
-	public void contextDestroyed(ServletContextEvent contextEvent) {
+	protected void destroyContext(ServletContext context) {
 		logger.info("Gitblit context destroyed by servlet container.");
 		scheduledExecutor.shutdownNow();
 		luceneExecutor.close();
@@ -4052,6 +4054,11 @@
 		userService.logout(user);
 	}
 
+	@Override
+	protected Object [] getModules() {
+		return new Object [] { new DaggerModule(this) };
+	}
+
 	/**
 	 * Instantiate and inject all filters and servlets into the container using
 	 * the servlet 3 specification.

--
Gitblit v1.9.1