mirror of
https://github.com/jenkinsci/jenkins.git
synced 2026-11-04 15:45:52 +00:00
Upgrade installed optional dependencies if necessary
This commit is contained in:
1 parent
01f70d4290
commit
eb77e5f20d
1 file changed
+11
-5
@@ -645,17 +645,23 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
|
||||
ServletContext context = Jenkins.getActiveInstance().servletContext;
|
||||
|
||||
for (String dependencyToken : dependencyTokens) {
|
||||
if (dependencyToken.endsWith(";resolution:=optional")) {
|
||||
// ignore optional dependencies
|
||||
continue;
|
||||
String optionalDepTokenSuffix = ";resolution:=optional";
|
||||
boolean isOptional = dependencyToken.endsWith(optionalDepTokenSuffix);
|
||||
if (isOptional) {
|
||||
dependencyToken = dependencyToken.substring(0, dependencyToken.length() - optionalDepTokenSuffix.length());
|
||||
}
|
||||
|
||||
String[] artifactIdVersionPair = dependencyToken.split(":");
|
||||
String artifactId = artifactIdVersionPair[0];
|
||||
VersionNumber dependencyVersion = new VersionNumber(artifactIdVersionPair[1]);
|
||||
|
||||
PluginManager manager = Jenkins.getActiveInstance().getPluginManager();
|
||||
PluginManager manager = Jenkins.getInstance().getPluginManager();
|
||||
VersionNumber installedVersion = manager.getPluginVersion(manager.rootDir, artifactId);
|
||||
|
||||
if (isOptional && installedVersion == null) {
|
||||
// Ignore uninstalled optional dependencies.
|
||||
continue;
|
||||
}
|
||||
|
||||
if (installedVersion != null && !installedVersion.isOlderThan(dependencyVersion)) {
|
||||
// Do not downgrade dependencies that are already installed.
|
||||
continue;
|
||||
|
||||
Reference in new issue
Block a user