From ec3b719dab4ae3c51d8bd52ab2b4176f82c5006f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 10 Apr 2014 19:00:52 -0400
Subject: [PATCH] Documentation
---
src/main/java/com/gitblit/manager/PluginManager.java | 32 +++++++++++++++++++++++++++-----
1 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/gitblit/manager/PluginManager.java b/src/main/java/com/gitblit/manager/PluginManager.java
index 5eb00e9..e23aaec 100644
--- a/src/main/java/com/gitblit/manager/PluginManager.java
+++ b/src/main/java/com/gitblit/manager/PluginManager.java
@@ -15,12 +15,16 @@
*/
package com.gitblit.manager;
+import java.io.File;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ro.fortsoft.pf4j.DefaultPluginManager;
+import ro.fortsoft.pf4j.PluginWrapper;
import com.gitblit.Keys;
+import com.gitblit.utils.FileUtils;
/**
* The plugin manager maintains the lifecycle of plugins. It is exposed as
@@ -30,27 +34,45 @@
* @author David Ostrovsky
*
*/
-public class PluginManager extends DefaultPluginManager implements
- IPluginManager {
+public class PluginManager extends DefaultPluginManager implements IPluginManager {
private final Logger logger = LoggerFactory.getLogger(getClass());
+
+ private final IRuntimeManager runtimeManager;
public PluginManager(IRuntimeManager runtimeManager) {
- super(runtimeManager.getFileOrFolder(Keys.plugins.folder,
- "${baseFolder}/plugins"));
+ super(runtimeManager.getFileOrFolder(Keys.plugins.folder, "${baseFolder}/plugins"));
+ this.runtimeManager = runtimeManager;
}
@Override
public PluginManager start() {
- logger.info("Plugin manager started");
+ logger.info("Loading plugins...");
loadPlugins();
+ logger.info("Starting loaded plugins...");
startPlugins();
return this;
}
@Override
public PluginManager stop() {
+ logger.info("Stopping loaded plugins...");
stopPlugins();
return null;
}
+
+ @Override
+ public boolean deletePlugin(PluginWrapper pw) {
+ File folder = runtimeManager.getFileOrFolder(Keys.plugins.folder, "${baseFolder}/plugins");
+ File pluginFolder = new File(folder, pw.getPluginPath());
+ File pluginZip = new File(folder, pw.getPluginPath() + ".zip");
+
+ if (pluginFolder.exists()) {
+ FileUtils.delete(pluginFolder);
+ }
+ if (pluginZip.exists()) {
+ FileUtils.delete(pluginZip);
+ }
+ return true;
+ }
}
--
Gitblit v1.9.1