- Timestamp:
- 11/13/12 13:47:11 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/trunk/src/test/DEBBTranslator/src/DEBB2DCWoRMSTranslator.java
r586 r602 8 8 import javax.xml.parsers.DocumentBuilderFactory; 9 9 import javax.xml.parsers.ParserConfigurationException; 10 import javax.xml.transform.Source; 10 11 import javax.xml.transform.Transformer; 11 12 import javax.xml.transform.TransformerConfigurationException; 12 13 import javax.xml.transform.TransformerException; 13 14 import javax.xml.transform.TransformerFactory; 15 import javax.xml.transform.dom.DOMResult; 14 16 import javax.xml.transform.dom.DOMSource; 15 17 import javax.xml.transform.stream.StreamResult; 18 import javax.xml.transform.stream.StreamSource; 16 19 import javax.xml.xpath.XPath; 17 20 import javax.xml.xpath.XPathConstants; … … 25 28 import org.w3c.dom.Element; 26 29 import org.w3c.dom.Node; 27 import org.w3c.dom.NodeList;28 30 import org.xml.sax.SAXException; 29 31 … … 48 50 private static final String DEFAULT_PLMXML_INPUT_FILE_NAME = "xml/PLMXML_HLRSSmallServerRoom.xml"; 49 51 private static final String DEFAULT_DEBB_COMPONENT_INPUT_FILE_NAME = "xml/DEBBComponents.xml"; 52 private static final String DEFAULT_SCHEMA_NAME = "DCWormsResSchema.xsd"; 53 private static final String DEFAULT_DEBB_COMPONENT_TRANSFORMATION_FILE_NAME = "xml/DEBBComponentTranslator.xsl"; 50 54 private static DocumentBuilder xmlDocumentBuilder; 51 55 private static DocumentBuilderFactory domFactory; … … 103 107 // Creating destination, dcworms document 104 108 dcwormsDocument = xmlDocumentBuilder.newDocument(); 109 105 110 // Creating root, environment, element 106 111 Element rootElement = dcwormsDocument.createElement("environment"); 112 113 // Attr namespaceAttribute = dcwormsDocument 114 // .createAttribute("xsi:noNamespaceSchemaLocation"); 115 // namespaceAttribute.setValue(DEFAULT_SCHEMA_NAME); 116 // rootElement.setAttributeNode(namespaceAttribute); 107 117 dcwormsDocument.appendChild(rootElement); 108 118 Comment comment = dcwormsDocument 109 119 .createComment("CoolEmAll testbed description"); 110 120 rootElement.appendChild(comment); 121 // rootElement.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", 122 // "xmlns:xsi", "value"); 111 123 112 124 // Creating resources element … … 130 142 131 143 // ***************************************************************** 132 // 133 144 // TODO: Extract information about sensors from PLM XML 145 134 146 // write the content into xml file 135 147 saveDCWoRMSOutputFile(outputFileName, dcwormsDocument); … … 283 295 System.out.println("partRef=" + partRefNode.getNodeValue()); 284 296 String partId = partRefNode.getNodeValue().substring(1); // Get rid of # 285 286 287 297 // at 298 // the 299 // beginning 288 300 // UserData - hostname 289 301 expr = xpath … … 427 439 parameterElement.appendChild(valueElement); 428 440 computingResourceElement.appendChild(parameterElement); 429 430 441 } 431 442 432 443 // ***************************************************************** 433 // Read data from DEBBComponent file(s) 434 /* Document debbComponentDocument = readDEBBComponentInputFile(debbComponentFileName); 435 System.out.println(debbComponentIdNode.getNodeValue()); 444 445 Document debbComponentDocument = readDEBBComponentInputFile(debbComponentFileName); 446 System.out.println("debbComponentNode=" 447 + debbComponentIdNode.getNodeValue()); 436 448 expr = xpath.compile("//*[ComponentId='" 437 449 + debbComponentIdNode.getNodeValue() + "']"); … … 439 451 Node debbComponentNode = (Node) result; 440 452 if (debbComponentNode != null) { 441 System.out.println("id=" + debbComponentNode.getNodeName()); 442 443 // Get all processors 444 transformProcessors(debbComponentNode, computingResourceElement); 445 446 // Get all memory units 447 transformMemoryUnits(debbComponentNode, 448 computingResourceElement); 449 450 // Get all storages 451 transformStorages(debbComponentNode, computingResourceElement); 452 453 // Get all cooling devices 454 transformCoolingDevices(debbComponentNode, 455 computingResourceElement); 456 // Get all baseboards 457 transformBaseboards(debbComponentNode, computingResourceElement); 458 // Get all sensors 459 transformSensors(debbComponentNode, computingResourceElement); 460 } 461 */ 453 System.out.println("debbComponentNode=" 454 + debbComponentNode.getNodeName()); 455 } 456 // DOMSource/DOMResult 457 try { 458 // DOMSource domSource = new DOMSource(debbParentElement); 459 DOMSource domSource = new DOMSource(computingResourceElement); 460 Source xsltSource = new StreamSource( 461 DEFAULT_DEBB_COMPONENT_TRANSFORMATION_FILE_NAME); 462 DOMResult domResult = new DOMResult(computingResourceElement); 463 // create an instance of TransformerFactory 464 TransformerFactory transFact = TransformerFactory.newInstance(); 465 466 javax.xml.transform.Transformer trans = transFact 467 .newTransformer(xsltSource); 468 469 trans.transform(domSource, domResult); 470 System.out.println("result node=" + domResult.getNode().getNodeName()); 471 } catch (NullPointerException npEx) { 472 System.out.println("NullPointerException on debb " 473 + debbComponentIdNode.getNodeValue()); 474 } 475 462 476 // Find component 463 477 … … 484 498 } 485 499 } 486 487 private static void transformCoolingDevices(Node debbComponentNode,488 Element computingResourceElement) throws XPathExpressionException {489 XPathExpression expr = xpath.compile("CoolingDevice");490 Object result = expr491 .evaluate(debbComponentNode, XPathConstants.NODESET);492 NodeList coolingDeviceNodeList = (NodeList) result;493 if (coolingDeviceNodeList != null) {494 for (int i = 0; i < coolingDeviceNodeList.getLength(); i++) {495 Node coolingDeviceNode = coolingDeviceNodeList.item(i);496 497 Element resourceUnitElement = dcwormsDocument498 .createElement("resourceUnit");499 Attr coolingDeviceClassAttribute = dcwormsDocument500 .createAttribute("class");501 coolingDeviceClassAttribute.setValue(resourceUnitClasses502 .get(coolingDeviceNode.getNodeName()));503 resourceUnitElement504 .setAttributeNode(coolingDeviceClassAttribute);505 computingResourceElement.appendChild(resourceUnitElement);506 }507 }508 509 }510 511 private static void transformProcessors(Node debbComponentNode,512 Element computingResourceElement) throws XPathExpressionException {513 XPathExpression expr = xpath.compile("Processor");514 Object result = expr515 .evaluate(debbComponentNode, XPathConstants.NODESET);516 NodeList processorNodeList = (NodeList) result;517 if (processorNodeList != null) {518 for (int i = 0; i < processorNodeList.getLength(); i++) {519 Node processorNode = processorNodeList.item(i);520 521 Element processorElement = dcwormsDocument522 .createElement("computingResource");523 Attr processorClassAttribute = dcwormsDocument524 .createAttribute("class");525 processorClassAttribute.setValue(computingResourceClasses526 .get(processorNode.getNodeName()));527 processorElement.setAttributeNode(processorClassAttribute);528 //529 // // Device attributes530 // NodeList parameterNodes = processorNode.getChildNodes();531 // String tmp = "";532 // for (int j = 0; j < parameterNodes.getLength(); j++) {533 // Node child = parameterNodes.item(j);534 //535 // short type = child.getNodeType();536 // System.out.println("type=" + type);537 // if (type == Node.ELEMENT_NODE) {538 // Element parameterElement = dcwormsDocument539 // .createElement("parameter");540 // Attr parameterNameAttribute = dcwormsDocument541 // .createAttribute("name");542 // parameterNameAttribute.setValue(child.getNodeName());543 // parameterElement544 // .setAttributeNode(parameterNameAttribute);545 // Element valueElement = dcwormsDocument546 // .createElement("value");547 // valueElement.appendChild(dcwormsDocument548 // .createTextNode(tmp));549 // parameterElement.appendChild(valueElement);550 // computingResourceElement.appendChild(parameterElement);551 //552 // } else if (type == Node.TEXT_NODE) {553 // tmp = child.getNodeValue();554 //555 // }556 //557 // }558 }559 }560 561 }562 563 private static void transformSensors(Node debbComponentNode,564 Element computingResourceElement) throws XPathExpressionException {565 566 // TODO: Take them from PLM XML567 /*568 * XPathExpression expr = xpath.compile("Sensor"); Object result =569 * expr.evaluate(debbComponentNode, XPathConstants.NODESET); NodeList570 * sensorsNodeList = (NodeList) result; if (sensorsNodeList != null) {571 * for (int i = 0; i < sensorsNodeList.getLength(); i++) { Node572 * sensorNode = sensorsNodeList.item(i);573 *574 * Element resourceUnitElement = dcwormsDocument575 * .createElement("resourceUnit"); Attr sensorClassAttribute =576 * dcwormsDocument.createAttribute("class");577 * sensorClassAttribute.setValue578 * (resourceUnitClasses.get(sensorNode.getNodeName()));579 * resourceUnitElement.setAttributeNode(sensorClassAttribute);580 * computingResourceElement .appendChild(resourceUnitElement); } }581 */582 583 }584 585 private static void transformStorages(Node debbComponentNode,586 Element computingResourceElement) throws XPathExpressionException {587 XPathExpression expr = xpath.compile("Storage");588 Object result = expr589 .evaluate(debbComponentNode, XPathConstants.NODESET);590 NodeList storageNodeList = (NodeList) result;591 if (storageNodeList != null) {592 for (int i = 0; i < storageNodeList.getLength(); i++) {593 Node storageNode = storageNodeList.item(i);594 595 Element resourceUnitElement = dcwormsDocument596 .createElement("resourceUnit");597 Attr storageClassAttribute = dcwormsDocument598 .createAttribute("class");599 storageClassAttribute.setValue(resourceUnitClasses600 .get(storageNode.getNodeName()));601 resourceUnitElement.setAttributeNode(storageClassAttribute);602 computingResourceElement.appendChild(resourceUnitElement);603 }604 }605 606 }607 608 private static void transformMemoryUnits(Node debbComponentNode,609 Element computingResourceElement) throws XPathExpressionException {610 XPathExpression expr = xpath.compile("Memory");611 Object result = expr612 .evaluate(debbComponentNode, XPathConstants.NODESET);613 NodeList memoryNodeList = (NodeList) result;614 if (memoryNodeList != null) {615 for (int i = 0; i < memoryNodeList.getLength(); i++) {616 Node memoryNode = memoryNodeList.item(i);617 618 Element resourceUnitElement = dcwormsDocument619 .createElement("resourceUnit");620 Attr memoryClassAttribute = dcwormsDocument621 .createAttribute("class");622 memoryClassAttribute.setValue(resourceUnitClasses623 .get(memoryNode.getNodeName()));624 resourceUnitElement.setAttributeNode(memoryClassAttribute);625 computingResourceElement.appendChild(resourceUnitElement);626 }627 }628 }629 630 private static void transformBaseboards(Node debbComponentNode,631 Element computingResourceElement) throws XPathExpressionException {632 633 XPathExpression expr = xpath.compile("Baseboard");634 Object result = expr635 .evaluate(debbComponentNode, XPathConstants.NODESET);636 NodeList baseboardNodeList = (NodeList) result;637 if (baseboardNodeList != null) {638 for (int i = 0; i < baseboardNodeList.getLength(); i++) {639 Node baseboardNode = baseboardNodeList.item(i);640 641 Element resourceUnitElement = dcwormsDocument642 .createElement("resourceUnit");643 Attr baseboardClassAttribute = dcwormsDocument644 .createAttribute("class");645 baseboardClassAttribute.setValue(resourceUnitClasses646 .get(baseboardNode.getNodeName()));647 resourceUnitElement.setAttributeNode(baseboardClassAttribute);648 computingResourceElement.appendChild(resourceUnitElement);649 }650 }651 652 }653 654 500 }
Note: See TracChangeset
for help on using the changeset viewer.