/** * @return true if the CollabNet version is late enough (5.2+) that using this * AuthorizationStrategy is effective. */ public static boolean isGoodCNVersion(String url) { VersionNumber version = getVersion(url); if (version == null) { // we can't check, so we'll assume it's ok. return true; } VersionNumber desiredVersion = new VersionNumber(GOOD_VERSION); return version.compareTo(desiredVersion) >= 0; }
/** * Assess whether the dependency actually needs to be installed or upgraded. * * @param jenkins top-level jenkins object * @param d the dependency * @return true if the dependency should be installed/upgraded. Otherwise, false. */ private boolean shouldBeIncluded(Jenkins jenkins, Dependency d) { try { VersionNumber installedVersion = jenkins.getPlugin(d.name).getVersion(); VersionNumber requiredVersion = new VersionNumber(d.version); return installedVersion.isOlderThan(requiredVersion); } catch (IllegalArgumentException ex) { // Plugin not installed return true; } }
/** * Check whether the "incorrect version" msg should be displayed, and returns what the currently * configured version is, in a json. */ public void doVersionCheck(StaplerRequest req, StaplerResponse rsp, @QueryParameter String url) throws IOException { rsp.setContentType("text/plain;charset=UTF-8"); JSONObject versionJSON = new JSONObject(); String error_display_style = "none"; if (!isGoodCNVersion(url)) { error_display_style = "inline"; } versionJSON.element("error_display_style", error_display_style); VersionNumber version = getVersion(url); if (version != null) { versionJSON.element("version", version.toString()); } else { versionJSON.element("version", "unknown"); } rsp.getWriter().print(versionJSON.toString()); }