public String getVersionNumber(String toolName) { try { File findbugsFile = new File(FINDBUGS_FILE); DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); // Prevent XXE docBuilderFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); InputSource is = null; Document doc = null; Node root = null; Reader reader = new Reader(); switch (toolName) { case "findbugs": is = new InputSource(new FileInputStream(findbugsFile)); doc = docBuilder.parse(is); root = doc.getDocumentElement(); return reader.getAttributeValue("version", root); case "findsecbugs": return WriteFiles.getLine(new File("pom.xml"), "findsecbugs-plugin", true) .trim() .replace("<version>", "") .replace("</version>", ""); case "pmd": is = new InputSource(new FileInputStream(new File(PMD_FILE))); doc = docBuilder.parse(is); root = doc.getDocumentElement(); return reader.getAttributeValue("version", root); case "sonar": return "TBD"; } } catch (Exception e) { System.out.println("An error ocurred during results file parsing."); } return ""; }