Document doc = XmlHelper.readXMLFromFile(sdkConfig.getCanonicalPath());
Element e = doc.getDocumentElement();
String availVersion = e.getAttribute("version");
String minVersion = e.getAttribute("min-version");
VersionNumber currentVersion = new VersionNumber(BOOTSTRAP_VERSION);
VersionNumber availableVersion = new VersionNumber(availVersion);
VersionNumber minimumVersion = new VersionNumber(minVersion);
if (currentVersion.compareTo(availableVersion) < 0) {
System.out.println();
if (currentVersion.compareTo(minimumVersion) < 0) {
throw new AbortException("ERROR - This version of the CloudBees SDK is no longer supported," + "" +
" please install the latest version (" + availVersion + ").");
} else if (currentVersion.compareTo(availableVersion) < 0) {
System.out.println("WARNING - A new version of the CloudBees SDK is available, please install the latest version (" + availVersion + ").");
}
String hRef = e.getAttribute("href");
String homeRef = "www.cloudbees.com";
NodeList nodeList = e.getElementsByTagName("link");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
NamedNodeMap nodeMap = node.getAttributes();
Node rel = nodeMap.getNamedItem("rel");
Node href = nodeMap.getNamedItem("href");
if (rel != null && rel.getTextContent().trim().equalsIgnoreCase("alternate") && href != null) {
homeRef = href.getTextContent();
}
}
NodeList libsNL = e.getElementsByTagName("libraries");
Node libsNode = null;
if (libsNL.getLength() > 0) {
libsNode = libsNL.item(0);
}
if (libsNode != null) {
NodeList libNL = e.getElementsByTagName("library");
for (int i = 0; i < libNL.getLength(); i++) {
Node node = libNL.item(i);
NamedNodeMap nodeMap = node.getAttributes();
Node nameNode = nodeMap.getNamedItem("name");
Node refNode = nodeMap.getNamedItem("href");
if (nameNode != null && refNode != null) {
String libName = nameNode.getTextContent();
String libUrlString = refNode.getTextContent().trim();
int idx = libUrlString.lastIndexOf('/');
String libFileName = libUrlString.substring(idx);
localRepository.getURLAsFile(libUrlString, "lib1" + libFileName, libName);
}
}
}
System.out.println(" SDK home: " + homeRef);
System.out.println(" SDK download: " + hRef);
System.out.println();
}
// Check plugins version
NodeList pluginsNL = e.getElementsByTagName("plugins");
Node pluginsNode = null;
if (pluginsNL.getLength() > 0) {
pluginsNode = pluginsNL.item(0);
}
if (pluginsNode != null) {
NodeList pluginNL = e.getElementsByTagName("plugin");
CommandServiceImpl service = (CommandServiceImpl) commandService;
for (int i = 0; i < pluginNL.getLength(); i++) {
Node node = pluginNL.item(i);
NamedNodeMap nodeMap = node.getAttributes();
Node nameNode = nodeMap.getNamedItem("artifact");
if (nameNode != null) {
Node n = nodeMap.getNamedItem("required");
boolean forceInstall = (n != null && Boolean.parseBoolean(n.getTextContent()));
String pluginArtifact = nameNode.getTextContent();
GAV gav = new GAV(pluginArtifact);
VersionNumber pluginVersion = new VersionNumber(gav.version);
Plugin plugin = service.getPlugin(gav.artifactId);
if (plugin != null) {
forceInstall = false;
GAV pgav = new GAV(plugin.getArtifact());
VersionNumber currentPluginVersion = new VersionNumber(pgav.version);
if (currentPluginVersion.compareTo(pluginVersion) < 0) {
Node nf = nodeMap.getNamedItem("force-upgrade");
boolean forced = (nf != null && Boolean.parseBoolean(nf.getTextContent()));
if (forced) {
forceInstall = true;
} else {