From a7af195bed674c2f0f1a74b69cefc8be1d90572d Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 14 Apr 2014 15:06:25 -0400 Subject: [PATCH] Expose the plugin manager to the webapp --- src/main/java/com/gitblit/manager/GitblitManager.java | 100 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 98 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gitblit/manager/GitblitManager.java b/src/main/java/com/gitblit/manager/GitblitManager.java index cc670ea..56a71d4 100644 --- a/src/main/java/com/gitblit/manager/GitblitManager.java +++ b/src/main/java/com/gitblit/manager/GitblitManager.java @@ -22,7 +22,6 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.lang.reflect.Type; -import java.security.PublicKey; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; @@ -43,6 +42,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ro.fortsoft.pf4j.PluginState; import ro.fortsoft.pf4j.PluginWrapper; import com.gitblit.Constants; @@ -60,6 +60,9 @@ import com.gitblit.models.GitClientApplication; import com.gitblit.models.Mailing; import com.gitblit.models.Metric; +import com.gitblit.models.PluginRegistry.InstallState; +import com.gitblit.models.PluginRegistry.PluginRegistration; +import com.gitblit.models.PluginRegistry.PluginRelease; import com.gitblit.models.ProjectModel; import com.gitblit.models.RegistrantAccessPermission; import com.gitblit.models.RepositoryModel; @@ -72,6 +75,7 @@ import com.gitblit.models.UserModel; import com.gitblit.tickets.ITicketService; import com.gitblit.transport.ssh.IPublicKeyManager; +import com.gitblit.transport.ssh.SshKey; import com.gitblit.utils.ArrayUtils; import com.gitblit.utils.HttpUtils; import com.gitblit.utils.JsonUtils; @@ -334,6 +338,9 @@ repositoryManager.updateRepositoryModel(model.name, model, false); } } + + // rename the user's ssh public keystore + getPublicKeyManager().renameUser(username, user.username); } if (!userManager.updateUserModel(username, user)) { throw new GitBlitException("Failed to update user!"); @@ -670,7 +677,7 @@ } @Override - public UserModel authenticate(String username, PublicKey key) { + public UserModel authenticate(String username, SshKey key) { return authenticationManager.authenticate(username, key); } @@ -1178,6 +1185,35 @@ return repositoryManager.isIdle(repository); } + /* + * PLUGIN MANAGER + */ + + @Override + public void startPlugins() { + pluginManager.startPlugins(); + } + + @Override + public void stopPlugins() { + pluginManager.stopPlugins(); + } + + @Override + public List<PluginWrapper> getPlugins() { + return pluginManager.getPlugins(); + } + + @Override + public PluginWrapper getPlugin(String pluginId) { + return pluginManager.getPlugin(pluginId); + } + + @Override + public List<Class<?>> getExtensionClasses(String pluginId) { + return pluginManager.getExtensionClasses(pluginId); + } + @Override public <T> List<T> getExtensions(Class<T> clazz) { return pluginManager.getExtensions(clazz); @@ -1187,4 +1223,64 @@ public PluginWrapper whichPlugin(Class<?> clazz) { return pluginManager.whichPlugin(clazz); } + + @Override + public PluginState startPlugin(String pluginId) { + return pluginManager.startPlugin(pluginId); + } + + @Override + public PluginState stopPlugin(String pluginId) { + return pluginManager.stopPlugin(pluginId); + } + + @Override + public boolean disablePlugin(String pluginId) { + return pluginManager.disablePlugin(pluginId); + } + + @Override + public boolean enablePlugin(String pluginId) { + return pluginManager.enablePlugin(pluginId); + } + + @Override + public boolean deletePlugin(String pluginId) { + return pluginManager.deletePlugin(pluginId); + } + + @Override + public boolean refreshRegistry(boolean verifyChecksum) { + return pluginManager.refreshRegistry(verifyChecksum); + } + + @Override + public boolean installPlugin(String url, boolean verifyChecksum) throws IOException { + return pluginManager.installPlugin(url, verifyChecksum); + } + + @Override + public boolean upgradePlugin(String pluginId, String url, boolean verifyChecksum) throws IOException { + return pluginManager.upgradePlugin(pluginId, url, verifyChecksum); + } + + @Override + public List<PluginRegistration> getRegisteredPlugins() { + return pluginManager.getRegisteredPlugins(); + } + + @Override + public List<PluginRegistration> getRegisteredPlugins(InstallState state) { + return pluginManager.getRegisteredPlugins(state); + } + + @Override + public PluginRegistration lookupPlugin(String pluginId) { + return pluginManager.lookupPlugin(pluginId); + } + + @Override + public PluginRelease lookupRelease(String pluginId, String version) { + return pluginManager.lookupRelease(pluginId, version); + } } -- Gitblit v1.9.1