Changeset 602 for DCWoRMS/trunk/src


Ignore:
Timestamp:
11/13/12 13:47:11 (12 years ago)
Author:
gosiaw
Message:

Translation of DEBBComponents added.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • DCWoRMS/trunk/src/test/DEBBTranslator/src/DEBB2DCWoRMSTranslator.java

    r586 r602  
    88import javax.xml.parsers.DocumentBuilderFactory; 
    99import javax.xml.parsers.ParserConfigurationException; 
     10import javax.xml.transform.Source; 
    1011import javax.xml.transform.Transformer; 
    1112import javax.xml.transform.TransformerConfigurationException; 
    1213import javax.xml.transform.TransformerException; 
    1314import javax.xml.transform.TransformerFactory; 
     15import javax.xml.transform.dom.DOMResult; 
    1416import javax.xml.transform.dom.DOMSource; 
    1517import javax.xml.transform.stream.StreamResult; 
     18import javax.xml.transform.stream.StreamSource; 
    1619import javax.xml.xpath.XPath; 
    1720import javax.xml.xpath.XPathConstants; 
     
    2528import org.w3c.dom.Element; 
    2629import org.w3c.dom.Node; 
    27 import org.w3c.dom.NodeList; 
    2830import org.xml.sax.SAXException; 
    2931 
     
    4850        private static final String DEFAULT_PLMXML_INPUT_FILE_NAME = "xml/PLMXML_HLRSSmallServerRoom.xml"; 
    4951        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"; 
    5054        private static DocumentBuilder xmlDocumentBuilder; 
    5155        private static DocumentBuilderFactory domFactory; 
     
    103107                        // Creating destination, dcworms document 
    104108                        dcwormsDocument = xmlDocumentBuilder.newDocument(); 
     109 
    105110                        // Creating root, environment, element 
    106111                        Element rootElement = dcwormsDocument.createElement("environment"); 
     112 
     113                        // Attr namespaceAttribute = dcwormsDocument 
     114                        // .createAttribute("xsi:noNamespaceSchemaLocation"); 
     115                        // namespaceAttribute.setValue(DEFAULT_SCHEMA_NAME); 
     116                        // rootElement.setAttributeNode(namespaceAttribute); 
    107117                        dcwormsDocument.appendChild(rootElement); 
    108118                        Comment comment = dcwormsDocument 
    109119                                        .createComment("CoolEmAll testbed description"); 
    110120                        rootElement.appendChild(comment); 
     121                        // rootElement.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", 
     122                        // "xmlns:xsi", "value"); 
    111123 
    112124                        // Creating resources element 
     
    130142 
    131143                        // ***************************************************************** 
    132                         //      TODO: Extract information about sensors from PLM XML 
    133                          
     144                        // TODO: Extract information about sensors from PLM XML 
     145 
    134146                        // write the content into xml file 
    135147                        saveDCWoRMSOutputFile(outputFileName, dcwormsDocument); 
     
    283295                System.out.println("partRef=" + partRefNode.getNodeValue()); 
    284296                String partId = partRefNode.getNodeValue().substring(1); // Get rid of # 
    285                                                                                                                                         // at 
    286                                                                                                                                         // the 
    287                                                                                                                                         // beginning 
     297                // at 
     298                // the 
     299                // beginning 
    288300                // UserData - hostname 
    289301                expr = xpath 
     
    427439                                parameterElement.appendChild(valueElement); 
    428440                                computingResourceElement.appendChild(parameterElement); 
    429  
    430441                        } 
    431442 
    432443                        // ***************************************************************** 
    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()); 
    436448                        expr = xpath.compile("//*[ComponentId='" 
    437449                                        + debbComponentIdNode.getNodeValue() + "']"); 
     
    439451                        Node debbComponentNode = (Node) result; 
    440452                        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 
    462476                        // Find component 
    463477 
     
    484498                } 
    485499        } 
    486  
    487         private static void transformCoolingDevices(Node debbComponentNode, 
    488                         Element computingResourceElement) throws XPathExpressionException { 
    489                 XPathExpression expr = xpath.compile("CoolingDevice"); 
    490                 Object result = expr 
    491                                 .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 = dcwormsDocument 
    498                                                 .createElement("resourceUnit"); 
    499                                 Attr coolingDeviceClassAttribute = dcwormsDocument 
    500                                                 .createAttribute("class"); 
    501                                 coolingDeviceClassAttribute.setValue(resourceUnitClasses 
    502                                                 .get(coolingDeviceNode.getNodeName())); 
    503                                 resourceUnitElement 
    504                                                 .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 = expr 
    515                                 .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 = dcwormsDocument 
    522                                                 .createElement("computingResource"); 
    523                                 Attr processorClassAttribute = dcwormsDocument 
    524                                                 .createAttribute("class"); 
    525                                 processorClassAttribute.setValue(computingResourceClasses 
    526                                                 .get(processorNode.getNodeName())); 
    527                                 processorElement.setAttributeNode(processorClassAttribute); 
    528 // 
    529 //                              // Device attributes 
    530 //                              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 = dcwormsDocument 
    539 //                                                              .createElement("parameter"); 
    540 //                                              Attr parameterNameAttribute = dcwormsDocument 
    541 //                                                              .createAttribute("name"); 
    542 //                                              parameterNameAttribute.setValue(child.getNodeName()); 
    543 //                                              parameterElement 
    544 //                                                              .setAttributeNode(parameterNameAttribute); 
    545 //                                              Element valueElement = dcwormsDocument 
    546 //                                                              .createElement("value"); 
    547 //                                              valueElement.appendChild(dcwormsDocument 
    548 //                                                              .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 XML 
    567                 /* 
    568                  * XPathExpression expr = xpath.compile("Sensor"); Object result = 
    569                  * expr.evaluate(debbComponentNode, XPathConstants.NODESET); NodeList 
    570                  * sensorsNodeList = (NodeList) result; if (sensorsNodeList != null) { 
    571                  * for (int i = 0; i < sensorsNodeList.getLength(); i++) { Node 
    572                  * sensorNode = sensorsNodeList.item(i); 
    573                  *  
    574                  * Element resourceUnitElement = dcwormsDocument 
    575                  * .createElement("resourceUnit"); Attr sensorClassAttribute = 
    576                  * dcwormsDocument.createAttribute("class"); 
    577                  * sensorClassAttribute.setValue 
    578                  * (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 = expr 
    589                                 .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 = dcwormsDocument 
    596                                                 .createElement("resourceUnit"); 
    597                                 Attr storageClassAttribute = dcwormsDocument 
    598                                                 .createAttribute("class"); 
    599                                 storageClassAttribute.setValue(resourceUnitClasses 
    600                                                 .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 = expr 
    612                                 .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 = dcwormsDocument 
    619                                                 .createElement("resourceUnit"); 
    620                                 Attr memoryClassAttribute = dcwormsDocument 
    621                                                 .createAttribute("class"); 
    622                                 memoryClassAttribute.setValue(resourceUnitClasses 
    623                                                 .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 = expr 
    635                                 .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 = dcwormsDocument 
    642                                                 .createElement("resourceUnit"); 
    643                                 Attr baseboardClassAttribute = dcwormsDocument 
    644                                                 .createAttribute("class"); 
    645                                 baseboardClassAttribute.setValue(resourceUnitClasses 
    646                                                 .get(baseboardNode.getNodeName())); 
    647                                 resourceUnitElement.setAttributeNode(baseboardClassAttribute); 
    648                                 computingResourceElement.appendChild(resourceUnitElement); 
    649                         } 
    650                 } 
    651  
    652         } 
    653  
    654500} 
Note: See TracChangeset for help on using the changeset viewer.