From dfec628a69218ea7533b4d86ad7bb349a4a0d334 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Fri, 18 Mar 2011 19:35:19 +0100 Subject: [PATCH] don't show core plugin updates --- .../scm/plugin/DefaultPluginManager.java | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java b/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java index fbe34ea523..779edfebb0 100644 --- a/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java +++ b/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java @@ -67,6 +67,7 @@ import java.net.URLEncoder; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; @@ -483,9 +484,20 @@ public class DefaultPluginManager implements PluginManager if (infoSet != null) { - for (PluginInformation available : infoSet) + Iterator pit = infoSet.iterator(); + + while (pit.hasNext()) { - preparePlugin(available); + PluginInformation available = pit.next(); + + if (isCorePluging(available)) + { + pit.remove(); + } + else + { + preparePlugin(available); + } } } } @@ -560,6 +572,34 @@ public class DefaultPluginManager implements PluginManager return center; } + /** + * Method description + * + * + * @param available + * + * @return + */ + private boolean isCorePluging(PluginInformation available) + { + boolean core = false; + + for (Plugin installedPlugin : installedPlugins.values()) + { + PluginInformation installed = installedPlugin.getInformation(); + + if (isSamePlugin(available, installed) + && (installed.getState() == PluginState.CORE)) + { + core = true; + + break; + } + } + + return core; + } + /** * Method description *