From a413ed7c41880cec3c224501dd2ed874fdbeef17 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Sun, 22 Nov 2015 14:53:36 -0500
Subject: [PATCH] Reset build identifiers for next point release cycle
---
src/main/java/com/gitblit/transport/ssh/commands/RootDispatcher.java | 43 +++++++++++++++++++++++++++++--------------
1 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/gitblit/transport/ssh/commands/RootDispatcher.java b/src/main/java/com/gitblit/transport/ssh/commands/RootDispatcher.java
index 5d9eb19..e41ee19 100644
--- a/src/main/java/com/gitblit/transport/ssh/commands/RootDispatcher.java
+++ b/src/main/java/com/gitblit/transport/ssh/commands/RootDispatcher.java
@@ -15,36 +15,51 @@
*/
package com.gitblit.transport.ssh.commands;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import ro.fortsoft.pf4j.PluginWrapper;
+
import com.gitblit.manager.IGitblit;
-import com.gitblit.models.UserModel;
import com.gitblit.transport.ssh.SshDaemonClient;
import com.gitblit.transport.ssh.git.GitDispatcher;
-import com.gitblit.transport.ssh.gitblit.GitblitDispatcher;
+import com.gitblit.transport.ssh.keys.KeysDispatcher;
+import com.gitblit.utils.WorkQueue;
/**
* The root dispatcher is the dispatch command that handles registering all
* other commands.
*
*/
-public class RootDispatcher extends DispatchCommand {
+@CommandMetaData(name = "")
+class RootDispatcher extends DispatchCommand {
- public RootDispatcher(IGitblit gitblit, SshDaemonClient client, String cmdLine) {
+ private Logger log = LoggerFactory.getLogger(getClass());
+
+ public RootDispatcher(IGitblit gitblit, SshDaemonClient client, String cmdLine, WorkQueue workQueue) {
super();
setContext(new SshCommandContext(gitblit, client, cmdLine));
+ setWorkQueue(workQueue);
- final UserModel user = client.getUser();
- registerDispatcher(user, GitblitDispatcher.class);
- registerDispatcher(user, GitDispatcher.class);
+ register(VersionCommand.class);
+ register(GitDispatcher.class);
+ register(KeysDispatcher.class);
+ register(PluginDispatcher.class);
- // TODO register plugin dispatchers here
+ List<DispatchCommand> exts = gitblit.getExtensions(DispatchCommand.class);
+ for (DispatchCommand ext : exts) {
+ Class<? extends DispatchCommand> extClass = ext.getClass();
+ PluginWrapper wrapper = gitblit.whichPlugin(extClass);
+ String plugin = wrapper.getDescriptor().getPluginId();
+ CommandMetaData meta = extClass.getAnnotation(CommandMetaData.class);
+ log.debug("Dispatcher {} is loaded from plugin {}", meta.name(), plugin);
+ register(ext);
+ }
}
@Override
- protected final void registerCommands(UserModel user) {
- }
-
- @Override
- protected final void registerCommand(UserModel user, Class<? extends BaseCommand> cmd) {
- throw new RuntimeException("The root dispatcher does not accept commands, only dispatchers!");
+ protected final void setup() {
}
}
\ No newline at end of file
--
Gitblit v1.9.1