[JENKINS-20679] Add support for plugin Java requirement metadata

This commit is contained in:
Daniel Beck committed 2018-09-20 11:38:40 -07:00
1 parent afc57dd6da
commit 3fa7427c17
6 files changed
+100 -6

No files matched your search

@@ -457,6 +457,20 @@ public class PluginWrapper implements Comparable<PluginWrapper>, ModelObject {
return null;
}
/**
* Returns the required Java version of this plugin.
* @return the required Java version of this plugin.
*
* @since TODO
*/
@Exported
public @CheckForNull String getRequiredJavaVersion() {
String v = manifest.getMainAttributes().getValue("Minimum-Java-Version");
if (v!= null) return v;
return null;
}
/**
* Returns the version number of this plugin
*/
@@ -600,6 +614,15 @@ public class PluginWrapper implements Comparable<PluginWrapper>, ModelObject {
versionDependencyError(Messages.PluginWrapper_obsoleteCore(Jenkins.getVersion().toString(), requiredCoreVersion), Jenkins.getVersion().toString(), requiredCoreVersion);
}
}
String requiredJavaVersion = getRequiredJavaVersion();
if (requiredJavaVersion != null) {
// TODO replace with calls to Runtime.version() once we're on Java 9
VersionNumber actualVersion = new VersionNumber(System.getProperty("java.version"));
if (actualVersion.isOlderThan(new VersionNumber(requiredJavaVersion))) {
dependencyErrors.add(Messages.PluginWrapper_obsoleteJava(actualVersion.toString(), requiredJavaVersion));
}
}
}
// make sure dependencies exist
for (Dependency d : dependencies) {