Merge pull request #1233 from scm-manager/feature/update_dependent_plugins

Update required plugins if available on plugin update
This commit is contained in:
Sebastian Sdorra
2020-07-03 10:03:45 +02:00
committed by GitHub
6 changed files with 31 additions and 13 deletions

View File

@@ -247,18 +247,18 @@ public class DefaultPluginManager implements PluginManager {
private List<AvailablePlugin> collectPluginsToInstall(String name) {
List<AvailablePlugin> plugins = new ArrayList<>();
collectPluginsToInstall(plugins, name, true);
collectPluginsToInstallOrUpdate(plugins, name);
return plugins;
}
private void collectPluginsToInstall(List<AvailablePlugin> plugins, String name, boolean isUpdate) {
if (!isInstalledOrPending(name) || isUpdate && isUpdatable(name)) {
private void collectPluginsToInstallOrUpdate(List<AvailablePlugin> plugins, String name) {
if (!isInstalledOrPending(name) || isUpdatable(name)) {
AvailablePlugin plugin = getAvailable(name).orElseThrow(() -> NotFoundException.notFound(entity(AvailablePlugin.class, name)));
Set<String> dependencies = plugin.getDescriptor().getDependencies();
if (dependencies != null) {
for (String dependency : dependencies) {
collectPluginsToInstall(plugins, dependency, false);
collectPluginsToInstallOrUpdate(plugins, dependency);
}
}