Files
maven-plugins/announcement/plugin.jelly

74 lines
2.3 KiB
XML

<?xml version="1.0"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed 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.
*/
-->
<project
xmlns:j="jelly:core"
xmlns:x="jelly:xml"
xmlns:ant="jelly:ant"
xmlns:define="jelly:define"
xmlns:util="jelly:util"
xmlns:doc="doc"
xmlns:maven="jelly:maven"
xmlns:jsl="jelly:jsl">
<goal name="announcement" prereqs="announcement:generate"
description="Generate release announcement"/>
<goal name="announcement:generate"
description="Generate release announcement">
<echo>Generating announcement for release ${maven.announcement.version} in ${maven.announcement.file}...</echo>
<util:file var="inputFile" name="${maven.docs.src}/changes.xml"/>
<x:parse var="doc" xml="${inputFile}"/>
<maven:property var="versionVariable" name="maven.announcement.version"
defaultValue="${pom.currentVersion}"/>
<maven:property var="distributionUrl" name="maven.announcement.distributionUrl"
defaultValue="${maven.repo.remote}/${pom.groupId}/plugins"/>
<jsl:stylesheet select="$doc">
<jsl:template match="document/body/release">
<x:set var="version" select="string(@version)"/>
<j:if test="${versionVariable.equals(version)}">
<x:set var="versionFound" select="string(@version)"/>
</j:if>
</jsl:template>
</jsl:stylesheet>
<j:if test="${versionFound == null}">
<ant:fail>The release '${maven.announcement.version}' could not be found in change log</ant:fail>
</j:if>
<j:set var="stylesheetURI"
value="file:${plugin.resources}/announcement.jsl"/>
<j:file
name="${maven.announcement.file}"
outputMode="xml"
omitXmlDeclaration="true"
prettyPrint="false">
<j:include uri="${stylesheetURI.toString()}"/>
</j:file>
</goal>
</project>