You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2023/03/02 17:07:32 UTC
[ant] branch master updated: "modernize" antunit report styelsheet
This is an automated email from the ASF dual-hosted git repository.
bodewig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ant.git
The following commit(s) were added to refs/heads/master by this push:
new 60a2ab286 "modernize" antunit report styelsheet
60a2ab286 is described below
commit 60a2ab286dc3afefeafe47e56ccded74cc035a75
Author: Stefan Bodewig <bo...@apache.org>
AuthorDate: Thu Mar 2 18:06:53 2023 +0100
"modernize" antunit report styelsheet
---
src/tests/antunit/junit-frames.xsl | 74 ++++++++++++++++++++++++++------------
1 file changed, 51 insertions(+), 23 deletions(-)
diff --git a/src/tests/antunit/junit-frames.xsl b/src/tests/antunit/junit-frames.xsl
index bbb0c7643..5732ae890 100644
--- a/src/tests/antunit/junit-frames.xsl
+++ b/src/tests/antunit/junit-frames.xsl
@@ -2,28 +2,26 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:lxslt="http://xml.apache.org/xslt"
xmlns:redirect="http://xml.apache.org/xalan/redirect"
- xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils"
+ xmlns:string="xalan://java.lang.String"
extension-element-prefixes="redirect">
-<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
+<xsl:output method="html" indent="yes" encoding="UTF-8"/>
<xsl:decimal-format decimal-separator="." grouping-separator=","/>
<!--
-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. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
-https://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
+ 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.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
<!--
@@ -862,9 +860,11 @@ h6 {
<xsl:template name="JS-escape">
<xsl:param name="string"/>
- <xsl:param name="tmp1" select="stringutils:replace(string($string),'\','\\')"/>
- <xsl:param name="tmp2" select="stringutils:replace(string($tmp1),"'","\'")"/>
- <xsl:value-of select="$tmp2"/>
+ <xsl:param name="tmp1" select="string:replaceAll(string:new(string($string)),'\\','\\\\')"/>
+ <xsl:param name="tmp2" select="string:replaceAll(string:new(string($tmp1)),"'","\\'")"/>
+ <xsl:param name="tmp3" select="string:replaceAll(string:new(string($tmp2))," ",'\\n')"/>
+ <xsl:param name="tmp4" select="string:replaceAll(string:new(string($tmp3))," ",'\\r')"/>
+ <xsl:value-of select="$tmp4"/>
</xsl:template>
@@ -874,7 +874,35 @@ h6 {
-->
<xsl:template name="br-replace">
<xsl:param name="word"/>
- <xsl:value-of disable-output-escaping="yes" select='stringutils:replace(string($word),"
","<br/>")'/>
+ <xsl:param name="splitlimit">32</xsl:param>
+ <xsl:variable name="secondhalfstartindex" select="(string-length($word)+(string-length($word) mod 2)) div 2"/>
+ <xsl:variable name="secondhalfword" select="substring($word, $secondhalfstartindex)"/>
+ <!-- When word is very big, a recursive replace is very heap/stack expensive, so subdivide on line break after middle of string -->
+ <xsl:choose>
+ <xsl:when test="(string-length($word) > $splitlimit) and (contains($secondhalfword, '
'))">
+ <xsl:variable name="secondhalfend" select="substring-after($secondhalfword, '
')"/>
+ <xsl:variable name="firsthalflen" select="string-length($word) - string-length($secondhalfword)"/>
+ <xsl:variable name="firsthalfword" select="substring($word, 1, $firsthalflen)"/>
+ <xsl:variable name="firsthalfend" select="substring-before($secondhalfword, '
')"/>
+ <xsl:call-template name="br-replace">
+ <xsl:with-param name="word" select="concat($firsthalfword,$firsthalfend)"/>
+ </xsl:call-template>
+ <br/>
+ <xsl:call-template name="br-replace">
+ <xsl:with-param name="word" select="$secondhalfend"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains($word, '
')">
+ <xsl:value-of select="substring-before($word, '
')"/>
+ <br/>
+ <xsl:call-template name="br-replace">
+ <xsl:with-param name="word" select="substring-after($word, '
')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$word"/>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:template>
<xsl:template name="display-time">