From 4011b6048cb5f31bdabb5daad94a67ead7869be7 Mon Sep 17 00:00:00 2001 From: Southparkfan <Southparkfan@users.noreply.github.com> Date: Thu, 26 Feb 2015 08:39:57 -0500 Subject: [PATCH] Fix spelling mistake --- src/main/java/com/gitblit/manager/PluginManager.java | 38 ++++++++++++++++++++++++++++++++++---- 1 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gitblit/manager/PluginManager.java b/src/main/java/com/gitblit/manager/PluginManager.java index 405dc51..5e25caa 100644 --- a/src/main/java/com/gitblit/manager/PluginManager.java +++ b/src/main/java/com/gitblit/manager/PluginManager.java @@ -47,6 +47,7 @@ import com.gitblit.Constants; import com.gitblit.Keys; +import com.gitblit.extensions.GitblitPlugin; import com.gitblit.models.PluginRegistry; import com.gitblit.models.PluginRegistry.InstallState; import com.gitblit.models.PluginRegistry.PluginRegistration; @@ -141,6 +142,12 @@ return false; } + // allow the plugin to prepare for operation after installation + PluginWrapper pluginWrapper = pf4j.getPlugin(pluginId); + if (pluginWrapper.getPlugin() instanceof GitblitPlugin) { + ((GitblitPlugin) pluginWrapper.getPlugin()).onInstall(); + } + PluginState state = pf4j.startPlugin(pluginId); return PluginState.STARTED.equals(state); } @@ -154,11 +161,18 @@ return false; } - if (deletePlugin(pluginId)) { + Version oldVersion = pf4j.getPlugin(pluginId).getDescriptor().getVersion(); + if (removePlugin(pluginId, false)) { String newPluginId = pf4j.loadPlugin(file); if (StringUtils.isEmpty(newPluginId)) { logger.error("Failed to load plugin {}", file); return false; + } + + // the plugin to handle an upgrade + PluginWrapper pluginWrapper = pf4j.getPlugin(newPluginId); + if (pluginWrapper.getPlugin() instanceof GitblitPlugin) { + ((GitblitPlugin) pluginWrapper.getPlugin()).onUpgrade(oldVersion); } PluginState state = pf4j.startPlugin(newPluginId); @@ -183,9 +197,21 @@ } @Override - public synchronized boolean deletePlugin(String pluginId) { + public synchronized boolean uninstallPlugin(String pluginId) { + return removePlugin(pluginId, true); + } + + protected boolean removePlugin(String pluginId, boolean isUninstall) { PluginWrapper pluginWrapper = getPlugin(pluginId); final String name = pluginWrapper.getPluginPath().substring(1); + + if (isUninstall) { + // allow the plugin to prepare for uninstallation + if (pluginWrapper.getPlugin() instanceof GitblitPlugin) { + ((GitblitPlugin) pluginWrapper.getPlugin()).onUninstall(); + } + } + if (pf4j.deletePlugin(pluginId)) { // delete the checksums @@ -351,7 +377,7 @@ List<PluginRegistration> list = getRegisteredPlugins(); Iterator<PluginRegistration> itr = list.iterator(); while (itr.hasNext()) { - if (state != itr.next().getInstallState()) { + if (state != itr.next().getInstallState(getSystemVersion())) { itr.remove(); } } @@ -377,7 +403,7 @@ PluginRelease pv; if (StringUtils.isEmpty(version)) { - pv = reg.getCurrentRelease(); + pv = reg.getCurrentRelease(getSystemVersion()); } else { pv = reg.getRelease(version); } @@ -395,6 +421,10 @@ protected File download(String url, boolean verifyChecksum) throws IOException { File file = downloadFile(url); + if (!verifyChecksum) { + return file; + } + File sha1File = null; try { sha1File = downloadFile(url + ".sha1"); -- Gitblit v1.9.1