From 1b34b05f5b8d2d0fd51819b286e22d7ddd27cb27 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 03 Jul 2014 16:20:37 -0400
Subject: [PATCH] Embrace @Inject for Managers, Servlets, and Filters

---
 src/main/java/com/gitblit/GitBlit.java |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java
index 0834252..8bfa043 100644
--- a/src/main/java/com/gitblit/GitBlit.java
+++ b/src/main/java/com/gitblit/GitBlit.java
@@ -20,9 +20,11 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
+import javax.inject.Inject;
 import javax.inject.Singleton;
 import javax.servlet.http.HttpServletRequest;
 
@@ -69,6 +71,7 @@
 
 	private ITicketService ticketService;
 
+	@Inject
 	public GitBlit(
 			IRuntimeManager runtimeManager,
 			IPluginManager pluginManager,
@@ -115,6 +118,21 @@
 	@Override
 	public boolean isServingRepositories() {
 		return servicesManager.isServingRepositories();
+	}
+
+	@Override
+	public boolean isServingHTTP() {
+		return servicesManager.isServingHTTP();
+	}
+
+	@Override
+	public boolean isServingGIT() {
+		return servicesManager.isServingGIT();
+	}
+
+	@Override
+	public boolean isServingSSH() {
+		return servicesManager.isServingSSH();
 	}
 
 	protected Object [] getModules() {
@@ -249,6 +267,24 @@
 			}
 		});
 
+		// consider the user's transport preference
+		RepositoryUrl preferredUrl = null;
+		Transport preferredTransport = user.getPreferences().getTransport();
+		if (preferredTransport != null) {
+			Iterator<RepositoryUrl> itr = list.iterator();
+			while (itr.hasNext()) {
+				RepositoryUrl url = itr.next();
+				if (url.transport.equals(preferredTransport)) {
+					itr.remove();
+					preferredUrl = url;
+					break;
+				}
+			}
+		}
+		if (preferredUrl != null) {
+			list.add(0, preferredUrl);
+		}
+
 		return list;
 	}
 
@@ -352,6 +388,7 @@
 
 					// core managers
 					IRuntimeManager.class,
+					IPluginManager.class,
 					INotificationManager.class,
 					IUserManager.class,
 					IAuthenticationManager.class,
@@ -377,6 +414,10 @@
 
 		@Provides @Singleton IRuntimeManager provideRuntimeManager() {
 			return runtimeManager;
+		}
+
+		@Provides @Singleton IPluginManager providePluginManager() {
+			return pluginManager;
 		}
 
 		@Provides @Singleton INotificationManager provideNotificationManager() {
@@ -410,6 +451,7 @@
 		@Provides @Singleton NullTicketService provideNullTicketService() {
 			return new NullTicketService(
 					runtimeManager,
+					pluginManager,
 					notificationManager,
 					userManager,
 					repositoryManager);
@@ -418,6 +460,7 @@
 		@Provides @Singleton FileTicketService provideFileTicketService() {
 			return new FileTicketService(
 					runtimeManager,
+					pluginManager,
 					notificationManager,
 					userManager,
 					repositoryManager);
@@ -426,6 +469,7 @@
 		@Provides @Singleton BranchTicketService provideBranchTicketService() {
 			return new BranchTicketService(
 					runtimeManager,
+					pluginManager,
 					notificationManager,
 					userManager,
 					repositoryManager);
@@ -434,6 +478,7 @@
 		@Provides @Singleton RedisTicketService provideRedisTicketService() {
 			return new RedisTicketService(
 					runtimeManager,
+					pluginManager,
 					notificationManager,
 					userManager,
 					repositoryManager);

--
Gitblit v1.9.1