/** * */ package test.DEBBTranslator.src; import java.io.FileOutputStream; import java.util.HashMap; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; /** * @author gosiaw * */ public class PLMXMLTranslator { private static final String DEFAULT_INPUT_FILE_NAME = "src/test/DEBBTranslator/xml/PLMXML_PSNC_RECS_3.xml"; private static final String DEFAULT_OUTPUT_FILE_NAME = DEFAULT_INPUT_FILE_NAME.replace("PLMXML", "DCWORMS"); // private static final String DEFAULT_INPUT_FILE_NAME = "src/test/DEBBTranslator/xml/PLMXML_PSNCRECS.xml"; private static final String DEFAULT_PLMXML_TRANSFORMATION_FILE_NAME = "src/test/DEBBTranslator/xml/PLMXMLTranslator.xsl"; private static final String DEFAULT_UPDATE_TRANSFORMATION_FILE_NAME = "src/test/DEBBTranslator/xml/DCWoRMSDEBBUpdater.xsl"; private static final String DEFAULT_SCHEDULERS_AND_ESTIMATORS_FILE_NAME = "../../debb2dcworms/example/example1.xml"; private static HashMap computingResourceClasses; private static HashMap resourceUnitClasses; /** * */ public PLMXMLTranslator() { // TODO Auto-generated constructor stub } /** * @param args */ public static void main(String[] args) { String inputFileName = DEFAULT_INPUT_FILE_NAME; String outputFileName = DEFAULT_OUTPUT_FILE_NAME; String debbTransformationFileName = DEFAULT_PLMXML_TRANSFORMATION_FILE_NAME; if (args != null && args.length > 0) { inputFileName = args[0]; if (inputFileName == null || (inputFileName != null && inputFileName.isEmpty() == true)) { inputFileName = DEFAULT_INPUT_FILE_NAME; } if (args.length > 1) { outputFileName = args[1]; if (outputFileName == null || (outputFileName != null && outputFileName.isEmpty() == true)) { outputFileName = DEFAULT_OUTPUT_FILE_NAME; } } } // TODO: Check it this is correct! // TODO: Move it to configuration file computingResourceClasses = new HashMap(); computingResourceClasses.put("ComputeBox2", "ComputeBox2"); computingResourceClasses.put("ComputeBox1", "ComputeBox1"); computingResourceClasses.put("NodeGroup", "NodeGroup"); computingResourceClasses.put("Node", "Node"); computingResourceClasses.put("Processor", "Processor"); resourceUnitClasses = new HashMap(); resourceUnitClasses.put("Sensor", "Sensor"); resourceUnitClasses.put("Memory", "Memory"); resourceUnitClasses.put("Baseboard", "Baseboard"); resourceUnitClasses.put("CoolingDevice", "CoolingDevice"); resourceUnitClasses.put("Storage", "Storage"); try { TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory .newTransformer(new javax.xml.transform.stream.StreamSource( debbTransformationFileName)); transformer.setParameter("computingResourceClasses", computingResourceClasses); transformer.setParameter("resourceUnitClasses", resourceUnitClasses); transformer.transform(new javax.xml.transform.stream.StreamSource( inputFileName), new javax.xml.transform.stream.StreamResult( new FileOutputStream(outputFileName))); System.out.println("File " + inputFileName + " transformed into " + outputFileName + " file"); String debbUpdateTransformationFileName = DEFAULT_UPDATE_TRANSFORMATION_FILE_NAME; Transformer updateTransformer = tFactory.newTransformer(new javax.xml.transform.stream.StreamSource( debbUpdateTransformationFileName )); updateTransformer.setParameter("additionalInformationFileName", DEFAULT_SCHEDULERS_AND_ESTIMATORS_FILE_NAME); updateTransformer.transform(new javax.xml.transform.stream.StreamSource(outputFileName), new javax.xml.transform.stream.StreamResult(outputFileName)); System.out.println("File " + outputFileName + " transformed (sorted and updated) into " + outputFileName + " file"); } catch (Exception e) { e.printStackTrace(); } } }