diff options
author | James Moger <james.moger@gitblit.com> | 2014-04-15 08:33:05 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2014-04-15 08:33:05 -0400 |
commit | 027267ac5fac0f205f5cca3fac0c57ce013bbc3e (patch) | |
tree | 6ec87cf1114efb56b935d3c9ac6ba84971b5c896 /src/main/java/com/gitblit/manager/PluginManager.java | |
parent | cc26656d8deaf8ebe552897480240a7665b0fb76 (diff) | |
download | gitblit-027267ac5fac0f205f5cca3fac0c57ce013bbc3e.tar.gz gitblit-027267ac5fac0f205f5cca3fac0c57ce013bbc3e.zip |
Enforce plugin-requires attribute
Diffstat (limited to 'src/main/java/com/gitblit/manager/PluginManager.java')
-rw-r--r-- | src/main/java/com/gitblit/manager/PluginManager.java | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/main/java/com/gitblit/manager/PluginManager.java b/src/main/java/com/gitblit/manager/PluginManager.java index b2a87ab3..405dc510 100644 --- a/src/main/java/com/gitblit/manager/PluginManager.java +++ b/src/main/java/com/gitblit/manager/PluginManager.java @@ -42,9 +42,10 @@ import ro.fortsoft.pf4j.PluginClassLoader; import ro.fortsoft.pf4j.PluginState; import ro.fortsoft.pf4j.PluginStateEvent; import ro.fortsoft.pf4j.PluginStateListener; -import ro.fortsoft.pf4j.PluginVersion; import ro.fortsoft.pf4j.PluginWrapper; +import ro.fortsoft.pf4j.Version; +import com.gitblit.Constants; import com.gitblit.Keys; import com.gitblit.models.PluginRegistry; import com.gitblit.models.PluginRegistry.InstallState; @@ -63,6 +64,7 @@ import com.google.common.io.InputSupplier; * the Dagger DI and retrieve extensions provided by active plugins. * * @author David Ostrovsky + * @author James Moger * */ public class PluginManager implements IPluginManager, PluginStateListener { @@ -82,7 +84,20 @@ public class PluginManager implements IPluginManager, PluginStateListener { File dir = runtimeManager.getFileOrFolder(Keys.plugins.folder, "${baseFolder}/plugins"); dir.mkdirs(); this.runtimeManager = runtimeManager; + this.pf4j = new DefaultPluginManager(dir); + + try { + Version systemVersion = Version.createVersion(Constants.getVersion()); + pf4j.setSystemVersion(systemVersion); + } catch (Exception e) { + logger.error(null, e); + } + } + + @Override + public Version getSystemVersion() { + return pf4j.getSystemVersion(); } @Override @@ -130,6 +145,7 @@ public class PluginManager implements IPluginManager, PluginStateListener { return PluginState.STARTED.equals(state); } + @Override public synchronized boolean upgradePlugin(String pluginId, String url, boolean verifyChecksum) throws IOException { // ensure we can download the update BEFORE we remove the existing one File file = download(url, verifyChecksum); @@ -185,7 +201,6 @@ public class PluginManager implements IPluginManager, PluginStateListener { (file.getName().toLowerCase().endsWith(".sha1") || file.getName().toLowerCase().endsWith(".md5")); } - }); if (checksums != null) { @@ -322,7 +337,7 @@ public class PluginManager implements IPluginManager, PluginStateListener { for (PluginWrapper pw : pf4j.getPlugins()) { String id = pw.getDescriptor().getPluginId(); - PluginVersion pv = pw.getDescriptor().getVersion(); + Version pv = pw.getDescriptor().getVersion(); PluginRegistration reg = map.get(id); if (reg != null) { reg.installedRelease = pv.toString(); |