public Document getDocument(InputStream stream) { return getDocument(new InputSource(stream)); }
public Document getDocument(Reader stream) { return getDocument(new InputSource(stream)); }
@Override protected Document makeDocument(XmlProvider xmlstarter) { Document locfgQ = super.makeDocument(xmlstarter); Document ribclQ = xmlstarter.getDocument(); Node ribclElem = locfgQ.getDocumentElement().getFirstChild(); ribclQ.adoptNode(ribclElem); ribclQ.appendChild(ribclElem); return ribclQ; }
protected Document makeDocument(XmlProvider xmlstarter) { Document ribclQ = xmlstarter.getDocument(); Element LOCFG = ribclQ.createElement("LOCFG"); LOCFG.setAttribute("version", "2.21"); ribclQ.appendChild(LOCFG); Element RIBCL = ribclQ.createElement("RIBCL"); LOCFG.appendChild(RIBCL); RIBCL.setAttribute("VERSION", "2.0"); Element LOGIN = ribclQ.createElement("LOGIN"); LOGIN.setAttribute("USER_LOGIN", user); LOGIN.setAttribute("PASSWORD", passwd); RIBCL.appendChild(LOGIN); Element command = ribclQ.createElement(getPd().getSpecific("command")); command.setAttribute("MODE", "read"); LOGIN.appendChild(command); Element subcommand = ribclQ.createElement(getPd().getSpecific("subcommand")); command.appendChild(subcommand); return ribclQ; }
private Map<XPathExpression, Number> parse(String message, XmlProvider xmlstarter) { if(message == null || "".equals(message)) { return Collections.emptyMap(); } else { log(Level.TRACE, "new message to parse: "); log(Level.TRACE, message); // The XML returned from an iLO is buggy, up to ilO2 1.50 message = message.replaceAll("<RIBCL VERSION=\"[0-9\\.]+\"/>", "<RIBCL >"); Document d = xmlstarter.getDocument(new StringReader(message)); return xmlstarter.fileFromXpaths(d, getPd().getCollectMapping().keySet()); } }
@Override protected Map<String, Number> parseStream(InputStream stream) { XmlProvider xmlstarter = find(XmlProvider.class); if(xmlstarter == null) { log(Level.ERROR, "XML Provider not found"); return null; } Document d = xmlstarter.getDocument(stream); if (! validateXml(xmlstarter, d)) { return null; } setUptime(findUptime(xmlstarter, d)); Map<String, Number> vars = new HashMap<>(collectKeys.size()); for (Map.Entry<XPathExpression, Number> e: xmlstarter.fileFromXpaths(d, collectKeys.keySet()).entrySet()) { vars.put(collectKeys.get(e.getKey()), e.getValue()); } log(Level.TRACE, "Values found: %s", vars); log(Level.TRACE, "%s", vars); vars = dom2Map(d, vars); log(Level.TRACE, "%s", vars); return vars; }