blob: d73edc69272864707c7c9f30ab948ead5d4ef190 [file] [log] [blame]
<?xml version="1.0"?>
<!--
* ========================================================================
*
* 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
*
* http://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.
*
* ========================================================================
-->
<!--
Customized version of maven annnouncement plugin style sheet to create
release notes for commons-pool.
-->
<jsl:stylesheet
select="$doc"
xmlns:j="jelly:core"
xmlns:jsl="jelly:jsl"
xmlns:x="jelly:xml"
xmlns:u="jelly:util"
xmlns:maven="jelly:maven"
xmlns="dummy" trim="true">
<!-- This stylesheet expects the versionVariable to be defined before calling it -->
<jsl:template match="document/body/release">
<x:set var="version" select="string(@version)"/>
<x:set var="description" select="string(@description)"/>
<j:if test="${versionVariable.equals(version)}">
<j:whitespace trim="false">
Commons POOL Version ${version}
RELEASE NOTES
</j:whitespace>
<j:useBean var="formatter" class="org.apache.maven.announcement.Formatter"/>
<j:set var="header" trim="false" value="${description}"/>
<j:forEach var="line" items="${formatter.format(header,78)}">
<j:whitespace trim="false">
${line}</j:whitespace>
</j:forEach>
<j:whitespace trim="false">
SUMMARY OF CHANGES</j:whitespace>
<x:set var="actions" select="action[@type='add']" sort="@type" />
<j:if test="${!empty(actions)}">
<j:whitespace trim="false">
New Features:
</j:whitespace>
<j:forEach var="action" items="${actions}">
<x:set var="item" select="."/><jsl:applyTemplates select="$action"/>
</j:forEach>
</j:if>
<x:set var="actions" select="action[@type='fix']" sort="@type" />
<j:if test="${!empty(actions)}">
<j:whitespace trim="false">
BUG FIXES
</j:whitespace>
<j:forEach var="action" items="${actions}">
<x:set var="item" select="."/><jsl:applyTemplates select="$action"/>
</j:forEach>
</j:if>
<x:set var="actions" select="action[@type='update']" sort="@type" />
<j:if test="${!empty(actions)}">
<j:whitespace trim="false">
BEHAVIOR CHANGES
</j:whitespace>
<j:forEach var="action" items="${actions}">
<x:set var="item" select="."/><jsl:applyTemplates select="$action"/>
</j:forEach>
</j:if>
For more information on Commons Pool, see
${pom.url}
<x:set var="actions" select="action[@type='remove']" sort="@type" />
<j:if test="${!empty(actions)}">
<j:whitespace trim="false">
Removed features:
</j:whitespace>
<j:forEach var="action" items="${actions}">
<x:set var="item" select="."/><jsl:applyTemplates select="$action"/>
</j:forEach>
</j:if>
<j:whitespace trim="false">
</j:whitespace>
</j:if>
</jsl:template>
<jsl:template match="action" trim="true">
<x:set var="body" select="string(.)"/>
<j:set var="counter" value=""/>
<j:set var="issue"><x:expr select="@issue"/></j:set>
<j:set var="dueto"><x:expr select="@due-to"/></j:set>
<j:set var="text" trim="true">
${body}
<j:if test="${issue != ''}"><j:whitespace> Issue: ${issue}.</j:whitespace></j:if>
<j:if test="${dueto != ''}"><j:whitespace> Thanks to ${dueto}.</j:whitespace></j:if>
</j:set>
<j:forEach var="line" items="${formatter.format(text,75)}">
<j:choose>
<j:when test="${counter.length() == '0'}">
<j:whitespace trim="false">
o ${line}</j:whitespace>
</j:when>
<j:otherwise>
<j:whitespace trim="false">
${line}</j:whitespace>
</j:otherwise>
</j:choose>
<j:set var="counter" value="${counter}X"/>
</j:forEach>
</jsl:template>
<jsl:template match="@*"/>
<jsl:template match="text()"/>
</jsl:stylesheet>