James Moger
2014-04-07 521cb6022a9ee30bf3115a8dcb991aa5c7e420e3
src/main/java/com/gitblit/manager/IPluginManager.java
@@ -17,17 +17,13 @@
import java.util.List;
import ro.fortsoft.pf4j.PluginManager;
import ro.fortsoft.pf4j.PluginWrapper;
public interface IPluginManager extends IManager {
import com.gitblit.models.PluginRegistry.PluginRegistration;
import com.gitblit.models.PluginRegistry.PluginRelease;
   /**
    * Retrieves the extension for given class 'clazz'.
    *
    * @param clazz extension point class to retrieve extension for
    * @return list of extensions
    */
   public <T> List<T> getExtensions(Class<T> clazz);
public interface IPluginManager extends IManager, PluginManager {
   /**
     * Retrieves the {@link PluginWrapper} that loaded the given class 'clazz'.
@@ -35,5 +31,52 @@
     * @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);
    /**
     * Delete the plugin represented by {@link PluginWrapper}.
     *
     * @param wrapper
     * @return true if successful
     */
    boolean deletePlugin(PluginWrapper wrapper);
    /**
     * Refresh the plugin registry.
     */
    boolean refreshRegistry();
    /**
     * Install the plugin from the specified url.
     */
    boolean installPlugin(String url);
    /**
     * Install the plugin.
     */
    boolean installPlugin(PluginRelease pr);
    /**
     * The list of all registered plugins.
     *
     * @return a list of registered plugins
     */
    List<PluginRegistration> getRegisteredPlugins();
    /**
     * 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);
}