From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 30 Apr 2016 04:19:14 -0400 Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates --- src/main/java/com/gitblit/manager/IPluginManager.java | 182 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 174 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/gitblit/manager/IPluginManager.java b/src/main/java/com/gitblit/manager/IPluginManager.java index 11b81ea..d8fe0f8 100644 --- a/src/main/java/com/gitblit/manager/IPluginManager.java +++ b/src/main/java/com/gitblit/manager/IPluginManager.java @@ -15,24 +15,190 @@ */ package com.gitblit.manager; -import ro.fortsoft.pf4j.PluginManager; -import ro.fortsoft.pf4j.PluginWrapper; +import java.io.IOException; +import java.util.List; -public interface IPluginManager extends IManager, PluginManager { +import ro.fortsoft.pf4j.PluginState; +import ro.fortsoft.pf4j.PluginWrapper; +import ro.fortsoft.pf4j.Version; + +import com.gitblit.models.PluginRegistry.InstallState; +import com.gitblit.models.PluginRegistry.PluginRegistration; +import com.gitblit.models.PluginRegistry.PluginRelease; + +public interface IPluginManager extends IManager { + + /** + * Returns the system version. + * + * @return the system version + * @since 1.5.0 + */ + Version getSystemVersion(); + + /** + * Starts all plugins. + * @since 1.5.0 + */ + void startPlugins(); + + /** + * Stops all plugins. + * @since 1.5.0 + */ + void stopPlugins(); + + /** + * Starts the specified plugin. + * + * @param pluginId + * @return the state of the plugin + * @since 1.5.0 + */ + PluginState startPlugin(String pluginId); + + /** + * Stops the specified plugin. + * + * @param pluginId + * @return the state of the plugin + * @since 1.5.0 + */ + PluginState stopPlugin(String pluginId); + + /** + * Returns the list of extensions the plugin provides. + * + * @param type + * @return a list of extensions the plugin provides + * @since 1.5.0 + */ + List<Class<?>> getExtensionClasses(String pluginId); + + /** + * Returns the list of extension instances for a given extension point. + * + * @param type + * @return a list of extension instances + * @since 1.5.0 + */ + <T> List<T> getExtensions(Class<T> type); + + /** + * Returns the list of all resolved plugins. + * + * @return a list of resolved plugins + * @since 1.5.0 + */ + List<PluginWrapper> getPlugins(); + + /** + * Retrieves the {@link PluginWrapper} for the specified plugin id. + * + * @param pluginId + * @return the plugin wrapper + * @since 1.5.0 + */ + PluginWrapper getPlugin(String pluginId); /** * Retrieves the {@link PluginWrapper} that loaded the given class 'clazz'. * * @param clazz extension point class to retrieve extension for * @return PluginWrapper that loaded the given class + * @since 1.5.0 */ PluginWrapper whichPlugin(Class<?> clazz); - + /** - * Delete the plugin represented by {@link PluginWrapper}. - * - * @param wrapper + * Disable the plugin represented by pluginId. + * + * @param pluginId * @return true if successful + * @since 1.5.0 */ - boolean deletePlugin(PluginWrapper wrapper); + boolean disablePlugin(String pluginId); + + /** + * Enable the plugin represented by pluginId. + * + * @param pluginId + * @return true if successful + * @since 1.5.0 + */ + boolean enablePlugin(String pluginId); + + /** + * Delete the plugin represented by pluginId. + * + * @param pluginId + * @return true if successful + * @since 1.5.0 + */ + boolean uninstallPlugin(String pluginId); + + /** + * Refresh the plugin registry. + * + * @param verifyChecksum + * @since 1.5.0 + */ + boolean refreshRegistry(boolean verifyChecksum); + + /** + * Install the plugin from the specified url. + * + * @param url + * @param verifyChecksum + * @since 1.5.0 + */ + boolean installPlugin(String url, boolean verifyChecksum) throws IOException; + + /** + * Upgrade the install plugin from the specified url. + * + * @param pluginId + * @param url + * @param verifyChecksum + * @return true if the upgrade has been successful + * @throws IOException + * @since 1.5.0 + */ + boolean upgradePlugin(String pluginId, String url, boolean verifyChecksum) throws IOException; + + /** + * The list of all registered plugins. + * + * @return a list of registered plugins + * @since 1.5.0 + */ + List<PluginRegistration> getRegisteredPlugins(); + + /** + * Return a list of registered plugins that match the install state. + * + * @param state + * @return the list of plugins that match the install state + * @since 1.5.0 + */ + List<PluginRegistration> getRegisteredPlugins(InstallState state); + + /** + * Lookup a plugin registration from the plugin registries. + * + * @param idOrName + * @return a plugin registration or null + * @since 1.5.0 + */ + PluginRegistration lookupPlugin(String idOrName); + + /** + * Lookup a plugin release. + * + * @param idOrName + * @param version (use null for the current version) + * @return the identified plugin version or null + * @since 1.5.0 + */ + PluginRelease lookupRelease(String idOrName, String version); } -- Gitblit v1.9.1