| | |
| | | */ |
| | | package com.gitblit.manager; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.List; |
| | | |
| | | import ro.fortsoft.pf4j.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, PluginManager { |
| | | 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}. |
| | | * Disable the plugin represented by pluginId. |
| | | * |
| | | * @param wrapper |
| | | * @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 refreshRegistry(boolean verifyChecksum); |
| | | |
| | | /** |
| | | * Install the plugin from the specified url. |
| | | * |
| | | * @param url |
| | | * @param verifyChecksum |
| | | * @since 1.5.0 |
| | | */ |
| | | boolean installPlugin(String url); |
| | | boolean installPlugin(String url, boolean verifyChecksum) throws IOException; |
| | | |
| | | /** |
| | | * Install the plugin. |
| | | * 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 installPlugin(PluginRelease pr); |
| | | 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); |
| | | |
| | |
| | | * @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); |
| | | } |