diff --git a/core/src/main/java/hudson/PluginWrapper.java b/core/src/main/java/hudson/PluginWrapper.java index 31feb91c66..b81dbd92a5 100644 --- a/core/src/main/java/hudson/PluginWrapper.java +++ b/core/src/main/java/hudson/PluginWrapper.java @@ -28,7 +28,6 @@ import com.google.common.collect.ImmutableSet; import hudson.PluginManager.PluginInstanceStore; import hudson.model.Api; import hudson.model.ModelObject; -import jenkins.MissingDependencyException; import jenkins.YesNoMaybe; import jenkins.model.Jenkins; import hudson.model.UpdateCenter; @@ -550,26 +549,24 @@ public class PluginWrapper implements Comparable, ModelObject { if (requiredCoreVersion == null) { LOGGER.warning(shortName + " doesn't declare required core version."); } else { - if (Jenkins.getVersion().isOlderThan(new VersionNumber(requiredCoreVersion))) { - throw new IOException(shortName + " requires a more recent core version (" + requiredCoreVersion + ") than the current (" + Jenkins.getVersion() + ")."); - } + checkRequiredCoreVersion(requiredCoreVersion); } } - List missingDependencies = new ArrayList(); - List obsoleteDependencies = new ArrayList(); - List disabledDependencies = new ArrayList(); + List missingDependencies = new ArrayList<>(); + List obsoleteDependencies = new ArrayList<>(); + List disabledDependencies = new ArrayList<>(); // make sure dependencies exist for (Dependency d : dependencies) { PluginWrapper dependency = parent.getPlugin(d.shortName); if (dependency == null) { - missingDependencies.add(d.toString()); + missingDependencies.add(d); } else { if (dependency.isActive()) { - if (ENABLE_PLUGIN_DEPENDENCIES_VERSION_CHECK && dependency.getVersionNumber().isOlderThan(new VersionNumber(d.version))) { - obsoleteDependencies.add(dependency.getShortName() + "(" + dependency.getVersion() + " < " + d.version + ")"); + if (isDependencyObsolete(d, dependency)) { + obsoleteDependencies.add(d); } } else { - disabledDependencies.add(d.toString()); + disabledDependencies.add(d); } } @@ -578,8 +575,8 @@ public class PluginWrapper implements Comparable, ModelObject { for (Dependency d : optionalDependencies) { PluginWrapper dependency = parent.getPlugin(d.shortName); if (dependency != null && dependency.isActive()) { - if (ENABLE_PLUGIN_DEPENDENCIES_VERSION_CHECK && dependency.getVersionNumber().isOlderThan(new VersionNumber(d.version))) { - obsoleteDependencies.add(dependency.getShortName() + "(" + dependency.getVersion() + " < " + d.version + ")"); + if (isDependencyObsolete(d, dependency)) { + obsoleteDependencies.add(d); } else { dependencies.add(d); } @@ -613,6 +610,16 @@ public class PluginWrapper implements Comparable, ModelObject { } } + private void checkRequiredCoreVersion(String requiredCoreVersion) throws IOException { + if (Jenkins.getVersion().isOlderThan(new VersionNumber(requiredCoreVersion))) { + throw new IOException(shortName + " requires a more recent core version (" + requiredCoreVersion + ") than the current (" + Jenkins.getVersion() + ")."); + } + } + + private boolean isDependencyObsolete(Dependency d, PluginWrapper dependency) { + return ENABLE_PLUGIN_DEPENDENCIES_VERSION_CHECK && dependency.getVersionNumber().isOlderThan(new VersionNumber(d.version)); + } + /** * If the plugin has {@link #getUpdateInfo() an update}, * returns the {@link hudson.model.UpdateSite.Plugin} object.