- CruiseControl AntOutput Patch
- Monday, April 14th, 2008 at 12:13:11pm MDT
- Index: C:/Eclipse3.3/workspace/cc-svn/xsl/ant.xsl
- ===================================================================
- --- C:/Eclipse3.3/workspace/cc-svn/xsl/ant.xsl (revision 3919)
- +++ C:/Eclipse3.3/workspace/cc-svn/xsl/ant.xsl (working copy)
- @@ -1,6 +1,6 @@
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- -<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
- -<!--
- + <xsl:output method="html" indent="yes" encoding="US-ASCII"/>
- + <!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- @@ -17,186 +17,225 @@
- limitations under the License.
- -->
- -
- -<!--
- + <!--
- +
- The purpose have this XSL is to provide a nice way to look at the output
- from the Ant XmlLogger (ie: ant -listener org.apache.tools.ant.XmlLogger )
- @author <a href="mailto:sbailliez@apache.org">Stephane Bailliez</a>
- -->
- -<xsl:decimal-format decimal-separator="." grouping-separator="," />
- + <xsl:decimal-format decimal-separator="." grouping-separator="," />
- -<xsl:template match="/">
- -<html>
- - <head>
- - <style type="text/css">
- - .bannercell {
- - border: 0px;
- - padding: 0px;
- - }
- - body {
- - margin: 0;
- - font:normal 100% arial,helvetica,sanserif;
- - background-color:#FFFFFF;
- - color:#000000;
- - }
- - table.status {
- - font:bold 80% arial,helvetica,sanserif;
- - background-color:#525D76;
- - color:#ffffff;
- - }
- - table.log tr td, tr th {
- - font-size: 80%;
- - }
- - .error {
- - color:red;
- - }
- - .warn {
- - color:brown;
- - }
- - .info {
- - color:gray;
- - }
- - .debug{
- - color:gray;
- - }
- - .failed {
- - font-size:80%;
- - background-color: red;
- - color:#FFFFFF;
- - font-weight: bold
- - }
- - .complete {
- - font-size:80%;
- - background-color: #525D76;
- - color:#FFFFFF;
- - font-weight: bold
- - }
- - .a td {
- - background: #efefef;
- - }
- - .b td {
- - background: #fff;
- - }
- - th, td {
- - text-align: left;
- - vertical-align: top;
- - }
- - th {
- - background: #ccc;
- - color: black;
- - }
- - table, th, td {
- - border: none
- - }
- - h3 {
- - font:bold 80% arial,helvetica,sanserif;
- - background: #525D76;
- - color: white;
- - text-decoration: none;
- - padding: 5px;
- - margin-right: 2px;
- - margin-left: 2px;
- - margin-bottom: 0;
- - }
- - </style>
- - </head>
- - <body>
- - <!-- jakarta logo -->
- - <table border="0" cellpadding="0" cellspacing="0" width="100%">
- - <tr>
- - <td valign="top" class="bannercell">
- - <a href="http://jakarta.apache.org/">
- - <img src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="http://jakarta.apache.org" align="left" border="0"/>
- - </a>
- - </td>
- - <td style="text-align:right;vertical-align:bottom">
- - <a href="http://ant.apache.org/">Apache Ant</a>
- - </td>
- - </tr>
- - </table>
- -
- - <table border="0" width="100%">
- - <tr><td><hr noshade="yes" size="1"/></td></tr>
- - </table>
- + <xsl:template match="/">
- + <style type="text/css">
- + #ant_output {
- + max-height: 650px;
- + }
- +
- + #ant_output_container .bannercell {
- + border: 0px;
- + padding: 0px;
- + }
- - <xsl:apply-templates select="cruisecontrol/build"/>
- + #ant_output_container {
- + font-family: verdana;
- + font-size: 13px;
- + background-color:#FFFFFF;
- + color:#000000;
- + }
- - </body>
- -</html>
- -</xsl:template>
- + #ant_output_container table.status {
- + background-color:#525D76;
- + color:#ffffff;
- + }
- -<xsl:template match="build">
- - <!-- build status -->
- - <table width="100%">
- - <xsl:attribute name="class">
- - <xsl:if test="@error">failed</xsl:if>
- - <xsl:if test="not(@error)">complete</xsl:if>
- - </xsl:attribute>
- - <tr>
- - <xsl:if test="@error">
- - <td nowrap="yes">Build Failed</td>
- - </xsl:if>
- - <xsl:if test="not(@error)">
- - <td nowrap="yes">Build Complete</td>
- - </xsl:if>
- - <td style="text-align:right" nowrap="yes">Total Time: <xsl:value-of select="@time"/></td>
- - </tr>
- - <tr>
- - <td colspan="2">
- + #ant_output_container table.log {
- +
- + }
- +
- + #ant_output_container table.log tr td, tr th {
- +
- + }
- +
- + #ant_output_container .error {
- + color:red;
- + }
- +
- + #ant_output_container .warn {
- + color:brown;
- + }
- +
- + #ant_output_container .info {
- + color:gray;
- + }
- +
- + #ant_output_container .debug{
- + color:gray;
- + }
- +
- + #ant_output_container .failed {
- + background-color: red;
- + color:#FFFFFF;
- + font-weight: bold
- + }
- +
- + #ant_output_container .complete {
- + background-color: #525D76;
- + color:#FFFFFF;
- + font-weight: bold
- + }
- +
- + #ant_output_container .a td {
- + background: #f7f7f7;
- + }
- +
- + #ant_output_container .b td {
- + background: #fff;
- + }
- +
- + #ant_output_container th, td {
- + text-align: left;
- + vertical-align: top;
- + }
- +
- + #ant_output_container th {
- + background: #ccc;
- + color: black;
- + }
- +
- + #ant_output_container table, th, td {
- + border-color: #fff;
- + border-width: 0 0 0 0;
- + border-style: none;
- + padding: 2px;
- + }
- +
- + #ant_output_container h3 {
- + font: bold 13px verdana;
- + background: #525D76;
- + color: white;
- + text-decoration: none;
- + padding: 5px;
- + margin-right: 0;
- + margin-left: 0;
- + margin-bottom: 0;
- + margin-top: 10px;
- + }
- + </style>
- +
- + <div id="ant_output_container">
- +
- + <xsl:apply-templates select="cruisecontrol/build"/>
- + </div>
- + </xsl:template>
- +
- + <xsl:template match="build">
- + <!-- build status -->
- + <table width="100%">
- + <xsl:attribute name="class">
- + <xsl:if test="@error">failed</xsl:if>
- + <xsl:if test="not(@error)">complete</xsl:if>
- + </xsl:attribute>
- + <tr>
- <xsl:if test="@error">
- - <tt><xsl:value-of select="@error"/></tt><br/>
- - <i style="font-size:80%">See the <a href="#stacktrace" alt="Click for details">stacktrace</a>.</i>
- + <td nowrap="yes">Build Failed</td>
- </xsl:if>
- + <xsl:if test="not(@error)">
- + <td nowrap="yes">Build Complete</td>
- + </xsl:if>
- + <td style="text-align:right" nowrap="yes">
- + Total Time: <xsl:value-of select="@time"/>
- + </td>
- + </tr>
- + <tr>
- + <td colspan="2">
- + <xsl:if test="@error">
- + <tt>
- + <xsl:value-of select="@error"/>
- + </tt>
- + <br/>
- + <i style="font-size:80%">
- + See the <a href="#stacktrace" alt="Click for details">stacktrace</a>.
- + </i>
- + </xsl:if>
- + </td>
- + </tr>
- +
- + </table>
- + <table border="1" cellspacing="2" cellpadding="3" width="100%" style="font-size:80%">
- + <tr class="a">
- + <td width="1">ant.file</td>
- + <td>
- + <xsl:value-of select="substring-after(//message[contains(text(),'ant.file')], '->')"/>
- + </td>
- + </tr>
- + <tr class="b">
- + <td width="1">ant.version</td>
- + <td>
- + <xsl:value-of select="substring-after(//message[contains(text(),'ant.version')], '->')"/>
- + </td>
- + </tr>
- + <tr class="a">
- + <td width="1">java.version</td>
- + <td>
- + <xsl:value-of select="substring-after(//message[contains(text(),'java.vm.version')], '->')"/>
- + </td>
- + </tr>
- + <tr class="b">
- + <td width="1">os.name</td>
- + <td>
- + <xsl:value-of select="substring-after(//message[contains(text(),'os.name')], '->')"/>
- + </td>
- + </tr>
- + </table>
- + <!-- build information -->
- + <h3>Build events</h3>
- + <table class="log" border="1" cellspacing="2" cellpadding="3" width="100%">
- + <tr>
- + <th nowrap="yes" align="left" width="1%">target</th>
- + <th nowrap="yes" align="left" width="1%">task</th>
- + <th nowrap="yes" align="left">message</th>
- + </tr>
- + <xsl:apply-templates select=".//message[@priority != 'debug']"/>
- + </table>
- + <p>
- + <!-- stacktrace -->
- + <xsl:if test="stacktrace">
- + <a name="stacktrace"/>
- + <h3>Error details</h3>
- + <table width="100%">
- + <tr>
- + <td>
- + <pre>
- + <xsl:value-of select="stacktrace"/>
- + </pre>
- + </td>
- + </tr>
- + </table>
- + </xsl:if>
- + </p>
- + </xsl:template>
- +
- + <!-- report every message but those with debug priority -->
- + <xsl:template match="message[@priority!='debug']">
- + <tr valign="top">
- + <!-- alternated row style -->
- + <xsl:attribute name="class">
- + <xsl:if test="position() mod 2 = 1">a</xsl:if>
- + <xsl:if test="position() mod 2 = 0">b</xsl:if>
- + </xsl:attribute>
- + <td nowrap="yes" width="1%">
- + <xsl:value-of select="../../@name"/>
- </td>
- + <td nowrap="yes" style="text-align:right" width="1%">
- + [ <xsl:value-of select="../@name"/> ]
- + </td>
- + <td class="{@priority}" nowrap="yes">
- + <xsl:value-of select="text()"/>
- + </td>
- </tr>
- - </table>
- - <table border="1" cellspacing="2" cellpadding="3" width="100%" style="font-size:80%">
- - <tr class="a"><td width="1">ant.file</td><td><xsl:value-of select="substring-after(//message[contains(text(),'ant.file')], '->')"/></td></tr>
- - <tr class="b"><td width="1">ant.version</td><td><xsl:value-of select="substring-after(//message[contains(text(),'ant.version')], '->')"/></td></tr>
- - <tr class="a"><td width="1">java.version</td><td><xsl:value-of select="substring-after(//message[contains(text(),'java.vm.version')], '->')"/></td></tr>
- - <tr class="b"><td width="1">os.name</td><td><xsl:value-of select="substring-after(//message[contains(text(),'os.name')], '->')"/></td></tr>
- - </table>
- - <!-- build information -->
- - <h3>Build events</h3>
- - <table class="log" border="1" cellspacing="2" cellpadding="3" width="100%">
- - <tr>
- - <th nowrap="yes" align="left" width="1%">target</th>
- - <th nowrap="yes" align="left" width="1%">task</th>
- - <th nowrap="yes" align="left">message</th>
- - </tr>
- - <xsl:apply-templates select=".//message[@priority != 'debug']"/>
- - </table>
- - <p>
- - <!-- stacktrace -->
- - <xsl:if test="stacktrace">
- - <a name="stacktrace"/>
- - <h3>Error details</h3>
- - <table width="100%">
- - <tr><td>
- - <pre><xsl:value-of select="stacktrace"/></pre>
- - </td></tr>
- - </table>
- - </xsl:if>
- - </p>
- -</xsl:template>
- + </xsl:template>
- -<!-- report every message but those with debug priority -->
- -<xsl:template match="message[@priority!='debug']">
- - <tr valign="top">
- - <!-- alternated row style -->
- - <xsl:attribute name="class">
- - <xsl:if test="position() mod 2 = 1">a</xsl:if>
- - <xsl:if test="position() mod 2 = 0">b</xsl:if>
- - </xsl:attribute>
- - <td nowrap="yes" width="1%"><xsl:value-of select="../../@name"/></td>
- - <td nowrap="yes" style="text-align:right" width="1%">[ <xsl:value-of select="../@name"/> ]</td>
- - <td class="{@priority}" nowrap="yes">
- - <xsl:value-of select="text()"/>
- - </td>
- - </tr>
- -</xsl:template>
- -
- -</xsl:stylesheet>
- +</xsl:stylesheet>
- \ No newline at end of file
- Index: C:/Eclipse3.3/workspace/cc-svn/reporting/dashboard/src/net/sourceforge/cruisecontrol/dashboard/service/WidgetPluginService.java
- ===================================================================
- --- C:/Eclipse3.3/workspace/cc-svn/reporting/dashboard/src/net/sourceforge/cruisecontrol/dashboard/service/WidgetPluginService.java (revision 3919)
- +++ C:/Eclipse3.3/workspace/cc-svn/reporting/dashboard/src/net/sourceforge/cruisecontrol/dashboard/service/WidgetPluginService.java (working copy)
- @@ -82,5 +82,7 @@
- parameters.put(Widget.PARAM_PJT_LOG_ROOT, build.getLogFolder());
- parameters.put(Widget.PARAM_BUILD_LOG_FILE, build.getLogFile());
- parameters.put(Widget.PARAM_BUILD_ARTIFACTS_ROOT, build.getArtifactFolder());
- + //Hardcode PARAM_CC_ROOT for now - CC Devs, is there a good place to pull this from?
- + parameters.put(Widget.PARAM_CC_ROOT, "c:\\program files\\CruiseControl");
- }
- }
- Index: C:/Eclipse3.3/workspace/cc-svn/reporting/dashboard/src/net/sourceforge/cruisecontrol/dashboard/widgets/AbstractXslOutputWidget.java
- ===================================================================
- --- C:/Eclipse3.3/workspace/cc-svn/reporting/dashboard/src/net/sourceforge/cruisecontrol/dashboard/widgets/AbstractXslOutputWidget.java (revision 3919)
- +++ C:/Eclipse3.3/workspace/cc-svn/reporting/dashboard/src/net/sourceforge/cruisecontrol/dashboard/widgets/AbstractXslOutputWidget.java (working copy)
- @@ -35,9 +35,9 @@
- }
- public Object getOutput(Map parameters) {
- - File logFile = (File) parameters.get(Widget.PARAM_BUILD_LOG_FILE);
- + File logFile = new File( (String)parameters.get(Widget.PARAM_BUILD_LOG_FILE) );
- try {
- - File ccHome = (File) parameters.get(Widget.PARAM_CC_ROOT);
- + File ccHome = new File( (String)parameters.get(Widget.PARAM_CC_ROOT) );
- File xsl = new File(ccHome.getCanonicalPath() + "/" + getXslPath());
- Source xmlSource = new StreamSource(logFile);
- Source xsltSource = new StreamSource(xsl);
advertising
Update the Post
Either update this post and resubmit it with changes, or make a new post.
You may also comment on this post.
Please note that information posted here will expire by default in one month. If you do not want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that are not marked to expire will be indexable by search engines. Be careful with your passwords. All illegal activities will be reported and any information will be handed over to the authorities, so be good.