From a3ac802e4cd624129131b8004852d608ac2cf64c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sun, 13 Apr 2014 11:52:26 -0400 Subject: [PATCH] Documentation --- src/main/java/com/gitblit/manager/IPluginManager.java | 138 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 132 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/gitblit/manager/IPluginManager.java b/src/main/java/com/gitblit/manager/IPluginManager.java index 670e976..fd4247e 100644 --- a/src/main/java/com/gitblit/manager/IPluginManager.java +++ b/src/main/java/com/gitblit/manager/IPluginManager.java @@ -15,19 +15,74 @@ */ package com.gitblit.manager; +import java.io.IOException; import java.util.List; +import ro.fortsoft.pf4j.PluginState; import ro.fortsoft.pf4j.PluginWrapper; + +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'. - * - * @param clazz extension point class to retrieve extension for - * @return list of extensions + * Starts all plugins. */ - public <T> List<T> getExtensions(Class<T> clazz); + void startPlugins(); + + /** + * Stops all plugins. + */ + void stopPlugins(); + + /** + * Starts the specified plugin. + * + * @param pluginId + * @return the state of the plugin + */ + PluginState startPlugin(String pluginId); + + /** + * Stops the specified plugin. + * + * @param pluginId + * @return the state of the plugin + */ + PluginState stopPlugin(String pluginId); + + /** + * Returns the list of extensions the plugin provides. + * + * @param type + * @return a list of extensions the plugin provides + */ + List<Class<?>> getExtensionClasses(String pluginId); + + /** + * Returns the list of extension instances for a given extension point. + * + * @param type + * @return a list of extension instances + */ + <T> List<T> getExtensions(Class<T> type); + + /** + * Returns the list of all resolved plugins. + * + * @return a list of resolved plugins + */ + List<PluginWrapper> getPlugins(); + + /** + * Retrieves the {@link PluginWrapper} for the specified plugin id. + * + * @param pluginId + * @return the plugin wrapper + */ + PluginWrapper getPlugin(String pluginId); /** * Retrieves the {@link PluginWrapper} that loaded the given class 'clazz'. @@ -35,5 +90,76 @@ * @param clazz extension point class to retrieve extension for * @return PluginWrapper that loaded the given class */ - public PluginWrapper whichPlugin(Class<?> clazz); + PluginWrapper whichPlugin(Class<?> clazz); + + /** + * Disable the plugin represented by pluginId. + * + * @param pluginId + * @return true if successful + */ + boolean disablePlugin(String pluginId); + + /** + * Enable the plugin represented by pluginId. + * + * @param pluginId + * @return true if successful + */ + boolean enablePlugin(String pluginId); + + /** + * Delete the plugin represented by pluginId. + * + * @param pluginId + * @return true if successful + */ + boolean deletePlugin(String pluginId); + + /** + * Refresh the plugin registry. + * + * @param verifyChecksum + */ + boolean refreshRegistry(boolean verifyChecksum); + + /** + * Install the plugin from the specified url. + * + * @param url + * @param verifyChecksum + */ + boolean installPlugin(String url, boolean verifyChecksum) throws IOException; + + /** + * The list of all registered plugins. + * + * @return a list of registered plugins + */ + 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 + */ + List<PluginRegistration> getRegisteredPlugins(InstallState state); + + /** + * Lookup a plugin registration from the plugin registries. + * + * @param idOrName + * @return a plugin registration or null + */ + 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 + */ + PluginRelease lookupRelease(String idOrName, String version); } -- Gitblit v1.9.1