diff options
author | Shevek <[email protected]> | 2014-12-31 19:05:36 -0800 |
---|---|---|
committer | Shevek <[email protected]> | 2014-12-31 19:05:36 -0800 |
commit | 08d96e5f21cd44905e189a71cd22c3fc5bfaff0d (patch) | |
tree | 9aa51e905ca1da082f43e5cae6ff726ee691c3d0 /lib/findbugs | |
parent | 927ecc0ad4fb8959e1c57e6177545ce694c58ce1 (diff) |
Remove old binary files from build tree.
Diffstat (limited to 'lib/findbugs')
20 files changed, 0 insertions, 2907 deletions
diff --git a/lib/findbugs/lib/annotations.jar b/lib/findbugs/lib/annotations.jar Binary files differdeleted file mode 100644 index e16db1f..0000000 --- a/lib/findbugs/lib/annotations.jar +++ /dev/null diff --git a/lib/findbugs/lib/asm-3.0.jar b/lib/findbugs/lib/asm-3.0.jar Binary files differdeleted file mode 100644 index 7a5c727..0000000 --- a/lib/findbugs/lib/asm-3.0.jar +++ /dev/null diff --git a/lib/findbugs/lib/asm-analysis-3.0.jar b/lib/findbugs/lib/asm-analysis-3.0.jar Binary files differdeleted file mode 100644 index c5f795f..0000000 --- a/lib/findbugs/lib/asm-analysis-3.0.jar +++ /dev/null diff --git a/lib/findbugs/lib/asm-commons-3.0.jar b/lib/findbugs/lib/asm-commons-3.0.jar Binary files differdeleted file mode 100644 index 2971530..0000000 --- a/lib/findbugs/lib/asm-commons-3.0.jar +++ /dev/null diff --git a/lib/findbugs/lib/asm-tree-3.0.jar b/lib/findbugs/lib/asm-tree-3.0.jar Binary files differdeleted file mode 100644 index c6347fe..0000000 --- a/lib/findbugs/lib/asm-tree-3.0.jar +++ /dev/null diff --git a/lib/findbugs/lib/asm-util-3.0.jar b/lib/findbugs/lib/asm-util-3.0.jar Binary files differdeleted file mode 100644 index 9515986..0000000 --- a/lib/findbugs/lib/asm-util-3.0.jar +++ /dev/null diff --git a/lib/findbugs/lib/asm-xml-3.0.jar b/lib/findbugs/lib/asm-xml-3.0.jar Binary files differdeleted file mode 100644 index b3d1a64..0000000 --- a/lib/findbugs/lib/asm-xml-3.0.jar +++ /dev/null diff --git a/lib/findbugs/lib/bcel.jar b/lib/findbugs/lib/bcel.jar Binary files differdeleted file mode 100644 index be093c8..0000000 --- a/lib/findbugs/lib/bcel.jar +++ /dev/null diff --git a/lib/findbugs/lib/buggy.icns b/lib/findbugs/lib/buggy.icns Binary files differdeleted file mode 100644 index b1f4660..0000000 --- a/lib/findbugs/lib/buggy.icns +++ /dev/null diff --git a/lib/findbugs/lib/dom4j-full.jar b/lib/findbugs/lib/dom4j-full.jar Binary files differdeleted file mode 100644 index 1efbf7e..0000000 --- a/lib/findbugs/lib/dom4j-full.jar +++ /dev/null diff --git a/lib/findbugs/lib/findbugs-ant.jar b/lib/findbugs/lib/findbugs-ant.jar Binary files differdeleted file mode 100644 index 3a2740e..0000000 --- a/lib/findbugs/lib/findbugs-ant.jar +++ /dev/null diff --git a/lib/findbugs/lib/findbugs.jar b/lib/findbugs/lib/findbugs.jar Binary files differdeleted file mode 100644 index 10c8f78..0000000 --- a/lib/findbugs/lib/findbugs.jar +++ /dev/null diff --git a/lib/findbugs/lib/findbugsGUI.jar b/lib/findbugs/lib/findbugsGUI.jar Binary files differdeleted file mode 100644 index 8cf6984..0000000 --- a/lib/findbugs/lib/findbugsGUI.jar +++ /dev/null diff --git a/lib/findbugs/lib/jsr305.jar b/lib/findbugs/lib/jsr305.jar Binary files differdeleted file mode 100644 index 90119cb..0000000 --- a/lib/findbugs/lib/jsr305.jar +++ /dev/null diff --git a/lib/findbugs/plugin/coreplugin.jar b/lib/findbugs/plugin/coreplugin.jar Binary files differdeleted file mode 100644 index 0f9c317..0000000 --- a/lib/findbugs/plugin/coreplugin.jar +++ /dev/null diff --git a/lib/findbugs/xsl/default.xsl b/lib/findbugs/xsl/default.xsl deleted file mode 100644 index e8f30d4..0000000 --- a/lib/findbugs/xsl/default.xsl +++ /dev/null @@ -1,376 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - FindBugs - Find bugs in Java programs - Copyright (C) 2004,2005 University of Maryland - Copyright (C) 2005, Chris Nappin - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> - -<!-- - A simple XSLT stylesheet to transform FindBugs XML results - annotated with messages into HTML. - - If you want to experiment with modifying this stylesheet, - or write your own, you need to generate XML output from FindBugs - using a special option which lets it know to include - human-readable messages in the XML. Invoke the findbugs script - as follows: - - findbugs -textui -xml:withMessages -project myProject.fb > results.xml - - Then you can use your favorite XSLT implementation to transform - the XML output into HTML. (But don't use xsltproc. It generates well-nigh - unreadable output, and generates incorrect output for the - <script> element.) - - Authors: - David Hovemeyer - Chris Nappin (summary table) ---> - -<xsl:stylesheet - version="1.0" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - -<xsl:output - method="xml" - indent="yes" - omit-xml-declaration="yes" - standalone="yes" - doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" - doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" - encoding="UTF-8"/> - -<xsl:variable name="literalNbsp">&nbsp;</xsl:variable> - -<!--xsl:key name="bug-category-key" match="/BugCollection/BugInstance" use="@category"/--> - -<xsl:variable name="bugTableHeader"> - <tr class="tableheader"> - <th align="left">Code</th> - <th align="left">Warning</th> - </tr> -</xsl:variable> - -<xsl:template match="/"> - <html> - <head> - <title>FindBugs Report</title> - <style type="text/css"> - .tablerow0 { - background: #EEEEEE; - } - - .tablerow1 { - background: white; - } - - .detailrow0 { - background: #EEEEEE; - } - - .detailrow1 { - background: white; - } - - .tableheader { - background: #b9b9fe; - font-size: larger; - } - - .tablerow0:hover, .tablerow1:hover { - background: #aaffaa; - } - - .priority-1 { - color: red; - font-weight: bold; - } - .priority-2 { - color: orange; - font-weight: bold; - } - .priority-3 { - color: green; - font-weight: bold; - } - .priority-4 { - color: blue; - font-weight: bold; - } - </style> - <script type="text/javascript"> - function toggleRow(elid) { - if (document.getElementById) { - element = document.getElementById(elid); - if (element) { - if (element.style.display == 'none') { - element.style.display = 'block'; - //window.status = 'Toggle on!'; - } else { - element.style.display = 'none'; - //window.status = 'Toggle off!'; - } - } - } - } - </script> - </head> - - <xsl:variable name="unique-catkey" select="/BugCollection/BugCategory/@category"/> - <!--xsl:variable name="unique-catkey" select="/BugCollection/BugInstance[generate-id() = generate-id(key('bug-category-key',@category))]/@category"/--> - - <body> - - <h1><a href="http://findbugs.sourceforge.net">FindBugs</a> Report</h1> - - <h2>Project Information</h2> - <xsl:apply-templates select="/BugCollection/Project"/> - - <h2>Metrics</h2> - <xsl:apply-templates select="/BugCollection/FindBugsSummary"/> - - <h2>Contents</h2> - <ul> - <xsl:for-each select="$unique-catkey"> - <xsl:sort select="." order="ascending"/> - <xsl:variable name="catkey" select="."/> - <xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/> - - <li><a href="#Warnings_{$catkey}"><xsl:value-of select="$catdesc"/> Warnings</a></li> - </xsl:for-each> - - <li><a href="#Details">Details</a></li> - </ul> - - <h1>Summary</h1> - <table width="500" cellpadding="5" cellspacing="2"> - <tr class="tableheader"> - <th align="left">Warning Type</th> - <th align="right">Number</th> - </tr> - - <xsl:for-each select="$unique-catkey"> - <xsl:sort select="." order="ascending"/> - <xsl:variable name="catkey" select="."/> - <xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/> - <xsl:variable name="styleclass"> - <xsl:choose><xsl:when test="position() mod 2 = 1">tablerow0</xsl:when> - <xsl:otherwise>tablerow1</xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <tr class="{$styleclass}"> - <td><a href="#Warnings_{$catkey}"><xsl:value-of select="$catdesc"/> Warnings</a></td> - <td align="right"><xsl:value-of select="count(/BugCollection/BugInstance[(@category=$catkey) and not(@last)])"/></td> - </tr> - </xsl:for-each> - - <xsl:variable name="styleclass"> - <xsl:choose><xsl:when test="count($unique-catkey) mod 2 = 0">tablerow0</xsl:when> - <xsl:otherwise>tablerow1</xsl:otherwise> - </xsl:choose> - </xsl:variable> - <tr class="{$styleclass}"> - <td><b>Total</b></td> - <td align="right"><b><xsl:value-of select="count(/BugCollection/BugInstance[not(@last)])"/></b></td> - </tr> - </table> - - <h1>Warnings</h1> - - <p>Click on a warning row to see full context information.</p> - - <xsl:for-each select="$unique-catkey"> - <xsl:sort select="." order="ascending"/> - <xsl:variable name="catkey" select="."/> - <xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/> - - <xsl:call-template name="generateWarningTable"> - <xsl:with-param name="warningSet" select="/BugCollection/BugInstance[(@category=$catkey) and not(@last)]"/> - <xsl:with-param name="sectionTitle"><xsl:value-of select="$catdesc"/> Warnings</xsl:with-param> - <xsl:with-param name="sectionId">Warnings_<xsl:value-of select="$catkey"/></xsl:with-param> - </xsl:call-template> - </xsl:for-each> - - <h1><a name="Details">Details</a></h1> - - <xsl:apply-templates select="/BugCollection/BugPattern"> - <xsl:sort select="@abbrev"/> - <xsl:sort select="ShortDescription"/> - </xsl:apply-templates> - - </body> - </html> -</xsl:template> - -<xsl:template match="Project"> - <p>Project: - <xsl:choose> - <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when> - <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise> - </xsl:choose> - </p> - <p>FindBugs version: <xsl:value-of select="/BugCollection/@version"/></p> - - <p>Code analyzed:</p> - <ul> - <xsl:for-each select="./Jar"> - <li><xsl:value-of select="text()"/></li> - </xsl:for-each> - </ul> - <p><br/><br/></p> -</xsl:template> - -<xsl:template match="BugInstance[not(@last)]"> - <xsl:variable name="warningId"><xsl:value-of select="generate-id()"/></xsl:variable> - - <tr class="tablerow{position() mod 2}" onclick="toggleRow('{$warningId}');"> - - <td> - <span><xsl:attribute name="class">priority-<xsl:value-of select="@priority"/></xsl:attribute> - <xsl:value-of select="@abbrev"/> - </span> - </td> - - <td> - <xsl:value-of select="LongMessage"/> - </td> - - </tr> - - <!-- Add bug annotation elements: Class, Method, Field, SourceLine, Field --> - <tr class="detailrow{position() mod 2}"> - <td/> - <td> - <p id="{$warningId}" style="display: none;"> - <a href="#{@type}">Bug type <xsl:value-of select="@type"/> (click for details)</a> - <xsl:for-each select="./*/Message"> - <br/><xsl:value-of select="text()" disable-output-escaping="no"/> - </xsl:for-each> - </p> - </td> - </tr> -</xsl:template> - -<xsl:template match="BugPattern"> - <h2><a name="{@type}"><xsl:value-of select="@type"/>: <xsl:value-of select="ShortDescription"/></a></h2> - <xsl:value-of select="Details" disable-output-escaping="yes"/> -</xsl:template> - -<xsl:template name="generateWarningTable"> - <xsl:param name="warningSet"/> - <xsl:param name="sectionTitle"/> - <xsl:param name="sectionId"/> - - <h2><a name="{$sectionId}"><xsl:value-of select="$sectionTitle"/></a></h2> - <table class="warningtable" width="100%" cellspacing="0"> - <xsl:copy-of select="$bugTableHeader"/> - <xsl:apply-templates select="$warningSet"> - <xsl:sort select="@abbrev"/> - <xsl:sort select="Class/@classname"/> - </xsl:apply-templates> - </table> -</xsl:template> - -<xsl:template match="FindBugsSummary"> - <xsl:variable name="kloc" select="@total_size div 1000.0"/> - <xsl:variable name="format" select="'#######0.00'"/> - - <p><xsl:value-of select="@total_size"/> lines of code analyzed, - in <xsl:value-of select="@total_classes"/> classes, - in <xsl:value-of select="@num_packages"/> packages.</p> - <table width="500" cellpadding="5" cellspacing="2"> - <tr class="tableheader"> - <th align="left">Metric</th> - <th align="right">Total</th> - <th align="right">Density*</th> - </tr> - <tr class="tablerow0"> - <td>High Priority Warnings</td> - <td align="right"><xsl:value-of select="@priority_1"/></td> - <td align="right"> - <xsl:choose> - <xsl:when test= "number($kloc) > 0.0 and number(@priority_1) > 0.0"> - <xsl:value-of select="format-number(@priority_1 div $kloc, $format)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="format-number(0.0, $format)"/> - </xsl:otherwise> - </xsl:choose> - </td> - </tr> - <tr class="tablerow1"> - <td>Medium Priority Warnings</td> - <td align="right"><xsl:value-of select="@priority_2"/></td> - <td align="right"> - <xsl:choose> - <xsl:when test= "number($kloc) > 0.0 and number(@priority_2) > 0.0"> - <xsl:value-of select="format-number(@priority_2 div $kloc, $format)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="format-number(0.0, $format)"/> - </xsl:otherwise> - </xsl:choose> - </td> - </tr> - - <xsl:choose> - <xsl:when test="@priority_3"> - <tr class="tablerow1"> - <td>Low Priority Warnings</td> - <td align="right"><xsl:value-of select="@priority_3"/></td> - <td align="right"> - <xsl:choose> - <xsl:when test= "number($kloc) > 0.0 and number(@priority_3) > 0.0"> - <xsl:value-of select="format-number(@priority_3 div $kloc, $format)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="format-number(0.0, $format)"/> - </xsl:otherwise> - </xsl:choose> - </td> - </tr> - <xsl:variable name="totalClass" select="tablerow0"/> - </xsl:when> - <xsl:otherwise> - <xsl:variable name="totalClass" select="tablerow1"/> - </xsl:otherwise> - </xsl:choose> - - <tr class="$totalClass"> - <td><b>Total Warnings</b></td> - <td align="right"><b><xsl:value-of select="@total_bugs"/></b></td> - <xsl:choose> - <xsl:when test="number($kloc) > 0.0"> - <td align="right"><b><xsl:value-of select="format-number(@total_bugs div $kloc, $format)"/></b></td> - </xsl:when> - <xsl:otherwise> - <td align="right"><b><xsl:value-of select="format-number(0.0, $format)"/></b></td> - </xsl:otherwise> - </xsl:choose> - </tr> - </table> - <p><i>(* Defects per Thousand lines of non-commenting source statements)</i></p> - <p><br/><br/></p> - -</xsl:template> - -</xsl:stylesheet> - -<!-- vim:set ts=4: --> diff --git a/lib/findbugs/xsl/fancy-hist.xsl b/lib/findbugs/xsl/fancy-hist.xsl deleted file mode 100644 index 8086600..0000000 --- a/lib/findbugs/xsl/fancy-hist.xsl +++ /dev/null @@ -1,1127 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!-- - Copyright (C) 2005, 2006 Etienne Giraudy, InStranet Inc - Copyright (C) 2005, 2007 Etienne Giraudy - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> - -<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" > - <xsl:output - method="xml" indent="yes" - doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" - doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" - encoding="UTF-8"/> - - <xsl:variable name="apos" select=""'""/> - <xsl:key name="lbc-code-key" match="/BugCollection/BugInstance" use="concat(@category,@abbrev)" /> - <xsl:key name="lbc-bug-key" match="/BugCollection/BugInstance" use="concat(@category,@abbrev,@type)" /> - <xsl:key name="lbp-class-b-t" match="/BugCollection/BugInstance" use="concat(Class/@classname,@type)" /> - -<xsl:template match="/" > - -<html> - <head> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title> - FindBugs (<xsl:value-of select="/BugCollection/@version" />) - Analysis for - <xsl:choose> - <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when> - <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise> - </xsl:choose> - </title> - <style type="text/css"> - html, body, div, form { - margin:0px; - padding:0px; - } - body { - padding:3px; - } - a, a:link , a:active, a:visited, a:hover { - text-decoration: none; color: black; - } - #navlist { - padding: 3px 0; - margin-left: 0; - border-bottom: 1px solid #778; - font: bold 12px Verdana, sans-serif; - } - #navlist li { - list-style: none; - margin: 0; - display: inline; - } - #navlist li a { - padding: 3px 0.5em; - margin-left: 3px; - border: 1px solid #778; - border-bottom: none; - background: #DDE; - text-decoration: none; - } - #navlist li a:link { color: #448; } - #navlist li a:visited { color: #667; } - #navlist li a:hover { - color: #000; - background: #AAE; - border-color: #227; - } - #navlist li a.current { - background: white; - border-bottom: 1px solid white; - } - #filterWrapper { - margin-bottom:5px; - } - #displayWrapper { - margin-top:5px; - } - .message { - background:#BBBBBB; - border: 1px solid #778; - } - .displayContainer { - border:1px solid #555555; - margin-top:3px; - padding: 3px; - display:none; - } - #summaryContainer table, - #historyContainer table { - border:1px solid black; - } - #summaryContainer th, - #historyContainer th { - background: #aaaaaa; - color: white; - } - #summaryContainer th, #summaryContainer td, - #historyContainer th, #historyContainer td { - padding: 2px 4px 2px 4px; - } - .summary-name { - background: #eeeeee; - text-align:left; - } - .summary-size { - background: #eeeeee; - text-align:center; - } - .summary-priority-all { - background: #dddddd; - text-align:center; - } - .summary-priority-1 { - background: red; - text-align:center; - } - .summary-priority-2 { - background: orange; - text-align:center; - } - .summary-priority-3 { - background: green; - text-align:center; - } - .summary-priority-4 { - background: blue; - text-align:center; - } - - .bugList-level1 { - margin-bottom:5px; - } - .bugList-level1, .bugList-level2, .bugList-level3, .bugList-level4 { - background-color: #ffffff; - margin-left:15px; - padding-left:10px; - } - .bugList-level1-label, .bugList-level2-label, .bugList-level3-label, .bugList-level4-label { - background-color: #bbbbbb; - border: 1px solid black; - padding: 1px 3px 1px 3px;; - } - .bugList-level2-label, .bugList-level3-label, .bugList-level4-label { - border-width: 0px 1px 1px 1px; - } - .bugList-level4-label { - background-color: #ffffff; - border: 0px 0px 1px 0px; - } - .bugList-level4 { - border: 0px 1px 1px 1px; - } - - .bugList-level4-inner { - border-style: solid; - border-color: black; - border-width: 0px 1px 1px 1px; - } - .b-r { - font-size: 10pt; font-weight: bold; padding: 0 0 0 60px; - } - .b-d { - font-weight: normal; background: #ccccc0; - padding: 0 5px 0 5px; margin: 0px; - } - .b-1 { - background: red; height: 0.5em; width: 1em; - margin-right: 0.5em; - } - .b-2 { - background: orange; height: 0.5em; width: 1em; - margin-right: 0.5em; - } - .b-3 { - background: green; height: 0.5em; width: 1em; - margin-right: 0.5em; - } - .b-4 { - background: blue; height: 0.5em; width: 1em; - margin-right: 0.5em; - } - - </style> - <script type='text/javascript'><xsl:text disable-output-escaping='yes'><![CDATA[ - var menus = new Array('summary','info','history','listByCategories','listByPackages'); - var selectedMenuId = "summary"; - var selectedVersion = -1; - var selectedPriority = 4; - var lastVersion = 0; - - var bPackageNamesPopulated = false; - - var filterContainerId = "filterWrapper"; - var messageContainerId = "messageContainer"; - var summaryContainerId = "summaryContainer"; - var infoContainerId = "infoContainer"; - var historyContainerId = "historyContainer"; - var listByCategoriesContainerId = "listByCategoriesContainer"; - var listByPackagesContainerId = "listByPackagesContainer"; - - var idxCatKey = 0; var idxCatDescr = 1; var idxBugCat = 1; - var idxCodeKey = 0; var idxCodeDescr = 1; var idxBugCode = 2; - var idxPatternKey = 2; var idxPatternDescr = 3; var idxBugPattern = 3; - var idxBugKey = 0; var idxBugDescr = 6; - var idxBugClass = 6, idxBugPackage = 7; - - // main init function - function init() { - loadFilter(); - selectMenu(selectedMenuId); - lastVersion = versions.length - 1; - } - - // menu callback function - function selectMenu(menuId) { - document.getElementById(selectedMenuId).className="none"; - document.getElementById(menuId).className="current"; - if (menuId!=selectedMenuId) { - hideMenu(selectedMenuId); - selectedMenuId = menuId; - } - if (menuId=="summary") displaySummary(); - if (menuId=="info") displayInfo(); - if (menuId=="history") displayHistory(); - if (menuId=="listByCategories") displayListByCategories(); - if (menuId=="listByPackages") displayListByPackages(); - } - - // display filter - function loadFilter() { - var versionsBox = document.findbugsForm.versions.options; - versionsBox[0] = new Option(" -- All Versions -- ","-1"); - versionsBox.selectedIndex = 0; - if (versions.length>=1) { - for (x=0; versions.length>1 && x<versions.length; x++) { - versionsBox[x+1] = new Option(" Bugs at release: "+versions[versions.length-x-1][1], versions[versions.length-x-1][0]); - } - } - - var prioritiesBox = document.findbugsForm.priorities.options; - prioritiesBox[0] = new Option(" -- All priorities -- ", "4"); - prioritiesBox[1] = new Option(" P1 bugs ", "1"); - prioritiesBox[2] = new Option(" P1 and P2 bugs ", "2"); - prioritiesBox[3] = new Option(" P1, P2 and P3 bugs ", "3"); - } - - // display a message - function displayMessage(msg) { - var container = document.getElementById(messageContainerId); - container.innerHTML = "<div class='message'>"+msg+"</div>"; - } - - // reset displayed message - function resetMessage() { - var container = document.getElementById(messageContainerId); - container.innerHTML = ""; - } - - function hideMenu(menuId) { - var container = menuId+"Container"; - document.getElementById(container).style.display="none"; - } - - // filter callback function - function filter() { - var versionsBox = document.findbugsForm.versions.options; - selectedVersion = versionsBox[versionsBox.selectedIndex].value; - - var prioritiesBox = document.findbugsForm.priorities.options; - selectedPriority = prioritiesBox[prioritiesBox.selectedIndex].value; - - selectMenu(selectedMenuId); - } - - // display summary tab - function displaySummary() { - resetMessage(); - hide(filterContainerId); - var container = document.getElementById(summaryContainerId); - container.style.display="block"; - } - - // display info tab - function displayInfo() { - resetMessage(); - hide(filterContainerId); - var container = document.getElementById(infoContainerId); - container.style.display="block"; - } - - // display history tab - function displayHistory() { - displayMessage("Loading history..."); - hide(filterContainerId); - var container = document.getElementById(historyContainerId); - var content = ""; - var i=0; - var p = [0,0,0,0,0]; - var f = [0,0,0,0,0]; - - content += "<table><tr><th>Release</th><th>Bugs</th><th>Bugs p1</th><th>Bugs p2</th><th>Bugs p3</th><th>Bugs Exp.</th></tr>"; - - for (i=(versions.length-1); i>0; i--) { - v = countBugsVersion(i, 4); - t = countTotalBugsVersion(i); - o = countFixedButActiveBugsVersion(i); - f = countFixedBugsInVersion(i); - content += "<tr>"; - content += "<td class='summary-name'>" + versions[i][1] + "</td>"; - content += "<td class='summary-priority-all'> " + (t[0] + o[0]) + " (+" + v[0] + " / -" + f[0] + ") </td>"; - content += "<td class='summary-priority-1' > " + (t[1] + o[1]) + " (+" + v[1] + " / -" + f[1] + ") </td>"; - content += "<td class='summary-priority-2' > " + (t[2] + o[2]) + " (+" + v[2] + " / -" + f[2] + ") </td>"; - content += "<td class='summary-priority-3' > " + (t[3] + o[3]) + " (+" + v[3] + " / -" + f[3] + ") </td>"; - content += "<td class='summary-priority-4' > " + (t[4] + o[4]) + " (+" + v[4] + " / -" + f[4] + ") </td>"; - content += "</tr>"; - } - - t = countTotalBugsVersion(0); - o = countFixedButActiveBugsVersion(0); - content += "<tr>"; - content += "<td class='summary-name'>" + versions[0][1] + "</td>"; - content += "<td class='summary-priority-all'> " + (t[0] + o[0]) + " </td>"; - content += "<td class='summary-priority-1' > " + (t[1] + o[1]) + " </td>"; - content += "<td class='summary-priority-2' > " + (t[2] + o[2]) + " </td>"; - content += "<td class='summary-priority-3' > " + (t[3] + o[3]) + " </td>"; - content += "<td class='summary-priority-4' > " + (t[4] + o[4]) + " </td>"; - content += "</tr>"; - - content += "</table>"; - container.innerHTML = content; - container.style.display="block"; - resetMessage(); - } - - // display list by cat tab - function displayListByCategories() { - show(filterContainerId); - var container = document.getElementById(listByCategoriesContainerId); - container.innerHTML = ""; - container.style.display="block"; - displayMessage("Loading stats (categories)..."); - container.innerHTML = displayLevel1("lbc", "Stats by Bug Categories"); - resetMessage(); - } - - // display list by package tab - function displayListByPackages() { - show(filterContainerId); - var container = document.getElementById(listByPackagesContainerId); - container.style.display="block"; - if (!bPackageNamesPopulated) { - displayMessage("Initializing..."); - populatePackageNames(); - } - displayMessage("Loading stats (packages)..."); - container.innerHTML = displayLevel1("lbp", "Stats by Bug Package"); - resetMessage(); - } - - // callback function for list item click - function toggleList(listType, containerId, id1, id2, id3) { - var container = document.getElementById(containerId); - if (container.style.display=="block") { - container.style.display="none"; - } else { - if (listType=="lbc") { - if (id1.length>0 && id2.length==0 && id3.length==0) { - displayCategoriesCodes(containerId, id1); - } else if (id1.length>0 && id2.length>0 && id3.length==0) { - displayCategoriesCodesPatterns(containerId, id1, id2); - } else if (id1.length>0 && id2.length>0 && id3.length>0) { - displayCategoriesCodesPatternsBugs(containerId, id1, id2, id3); - } else { - // ??? - } - } else if (listType=="lbp") { - if (id1.length>0 && id2.length==0 && id3.length==0) { - displayPackageCodes(containerId, id1); - } else if (id1.length>0 && id2.length>0 && id3.length==0) { - displayPackageClassPatterns(containerId, id1, id2); - } else if (id1.length>0 && id2.length>0 && id3.length>0) { - displayPackageClassPatternsBugs(containerId, id1, id2, id3); - } else { - // ??? - } - } else { - // ???? - } - } - } - - // list by categories, display bug cat>codes - function displayCategoriesCodes(containerId, catId) { - displayMessage("Loading stats (codes)..."); - var container = document.getElementById(containerId); - container.style.display="block"; - if (container.innerHTML=="Loading..." || container.innerHTML=="") { - container.innerHTML = displayLevel2("lbc", catId); - } - resetMessage(); - } - - // list by categories, display bug package>codes - function displayPackageCodes(containerId, packageId) { - displayMessage("Loading stats (codes)..."); - var container = document.getElementById(containerId); - container.style.display="block"; - if (container.innerHTML=="Loading..." || container.innerHTML=="") { - container.innerHTML = displayLevel2("lbp", packageId); - } - resetMessage(); - } - - // list by categories, display bug cat>codes>patterns - function displayCategoriesCodesPatterns(containerId, catId, codeId) { - displayMessage("Loading stats (patterns)..."); - var container = document.getElementById(containerId); - container.style.display="block"; - if (container.innerHTML=="Loading..." || container.innerHTML=="") - container.innerHTML = displayLevel3("lbc", catId, codeId); - resetMessage(); - } - - // list by package, display bug package>class>patterns - function displayPackageClassPatterns(containerId, packageId, classId) { - displayMessage("Loading stats (patterns)..."); - var container = document.getElementById(containerId); - container.style.display="block"; - if (container.innerHTML=="Loading..." || container.innerHTML=="") - container.innerHTML = displayLevel3("lbp", packageId, classId); - resetMessage(); - } - - // list by categories, display bug cat>codes>patterns>bugs - function displayCategoriesCodesPatternsBugs(containerId, catId, codeId, patternId) { - displayMessage("Loading stats (bugs)..."); - var container = document.getElementById(containerId); - container.style.display="block"; - if (container.innerHTML=="Loading..." || container.innerHTML=="") - container.innerHTML = displayLevel4("lbc", catId, codeId, patternId); - resetMessage(); - } - - // list by package, display bug package>class>patterns>bugs - function displayPackageClassPatternsBugs(containerId, packageId, classId, patternId) { - displayMessage("Loading stats (bugs)..."); - var container = document.getElementById(containerId); - container.style.display="block"; - if (container.innerHTML=="Loading..." || container.innerHTML=="") - container.innerHTML = displayLevel4("lbp", packageId, classId, patternId); - resetMessage(); - } - - // generate level 1 list - function displayLevel1(list, title) { - var content = ""; - var content2 = ""; - - content += "<h3>"+title+"</h3>"; - content += getPriorityLegend(); - content2 += "<div class='bugList'>"; - - var id = ""; - var containerId = ""; - var subContainerId = ""; - var prefixSub = ""; - var prefixId = ""; - var p = [0,0,0,0,0]; - var numberOfBugs = 0; - var label = ""; - var max = 0; - if (list=="lbc") { - max = categories.length; - } else if (list=="lbp") { - max = packageStats.length; - } - - for (var x=0; x<max -1; x++) { - if (list=="lbp" && packageStats[x][1]=="0") continue; - - if (list=="lbc") { - id = categories[x][idxCatKey]; - label = categories[x][idxCatDescr]; - containerId = "categories-" + id; - subContainerId = "cat-"+id; - p = countBugsCat(selectedVersion, selectedPriority, id, idxBugCat); - } - if (list=="lbp") { - id = packageStats[x][0]; - label = packageStats[x][0]; - containerId = "packages-" + id; - subContainerId = "package-"+id; - p = countBugsPackage(selectedVersion, selectedPriority, id, idxBugPackage); - } - - subContainerId = prefixSub+id; - - var total = p[1]+p[2]+p[3]+p[4]; - if (total > 0) { - content2 += addListItem( 1, containerId, label, total, p, subContainerId, - "toggleList('" + list + "', '" + subContainerId + "', '"+ id + "', '', '')" - ); - } - numberOfBugs += total; - } - content2 += "</div>"; - content += "<h4>Total number of bugs"; - if (selectedVersion!=-1) { - content += " (introduced in release " + versions[selectedVersion][1] +")"; - } - content += ": "+numberOfBugs+"</h4>"; - return content+content2; - } - - // generate level 2 list - function displayLevel2(list, id1) { - var content = ""; - var code = ""; - var containerId = ""; - var subContainerId = ""; - var p = [0,0,0,0,0]; - var max = 0; - var id2 = ""; - if (list=="lbc") { - max = codes.length; - } else if (list=="lbp") { - max = classStats.length; - } - - for (var x=0; x<max -1; x++) { - if (list=="lbp" && classStats[x][3]=="0") continue; - - if (list=="lbc") { - id2 = codes[x][idxCodeKey]; - label = codes[x][idxCodeDescr]; - containerId = "codes-"+id1; - subContainerId = "cat-" + id1 + "-code-" + id2; - p = countBugsCode(selectedVersion, selectedPriority, id1, idxBugCat, id2, idxBugCode); - } - if (list=="lbp") { - id2 = classStats[x][0]; - label = classStats[x][0]; - containerId = "packages-"+id1; - subContainerId = "package-" + id1 + "-class-" + id2; - p = countBugsClass(selectedVersion, selectedPriority, id1, idxBugPackage, id2, idxBugClass); - } - - var total = p[1]+p[2]+p[3]+p[4]; - if (total > 0) { - content += addListItem( 2, containerId, label, total, p, subContainerId, - "toggleList('"+ list + "', '" + subContainerId + "', '"+ id1 + "', '"+ id2 + "', '')" - ); - } - } - return content; - } - - // generate level 3 list - function displayLevel3(list, id1, id2) { - var content = ""; - var containerId = ""; - var subContainerId = ""; - var p = [0,0,0,0,0]; - var max = 0; - var label = ""; - var id3 = ""; - - if (list=="lbc") { - max = patterns.length; - } else if (list=="lbp") { - max = patterns.length; - } - - for (var x=0; x<max -1; x++) { - //if (list=="lbp" && (patterns[x][0]!=id1 || patterns[x][1]!=id2)) continue; - //if (list=="lbp" && classStats[x][3]=="0") continue; - - if (list=="lbc") { - id3 = patterns[x][idxPatternKey];; - label = patterns[x][idxPatternDescr]; - containerId = "patterns-"+id1; - subContainerId = "cat-" + id1 + "-code-" + id2 + "-pattern-" + id3; - p = countBugsPattern(selectedVersion, selectedPriority, id1, idxBugCat, id2, idxBugCode, id3, idxBugPattern); - } - if (list=="lbp") { - id3 = patterns[x][idxPatternKey];; - label = patterns[x][idxPatternDescr]; - containerId = "classpatterns-"+id1; - subContainerId = "package-" + id1 + "-class-" + id2 + "-pattern-" + id3; - p = countBugsClassPattern(selectedVersion, selectedPriority, id2, idxBugClass, id3, idxBugPattern); - } - - var total = p[1]+p[2]+p[3]+p[4]; - if (total > 0) { - content += addListItem( 3, containerId, label, total, p, subContainerId, - "toggleList('" + list + "', '" + subContainerId + "', '"+ id1 + "', '"+ id2 + "', '"+ id3 + "')" - ); - } - } - return content; - } - - // generate level 4 list - function displayLevel4(list, id1, id2, id3) { - var content = ""; - var bug = ""; - var bugP = 0; - var containerId = ""; - var subContainerId = ""; - var bugId = ""; - var label = ""; - var p = [0,0,0,0,0]; - for (var x=0; x<bugs.length -1; x++) { - bug = bugs[x]; - if (list=="lbc") { - if ( bug[1]!=id1 || bug[2]!=id2 || bug[3]!=id3 ) continue; - if ( selectedVersion!=-1 - && selectedVersion!=bug[5]) continue; - if ( selectedPriority!=4 - && selectedPriority<bug[4]) continue; - - subContainerId = "cat-" + id1 + "-code-" + id2 + "-pattern-" + id3 + "-bug-" + bug[0]; - } - if (list=="lbp") { - if ( bug[7]!=id1 || bug[6]!=id2 || bug[3]!=id3 ) continue; - if ( selectedVersion!=-1 - && selectedVersion!=bug[5]) continue; - if ( selectedPriority!=4 - && selectedPriority<bug[4]) continue; - - subContainerId = "package-" + id1 + "-class-" + id2 + "-pattern-" + id3 + "-bug-" + bug[0]; - } - - bugId = "b-uid-" + bug[0]; - label = bug[idxBugDescr]; - containerId = "bugs-"+bugId; - bugP = bug[4]; - p[bugP]++; - var total = p[1]+p[2]+p[3]+p[4]; - if (total > 0) { - content += addBug( 4, containerId, label, bugP, bug[5], subContainerId, - "showbug('" + bugId + "', '" + subContainerId + "', '"+id3+"')"); - } - } - return content; - } - - - function addListItem(level, id, label, total, p, subId, onclick) { - var content = ""; - - content += "<div class='bugList-level"+level+"' >"; - content += "<div class='bugList-level"+level+"-label' id='"+id+"' >"; - content += "<a href='' onclick=\"" + onclick + ";return false;\" "; - content += ">"; - content += "<strong>"+label+"</strong>"; - content += " "+total+" bugs"; - if (selectedPriority>1) - content += " <em>("+p[1]; - if (selectedPriority>=2) - content += "/"+p[2]; - if (selectedPriority>=3) - content += "/"+p[3]; - if (selectedPriority>=4) - content += "/"+p[4]; - if (selectedPriority>1) - content += ")</em>"; - content += "</a>"; - content += "</div>"; - content += "<div class='bugList-level"+level+"-inner' id='"+subId+"' style='display:none;'>Loading...</div>"; - content += "</div>"; - return content; - } - - function addBug( level, id, label, p, version, subId, onclick) { - var content = ""; - - content += "<div class='bugList-level" + level + "' id='" + id + "'>"; - content += "<div class='bugList-level" + level + "-label' id='" + id + "'>"; - content += "<span class='b-" + p + "'> </span>"; - content += "<a href='' onclick=\"" + onclick + ";return false;\">"; - if (version==lastVersion) { - content += "<span style='color:red;font-weight:bold;'>NEW!</span> "; - } - content += "<strong>" + label + "</strong>"; - if (version==0) { - content += " <em>since release first historized release</em>"; - } else { - content += " <em>since release " + versions[version][1] + "</em>"; - } - content += "</a>"; - content += "</div>"; - content += "<div class='bugList-level" + level + "-inner' id='" + subId + "' style='display:none;'>Loading...</div>"; - content += "</div>"; - return content; - } - - function countBugsVersion(version, priority) { - return countBugs(version, priority, "", -1, "", -1, "", -1, "", -1, "", -1); - } - - function countBugsCat(version, priority, cat, idxCat) { - return countBugs(version, priority, cat, idxCat, "", -1, "", -1, "", -1, "", -1); - } - - function countBugsPackage(version, priority, packageId, idxPackage) { - return countBugs(version, priority, "", -1, "", -1, "", -1, packageId, idxPackage, "", -1); - } - - function countBugsCode(version, priority, cat, idxCat, code, idxCode) { - return countBugs(version, priority, cat, idxCat, code, idxCode, "", -1, "", -1, "", -1); - } - - function countBugsPattern(version, priority, cat, idxCat, code, idxCode, packageId, idxPattern) { - return countBugs(version, priority, cat, idxCat, code, idxCode, packageId, idxPattern, "", -1, "", -1); - } - - function countBugsClass(version, priority, id1, idxBugPackage, id2, idxBugClass) { - return countBugs(version, priority, "", -1, "", -1, "", -1, id1, idxBugPackage, id2, idxBugClass); - } - - function countBugsClassPattern(version, priority, id2, idxBugClass, id3, idxBugPattern) { - return countBugs(version, priority, "", -1, "", -1, id3, idxBugPattern, "", -1, id2, idxBugClass); - } - - function countBugs(version, priority, cat, idxCat, code, idxCode, pattern, idxPattern, packageId, idxPackage, classId, idxClass) { - var count = [0,0,0,0,0]; - var last=1000000; - for (var x=0; x<bugs.length-1; x++) { - var bug = bugs[x]; - - var bugCat = bug[idxCat]; - var bugP = bug[4]; - var bugCode = bug[idxCode]; - var bugPattern = bug[idxPattern]; - - if ( (version==-1 || version==bug[5]) - && (priority==4 || priority>=bug[4]) - && (idxCat==-1 || bug[idxCat]==cat) - && (idxCode==-1 || bug[idxCode]==code) - && (idxPattern==-1 || bug[idxPattern]==pattern) - && (idxPackage==-1 || bug[idxPackage]==packageId) - && (idxClass==-1 || bug[idxClass]==classId) - ) { - count[bug[4]]++; - } - } - count[0] = count[1] + count[2] + count[3] + count[4]; - return count; - } - - function countFixedBugsInVersion(version) { - var count = [0,0,0,0,0]; - var last=1000000; - for (var x=0; x<fixedBugs.length-1; x++) { - var bug = fixedBugs[x]; - - var bugP = bug[4]; - - if ( version==-1 || version==(bug[6]+1)) { - count[bug[4]]++; - } - } - count[0] = count[1] + count[2] + count[3] + count[4]; - return count; - } - - function countFixedButActiveBugsVersion(version) { - var count = [0,0,0,0,0]; - var last=1000000; - for (var x=0; x<fixedBugs.length-1; x++) { - var bug = fixedBugs[x]; - - var bugP = bug[4]; - - if ( version==-1 || (version >=bug[5] && version<=bug[6]) ) { - count[bug[4]]++; - } - } - count[0] = count[1] + count[2] + count[3] + count[4]; - return count; - } - - function countTotalBugsVersion(version) { - var count = [0,0,0,0,0]; - var last=1000000; - for (var x=0; x<bugs.length-1; x++) { - var bug = bugs[x]; - - var bugP = bug[4]; - - if (version==-1 || version>=bug[5]) { - count[bug[4]]++; - } - } - count[0] = count[1] + count[2] + count[3] + count[4]; - return count; - } - - function getPriorityLegend() { - var content = ""; - content += "<h5><span class='b-1'> </span> P1 "; - content += "<span class='b-2'> </span> P2 "; - content += "<span class='b-3'> </span> P3 "; - content += "<span class='b-4'> </span> Exp "; - content += "</h5>"; - return content; - } - - function populatePackageNames() { - for (var i=0; i<bugs.length; i++) { - var classId = bugs[i][6]; - var idx = classId.lastIndexOf('.'); - var packageId = ""; - - if (idx>0) { - packageId = classId.substring(0, idx); - } - - bugs[i][7] = packageId; - } - } - - function showbug(bugId, containerId, patternId) { - var bugplaceholder = document.getElementById(containerId); - var bug = document.getElementById(bugId); - - if ( bugplaceholder==null) { - alert(buguid+'-ph-'+list+' - '+buguid+' - bugplaceholder==null'); - return; - } - if ( bug==null) { - alert(buguid+'-ph-'+list+' - '+buguid+' - bug==null'); - return; - } - - var newBug = bug.innerHTML; - var pattern = document.getElementById('tip-'+patternId).innerHTML; - toggle(containerId); - bugplaceholder.innerHTML = newBug + pattern; - } - function toggle(foo) { - if( document.getElementById(foo).style.display == "none") { - show(foo); - } else { - if( document.getElementById(foo).style.display == "block") { - hide(foo); - } else { - show(foo); - } - } - } - function show(foo) { - document.getElementById(foo).style.display="block"; - } - function hide(foo) { - document.getElementById(foo).style.display="none"; - } - - window.onload = function(){ - init(); - }; - ]]></xsl:text></script> - <script type='text/javascript'> - // versions fields: release id, release label - var versions = new Array( - <xsl:for-each select="/BugCollection/History/AppVersion"> - [ "<xsl:value-of select="@sequence" />", "<xsl:value-of select="@release" />" ], - </xsl:for-each> - [ "<xsl:value-of select="/BugCollection/@sequence" />", "<xsl:value-of select="/BugCollection/@release" />" ] - ); - - // categories fields: category id, category label - var categories = new Array( - <xsl:for-each select="/BugCollection/BugCategory"> - <xsl:sort select="@category" order="ascending" /> - [ "<xsl:value-of select="@category" />", "<xsl:value-of select="Description" />" ], - </xsl:for-each> - [ "", "" ] - ); - - // codes fields: code id, code label - var codes = new Array( - <xsl:for-each select="/BugCollection/BugCode"> - <xsl:sort select="@abbrev" order="ascending" /> - [ "<xsl:value-of select="@abbrev" />", "<xsl:value-of select="Description" />" ], - </xsl:for-each> - [ "", "" ] - ); - - // patterns fields: category id, code id, pattern id, pattern label - var patterns = new Array( - <xsl:for-each select="/BugCollection/BugPattern"> - <xsl:sort select="@type" order="ascending" /> - [ "<xsl:value-of select="@category" />", "<xsl:value-of select="@abbrev" />", "<xsl:value-of select="@type" />", "<xsl:value-of select="translate(ShortDescription, '"', $apos)" />" ], - - </xsl:for-each> - [ "", "", "", "" ] - ); - - // class stats fields: class name, package name, isInterface, total bugs, bugs p1, bugs p2, bugs p3, bugs p4 - var classStats = new Array( - <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats/ClassStats"> - <xsl:sort select="@class" order="ascending" /> - [ "<xsl:value-of select="@class" />", "<xsl:value-of select="../@package" />", "<xsl:value-of select="@interface" />", "<xsl:value-of select="@bugs" />", "<xsl:value-of select="@priority_1" />", "<xsl:value-of select="@priority_2" />", "<xsl:value-of select="@priority_3" />", "<xsl:value-of select="@priority_4" />" ], - </xsl:for-each> - [ "", "", "", "", "", "", "", "" ] - ); - - // package stats fields: package name, total bugs, bugs p1, bugs p2, bugs p3, bugs p4 - var packageStats = new Array( - <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats"> - <xsl:sort select="@package" order="ascending" /> - [ "<xsl:value-of select="@package" />", "<xsl:value-of select="@total_bugs" />", "<xsl:value-of select="@priority_1" />", "<xsl:value-of select="@priority_2" />", "<xsl:value-of select="@priority_3" />", "<xsl:value-of select="@priority_4" />" ], - </xsl:for-each> - [ "", "", "", "", "", "" ] - ); - - - // bugs fields: bug id, category id, code id, pattern id, priority, release id, class name, packagename (populated by javascript) - var bugs = new Array( - <xsl:for-each select="/BugCollection/BugInstance[string-length(@last)=0]"> - - [ "<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />", - "<xsl:value-of select="@category" />", - "<xsl:value-of select="@abbrev" />", - "<xsl:value-of select="@type" />", - <xsl:value-of select="@priority" />, - <xsl:choose><xsl:when test='string-length(@first)=0'>0</xsl:when><xsl:otherwise><xsl:value-of select="@first" /></xsl:otherwise></xsl:choose>, - "<xsl:value-of select="Class/@classname" />", - ""], - </xsl:for-each> - [ "", "", "", "", 0, 0, "", "" ] - ); - - // bugs fields: bug id, category id, code id, pattern id, priority, first release id, fixed release id, class name - var fixedBugs = new Array( - <xsl:for-each select="/BugCollection/BugInstance[string-length(@last)>0]"> - - [ "<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />", - "<xsl:value-of select="@category" />", - "<xsl:value-of select="@abbrev" />", - "<xsl:value-of select="@type" />", - <xsl:value-of select="@priority" />, - <xsl:choose><xsl:when test='string-length(@first)=0'>0</xsl:when><xsl:otherwise><xsl:value-of select="@first" /></xsl:otherwise></xsl:choose>, - <xsl:choose><xsl:when test='string-length(@last)>0'><xsl:value-of select="@last" /></xsl:when><xsl:otherwise>-42</xsl:otherwise></xsl:choose>, - "<xsl:value-of select="Class/@classname" />" ], - </xsl:for-each> - [ "", "", "", "", 0, 0, 0, "" ] - ); - - </script> - </head> - <body> - <h3> - <a href="http://findbugs.sourceforge.net">FindBugs</a> (<xsl:value-of select="/BugCollection/@version" />) - Analysis for - <xsl:choose> - <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when> - <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise> - </xsl:choose> - </h3> - - <div id='menuWrapper' style=''> - <div id="navcontainer"> - <ul id="navlist"> - <li><a id='summary' class="current" href="#" onclick="selectMenu('summary'); return false;" >Summary</a></li> - <li><a id='history' class="none" href="#" onclick="selectMenu('history'); return false;" >History</a></li> - <li><a id='listByCategories' class="none" href="#" onclick="selectMenu('listByCategories'); return false;">Browse By Categories</a></li> - <li><a id='listByPackages' class="none" href="#" onclick="selectMenu('listByPackages'); return false;" >Browse by Packages</a></li> - <li><a id='info' class="none" href="#" onclick="selectMenu('info'); return false;" >Info</a></li> - </ul> - </div> - </div> - - <div id='displayWrapper'> - - <div style='height:25px;'> - <div id='messageContainer' style='float:right;'> - Computing data... - </div> - <div id='filterWrapper' style='display:none;'> - <form name='findbugsForm'> - <div id='filterContainer' > - <select name='versions' onchange='filter()'> - <option value="loading">Loading filter...</option> - </select> - <select name='priorities' onchange='filter()'> - <option value="loading">Loading filter...</option> - </select> - </div> - </form> - </div> - </div> - <div id='summaryContainer' class='displayContainer'> - <h3>Package Summary</h3> - <table> - <tr> - <th>Package</th> - <th>Code Size</th> - <th>Bugs</th> - <th>Bugs p1</th> - <th>Bugs p2</th> - <th>Bugs p3</th> - <th>Bugs Exp.</th> - </tr> - <tr> - <td class='summary-name'> - Overall - (<xsl:value-of select="/BugCollection/FindBugsSummary/@num_packages" /> packages), - (<xsl:value-of select="/BugCollection/FindBugsSummary/@total_classes" /> classes) - </td> - <td class='summary-size'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_size" /></td> - <td class='summary-priority-all'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_bugs" /></td> - <td class='summary-priority-1'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_1" /></td> - <td class='summary-priority-2'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_2" /></td> - <td class='summary-priority-3'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_3" /></td> - <td class='summary-priority-4'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_4" /></td> - </tr> - <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats"> - <xsl:sort select="@package" order="ascending" /> - <xsl:if test="@total_bugs!='0'" > - <tr> - <td class='summary-name'><xsl:value-of select="@package" /></td> - <td class='summary-size'><xsl:value-of select="@total_size" /></td> - <td class='summary-priority-all'><xsl:value-of select="@total_bugs" /></td> - <td class='summary-priority-1'><xsl:value-of select="@priority_1" /></td> - <td class='summary-priority-2'><xsl:value-of select="@priority_2" /></td> - <td class='summary-priority-3'><xsl:value-of select="@priority_3" /></td> - <td class='summary-priority-4'><xsl:value-of select="@priority_4" /></td> - </tr> - </xsl:if> - </xsl:for-each> - </table> - </div> - - <div id='infoContainer' class='displayContainer'> - <div id='analyzed-files'> - <h3>Analyzed Files:</h3> - <ul> - <xsl:for-each select="/BugCollection/Project/Jar"> - <li><xsl:apply-templates /></li> - </xsl:for-each> - </ul> - </div> - <div id='used-libraries'> - <h3>Used Libraries:</h3> - <ul> - <xsl:for-each select="/BugCollection/Project/AuxClasspathEntry"> - <li><xsl:apply-templates /></li> - </xsl:for-each> - <xsl:if test="count(/BugCollection/Project/AuxClasspathEntry)=0" > - <li>None</li> - </xsl:if> - </ul> - </div> - <div id='analysis-error'> - <h3>Analysis Errors:</h3> - <ul> - <xsl:variable name="error-count" - select="count(/BugCollection/Errors/MissingClass)" /> - <xsl:if test="$error-count=0" > - <li>None</li> - </xsl:if> - <xsl:if test="$error-count>0" > - <li>Missing ref classes for analysis: - <ul> - <xsl:for-each select="/BugCollection/Errors/MissingClass"> - <li><xsl:apply-templates /></li> - </xsl:for-each> - </ul> - </li> - </xsl:if> - </ul> - </div> - </div> - <div id='historyContainer' class='displayContainer'>Loading...</div> - <div id='listByCategoriesContainer' class='displayContainer'>Loading...</div> - <div id='listByPackagesContainer' class='displayContainer'>Loading...</div> - </div> - - <div id='bug-collection' style='display:none;'> - <!-- advanced tooltips --> - <xsl:for-each select="/BugCollection/BugPattern"> - <xsl:variable name="b-t"><xsl:value-of select="@type" /></xsl:variable> - <div> - <xsl:attribute name="id">tip-<xsl:value-of select="$b-t" /></xsl:attribute> - <xsl:attribute name="class">tip</xsl:attribute> - <xsl:value-of select="/BugCollection/BugPattern[@type=$b-t]/Details" disable-output-escaping="yes" /> - </div> - </xsl:for-each> - - <!-- bug descriptions - hidden --> - <xsl:for-each select="/BugCollection/BugInstance[not(@last)]"> - <div style="display:none;" class='bug'> - <xsl:attribute name="id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:attribute> - <xsl:for-each select="*/Message"> - <div class="b-r"><xsl:apply-templates /></div> - </xsl:for-each> - <div class="b-d"> - <xsl:value-of select="LongMessage" disable-output-escaping="no" /> - </div> - </div> - </xsl:for-each> - </div> - </body> -</html> -</xsl:template> - - -</xsl:transform> - diff --git a/lib/findbugs/xsl/fancy.xsl b/lib/findbugs/xsl/fancy.xsl deleted file mode 100644 index 5d152dd..0000000 --- a/lib/findbugs/xsl/fancy.xsl +++ /dev/null @@ -1,846 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!-- - Copyright (C) 2005, 2006 Etienne Giraudy, InStranet Inc - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> - -<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" > - <xsl:output - method="xml" indent="yes" - doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" - doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" - encoding="UTF-8"/> - - <!-- - Parameter for specifying HTMLized sources location; if current dir, use "./" - If not passed, no links to sources are generated. - because of back-compatibility reasons. - The source filename should be package.class.java.html - The source can have line no anchors like #11 --> - <xsl:param name="htmlsrcpath"></xsl:param> - - <!--xsl:key name="lbc-category-key" match="/BugCollection/BugInstance" use="@category" /--> - <xsl:key name="lbc-code-key" match="/BugCollection/BugInstance" use="concat(@category,@abbrev)" /> - <xsl:key name="lbc-bug-key" match="/BugCollection/BugInstance" use="concat(@category,@abbrev,@type)" /> - <xsl:key name="lbp-class-b-t" match="/BugCollection/BugInstance" use="concat(Class/@classname,@type)" /> - -<xsl:template match="/" > - -<html> - <head> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title> - FindBugs (<xsl:value-of select="/BugCollection/@version" />) - Analysis for - <xsl:choose> - <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when> - <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise> - </xsl:choose> - </title> - <script type="text/javascript"> - function show(foo) { - document.getElementById(foo).style.display="block"; - } - function hide(foo) { - document.getElementById(foo).style.display="none"; - } - function toggle(foo) { - if( document.getElementById(foo).style.display == "none") { - show(foo); - } else { - if( document.getElementById(foo).style.display == "block") { - hide(foo); - } else { - show(foo); - } - } - } - - function showmenu(foo) { - if( document.getElementById(foo).style.display == "none") { - hide("bug-summary"); - document.getElementById("bug-summary-tab").className="menu-tab"; - hide("analysis-data"); - document.getElementById("analysis-data-tab").className="menu-tab"; - //hide("list-by-b-t"); - //document.getElementById("list-by-b-t-tab").className="menu-tab"; - hide("list-by-package"); - document.getElementById("list-by-package-tab").className="menu-tab"; - hide("list-by-category"); - document.getElementById("list-by-category-tab").className="menu-tab"; - document.getElementById(foo+"-tab").className="menu-tab-selected"; - show(foo); - - } - // else menu already selected! - } - function showbug(buguid, list) { - var bugplaceholder = document.getElementById(buguid+'-ph-'+list); - var bug = document.getElementById(buguid); - - if ( bugplaceholder==null) { - alert(buguid+'-ph-'+list+' - '+buguid+' - bugplaceholder==null'); - return; - } - if ( bug==null) { - alert(buguid+'-ph-'+list+' - '+buguid+' - bug==null'); - return; - } - - var oldBug = bugplaceholder.innerHTML; - var newBug = bug.innerHTML; - //alert(oldBug); - //alert(newBug); - toggle(buguid+'-ph-'+list); - bugplaceholder.innerHTML = newBug; - } - </script> - <script type='text/javascript'><xsl:text disable-output-escaping='yes'><![CDATA[ - // Extended Tooltip Javascript - // copyright 9th August 2002, 3rd July 2005 - // by Stephen Chapman, Felgall Pty Ltd - - // permission is granted to use this javascript provided that the below code is not altered - var DH = 0;var an = 0;var al = 0;var ai = 0;if (document.getElementById) {ai = 1; DH = 1;}else {if (document.all) {al = 1; DH = 1;} else { browserVersion = parseInt(navigator.appVersion); if (navigator.appName.indexOf('Netscape') != -1) if (browserVersion == 4) {an = 1; DH = 1;}}} - function fd(oi, wS) {if (ai) return wS ? document.getElementById(oi).style:document.getElementById(oi); if (al) return wS ? document.all[oi].style: document.all[oi]; if (an) return document.layers[oi];} - function pw() {return window.innerWidth != null? window.innerWidth: document.body.clientWidth != null? document.body.clientWidth:null;} - function mouseX(evt) {if (evt.pageX) return evt.pageX; else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); else return null;} - function mouseY(evt) {if (evt.pageY) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return null;} - function popUp(evt,oi) {if (DH) {var wp = pw(); ds = fd(oi,1); dm = fd(oi,0); st = ds.visibility; if (dm.offsetWidth) ew = dm.offsetWidth; else if (dm.clip.width) ew = dm.clip.width; if (st == "visible" || st == "show") { ds.visibility = "hidden"; } else {tv = mouseY(evt) + 20; lv = mouseX(evt) - (ew/4); if (lv < 2) lv = 2; else if (lv + ew > wp) lv -= ew/2; if (!an) {lv += 'px';tv += 'px';} ds.left = lv; ds.top = tv; ds.visibility = "visible";}}} - ]]></xsl:text></script> - <style type='text/css'> - html, body { - background-color: #ffffff; - } - a, a:link , a:active, a:visited, a:hover { - text-decoration: none; color: black; - } - .b-r a { - text-decoration: underline; color: blue; - } - div, span { - vertical-align: top; - } - p { - margin: 0px; - } - h1 { - /*font-size: 14pt;*/ - color: red; - } - #menu { - margin-bottom: 10px; - } - #menu ul { - margin-left: 0; - padding-left: 0; - display: inline; - } - #menu ul li { - margin-left: 0; - margin-bottom: 0; - padding: 2px 15px 5px; - border: 1px solid #000; - list-style: none; - display: inline; - } - #menu ul li.here { - border-bottom: 1px solid #ffc; - list-style: none; - display: inline; - } - .menu-tab { - background: white; - } - .menu-tab:hover { - background: grey; - } - .menu-tab-selected { - background: #aaaaaa; - } - #analysis-data ul { - margin-left: 15px; - } - #analyzed-files, #used-libraries, #analysis-error { - margin: 2px; - border: 1px black solid; - padding: 2px; - float: left; - overflow:auto; - } - #analyzed-files { - width: 25%; - } - #used-libraries { - width: 25%; - } - #analysis-error { - width: 40%; - } - div.summary { - width:100%; - text-align:left; - } - .summary table { - border:1px solid black; - } - .summary th { - background: #aaaaaa; - color: white; - } - .summary th, .summary td { - padding: 2px 4px 2px 4px; - } - .summary-name { - background: #eeeeee; - text-align:left; - } - .summary-size { - background: #eeeeee; - text-align:center; - } - .summary-ratio { - background: #eeeeee; - text-align:center; - } - .summary-priority-all { - background: #dddddd; - text-align:center; - } - .summary-priority-1 { - background: red; - text-align:center; - } - .summary-priority-2 { - background: orange; - text-align:center; - } - .summary-priority-3 { - background: green; - text-align:center; - } - .summary-priority-4 { - background: blue; - text-align:center; - } - .ob { - border: 1px solid black; - margin: 10px; - } - .ob-t { - border-bottom: 1px solid #000000; font-size: 12pt; font-weight: bold; - background: #cccccc; margin: 0; padding: 0 5px 0 5px; - } - .t-h { - font-weight: normal; - } - .ib-1, .ib-2 { - margin: 0 0 0 10px; - } - .ib-1-t, .ib-2-t { - border-bottom: 1px solid #000000; border-left: 1px solid #000000; - margin: 0; padding: 0 5px 0 5px; - font-size: 12pt; font-weight: bold; background: #cccccc; - } - .bb { - border-bottom: 1px solid #000000; border-left: 1px solid #000000; - } - .b-1 { - background: red; height: 0.5em; width: 1em; - margin-right: 0.5em; - } - .b-2 { - background: orange; height: 0.5em; width: 1em; - margin-right: 0.5em; - } - .b-3 { - background: green; height: 0.5em; width: 1em; - margin-right: 0.5em; - } - .b-4 { - background: blue; height: 0.5em; width: 1em; - margin-right: 0.5em; - } - .b-t { - } - .b-r { - font-size: 10pt; font-weight: bold; padding: 0 0 0 60px; - } - .b-d { - font-weight: normal; background: #eeeee0; - padding: 0 5px 0 5px; margin: 0px; - } - .bug-placeholder { - top:140px; - border:1px solid black; - display:none; - } - .tip { - border:solid 1px #666666; - width:600px; - padding:3px; - position:absolute; - z-index:100; - visibility:hidden; - color:#333333; - top:20px; - left:90px; - background-color:#ffffcc; - layer-background-color:#ffffcc; - } - - - </style> - </head> - <body> - <div id='content'> - <h1> - FindBugs (<xsl:value-of select="/BugCollection/@version" />) - Analysis for - <xsl:choose> - <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when> - <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise> - </xsl:choose> - </h1> - <div id="menu"> - <ul> - <li id='bug-summary-tab' class='menu-tab-selected'> - <xsl:attribute name="onclick">showmenu('bug-summary');return false;</xsl:attribute> - <a href='' onclick='return false;'>Bug Summary</a> - </li> - <li id='analysis-data-tab' class='menu-tab'> - <xsl:attribute name="onclick">showmenu('analysis-data');return false;</xsl:attribute> - <a href='' onclick='return false;'>Analysis Information</a> - </li> - <li id='list-by-category-tab' class='menu-tab'> - <xsl:attribute name="onclick">showmenu('list-by-category');return false;</xsl:attribute> - <a href='' onclick='return false;'>List bugs by bug category</a> - </li> - <li id='list-by-package-tab' class='menu-tab'> - <xsl:attribute name="onclick">showmenu('list-by-package');return false;</xsl:attribute> - <a href='' onclick='return false;'>List bugs by package</a> - </li> - </ul> - </div> - <xsl:call-template name="generateSummary" /> - <xsl:call-template name="analysis-data" /> - <xsl:call-template name="list-by-category" /> - <xsl:call-template name="list-by-package" /> - - - <!-- advanced tooltips --> - <xsl:for-each select="/BugCollection/BugPattern"> - <xsl:variable name="b-t"><xsl:value-of select="@type" /></xsl:variable> - <div> - <xsl:attribute name="id">tip-<xsl:value-of select="$b-t" /></xsl:attribute> - <xsl:attribute name="class">tip</xsl:attribute> - <b><xsl:value-of select="@abbrev" /> / <xsl:value-of select="@type" /></b><br/> - <xsl:value-of select="/BugCollection/BugPattern[@type=$b-t]/Details" disable-output-escaping="yes" /> - </div> - </xsl:for-each> - - <!-- bug descriptions - hidden --> - <xsl:for-each select="/BugCollection/BugInstance[not(@last)]"> - <div style="display:none;"> - <xsl:attribute name="id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:attribute> - <xsl:for-each select="*/Message"> - <xsl:choose> - <xsl:when test="parent::SourceLine and $htmlsrcpath != '' "> - <div class="b-r"><a> - <xsl:attribute name="href"><xsl:value-of select="$htmlsrcpath"/><xsl:value-of select="../@sourcepath" />.html#<xsl:value-of select="../@start" /></xsl:attribute> - <xsl:apply-templates /> - </a></div> - </xsl:when> - <xsl:otherwise> - <div class="b-r"><xsl:apply-templates /></div> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - <div class="b-d"> - <xsl:value-of select="LongMessage" disable-output-escaping="no" /> - </div> - </div> - </xsl:for-each> - </div> - <div id='fixedbox'> - <div id='bug-placeholder'></div> - </div> - </body> -</html> -</xsl:template> - -<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> -<!-- generate summary report from stats --> -<xsl:template name="generateSummary" > -<div class='summary' id='bug-summary'> - <h2>FindBugs Analysis generated at: <xsl:value-of select="/BugCollection/FindBugsSummary/@timestamp" /></h2> - <table> - <tr> - <th>Package</th> - <th>Code Size</th> - <th>Bugs</th> - <th>Bugs p1</th> - <th>Bugs p2</th> - <th>Bugs p3</th> - <th>Bugs Exp.</th> - <th>Ratio</th> - </tr> - <tr> - <td class='summary-name'> - Overall - (<xsl:value-of select="/BugCollection/FindBugsSummary/@num_packages" /> packages), - (<xsl:value-of select="/BugCollection/FindBugsSummary/@total_classes" /> classes) - </td> - <td class='summary-size'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_size" /></td> - <td class='summary-priority-all'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_bugs" /></td> - <td class='summary-priority-1'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_1" /></td> - <td class='summary-priority-2'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_2" /></td> - <td class='summary-priority-3'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_3" /></td> - <td class='summary-priority-4'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_4" /></td> - <td class='summary-ratio'></td> - </tr> - <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats"> - <xsl:sort select="@package" /> - <xsl:if test="@total_bugs!='0'" > - <tr> - <td class='summary-name'><xsl:value-of select="@package" /></td> - <td class='summary-size'><xsl:value-of select="@total_size" /></td> - <td class='summary-priority-all'><xsl:value-of select="@total_bugs" /></td> - <td class='summary-priority-1'><xsl:value-of select="@priority_1" /></td> - <td class='summary-priority-2'><xsl:value-of select="@priority_2" /></td> - <td class='summary-priority-3'><xsl:value-of select="@priority_3" /></td> - <td class='summary-priority-4'><xsl:value-of select="@priority_4" /></td> - <td class='summary-ratio'></td> -<!-- - <xsl:for-each select="ClassStats"> - <xsl:if test="@bugs!='0'" > - <li> - <xsl:value-of select="@class" /> - total: <xsl:value-of select="@bugs" /> - </li> - </xsl:if> - </xsl:for-each> ---> - </tr> - </xsl:if> - </xsl:for-each> - </table> -</div> -</xsl:template> - -<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> -<!-- display analysis info --> -<xsl:template name="analysis-data"> - <div id='analysis-data' style='display:none;'> - <div id='analyzed-files'> - <h3>Analyzed Files:</h3> - <ul> - <xsl:for-each select="/BugCollection/Project/Jar"> - <li><xsl:apply-templates /></li> - </xsl:for-each> - </ul> - </div> - <div id='used-libraries'> - <h3>Used Libraries:</h3> - <ul> - <xsl:for-each select="/BugCollection/Project/AuxClasspathEntry"> - <li><xsl:apply-templates /></li> - </xsl:for-each> - <xsl:if test="count(/BugCollection/Project/AuxClasspathEntry)=0" > - <li>None</li> - </xsl:if> - </ul> - </div> - <div id='analysis-error'> - <h3>Analysis Errors:</h3> - <ul> - <xsl:variable name="error-count" - select="count(/BugCollection/Errors/MissingClass)" /> - <xsl:if test="$error-count=0" > - <li>None</li> - </xsl:if> - <xsl:if test="$error-count>0" > - <li>Missing ref classes for analysis: - <ul> - <xsl:for-each select="/BugCollection/Errors/MissingClass"> - <li><xsl:apply-templates /></li> - </xsl:for-each> - </ul> - </li> - </xsl:if> - </ul> - </div> - </div> -</xsl:template> - -<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> -<!-- show priorities helper --> -<xsl:template name="helpPriorities"> - <span> - <xsl:attribute name="class">b-1</xsl:attribute> -    - </span> P1 - <span> - <xsl:attribute name="class">b-2</xsl:attribute> -    - </span> P2 - <span> - <xsl:attribute name="class">b-3</xsl:attribute> -    - </span> P3 - <span> - <xsl:attribute name="class">b-4</xsl:attribute> -    - </span> Exp. -</xsl:template> - -<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> -<!-- display the details of a bug --> -<xsl:template name="display-bug" > - <xsl:param name="b-t" select="''" /> - <xsl:param name="bug-id" select="''" /> - <xsl:param name="which-list" select="''" /> - <div class="bb"> - <a> - <xsl:attribute name="href"></xsl:attribute> - <xsl:attribute name="onclick">showbug('b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />','<xsl:value-of select="$which-list" />');return false;</xsl:attribute> - <span> - <xsl:attribute name="class">b-<xsl:value-of select="@priority"/></xsl:attribute> -    - </span> - <span class="b-t"><xsl:value-of select="@abbrev" />: </span> <xsl:value-of select="Class/Message" /> - </a> - <div style="display:none;"> - <xsl:attribute name="id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />-ph-<xsl:value-of select="$which-list" /></xsl:attribute> - loading... - </div> - </div> -</xsl:template> - -<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> -<!-- main template for the list by category --> -<xsl:template name="list-by-category" > - <div id='list-by-category' class='data-box' style='display:none;'> - <xsl:call-template name="helpPriorities" /> - <xsl:variable name="unique-category" select="/BugCollection/BugCategory/@category"/> - <xsl:for-each select="$unique-category"> - <xsl:sort select="." order="ascending" /> - <xsl:call-template name="categories"> - <xsl:with-param name="category" select="." /> - </xsl:call-template> - </xsl:for-each> - </div> -</xsl:template> - -<xsl:template name="categories" > - <xsl:param name="category" select="''" /> - <xsl:variable name="category-count" - select="count(/BugCollection/BugInstance[@category=$category and not(@last)])" /> - <xsl:variable name="category-count-p1" - select="count(/BugCollection/BugInstance[@category=$category and @priority='1' and not(@last)])" /> - <xsl:variable name="category-count-p2" - select="count(/BugCollection/BugInstance[@category=$category and @priority='2' and not(@last)])" /> - <xsl:variable name="category-count-p3" - select="count(/BugCollection/BugInstance[@category=$category and @priority='3' and not(@last)])" /> - <xsl:variable name="category-count-p4" - select="count(/BugCollection/BugInstance[@category=$category and @priority='4' and not(@last)])" /> - <div class='ob'> - <div class='ob-t'> - <a> - <xsl:attribute name="href"></xsl:attribute> - <xsl:attribute name="onclick">toggle('category-<xsl:value-of select="$category" />');return false;</xsl:attribute> - <xsl:value-of select="/BugCollection/BugCategory[@category=$category]/Description" /> - (<xsl:value-of select="$category-count" />: - <span class='t-h'><xsl:value-of select="$category-count-p1" />/<xsl:value-of select="$category-count-p2" />/<xsl:value-of select="$category-count-p3" />/<xsl:value-of select="$category-count-p4" /></span>) - </a> - </div> - <div style="display:none;"> - <xsl:attribute name="id">category-<xsl:value-of select="$category" /></xsl:attribute> - <xsl:call-template name="list-by-category-and-code"> - <xsl:with-param name="category" select="$category" /> - </xsl:call-template> - </div> - </div> -</xsl:template> - -<xsl:template name="list-by-category-and-code" > - <xsl:param name="category" select="''" /> - <xsl:variable name="unique-code" select="/BugCollection/BugInstance[@category=$category and not(@last) and generate-id()= generate-id(key('lbc-code-key',concat(@category,@abbrev)))]/@abbrev" /> - <xsl:for-each select="$unique-code"> - <xsl:sort select="." order="ascending" /> - <xsl:call-template name="codes"> - <xsl:with-param name="category" select="$category" /> - <xsl:with-param name="code" select="." /> - </xsl:call-template> - </xsl:for-each> -</xsl:template> - -<xsl:template name="codes" > - <xsl:param name="category" select="''" /> - <xsl:param name="code" select="''" /> - <xsl:variable name="code-count" - select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and not(@last)])" /> - <xsl:variable name="code-count-p1" - select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='1' and not(@last)])" /> - <xsl:variable name="code-count-p2" - select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='2' and not(@last)])" /> - <xsl:variable name="code-count-p3" - select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='3' and not(@last)])" /> - <xsl:variable name="code-count-p4" - select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='4' and not(@last)])" /> - <div class='ib-1'> - <div class="ib-1-t"> - <a> - <xsl:attribute name="href"></xsl:attribute> - <xsl:attribute name="onclick">toggle('category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />');return false;</xsl:attribute> - <xsl:value-of select="$code" />: <xsl:value-of select="/BugCollection/BugCode[@abbrev=$code]/Description" /> - (<xsl:value-of select="$code-count" />: - <span class='t-h'><xsl:value-of select="$code-count-p1" />/<xsl:value-of select="$code-count-p2" />/<xsl:value-of select="$code-count-p3" />/<xsl:value-of select="$code-count-p4" /></span>) - </a> - </div> - <div style="display:none;"> - <xsl:attribute name="id">category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" /></xsl:attribute> - <xsl:call-template name="list-by-category-and-code-and-bug"> - <xsl:with-param name="category" select="$category" /> - <xsl:with-param name="code" select="$code" /> - </xsl:call-template> - </div> - </div> -</xsl:template> - -<xsl:template name="list-by-category-and-code-and-bug" > - <xsl:param name="category" select="''" /> - <xsl:param name="code" select="''" /> - <xsl:variable name="unique-bug" select="/BugCollection/BugInstance[@category=$category and not(@last) and @abbrev=$code and generate-id()= generate-id(key('lbc-bug-key',concat(@category,@abbrev,@type)))]/@type" /> - <xsl:for-each select="$unique-bug"> - <xsl:sort select="." order="ascending" /> - <xsl:call-template name="bugs"> - <xsl:with-param name="category" select="$category" /> - <xsl:with-param name="code" select="$code" /> - <xsl:with-param name="bug" select="." /> - </xsl:call-template> - </xsl:for-each> -</xsl:template> - -<xsl:template name="bugs" > - <xsl:param name="category" select="''" /> - <xsl:param name="code" select="''" /> - <xsl:param name="bug" select="''" /> - <xsl:variable name="bug-count" - select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and not(@last)])" /> - <xsl:variable name="bug-count-p1" - select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='1' and not(@last)])" /> - <xsl:variable name="bug-count-p2" - select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='2' and not(@last)])" /> - <xsl:variable name="bug-count-p3" - select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='3' and not(@last)])" /> - <xsl:variable name="bug-count-p4" - select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='4' and not(@last)])" /> - <div class='ib-2'> - <div class='ib-2-t'> - <a> - <xsl:attribute name="href"></xsl:attribute> - <xsl:attribute name="onclick">toggle('category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />-and-bug-<xsl:value-of select="$bug" />');return false;</xsl:attribute> - <xsl:attribute name="onmouseout">popUp(event,'tip-<xsl:value-of select="$bug" />');</xsl:attribute> - <xsl:attribute name="onmouseover">popUp(event,'tip-<xsl:value-of select="$bug" />');</xsl:attribute> - <xsl:value-of select="/BugCollection/BugPattern[@category=$category and @abbrev=$code and @type=$bug]/ShortDescription" />   - (<xsl:value-of select="$bug-count" />: - <span class='t-h'><xsl:value-of select="$bug-count-p1" />/<xsl:value-of select="$bug-count-p2" />/<xsl:value-of select="$bug-count-p3" />/<xsl:value-of select="$bug-count-p4" /></span>) - </a> - </div> - <div style="display:none;"> - <xsl:attribute name="id">category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />-and-bug-<xsl:value-of select="$bug" /></xsl:attribute> - <xsl:variable name="cat-code-type">category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />-and-bug-<xsl:value-of select="$bug" /></xsl:variable> - <xsl:variable name="bug-id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:variable> - <xsl:for-each select="/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and not(@last)]"> - <xsl:call-template name="display-bug"> - <xsl:with-param name="b-t" select="@type" /> - <xsl:with-param name="bug-id" select="$bug-id" /> - <xsl:with-param name="which-list" select="'c'" /> - </xsl:call-template> - </xsl:for-each> - </div> - </div> -</xsl:template> - -<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> -<!-- main template for the list by package --> -<xsl:template name="list-by-package" > - <div id='list-by-package' class='data-box' style='display:none;'> - <xsl:call-template name="helpPriorities" /> - <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats[@total_bugs != '0']/@package"> - <xsl:sort select="." order="ascending" /> - <xsl:call-template name="packages"> - <xsl:with-param name="package" select="." /> - </xsl:call-template> - </xsl:for-each> - </div> -</xsl:template> - -<xsl:template name="packages" > - <xsl:param name="package" select="''" /> - <xsl:variable name="package-count-p1"> - <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_1 != '')">0</xsl:if> - <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_1 != ''"> - <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_1" /> - </xsl:if> - </xsl:variable> - <xsl:variable name="package-count-p2"> - <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_2 != '')">0</xsl:if> - <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_2 != ''"> - <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_2" /> - </xsl:if> - </xsl:variable> - <xsl:variable name="package-count-p3"> - <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_3 != '')">0</xsl:if> - <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_3 != ''"> - <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_3" /> - </xsl:if> - </xsl:variable> - <xsl:variable name="package-count-p4"> - <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_4 != '')">0</xsl:if> - <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_4 != ''"> - <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_4" /> - </xsl:if> - </xsl:variable> - - <div class='ob'> - <div class='ob-t'> - <a> - <xsl:attribute name="href"></xsl:attribute> - <xsl:attribute name="onclick">toggle('package-<xsl:value-of select="$package" />');return false;</xsl:attribute> - <xsl:value-of select="$package" /> - (<xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@total_bugs" />: - <span class='t-h'><xsl:value-of select="$package-count-p1" />/<xsl:value-of select="$package-count-p2" />/<xsl:value-of select="$package-count-p3" />/<xsl:value-of select="$package-count-p4" /></span>) - </a> - </div> - <div style="display:none;"> - <xsl:attribute name="id">package-<xsl:value-of select="$package" /></xsl:attribute> - <xsl:call-template name="list-by-package-and-class"> - <xsl:with-param name="package" select="$package" /> - </xsl:call-template> - </div> - </div> -</xsl:template> - -<xsl:template name="list-by-package-and-class" > - <xsl:param name="package" select="''" /> - <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@bugs != '0']/@class"> - <xsl:sort select="." order="ascending" /> - <xsl:call-template name="classes"> - <xsl:with-param name="package" select="$package" /> - <xsl:with-param name="class" select="." /> - </xsl:call-template> - </xsl:for-each> -</xsl:template> - -<xsl:template name="classes" > - <xsl:param name="package" select="''" /> - <xsl:param name="class" select="''" /> - <xsl:variable name="class-count" - select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@bugs" /> - - <xsl:variable name="class-count-p1"> - <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_1 != '')">0</xsl:if> - <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_1 != ''"> - <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_1" /> - </xsl:if> - </xsl:variable> - <xsl:variable name="class-count-p2"> - <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_2 != '')">0</xsl:if> - <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_2 != ''"> - <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_2" /> - </xsl:if> - </xsl:variable> - <xsl:variable name="class-count-p3"> - <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_3 != '')">0</xsl:if> - <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_3 != ''"> - <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_3" /> - </xsl:if> - </xsl:variable> - <xsl:variable name="class-count-p4"> - <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_4 != '')">0</xsl:if> - <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_4 != ''"> - <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_4" /> - </xsl:if> - </xsl:variable> - - <div class='ib-1'> - <div class="ib-1-t"> - <a> - <xsl:attribute name="href"></xsl:attribute> - <xsl:attribute name="onclick">toggle('package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />');return false;</xsl:attribute> - <xsl:value-of select="$class" /> (<xsl:value-of select="$class-count" />: - <span class='t-h'><xsl:value-of select="$class-count-p1" />/<xsl:value-of select="$class-count-p2" />/<xsl:value-of select="$class-count-p3" />/<xsl:value-of select="$class-count-p4" /></span>) - </a> - </div> - <div style="display:none;"> - <xsl:attribute name="id">package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" /></xsl:attribute> - <xsl:call-template name="list-by-package-and-class-and-bug"> - <xsl:with-param name="package" select="$package" /> - <xsl:with-param name="class" select="$class" /> - </xsl:call-template> - </div> - </div> -</xsl:template> - -<xsl:template name="list-by-package-and-class-and-bug" > - <xsl:param name="package" select="''" /> - <xsl:param name="class" select="''" /> - <xsl:variable name="unique-class-bugs" select="/BugCollection/BugInstance[not(@last) and Class[position()=1 and @classname=$class] and generate-id() = generate-id(key('lbp-class-b-t',concat(Class/@classname,@type)))]/@type" /> - - <xsl:for-each select="$unique-class-bugs"> - <xsl:sort select="." order="ascending" /> - <xsl:call-template name="class-bugs"> - <xsl:with-param name="package" select="$package" /> - <xsl:with-param name="class" select="$class" /> - <xsl:with-param name="type" select="." /> - </xsl:call-template> - </xsl:for-each> -</xsl:template> - -<xsl:template name="class-bugs" > - <xsl:param name="package" select="''" /> - <xsl:param name="class" select="''" /> - <xsl:param name="type" select="''" /> - <xsl:variable name="bug-count" - select="count(/BugCollection/BugInstance[@type=$type and not(@last) and Class[position()=1 and @classname=$class]])" /> - <div class='ib-2'> - <div class='ib-2-t'> - <a> - <xsl:attribute name="href"></xsl:attribute> - <xsl:attribute name="onclick">toggle('package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />-and-type-<xsl:value-of select="$type" />');return false;</xsl:attribute> - <xsl:attribute name="onmouseout">popUp(event,'tip-<xsl:value-of select="$type" />')</xsl:attribute> - <xsl:attribute name="onmouseover">popUp(event,'tip-<xsl:value-of select="$type" />')</xsl:attribute> - <xsl:value-of select="/BugCollection/BugPattern[@type=$type]/ShortDescription" />   - (<xsl:value-of select="$bug-count" />) - </a> - </div> - <div style="display:none;"> - <xsl:attribute name="id">package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />-and-type-<xsl:value-of select="$type" /></xsl:attribute> - <xsl:variable name="package-class-type">package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />-and-type-<xsl:value-of select="$type" /></xsl:variable> - <xsl:variable name="bug-id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:variable> - <xsl:for-each select="/BugCollection/BugInstance[@type=$type and not(@last) and Class[position()=1 and @classname=$class]]"> - <xsl:call-template name="display-bug"> - <xsl:with-param name="b-t" select="@type" /> - <xsl:with-param name="bug-id" select="$bug-id" /> - <xsl:with-param name="which-list" select="'p'" /> - </xsl:call-template> - </xsl:for-each> - </div> - </div> -</xsl:template> - -</xsl:transform> diff --git a/lib/findbugs/xsl/plain.xsl b/lib/findbugs/xsl/plain.xsl deleted file mode 100644 index 80fff8d..0000000 --- a/lib/findbugs/xsl/plain.xsl +++ /dev/null @@ -1,306 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - FindBugs - Find bugs in Java programs - Copyright (C) 2004,2005 University of Maryland - Copyright (C) 2005, Chris Nappin - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<xsl:stylesheet version="1.0" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - -<xsl:output - method="xml" - omit-xml-declaration="yes" - standalone="yes" - doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" - doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" - indent="yes" - encoding="UTF-8"/> - -<xsl:variable name="bugTableHeader"> - <tr class="tableheader"> - <th align="left">Warning</th> - <th align="left">Priority</th> - <th align="left">Details</th> - </tr> -</xsl:variable> - -<xsl:template match="/"> - <html> - <head> - <title>FindBugs Report</title> - <style type="text/css"> - .tablerow0 { - background: #EEEEEE; - } - - .tablerow1 { - background: white; - } - - .detailrow0 { - background: #EEEEEE; - } - - .detailrow1 { - background: white; - } - - .tableheader { - background: #b9b9fe; - font-size: larger; - } - </style> - </head> - - <xsl:variable name="unique-catkey" select="/BugCollection/BugCategory/@category"/> - - <body> - - <h1>FindBugs Report</h1> - <p>Produced using <a href="http://findbugs.sourceforge.net">FindBugs</a> <xsl:value-of select="/BugCollection/@version"/>.</p> - <p>Project: - <xsl:choose> - <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when> - <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise> - </xsl:choose> - </p> - <h2>Metrics</h2> - <xsl:apply-templates select="/BugCollection/FindBugsSummary"/> - - <h2>Summary</h2> - <table width="500" cellpadding="5" cellspacing="2"> - <tr class="tableheader"> - <th align="left">Warning Type</th> - <th align="right">Number</th> - </tr> - - <xsl:for-each select="$unique-catkey"> - <xsl:sort select="." order="ascending"/> - <xsl:variable name="catkey" select="."/> - <xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/> - <xsl:variable name="styleclass"> - <xsl:choose><xsl:when test="position() mod 2 = 1">tablerow0</xsl:when> - <xsl:otherwise>tablerow1</xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <tr class="{$styleclass}"> - <td><a href="#Warnings_{$catkey}"><xsl:value-of select="$catdesc"/> Warnings</a></td> - <td align="right"><xsl:value-of select="count(/BugCollection/BugInstance[(@category=$catkey) and (not(@last))])"/></td> - </tr> - </xsl:for-each> - - <xsl:variable name="styleclass"> - <xsl:choose><xsl:when test="count($unique-catkey) mod 2 = 0">tablerow0</xsl:when> - <xsl:otherwise>tablerow1</xsl:otherwise> - </xsl:choose> - </xsl:variable> - <tr class="{$styleclass}"> - <td><b>Total</b></td> - <td align="right"><b><xsl:value-of select="count(/BugCollection/BugInstance[not(@last)])"/></b></td> - </tr> - </table> - <p><br/><br/></p> - - <h1>Warnings</h1> - - <p>Click on each warning link to see a full description of the issue, and - details of how to resolve it.</p> - - <xsl:for-each select="$unique-catkey"> - <xsl:sort select="." order="ascending"/> - <xsl:variable name="catkey" select="."/> - <xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/> - - <xsl:call-template name="generateWarningTable"> - <xsl:with-param name="warningSet" select="/BugCollection/BugInstance[(@category=$catkey) and (not(@last))]"/> - <xsl:with-param name="sectionTitle"><xsl:value-of select="$catdesc"/> Warnings</xsl:with-param> - <xsl:with-param name="sectionId">Warnings_<xsl:value-of select="$catkey"/></xsl:with-param> - </xsl:call-template> - </xsl:for-each> - - <p><br/><br/></p> - <h1><a name="Details">Warning Types</a></h1> - - <xsl:apply-templates select="/BugCollection/BugPattern"> - <xsl:sort select="@abbrev"/> - <xsl:sort select="ShortDescription"/> - </xsl:apply-templates> - - </body> - </html> -</xsl:template> - -<xsl:template match="BugInstance[not(@last)]"> - <xsl:variable name="warningId"><xsl:value-of select="generate-id()"/></xsl:variable> - - <tr class="tablerow{position() mod 2}"> - <td width="20%" valign="top"> - <a href="#{@type}"><xsl:value-of select="ShortMessage"/></a> - </td> - <td width="10%" valign="top"> - <xsl:choose> - <xsl:when test="@priority = 1">High</xsl:when> - <xsl:when test="@priority = 2">Medium</xsl:when> - <xsl:when test="@priority = 3">Low</xsl:when> - <xsl:otherwise>Unknown</xsl:otherwise> - </xsl:choose> - </td> - <td width="70%"> - <p><xsl:value-of select="LongMessage"/><br/><br/> - - <!-- add source filename and line number(s), if any --> - <xsl:if test="SourceLine"> - <br/>In file <xsl:value-of select="SourceLine/@sourcefile"/>, - <xsl:choose> - <xsl:when test="SourceLine/@start = SourceLine/@end"> - line <xsl:value-of select="SourceLine/@start"/> - </xsl:when> - <xsl:otherwise> - lines <xsl:value-of select="SourceLine/@start"/> - to <xsl:value-of select="SourceLine/@end"/> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - - <xsl:for-each select="./*/Message"> - <br/><xsl:value-of select="text()"/> - </xsl:for-each> - </p> - </td> - </tr> -</xsl:template> - -<xsl:template match="BugPattern"> - <h2><a name="{@type}"><xsl:value-of select="ShortDescription"/></a></h2> - <xsl:value-of select="Details" disable-output-escaping="yes"/> - <p><br/><br/></p> -</xsl:template> - -<xsl:template name="generateWarningTable"> - <xsl:param name="warningSet"/> - <xsl:param name="sectionTitle"/> - <xsl:param name="sectionId"/> - - <h2><a name="{$sectionId}"><xsl:value-of select="$sectionTitle"/></a></h2> - <table class="warningtable" width="100%" cellspacing="2" cellpadding="5"> - <xsl:copy-of select="$bugTableHeader"/> - <xsl:choose> - <xsl:when test="count($warningSet) > 0"> - <xsl:apply-templates select="$warningSet"> - <xsl:sort select="@priority"/> - <xsl:sort select="@abbrev"/> - <xsl:sort select="Class/@classname"/> - </xsl:apply-templates> - </xsl:when> - <xsl:otherwise> - <tr><td colspan="2"><p><i>None</i></p></td></tr> - </xsl:otherwise> - </xsl:choose> - </table> - <p><br/><br/></p> -</xsl:template> - -<xsl:template match="FindBugsSummary"> - <xsl:variable name="kloc" select="@total_size div 1000.0"/> - <xsl:variable name="format" select="'#######0.00'"/> - - <p><xsl:value-of select="@total_size"/> lines of code analyzed, - in <xsl:value-of select="@total_classes"/> classes, - in <xsl:value-of select="@num_packages"/> packages.</p> - <table width="500" cellpadding="5" cellspacing="2"> - <tr class="tableheader"> - <th align="left">Metric</th> - <th align="right">Total</th> - <th align="right">Density*</th> - </tr> - <tr class="tablerow0"> - <td>High Priority Warnings</td> - <td align="right"><xsl:value-of select="@priority_1"/></td> - <td align="right"> - <xsl:choose> - <xsl:when test= "number($kloc) > 0.0"> - <xsl:value-of select="format-number(@priority_1 div $kloc, $format)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="format-number(0.0, $format)"/> - </xsl:otherwise> - </xsl:choose> - </td> - </tr> - <tr class="tablerow1"> - <td>Medium Priority Warnings</td> - <td align="right"><xsl:value-of select="@priority_2"/></td> - <td align="right"> - <xsl:choose> - <xsl:when test= "number($kloc) > 0.0"> - <xsl:value-of select="format-number(@priority_2 div $kloc, $format)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="format-number(0.0, $format)"/> - </xsl:otherwise> - </xsl:choose> - </td> - </tr> - - <xsl:choose> - <xsl:when test="@priority_3"> - <tr class="tablerow1"> - <td>Low Priority Warnings</td> - <td align="right"><xsl:value-of select="@priority_3"/></td> - <td align="right"> - <xsl:choose> - <xsl:when test= "number($kloc) > 0.0"> - <xsl:value-of select="format-number(@priority_3 div $kloc, $format)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="format-number(0.0, $format)"/> - </xsl:otherwise> - </xsl:choose> - </td> - </tr> - <xsl:variable name="totalClass" select="tablerow0"/> - </xsl:when> - <xsl:otherwise> - <xsl:variable name="totalClass" select="tablerow1"/> - </xsl:otherwise> - </xsl:choose> - - <tr class="$totalClass"> - <td><b>Total Warnings</b></td> - <td align="right"><b><xsl:value-of select="@total_bugs"/></b></td> - <td align="right"> - <b> - <xsl:choose> - <xsl:when test= "number($kloc) > 0.0"> - <xsl:value-of select="format-number(@total_bugs div $kloc, $format)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="format-number(0.0, $format)"/> - </xsl:otherwise> - </xsl:choose> - </b> - </td> - </tr> - </table> - <p><i>(* Defects per Thousand lines of non-commenting source statements)</i></p> - <p><br/><br/></p> - -</xsl:template> - -</xsl:stylesheet> diff --git a/lib/findbugs/xsl/summary.xsl b/lib/findbugs/xsl/summary.xsl deleted file mode 100644 index faf0131..0000000 --- a/lib/findbugs/xsl/summary.xsl +++ /dev/null @@ -1,252 +0,0 @@ -<?xml version="1.0"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
-
-<xsl:output
- method="xml" indent="yes"
- doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
- doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
- encoding="UTF-8"/>
-
-<xsl:param name="PAGE.TITLE" select="'Findbugs Summary Statistics'" />
-<xsl:param name="PAGE.FONT" select="'Arial'" />
-<xsl:param name="SUMMARY.HEADER" select="'Findbugs Summary Report'" />
-<xsl:param name="SUMMARY.LABEL" select="'Summary Analysis Generated at: '" />
-<xsl:param name="PACKAGE.HEADER" select="'Bugs By Package'" />
-<xsl:param name="PACKAGE.SORT.LABEL" select="'Sorted by Total Bugs'" />
-<xsl:param name="PACKAGE.LABEL" select="'Analysis of Package: '" />
-<xsl:param name="DEFAULT.PACKAGE.NAME" select="'default package'" />
-<xsl:param name="PACKAGE.BUGCLASS.LABEL" select="'Most Buggy Class in Package with #1 $1:'" />
-<xsl:param name="TOTAL.PACKAGES.LABEL" select="'#1 $1 Analyzed'" />
-
-<xsl:param name="BUGS.SINGLE.LABEL" select="'Bug'" />
-<xsl:param name="BUGS.PULURAL.LABEL" select="'Bugs'" />
-<xsl:param name="PACKAGE.SINGLE.LABEL" select="'Package'" />
-<xsl:param name="PACKAGE.PULURAL.LABEL" select="'Packages'" />
-
-
-<xsl:param name="TABLE.HEADING.TYPE" select="'Type Checked'" />
-<xsl:param name="TABLE.HEADING.COUNT" select="'Count'" />
-<xsl:param name="TABLE.HEADING.BUGS" select="'Bugs'" />
-<xsl:param name="TABLE.HEADING.PERCENT" select="'Percentage'" />
-<xsl:param name="TABLE.ROW.OUTER" select="'Outer Classes'" />
-<xsl:param name="TABLE.ROW.INNER" select="'Inner Classes'" />
-<xsl:param name="TABLE.ROW.INTERFACE" select="'Interfaces'" />
-<xsl:param name="TABLE.ROW.TOTAL" select="'Total'" />
-<xsl:param name="TABLE.WIDTH" select="'90%'" />
-
-<xsl:param name="PERCENTAGE.FORMAT" select="'#0.00%'" />
-
-<!-- This template drives the rest of the output -->
-<xsl:template match="/" >
- <html>
- <!-- JEditorPane gets really angry if it sees this
- WWP: Sorry, this needs to be explained better. Not a valid HTML document without a head.
- -->
- <head><title><xsl:value-of select="$PAGE.TITLE" /></title></head>
- <body>
- <h1 align="center"><a href="http://findbugs.sourceforge.net"><xsl:value-of select="$SUMMARY.HEADER" /></a></h1>
- <h2 align="center"> Analysis for
- <xsl:choose>
- <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'>
- <xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
- <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
- </xsl:choose>
- </h2>
- <h2 align="center"><xsl:value-of select="$SUMMARY.LABEL" />
- <i><xsl:value-of select="//FindBugsSummary/@timestamp" /></i></h2>
- <xsl:apply-templates select="//FindBugsSummary" />
- <br/>
- <p align="center">
- <font face="{$PAGE.FONT}" size="6"><xsl:value-of select="$PACKAGE.HEADER" /></font>
- <br/><font face="{$PAGE.FONT}" size="4"><i>(<xsl:value-of select="$PACKAGE.SORT.LABEL"/>)</i></font>
- </p>
- <xsl:for-each select="//FindBugsSummary/PackageStats">
- <xsl:sort select="@total_bugs" data-type="number" order="descending" />
- <xsl:apply-templates select="." />
- </xsl:for-each>
- </body>
- </html>
-</xsl:template>
-
-<xsl:template name="status_table_row" >
- <xsl:param name="LABEL" select="''" />
- <xsl:param name="COUNT" select="1" />
- <xsl:param name="BUGS" select="0" />
- <xsl:param name="FONT_SIZE" select="4" />
- <tr>
- <td align="left"><font face="{$PAGE.FONT}" size="{$FONT_SIZE}"><xsl:value-of select="$LABEL" /></font></td>
- <td align="center"><font face="{$PAGE.FONT}" color="green" size="{$FONT_SIZE}"><xsl:value-of select="$COUNT" /></font></td>
- <td align="center"><font face="{$PAGE.FONT}" color="red" size="{$FONT_SIZE}"><xsl:value-of select="$BUGS" /></font></td>
- <td align="center"><font face="{$PAGE.FONT}" color="blue" size="{$FONT_SIZE}">
- <xsl:choose>
- <xsl:when test="$COUNT > 0">
- <xsl:value-of select="format-number(number($BUGS div $COUNT), $PERCENTAGE.FORMAT)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="format-number(0, $PERCENTAGE.FORMAT)"/>
- </xsl:otherwise>
- </xsl:choose>
- </font>
- </td>
- </tr>
-</xsl:template>
-
-<xsl:template name="table_header" >
- <tr>
- <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.TYPE"/></font></th>
- <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.COUNT"/></font></th>
- <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.BUGS"/></font></th>
- <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.PERCENT"/></font></th>
- </tr>
-</xsl:template>
-
-<xsl:template match="FindBugsSummary" >
- <table width="{$TABLE.WIDTH}" border="1" align="center">
- <xsl:call-template name="table_header" />
-
- <xsl:call-template name="status_table_row">
- <xsl:with-param name="LABEL" select="$TABLE.ROW.OUTER" />
- <xsl:with-param name="COUNT" select="count(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')=''])" />
- <xsl:with-param name="BUGS" select="sum(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')='']/@bugs)" />
- </xsl:call-template>
-
- <xsl:call-template name="status_table_row">
- <xsl:with-param name="LABEL" select="$TABLE.ROW.INNER" />
- <xsl:with-param name="COUNT" select="count(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')!=''])" />
- <xsl:with-param name="BUGS" select="sum(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')!='']/@bugs)" />
- </xsl:call-template>
-
- <xsl:call-template name="status_table_row">
- <xsl:with-param name="LABEL" select="$TABLE.ROW.INTERFACE" />
- <xsl:with-param name="COUNT" select="count(PackageStats/ClassStats[@interface='true'])" />
- <xsl:with-param name="BUGS" select="sum(PackageStats/ClassStats[@interface='true']/@bugs)" />
- </xsl:call-template>
-
- <xsl:call-template name="status_table_row">
- <xsl:with-param name="LABEL" select="$TABLE.ROW.TOTAL" />
- <xsl:with-param name="COUNT" select="@total_classes" />
- <xsl:with-param name="BUGS" select="@total_bugs"/>
- <xsl:with-param name="FONT_SIZE" select="5"/>
- </xsl:call-template>
- <xsl:variable name="num_packages" select="count(PackageStats)" />
- <tr><td align="center" colspan="4"><font face="{$PAGE.FONT}" size="4">
- <xsl:call-template name='string_format'>
- <xsl:with-param name="COUNT" select="$num_packages"/>
- <xsl:with-param name="STRING" select="$TOTAL.PACKAGES.LABEL"/>
- <xsl:with-param name="SINGLE" select="$PACKAGE.SINGLE.LABEL"/>
- <xsl:with-param name="PULURAL" select="$PACKAGE.PULURAL.LABEL"/>
- </xsl:call-template>
- </font></td>
- </tr>
- </table>
-</xsl:template>
-
-
-<xsl:template name='string_format'>
- <xsl:param name="COUNT" select="1"/>
- <xsl:param name="STRING" select="''"/>
- <xsl:param name="SINGLE" select="''"/>
- <xsl:param name="PULURAL" select="''"/>
- <xsl:variable name="count_str" select="concat(substring-before($STRING,'#1'), $COUNT, substring-after($STRING,'#1'))" />
-
- <xsl:choose>
- <xsl:when test="$COUNT > 1">
- <xsl:value-of select="concat(substring-before($count_str,'$1'), $PULURAL, substring-after($count_str,'$1'))" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="concat(substring-before($count_str,'$1'), $SINGLE, substring-after($count_str,'$1'))" />
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-
-<xsl:template match="PackageStats" >
- <xsl:variable name="package-name">
- <xsl:choose>
- <xsl:when test="@package = ''">
- <xsl:value-of select="$DEFAULT.PACKAGE.NAME"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@package"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="package-prefix">
- <xsl:choose>
- <xsl:when test="@package = ''">
- <xsl:text></xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="concat(@package,'.')"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <h2 align="center"><xsl:value-of select="$PACKAGE.LABEL"/><i><font color='green'><xsl:value-of select="$package-name" /></font></i></h2>
- <table width="{$TABLE.WIDTH}" border="1" align="center">
- <xsl:call-template name="table_header" />
-
- <xsl:call-template name="status_table_row">
- <xsl:with-param name="LABEL" select="$TABLE.ROW.OUTER" />
- <xsl:with-param name="COUNT" select="count(ClassStats[@interface='false' and substring-after(@class,'$')=''])" />
- <xsl:with-param name="BUGS" select="sum(ClassStats[@interface='false' and substring-after(@class,'$')='']/@bugs)" />
- </xsl:call-template>
-
- <xsl:call-template name="status_table_row">
- <xsl:with-param name="LABEL" select="$TABLE.ROW.INNER" />
- <xsl:with-param name="COUNT" select="count(ClassStats[@interface='false' and substring-after(@class,'$')!=''])" />
- <xsl:with-param name="BUGS" select="sum(ClassStats[@interface='false' and substring-after(@class,'$')!='']/@bugs)" />
- </xsl:call-template>
-
- <xsl:call-template name="status_table_row">
- <xsl:with-param name="LABEL" select="$TABLE.ROW.INTERFACE" />
- <xsl:with-param name="COUNT" select="count(ClassStats[@interface='true'])" />
- <xsl:with-param name="BUGS" select="sum(ClassStats[@interface='true']/@bugs)" />
- </xsl:call-template>
-
- <xsl:call-template name="status_table_row">
- <xsl:with-param name="LABEL" select="$TABLE.ROW.TOTAL" />
- <xsl:with-param name="COUNT" select="@total_types" />
- <xsl:with-param name="BUGS" select="@total_bugs" />
- <xsl:with-param name="FONT_SIZE" select="5"/>
- </xsl:call-template>
-
- </table>
- <xsl:if test="@total_bugs > 0">
- <table width="{$TABLE.WIDTH}" border="0" align="center">
- <xsl:variable name="max_bugs">
- <xsl:for-each select="ClassStats">
- <xsl:sort select="@bugs" data-type="number" order="descending"/>
- <xsl:if test="position()=1">
- <xsl:value-of select="@bugs"/>
- </xsl:if>
- </xsl:for-each>
- </xsl:variable>
-
- <tr>
- <td align="left" colspan="2">
- <font face="{$PAGE.FONT}" size="4">
- <xsl:call-template name='string_format'>
- <xsl:with-param name="COUNT" select="$max_bugs"/>
- <xsl:with-param name="STRING" select="$PACKAGE.BUGCLASS.LABEL"/>
- <xsl:with-param name="SINGLE" select="$BUGS.SINGLE.LABEL"/>
- <xsl:with-param name="PULURAL" select="$BUGS.PULURAL.LABEL"/>
- </xsl:call-template>
- </font>
- </td>
- </tr>
-
- <xsl:for-each select="ClassStats">
- <xsl:if test="@bugs = $max_bugs">
- <tr>
- <td>       </td>
- <td align="left"><font face="{$PAGE.FONT}" color="red" size="4"><i><xsl:value-of select="$package-prefix"/><xsl:value-of select="@class" /></i></font></td>
- </tr>
- </xsl:if>
- </xsl:for-each>
-
- </table>
- </xsl:if>
- <br/>
-</xsl:template>
-
-</xsl:stylesheet>
|