You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ps...@apache.org on 2007/12/21 01:44:53 UTC

svn commit: r606079 - /commons/proper/pool/branches/1_4_RELEASE_BRANCH/release-notes.jsl

Author: psteitz
Date: Thu Dec 20 16:44:52 2007
New Revision: 606079

URL: http://svn.apache.org/viewvc?rev=606079&view=rev
Log:
Initial commit - allows release notes text file to be generated from changes.xml.

Added:
    commons/proper/pool/branches/1_4_RELEASE_BRANCH/release-notes.jsl

Added: commons/proper/pool/branches/1_4_RELEASE_BRANCH/release-notes.jsl
URL: http://svn.apache.org/viewvc/commons/proper/pool/branches/1_4_RELEASE_BRANCH/release-notes.jsl?rev=606079&view=auto
==============================================================================
--- commons/proper/pool/branches/1_4_RELEASE_BRANCH/release-notes.jsl (added)
+++ commons/proper/pool/branches/1_4_RELEASE_BRANCH/release-notes.jsl Thu Dec 20 16:44:52 2007
@@ -0,0 +1,162 @@
+<?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.  Customizations are:
+ * Add a title
+ * Display the description attribute in the release at the beginning
+ * Add a heading to the project description and move the URL to follow
+ * Get rid of "have fun" sig-like thingy
+-->
+    
+<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>
+For more information on Commons Pool, see
+${pom.url}
+      <j:whitespace trim="false">
+Changes in this version include:</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">
+
+  Fixed bugs:
+</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">
+
+  Changes:
+</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='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>
+
+      <!-- Nasty hack to detect a plugin until pom.type exists -->
+      <u:available file="${basedir}/plugin.jelly">
+        <j:whitespace trim="false"> 
+
+To automatically install the plugin, type the following on a single line:
+
+maven plugin:download 
+  -DgroupId=${pom.groupId} 
+  -DartifactId=${pom.artifactId}
+  -Dversion=${versionVariable}
+
+For a manual installation, you can download the plugin here:
+${distributionUrl}/${pom.artifactId}-${versionVariable}.jar
+        </j:whitespace>
+      </u:available>
+      <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>