From c2188a840bc4153ae92112b04b2e06a90d3944aa Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Wed, 27 Apr 2016 18:58:06 -0400
Subject: [PATCH] Ticket Reference handling #1048

---
 src/main/java/com/gitblit/guice/CoreModule.java |   67 +++++++++++++--------------------
 1 files changed, 26 insertions(+), 41 deletions(-)

diff --git a/src/main/java/com/gitblit/guice/CoreModule.java b/src/main/java/com/gitblit/guice/CoreModule.java
index 9b479c0..e2d1439 100644
--- a/src/main/java/com/gitblit/guice/CoreModule.java
+++ b/src/main/java/com/gitblit/guice/CoreModule.java
@@ -15,36 +15,36 @@
  */
 package com.gitblit.guice;
 
-import javax.inject.Singleton;
-
 import com.gitblit.FileSettings;
 import com.gitblit.GitBlit;
 import com.gitblit.IStoredSettings;
-import com.gitblit.Keys;
 import com.gitblit.manager.AuthenticationManager;
 import com.gitblit.manager.FederationManager;
+import com.gitblit.manager.FilestoreManager;
 import com.gitblit.manager.IAuthenticationManager;
 import com.gitblit.manager.IFederationManager;
+import com.gitblit.manager.IFilestoreManager;
 import com.gitblit.manager.IGitblit;
 import com.gitblit.manager.INotificationManager;
 import com.gitblit.manager.IPluginManager;
 import com.gitblit.manager.IProjectManager;
 import com.gitblit.manager.IRepositoryManager;
 import com.gitblit.manager.IRuntimeManager;
+import com.gitblit.manager.IServicesManager;
 import com.gitblit.manager.IUserManager;
 import com.gitblit.manager.NotificationManager;
 import com.gitblit.manager.PluginManager;
 import com.gitblit.manager.ProjectManager;
 import com.gitblit.manager.RepositoryManager;
 import com.gitblit.manager.RuntimeManager;
+import com.gitblit.manager.ServicesManager;
 import com.gitblit.manager.UserManager;
-import com.gitblit.transport.ssh.FileKeyManager;
+import com.gitblit.tickets.ITicketService;
 import com.gitblit.transport.ssh.IPublicKeyManager;
-import com.gitblit.transport.ssh.MemoryKeyManager;
-import com.gitblit.transport.ssh.NullKeyManager;
-import com.gitblit.utils.StringUtils;
+import com.gitblit.utils.JSoupXssFilter;
+import com.gitblit.utils.WorkQueue;
+import com.gitblit.utils.XssFilter;
 import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
 
 /**
  * CoreModule references all the core business objects.
@@ -58,43 +58,28 @@
 	protected void configure() {
 
 		bind(IStoredSettings.class).toInstance(new FileSettings());
+		bind(XssFilter.class).to(JSoupXssFilter.class);
+
+		// bind complex providers
+		bind(IPublicKeyManager.class).toProvider(IPublicKeyManagerProvider.class);
+		bind(ITicketService.class).toProvider(ITicketServiceProvider.class);
+		bind(WorkQueue.class).toProvider(WorkQueueProvider.class);
 
 		// core managers
-		bind(IRuntimeManager.class).to(RuntimeManager.class).in(Singleton.class);
-		bind(IPluginManager.class).to(PluginManager.class).in(Singleton.class);
-		bind(INotificationManager.class).to(NotificationManager.class).in(Singleton.class);
-		bind(IUserManager.class).to(UserManager.class).in(Singleton.class);
-		bind(IAuthenticationManager.class).to(AuthenticationManager.class).in(Singleton.class);
-		bind(IRepositoryManager.class).to(RepositoryManager.class).in(Singleton.class);
-		bind(IProjectManager.class).to(ProjectManager.class).in(Singleton.class);
-		bind(IFederationManager.class).to(FederationManager.class).in(Singleton.class);
+		bind(IRuntimeManager.class).to(RuntimeManager.class);
+		bind(IPluginManager.class).to(PluginManager.class);
+		bind(INotificationManager.class).to(NotificationManager.class);
+		bind(IUserManager.class).to(UserManager.class);
+		bind(IAuthenticationManager.class).to(AuthenticationManager.class);
+		bind(IRepositoryManager.class).to(RepositoryManager.class);
+		bind(IProjectManager.class).to(ProjectManager.class);
+		bind(IFederationManager.class).to(FederationManager.class);
+		bind(IFilestoreManager.class).to(FilestoreManager.class);
 
 		// the monolithic manager
-		bind(IGitblit.class).to(GitBlit.class).in(Singleton.class);
-	}
+		bind(IGitblit.class).to(GitBlit.class);
 
-	@Provides
-	@Singleton
-	IPublicKeyManager providePublicKeyManager(IStoredSettings settings, IRuntimeManager runtimeManager) {
-
-		String clazz = settings.getString(Keys.git.sshKeysManager, FileKeyManager.class.getName());
-		if (StringUtils.isEmpty(clazz)) {
-			clazz = FileKeyManager.class.getName();
-		}
-		if (FileKeyManager.class.getName().equals(clazz)) {
-			return new FileKeyManager(runtimeManager);
-		} else if (NullKeyManager.class.getName().equals(clazz)) {
-			return new NullKeyManager();
-		} else if (MemoryKeyManager.class.getName().equals(clazz)) {
-			return new MemoryKeyManager();
-		} else {
-			try {
-				Class<?> mgrClass = Class.forName(clazz);
-				return (IPublicKeyManager) mgrClass.newInstance();
-			} catch (Exception e) {
-
-			}
-			return null;
-		}
+		// manager for long-running daemons and services
+		bind(IServicesManager.class).to(ServicesManager.class);
 	}
 }
\ No newline at end of file

--
Gitblit v1.9.1