From 9d44ade215922fd9e7bda7c604b31c31d217d750 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 10 Apr 2014 18:58:09 -0400
Subject: [PATCH] Create git and gitblit dispatchers

---
 src/main/java/com/gitblit/transport/ssh/SshCommandFactory.java |   45 ++++++++++-----------------------------------
 1 files changed, 10 insertions(+), 35 deletions(-)

diff --git a/src/main/java/com/gitblit/transport/ssh/SshCommandFactory.java b/src/main/java/com/gitblit/transport/ssh/SshCommandFactory.java
index b8dd5b9..de7aad1 100644
--- a/src/main/java/com/gitblit/transport/ssh/SshCommandFactory.java
+++ b/src/main/java/com/gitblit/transport/ssh/SshCommandFactory.java
@@ -34,21 +34,11 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.gitblit.git.GitblitReceivePackFactory;
-import com.gitblit.git.GitblitUploadPackFactory;
-import com.gitblit.git.RepositoryResolver;
 import com.gitblit.manager.IGitblit;
 import com.gitblit.models.UserModel;
-import com.gitblit.transport.ssh.commands.AddKeyCommand;
-import com.gitblit.transport.ssh.commands.CreateRepository;
 import com.gitblit.transport.ssh.commands.DispatchCommand;
-import com.gitblit.transport.ssh.commands.ListRepositoriesCommand;
-import com.gitblit.transport.ssh.commands.Receive;
-import com.gitblit.transport.ssh.commands.RemoveKeyCommand;
-import com.gitblit.transport.ssh.commands.ReviewCommand;
-import com.gitblit.transport.ssh.commands.SetAccountCommand;
-import com.gitblit.transport.ssh.commands.Upload;
-import com.gitblit.transport.ssh.commands.VersionCommand;
+import com.gitblit.transport.ssh.git.GitDispatchCommand;
+import com.gitblit.transport.ssh.gitblit.GitblitDispatchCommand;
 import com.gitblit.utils.IdGenerator;
 import com.gitblit.utils.WorkQueue;
 import com.google.common.util.concurrent.Atomics;
@@ -86,31 +76,16 @@
 	protected DispatchCommand createRootDispatcher(SshDaemonClient client, String cmdLine) {
 		final UserModel user = client.getUser();
 
-		DispatchCommand gitblitCmd = new DispatchCommand();
-		gitblitCmd.registerCommand(user, VersionCommand.class);
-		gitblitCmd.registerCommand(user, AddKeyCommand.class);
-		gitblitCmd.registerCommand(user, RemoveKeyCommand.class);
-		gitblitCmd.registerCommand(user, ListRepositoriesCommand.class);
-		gitblitCmd.registerCommand(user, ReviewCommand.class);
-
-		gitblitCmd.registerCommand(user, CreateRepository.class);
-		gitblitCmd.registerCommand(user, SetAccountCommand.class);
-
-		DispatchCommand gitCmd = new DispatchCommand();
-		gitCmd.registerCommand(user, Upload.class);
-		gitCmd.registerCommand(user, Receive.class);
-
-		DispatchCommand root = new DispatchCommand();
-		root.registerDispatcher("gitblit", gitblitCmd);
-		root.registerDispatcher("git", gitCmd);
-
-		root.setRepositoryResolver(new RepositoryResolver<SshDaemonClient>(gitblit));
-		root.setUploadPackFactory(new GitblitUploadPackFactory<SshDaemonClient>(gitblit));
-		root.setReceivePackFactory(new GitblitReceivePackFactory<SshDaemonClient>(gitblit));
-		root.setAuthenticator(keyAuthenticator);
-
+		DispatchCommand root = new DispatchCommand() {
+		};
 		root.setContext(new SshCommandContext(gitblit, client, cmdLine));
 
+		// TODO convert these dispatchers to plugin extension points
+		root.registerDispatcher(user, GitblitDispatchCommand.class);
+		root.registerDispatcher(user, GitDispatchCommand.class);
+
+		root.setAuthenticator(keyAuthenticator);
+
 		return root;
 	}
 

--
Gitblit v1.9.1