Paul Martin
2016-04-30 a502d96a860456ec5e8c96761db70f7cabb74751
src/main/java/com/gitblit/transport/ssh/commands/RootDispatcher.java
@@ -20,11 +20,13 @@
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.keys.KeysDispatcher;
import com.gitblit.utils.WorkQueue;
/**
 * The root dispatcher is the dispatch command that handles registering all
@@ -36,27 +38,28 @@
   private Logger log = LoggerFactory.getLogger(getClass());
   public RootDispatcher(IGitblit gitblit, SshDaemonClient client, String cmdLine) {
   public RootDispatcher(IGitblit gitblit, SshDaemonClient client, String cmdLine, WorkQueue workQueue) {
      super();
      setContext(new SshCommandContext(gitblit, client, cmdLine));
      setWorkQueue(workQueue);
      UserModel user = client.getUser();
      register(user, VersionCommand.class);
      register(user, GitDispatcher.class);
      register(user, KeysDispatcher.class);
      register(user, PluginDispatcher.class);
      register(VersionCommand.class);
      register(GitDispatcher.class);
      register(KeysDispatcher.class);
      register(PluginDispatcher.class);
      List<DispatchCommand> exts = gitblit.getExtensions(DispatchCommand.class);
      for (DispatchCommand ext : exts) {
         Class<? extends DispatchCommand> extClass = ext.getClass();
         String plugin = gitblit.whichPlugin(extClass).getDescriptor().getPluginId();
         PluginWrapper wrapper = gitblit.whichPlugin(extClass);
         String plugin = wrapper.getDescriptor().getPluginId();
         CommandMetaData meta = extClass.getAnnotation(CommandMetaData.class);
         log.info("Dispatcher {} is loaded from plugin {}", meta.name(), plugin);
         register(user, ext);
         log.debug("Dispatcher {} is loaded from plugin {}", meta.name(), plugin);
         register(ext);
      }
   }
   @Override
   protected final void setup(UserModel user) {
   protected final void setup() {
   }
}