You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Brett Porter <bp...@f2network.com.au> on 2003/11/16 23:51:06 UTC
Announcement plugin
Wouldn't this be better as part of the changes plugin? Or the release
plugin? The set of plugins for a release is getting more and more disperate
by the day :)
Cheers,
Brett
> -----Original Message-----
> From: vmassol@apache.org [mailto:vmassol@apache.org]
> Sent: Monday, 17 November 2003 9:49 AM
> To: maven-plugins-cvs@apache.org
> Subject: cvs commit: maven-plugins project.properties
>
>
> vmassol 2003/11/16 14:48:57
>
> Modified: . project.properties
> Added: announcement project.xml project.properties .cvsignore
> plugin.jelly plugin.properties
> announcement/xdocs changes.xml .cvsignore
> navigation.xml
> goals.xml index.xml properties.xml
> announcement/src/plugin-resources announcement.jsl
> announcement/src/main/org/apache/maven/announcement
> Formatter.java
> Log:
> New plugin. Automatically generate release notes.
>
> Revision Changes Path
> 1.1 maven-plugins/announcement/project.xml
>
> Index: project.xml
> ===================================================================
> <?xml version="1.0" encoding="UTF-8"?>
>
> <project>
> <extend>../project.xml</extend>
> <pomVersion>3</pomVersion>
> <id>maven-announcement-plugin</id>
> <name>Maven Announcement plugin</name>
> <currentVersion>1.0-SNAPSHOT</currentVersion>
> <shortDescription>Produce release announcement</shortDescription>
> <url>http://maven.apache.org/reference/plugins/announcement/</url>
> <!-- TODO: Create JIRA project and replace xxxx by JIRA
> project id -->
>
> <issueTrackingUrl>http://jira.codehaus.org/BrowseProject.jspa?
> id=xxxx</issueTrackingUrl>
>
> <siteDirectory>/www/maven.apache.org/reference/plugins/announc
> ement/</siteDirectory>
> <repository>
>
> <connection>scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspu
> blic:maven-plugins/announcement/</connection>
>
> <url>http://cvs.apache.org/viewcvs/maven-plugins/announcement/</url>
> </repository>
> <developers>
> <developer>
> <name>Vincent Massol</name>
> <id>vmassol</id>
> <email>vmassol@pivolis.com</email>
> <organization>Pivolis</organization>
> <roles>
> <role>Creator</role>
> <role>Java Developer</role>
> </roles>
> </developer>
> </developers>
> <dependencies/>
> <reports>
> <report>maven-changes-plugin</report>
> <report>maven-changelog-plugin</report>
> <report>maven-file-activity-plugin</report>
> <report>maven-developer-activity-plugin</report>
> <report>maven-file-activity-plugin</report>
> <report>maven-license-plugin</report>
> <report>maven-linkcheck-plugin</report>
> </reports>
> </project>
>
>
>
> 1.1 maven-plugins/announcement/project.properties
>
> Index: project.properties
> ===================================================================
> #
> -------------------------------------------------------------------
> # P R O J E C T P R O P E R T I E S
> #
> -------------------------------------------------------------------
> maven.xdoc.date=left
> maven.xdoc.version=${pom.currentVersion}
> maven.license.licenseFile=${basedir}/../LICENSE.txt
>
>
>
> 1.1 maven-plugins/announcement/.cvsignore
>
> Index: .cvsignore
> ===================================================================
> target
> velocity.log
> maven.log
> build.properties
> .classpath
> .project
>
>
>
> 1.1 maven-plugins/announcement/plugin.jelly
>
> Index: plugin.jelly
> ===================================================================
> <?xml version="1.0"?>
>
> <project
> xmlns:j="jelly:core"
> xmlns:x="jelly:xml"
> xmlns:ant="jelly:ant"
> xmlns:define="jelly:define"
> xmlns:util="jelly:util"
> xmlns:doc="doc">
>
> <goal name="announcement" prereqs="announcement:generate"
> description="Generate release announcement"/>
>
> <goal name="announcement:generate"
> description="Generate release announcement">
>
> <util:file var="inputFile"
> name="${maven.docs.src}/changes.xml"/>
> <x:parse var="doc" xml="${inputFile}"/>
>
> <j:set var="stylesheetURI"
> value="file:${plugin.resources}/announcement.jsl"/>
> <j:file
> name="${maven.build.dir}/announcement.txt"
> outputMode="xml"
> omitXmlDeclaration="true"
> prettyPrint="false">
> <j:include uri="${stylesheetURI.toString()}"/>
> </j:file>
>
> </goal>
>
> <goal name="announcement:text" prereqs="announcement:generate"
> description="Generate release announcement">
>
> <util:file var="inputFile"
> name="${maven.docs.src}/changes.xml"/>
> <x:parse var="doc" xml="${inputFile}"/>
>
> <j:set var="stylesheetURI"
> value="file:${plugin.resources}/announcement.jsl"/>
> <j:file
> name="${maven.build.dir}/announcement.xml"
> outputMode="xml"
> prettyPrint="false">
> <j:include uri="${stylesheetURI.toString()}"/>
> </j:file>
>
> </goal>
>
> </project>
>
>
>
> 1.1 maven-plugins/announcement/plugin.properties
>
> Index: plugin.properties
> ===================================================================
> #
> -------------------------------------------------------------------
> # Properties for the Announcement plugin
> #
> -------------------------------------------------------------------
>
> # Version for which to create a release note.
> maven.announcement.version = ${pom.currentVersion}
>
>
>
> 1.1 maven-plugins/announcement/xdocs/changes.xml
>
> Index: changes.xml
> ===================================================================
> <?xml version="1.0"?>
> <document>
> <properties>
> <title>Announcement plugin changes</title>
> <author email="vmassol@apache.org">Vincent Massol</author>
> </properties>
>
> <body>
>
> <release version="1.0" date="in CVS">
> <action dev="vmassol" type="add">
> Initial creation.
> </action>
> </release>
>
> </body>
> </document>
>
>
>
>
> 1.1 maven-plugins/announcement/xdocs/.cvsignore
>
> Index: .cvsignore
> ===================================================================
> stylesheets
>
>
>
> 1.1 maven-plugins/announcement/xdocs/navigation.xml
>
> Index: navigation.xml
> ===================================================================
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <project name="Maven Announcement plugin">
>
> <title>Maven Announcement plugin</title>
>
> <body>
> <links>
> <item name="Maven" href="http://maven.apache.org/"/>
> </links>
> <menu name="Overview">
> <item name="Goals" href="/goals.html" />
> <item name="Properties" href="/properties.html" />
> </menu>
> </body>
> </project>
>
>
>
> 1.1 maven-plugins/announcement/xdocs/goals.xml
>
> Index: goals.xml
> ===================================================================
> <?xml version="1.0"?>
> <document>
>
> <properties>
> <title>Maven Announcement plugin goals</title>
> <author email="vmassol@apache.org">Vincent Massol</author>
> </properties>
>
> <body>
> <section name="Goals">
> <table>
> <tr><th>Goal</th><th>Description</th></tr>
> <tr>
> <td>announcement:text</td>
> <td>
> Generate text release announcement.
> </td>
> </tr>
> </table>
> </section>
> </body>
> </document>
>
>
>
> 1.1 maven-plugins/announcement/xdocs/index.xml
>
> Index: index.xml
> ===================================================================
> <?xml version="1.0"?>
> <document>
>
> <properties>
> <title>Maven Announcement plugin</title>
> <author email="vmassol@apache.org">Vincent Massol</author>
> </properties>
>
> <body>
> <section name="Maven Announcement plugin">
> <p>
> Generates release announcements. It takes
> information from the
> POM and from the <code>changes.xml</code> file and
> using a template
> generates release information.
> </p>
> </section>
> </body>
> </document>
>
>
>
> 1.1 maven-plugins/announcement/xdocs/properties.xml
>
> Index: properties.xml
> ===================================================================
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <document>
>
> <properties>
> <title>Announcement plugin properties</title>
> <author email="vmassol@apache.org">Vincent Massol</author>
> </properties>
>
> <body>
> <section name="Announcement plugin properties">
> <table>
>
> <tr><th>Property</th><th>Optional?</th><th>Description</th><th
> >Default</th></tr>
> <tr>
> <td>maven.announcement.version</td>
> <td>Yes</td>
> <td>
> Version for which to create a release note.
> </td>
> <td>
> ${pom.currentVersion}
> </td>
> </tr>
> </table>
> </section>
> </body>
> </document>
>
>
>
> 1.1
> maven-plugins/announcement/src/plugin-resources/announcement.jsl
>
> Index: announcement.jsl
> ===================================================================
> <?xml version="1.0"?>
>
> <jsl:stylesheet
> select="$doc"
> xmlns:j="jelly:core"
> xmlns:jsl="jelly:jsl"
> xmlns:x="jelly:xml"
> xmlns="dummy" trim="true">
>
> <jsl:template match="document/body/release">
>
> <x:set var="version" select="string(@version)"/>
> <j:set var="versionVariable"
> value="${context.getVariable('maven.announcement.version')}"/>
>
> <j:if test="${versionVariable.equals(version)}">
>
> <j:useBean var="formatter"
> class="org.apache.maven.announcement.Formatter"/>
>
> <j:set var="header" value="The Maven team is pleased
> to announce the ${pom.name} ${versionVariable} release!"/>
> <j:set var="formattedHeader"
> value="${formatter.format(header,78)}"/>
> <!-- TODO: Find out why brackets are added -->
> <j:expr value="${formattedHeader}"/>
>
> <!-- TODO: Need line break here -->
>
> <j:expr value="${pom.url}"/>
>
> <!-- TODO: Need line break here -->
>
> <j:expr value="Changes in this version include (last
> changes first):"/>
>
> <x:forEach var="action" select="action">
> <x:set var="text" select="string($action)"/>
> <j:expr value="o "/>
> <j:forEach var="line" items="${formatter.format(text,75)}">
> <!-- TODO: Need to add 3 spaces on second line
> and thereafter -->
> <j:expr value="${line}"/>
> </j:forEach>
> </x:forEach>
>
> <!-- TODO: Need line break here -->
>
> <j:expr value="This plugin has been tested with Maven
> [TODO]. Using it with"/>
> <j:expr value="another version of Maven is at your
> own risks! :-)"/>
>
> <!-- TODO: Need line break here -->
>
> <j:expr value="You can download the ${pom.name} here:"/>
> <j:expr
> value="${maven.repo.remote}/${pom.groupId}/jars/${pom.artifact
> Id}-${versionVariable}.jar"/>
>
> <!-- TODO: Need line break here -->
>
> <j:expr value="Have fun!"/>
> <j:expr value="-The development team"/>
>
> </j:if>
>
> </jsl:template>
>
> <jsl:template match="@*"/>
>
> <jsl:template match="text()"/>
>
> </jsl:stylesheet>
>
>
>
> 1.1
> maven-plugins/announcement/src/main/org/apache/maven/announcem
> ent/Formatter.java
>
> Index: Formatter.java
> ===================================================================
> package org.apache.maven.announcement;
>
> /*
> ====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 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 acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the
> software itself,
> * if and wherever such third-party acknowledgments
> normally appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache Maven" must not be used to endorse or promote products
> * derived from this software without prior written
> permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called
> "Apache",
> * "Apache Maven", nor may "Apache" appear in their name, without
> * prior written permission of the Apache Software Foundation.
> *
> * 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/>.
> *
> *
> ====================================================================
> */
> import java.util.ArrayList;
> import java.util.List;
> import java.util.StringTokenizer;
>
> /**
> * @author <a href="mailto:vmassol@apache.org">Vincent Massol</a>
> *
> * @version $Id: Formatter.java,v 1.1 2003/11/16 22:48:57
> vmassol Exp $
> */
> public class Formatter
> {
> public static List format(String text, int column)
> {
> StringTokenizer st = new StringTokenizer(text, " \t\r\n");
> List strings = new ArrayList();
> StringBuffer buffer = new StringBuffer();
> while (st.hasMoreTokens())
> {
> String token = (String) st.nextToken();
> if (buffer.length() + token.length() <= column)
> {
> buffer.append(token);
> buffer.append(' ');
> }
> else
> {
> buffer.append('\r');
> buffer.append('\n');
> strings.add(buffer.toString());
> buffer = new StringBuffer();
> buffer.append(token);
> buffer.append(' ');
> }
> }
> buffer.append('\r');
> buffer.append('\n');
> strings.add(buffer.toString());
> return strings;
> }
> }
>
>
> 1.3 +4 -0 maven-plugins/project.properties
>
> Index: project.properties
> ===================================================================
> RCS file: /home/cvs/maven-plugins/project.properties,v
> retrieving revision 1.2
> retrieving revision 1.3
> diff -u -r1.2 -r1.3
> --- project.properties 5 Oct 2003 07:57:37 -0000 1.2
> +++ project.properties 16 Nov 2003 22:48:57 -0000 1.3
> @@ -5,6 +5,10 @@
> # Enable HTML to xdoc transformation
> maven.html2xdoc.enabled=true
>
> +# Choose aggregators to use for the dashboard plugin report
> +maven.dashboard.aggregators = csall,clovertpc,cloverloc,cloverncloc
> +maven.clover.report.xml=true
> +
> #------------------------------------------------------------------
> # M U L T I P R O J E C T - A L L P L U G I N G S
> #------------------------------------------------------------------
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
RE: Announcement plugin
Posted by Vincent Massol <vm...@pivolis.com>.
> -----Original Message-----
> From: Brett Porter [mailto:bporter@f2network.com.au]
> Sent: 16 November 2003 23:51
> To: 'Maven Developers List'
> Subject: Announcement plugin
>
> Wouldn't this be better as part of the changes plugin? Or the release
> plugin? The set of plugins for a release is getting more and more
> disperate
> by the day :)
:-)
It could. Before making any move I'd like to know what are the main
issues in having lots of plugins:
- Is it a problem of catalog, i.e. finding what a plugin does or what
plugin matches something I'm trying to achieve as a user?
- Is it a problem of overhead due to a plugin (project.xml, lifecycle,
JIRA project)?
- Is it a problem of users having to install more plugins?
What do others think?
Thanks
-Vincent
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org