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 | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 170 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gitblit/manager/IPluginManager.java b/src/main/java/com/gitblit/manager/IPluginManager.java index 670e976..d8fe0f8 100644 --- a/src/main/java/com/gitblit/manager/IPluginManager.java +++ b/src/main/java/com/gitblit/manager/IPluginManager.java @@ -15,25 +15,190 @@ */ package com.gitblit.manager; +import java.io.IOException; import java.util.List; +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 { /** - * Retrieves the extension for given class 'clazz'. + * Returns the system version. * - * @param clazz extension point class to retrieve extension for - * @return list of extensions + * @return the system version + * @since 1.5.0 */ - public <T> List<T> getExtensions(Class<T> clazz); + 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 */ - public PluginWrapper whichPlugin(Class<?> clazz); + PluginWrapper whichPlugin(Class<?> clazz); + + /** + * Disable the plugin represented by pluginId. + * + * @param pluginId + * @return true if successful + * @since 1.5.0 + */ + 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