sbailliez    01/11/25 03:47:12

  Modified:    src/etc  log.xsl
  Log:
  Rewrote the xsl that allows to visualize ant build logs.
  Should be a little bit more sexy than the original that
  was there for a long time.
  
  Revision  Changes    Path
  1.2       +228 -36   jakarta-ant/src/etc/log.xsl
  
  Index: log.xsl
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/etc/log.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- log.xsl   2000/06/30 11:40:23     1.1
  +++ log.xsl   2001/11/25 11:47:12     1.2
  @@ -1,55 +1,247 @@
  -<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"; 
xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional";>
  +<xsl:stylesheet      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  +<xsl:output method="html" indent="yes"/>
  +<!--
  + The Apache Software License, Version 1.1
  +
  + Copyright (c) 2000-2001 The Apache Software Foundation.  All rights
  + reserved.
  +
  + Redistribution and use in source and binary forms, with or without
  + modification, are permitted provided that the following conditions
  + are met:
  +
  + 1. Redistributions of source code must retain the above copyright
  +    notice, this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright
  +    notice, this list of conditions and the following disclaimer in
  +    the documentation and/or other materials provided with the
  +    distribution.
  +
  + 3. The end-user documentation included with the redistribution, if
  +    any, must include the following acknowlegement:
  +       "This product includes software developed by the
  +        Apache Software Foundation (http://www.apache.org/)."
  +    Alternately, this acknowlegement may appear in the software itself,
  +    if and wherever such third-party acknowlegements normally appear.
  +
  + 4. The names "The Jakarta Project", "Ant", and "Apache Software
  +    Foundation" must not be used to endorse or promote products derived
  +    from this software without prior written permission. For written
  +    permission, please contact [EMAIL PROTECTED]
  +
  + 5. Products derived from this software may not be called "Apache"
  +    nor may "Apache" appear in their names without prior written
  +    permission of the Apache Group.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + SUCH DAMAGE.
  + ====================================================================
  +
  + This software consists of voluntary contributions made by many
  + individuals on behalf of the Apache Software Foundation.  For more
  + information on the Apache Software Foundation, please see
  + <http://www.apache.org/>.
  + -->
  + 
  +<!--
  +
  +  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:[EMAIL PROTECTED]">Stephane Bailliez</a>
  +  
  +-->
  +<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 100% arial,helvetica,sanserif;
  +         background-color:#525D76;
  +         color:#ffffff;
  +       }
  +       table.log tr td, tr th {
  +               font-size: 68% courier;
  +       }
  +       .error {
  +               color:red;
  +       }
  +       .warn {
  +               color:brown;
  +       }
  +       .info {
  +         color:gray;
  +       }
  +       .debug{
  +         color:gray;
  +       }
  +    .failed {
  +       background-color: red;
  +       color:#FFFFFF;
  +         font-weight: bold
  +       }
  +    .complete {
  +       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-family:   Tahoma, Verdana, Helvetica, Arial, sans-serif;
  +      background: #525D76;
  +      color: white;
  +      text-decoration: none;
  +         padding: 5px;
  +         margin-right: 2px;
  +         margin-left: 2px;
  +         font-size:  small;
  +         margin-bottom: 0; 
  +    }
  +       </style>
  +       </head>
                <body>
  -                     <xsl:apply-templates/>
  +               <!-- 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="htp://jakarta.apache.org/ant">Jakarta Ant</a>
  +          </td>
  +        </tr>
  +      </table>
  +      
  +      <table border="0" width="100%">
  +        <tr><td><hr noshade="yes" size="1"/></td></tr>
  +      </table>
  +      
  +                     <xsl:apply-templates select="build"/>
  +                     
  +    <!-- FOOTER -->
  +    <table width="100%">
  +      <tr><td><hr noshade="yes" size="1"/></td></tr>
  +      <tr><td>
  +          <div align="center"><font color="#525D76" size="-1"><em>
  +          Copyright &#169; 1999-2001, Apache Software Foundation
  +          </em></font></div>
  +      </td></tr>
  +    </table>
                </body>
        </html>
   </xsl:template>
   
  -<xsl:template match="*">
  -     <xsl:apply-templates/>
  -</xsl:template>
  -
   <xsl:template match="build">
  -     <center>
  -             <table width="100%" bgcolor="#CCCCCC"><tr>
  -                     <xsl:if test="[EMAIL PROTECTED]">
  -                             <td align="left" width="30%"><b>Build 
Failed</b></td> 
  -                             <td align="center" width="40%"><b><xsl:value-of 
select="@error"/></b></td>
  +       <!-- 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><b>Build Complete</b></td>
  +                     <xsl:if test="not(@error)">
  +                             <td nowrap="yes">Build Complete</td>
                        </xsl:if>
  -                     <td align="right" width="30%"><b>Total Time: 
<xsl:value-of select="@time"/></b></td>
  -             </tr></table>
  -             
  -             <br/>
  -             <table >
  -                     <xsl:apply-templates/>
  +                     <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>
  -             
  -     </center>
  -
  +             <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=".//[EMAIL PROTECTED] != 
'debug']"/>
  +             </table>
  +             <p>
  +             <!-- stacktrace -->
  +             <xsl:if test="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="[EMAIL PROTECTED]'debug']">
        <tr valign="top">
  -             
  -             <td><b><pre><xsl:value-of select="../@location"/></pre></b></td>
  -             <td><b><pre><xsl:value-of select="../@name"/></pre></b></td>
  -
  -             <td>
  -                     <xsl:attribute name="STYLE">color:
  -                             <xsl:choose>
  -                                     <xsl:when 
test="@priority[.='error']">red</xsl:when>
  -                                     <xsl:when 
test="@priority[.='warn']">brown</xsl:when>
  -                                     <xsl:when 
test="@priority[.='info']">gray</xsl:when>
  -                                     <xsl:when 
test="@priority[.='debug']">gray</xsl:when>
  -                             </xsl:choose>
  -                     </xsl:attribute>
  -                     <pre><xsl:value-of select="text()"/></pre>
  +       <!-- 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="[EMAIL PROTECTED]" nowrap="yes">
  +                     <xsl:value-of select="text()"/>
                </td>
        </tr>
   </xsl:template>
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to