summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/manager/IPluginManager.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2014-04-01 00:10:43 -0400
committerJames Moger <james.moger@gitblit.com>2014-04-10 19:00:52 -0400
commite5d0bacbf746e09a9194822b231cb27090f58973 (patch)
treee6d7d2f96384aa89a4f965ad1f47fb130ec907a4 /src/main/java/com/gitblit/manager/IPluginManager.java
parentec3b719dab4ae3c51d8bd52ab2b4176f82c5006f (diff)
downloadgitblit-e5d0bacbf746e09a9194822b231cb27090f58973.tar.gz
gitblit-e5d0bacbf746e09a9194822b231cb27090f58973.zip
Implement simple JSON-based plugin registry and install command
Diffstat (limited to 'src/main/java/com/gitblit/manager/IPluginManager.java')
-rw-r--r--src/main/java/com/gitblit/manager/IPluginManager.java48
1 files changed, 46 insertions, 2 deletions
diff --git a/src/main/java/com/gitblit/manager/IPluginManager.java b/src/main/java/com/gitblit/manager/IPluginManager.java
index 11b81ea3..1f7f85ee 100644
--- a/src/main/java/com/gitblit/manager/IPluginManager.java
+++ b/src/main/java/com/gitblit/manager/IPluginManager.java
@@ -15,9 +15,14 @@
*/
package com.gitblit.manager;
+import java.util.List;
+
import ro.fortsoft.pf4j.PluginManager;
import ro.fortsoft.pf4j.PluginWrapper;
+import com.gitblit.models.PluginRegistry.PluginRegistration;
+import com.gitblit.models.PluginRegistry.PluginRelease;
+
public interface IPluginManager extends IManager, PluginManager {
/**
@@ -27,12 +32,51 @@ public interface IPluginManager extends IManager, PluginManager {
* @return PluginWrapper that loaded the given class
*/
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);
}