From 241f57365649ffbbcc1923a1712ab86f6a443bc6 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 03 Jul 2014 17:00:40 -0400
Subject: [PATCH] Implement custom IPublicKeyManager provider

---
 src/main/java/com/gitblit/guice/CoreModule.java |   34 ++--------------------------------
 1 files changed, 2 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/gitblit/guice/CoreModule.java b/src/main/java/com/gitblit/guice/CoreModule.java
index cc73f09..6dbe615 100644
--- a/src/main/java/com/gitblit/guice/CoreModule.java
+++ b/src/main/java/com/gitblit/guice/CoreModule.java
@@ -18,7 +18,6 @@
 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.IAuthenticationManager;
@@ -38,14 +37,9 @@
 import com.gitblit.manager.RuntimeManager;
 import com.gitblit.manager.ServicesManager;
 import com.gitblit.manager.UserManager;
-import com.gitblit.transport.ssh.FileKeyManager;
 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.WorkQueue;
 import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
 
 /**
  * CoreModule references all the core business objects.
@@ -61,8 +55,9 @@
 		bind(IStoredSettings.class).toInstance(new FileSettings());
 
 		// bind complex providers
+		bind(IPublicKeyManager.class).toProvider(IPublicKeyManagerProvider.class);
 		bind(WorkQueue.class).toProvider(WorkQueueProvider.class);
-		
+
 		// core managers
 		bind(IRuntimeManager.class).to(RuntimeManager.class);
 		bind(IPluginManager.class).to(PluginManager.class);
@@ -78,30 +73,5 @@
 
 		// manager for long-running daemons and services
 		bind(IServicesManager.class).to(ServicesManager.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;
-		}
 	}
 }
\ No newline at end of file

--
Gitblit v1.9.1