From: rnayabed Date: Tue, 29 Dec 2020 00:55:40 +0530 Subject: work --- work --- --- 'a/src/main/java/com/StreamPi/Util/LoggerHelper/StreamPiLogFileHandler.java' +++ b/src/main/java/com/StreamPi/Util/LoggerHelper/StreamPiLogFileHandler.java @@ -1,13 +1,14 @@ package com.StreamPi.Util.LoggerHelper; import java.io.IOException; +import java.io.Serializable; import java.util.logging.FileHandler; public class StreamPiLogFileHandler extends FileHandler { - public StreamPiLogFileHandler() throws IOException, SecurityException + public StreamPiLogFileHandler(String prePath) throws IOException, SecurityException { - super("streampi.log", false); + super(prePath+"../streampi.log", false); setFormatter(new StreamPiLogFormatter()); } --- 'a/src/main/java/com/StreamPi/Util/XMLConfigHelper/XMLConfigHelper.java' +++ b/src/main/java/com/StreamPi/Util/XMLConfigHelper/XMLConfigHelper.java @@ -1,39 +1,87 @@ package com.StreamPi.Util.XMLConfigHelper; +import java.io.File; +import java.util.logging.Logger; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; public class XMLConfigHelper { + + private static Logger logger = Logger.getLogger(XMLConfigHelper.class.getName()); public static String getStringProperty(Element parentElement, String propertyName) throws Exception { - return getProperty(parentElement, propertyName); + return getProperty(parentElement, propertyName, false, null, null); } public static int getIntProperty(Element parentElement, String propertyName) throws Exception { - return Integer.parseInt(getProperty(parentElement, propertyName)); + return Integer.parseInt(getProperty(parentElement, propertyName, false, null, null)); } + public static boolean getBooleanProperty(Element parentElement, String propertyName) throws Exception { - return getProperty(parentElement, propertyName).equals("true"); + return getProperty(parentElement, propertyName, false, null, null).equals("true"); } - public static String getProperty(Element parentElement, String propertyName) throws Exception + public static String getProperty(Element parentElement, String propertyName, boolean createNewIfDoesntExist, Document document, File file) throws Exception { - return parentElement.getElementsByTagName(propertyName).item(0).getTextContent(); + try { + return parentElement.getElementsByTagName(propertyName).item(0).getTextContent(); + } + catch (Exception e) + { + logger.warning("CANNOT get property "+parentElement.getNodeName()+"."+propertyName+"!"); + + if(createNewIfDoesntExist) + { + logger.warning("Creating new property by that name ..."); + + Element newProp = document.createElement(propertyName); + parentElement.appendChild(newProp); + + save(document, file); + } + + throw e; + } } + public static void save(Document document, File file) throws Exception + { + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + Result output = new StreamResult(file); + Source input = new DOMSource(document); + + transformer.transform(input, output); + } public static String getStringProperty(Element parentElement, String propertyName, String ifNotPresent, boolean printStackTrace) { + return getStringProperty(parentElement, propertyName, ifNotPresent, printStackTrace, false, null, null); + } + + + public static String getStringProperty(Element parentElement, String propertyName, String ifNotPresent, boolean printStackTrace, boolean createNewIfDoesntExist, + Document document, File file) + { String tbr = ifNotPresent; try { - tbr = getProperty(parentElement, propertyName); + tbr = getProperty(parentElement, propertyName, createNewIfDoesntExist, document, file); } catch(Exception e) { @@ -51,44 +99,70 @@ public class XMLConfigHelper { node.removeChild(node.getFirstChild()); } - public static String getStringProperty(Element parentElement, String propertyName, String ifNotPresent) + public static int getIntProperty(Element parentElement, String propertyName, int ifNotPresent, boolean printStackTrace) { - return getStringProperty(parentElement, propertyName, ifNotPresent, true); + return getIntProperty(parentElement, propertyName, ifNotPresent, printStackTrace, false, null, null); } - public static int getIntProperty(Element parentElement, String propertyName, int ifNotPresent) + + public static int getIntProperty(Element parentElement, String propertyName, int ifNotPresent, boolean printStackTrace, boolean createNewIfDoesntExist, + Document document, File file) { int tbr = ifNotPresent; try { - tbr = Integer.parseInt(getProperty(parentElement, propertyName)); + tbr = Integer.parseInt(getProperty(parentElement, propertyName, createNewIfDoesntExist, document, file)); } catch(Exception e) { - e.printStackTrace(); + if(printStackTrace) + e.printStackTrace(); } return tbr; } - public static boolean getBooleanProperty(Element parentElement, String propertyName, boolean ifNotPresent) + public static int getIntProperty(Element parentElement, String propertyName, int ifNotPresent) + { + return getIntProperty(parentElement, propertyName, ifNotPresent, true, false, null, null); + } + + public static String getStringProperty(Element parentElement, String propertyName, String ifNotPresent) + { + return getStringProperty(parentElement, propertyName, ifNotPresent, true, false, null, null); + } + + public static boolean getBooleanProperty(Element parentElement, String propertyName, boolean ifNotPresent, boolean printStackTrace) + { + return getBooleanProperty(parentElement, propertyName, ifNotPresent, printStackTrace, false, null, null); + } + + + public static boolean getBooleanProperty(Element parentElement, String propertyName, boolean ifNotPresent, boolean printStackTrace, boolean createNewIfDoesntExist, + Document document, File file) { boolean tbr = ifNotPresent; try { - tbr = getProperty(parentElement, propertyName).equals("true"); + tbr = getProperty(parentElement, propertyName, createNewIfDoesntExist, document, file).equals("true"); } catch(Exception e) { - e.printStackTrace(); + if(printStackTrace) + e.printStackTrace(); } return tbr; } + public static boolean getBooleanProperty(Element parentElement, String propertyName, boolean ifNotPresent) + { + return getBooleanProperty(parentElement, propertyName, ifNotPresent, true, false, null, null); + } + public static boolean doesElementExist(Element parent, String nameOfElement) { return parent.getElementsByTagName(nameOfElement).getLength() > 0;