| <?xml version="1.0" encoding="UTF-8"?> |
| <project name="Check" default="init" basedir="."> |
| <target name="init"> |
| <xmlproperty file="${basedir}/../../pom.xml" prefix="pom_file" collapseattributes="true" semanticattributes="true"/> |
| <script language="javascript"> |
| <![CDATA[ |
| var modules = project.getProperty('pom_file.project.modules.module').split(','); |
| function echo(mess) { |
| var e = project.createTask('echo'); |
| e.setMessage(mess); |
| e.perform(); |
| } |
| var counts = { |
| bundles : { |
| totalBundles : 0, |
| totalWarnings : 0, |
| totalErrors : 0, |
| totalAccess : 0, |
| totaldiscouragedAccessWarningCount : 0, |
| totalforbiddenAccessWarningCount : 0 |
| }, |
| tests : { |
| totalBundles : 0, |
| totalWarnings : 0, |
| totalErrors : 0, |
| totalAccess : 0, |
| totaldiscouragedAccessWarningCount : 0, |
| totalforbiddenAccessWarningCount : 0 |
| } |
| }; |
| var rootDir = project.getProperty('basedir'); |
| for (var i in modules) { |
| var logs = project.createDataType('fileset'); |
| logs.setDir(new java.io.File(rootDir + '/../../' + modules[i])); |
| logs.setIncludes('**/target/logfiles/*.xml'); |
| var ds = logs.getDirectoryScanner(project); |
| var srcFiles = ds.getIncludedFiles(); |
| |
| for (var a in srcFiles) { |
| var basedir = logs.getDir(project).getCanonicalFile(); |
| var filename = srcFiles[a]; |
| var file = new java.io.File(basedir, filename), bundleDir = file.getParentFile().getParentFile().getParentFile(), tests = false; |
| if (bundleDir.getName().indexOf('.test') != -1) { |
| tests = true; |
| } |
| echo(filename); |
| var curr = tests ? counts.tests : counts.bundles; |
| curr.totalBundles++; |
| var dbFactory = javax.xml.parsers.DocumentBuilderFactory.newInstance(), dBuilder = dbFactory.newDocumentBuilder(), doc = dBuilder.parse(file) |
| var sources = doc.getElementsByTagName('sources'); |
| if (sources.getLength() == 0) { |
| continue; |
| } |
| sources = sources.item(0).getElementsByTagName('source'); |
| for (var p = 0; p < sources.getLength();p++) { |
| var main = sources.item(p).getElementsByTagName('problems'); |
| if(main.getLength() == 0) { |
| continue; |
| } |
| var problems = main.item(0).getElementsByTagName('problem'); |
| for (var n = 0; n < problems.getLength(); n++) { |
| var problemId = problems.item(n).getAttribute('problemId'); |
| if (problemId = 'ForbiddenReference') { |
| curr.totalforbiddenAccessWarningCount++; |
| curr.totalAccess++; |
| } else if (problemId == 'DiscouragedReference') { |
| curr.totaldiscouragedAccessWarningCount++; |
| curr.totalAccess++; |
| } |
| var problemSeverity = problems.item(n).getAttribute('severity'); |
| if(problemSeverity == "WARNING") { |
| curr.totalWarnings++; |
| } else if (problemSeverity =="ERROR") { |
| curr.totalErrors++; |
| } |
| } |
| } |
| } |
| |
| } |
| function prepareXml(fileName, settings) { |
| var docFactory = javax.xml.parsers.DocumentBuilderFactory.newInstance(); |
| docBuilder = docFactory.newDocumentBuilder(); |
| doc = docBuilder.newDocument(); |
| rootElement = doc.createElement("compileSummary"); |
| doc.appendChild(rootElement); |
| for (var varName in settings) { |
| var item = doc.createElement('summaryItem'); |
| var name = doc.createElement('name'), value = doc.createElement('value'); |
| name.appendChild(doc.createTextNode(varName)); |
| value.appendChild(doc.createTextNode(settings[varName])); |
| item.appendChild(name); |
| item.appendChild(value); |
| |
| rootElement.appendChild(item); |
| } |
| |
| // write the content into xml file |
| transformerFactory = javax.xml.transform.TransformerFactory.newInstance(); |
| transformer = transformerFactory.newTransformer(); |
| source = new javax.xml.transform.dom.DOMSource(doc); |
| var dir = new java.io.File(rootDir + '/target/repository/logs'); |
| dir.mkdirs(); |
| var resFile = new java.io.File(dir, fileName); |
| if (resFile.exists()) { |
| resFile['delete'](); |
| } |
| result = new javax.xml.transform.stream.StreamResult(resFile); |
| |
| transformer.transform(source, result); |
| } |
| prepareXml('compilelogsSummary.xml', counts.bundles); |
| prepareXml('testcompilelogsSummary.xml', counts.tests); |
| ]]> |
| </script> |
| </target> |
| <target name="loop"> |
| <echo>${module}</echo> |
| |
| <fileset dir="${module}"> |
| <include name="**/logfiles/*.xml"/> |
| </fileset> |
| </target> |
| </project> |