You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by vm...@apache.org on 2003/11/10 21:00:25 UTC
cvs commit: maven-plugins/multichanges/src/plugin-resources releases.jsl
vmassol 2003/11/10 12:00:25
Added: multichanges/xdocs properties.xml .cvsignore changes.xml
index.xml navigation.xml goals.xml
multichanges project.properties plugin.properties
project.xml plugin.jelly .cvsignore
multichanges/src/plugin-resources releases.jsl
Log:
Initial release of multichanges plugin. It generates a release dashboard for all subprojects. An example can be found at http://maven.apache.org/reference/plugins/optional/release-report.html
Revision Changes Path
1.1 maven-plugins/multichanges/xdocs/properties.xml
Index: properties.xml
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<document>
<properties>
<title>Multichanges properties</title>
<author email="vmassol@apache.org">Vincent Massol</author>
</properties>
<body>
<section name="Multichanges properties">
<source><![CDATA[
maven.multichanges.basedir=${basedir}
maven.multichanges.includes=*/project.xml
maven.multichanges.excludes=**/target/**/project.xml,project.xml
maven.multichanges.ignoreFailures=false
# Generated dashboard raw data file
maven.multichanges.data = ${maven.build.dir}/multichanges.xml
# Report name (without extension)
maven.multichanges.report = multichanges-report
]]></source>
</section>
</body>
</document>
1.1 maven-plugins/multichanges/xdocs/.cvsignore
Index: .cvsignore
===================================================================
stylesheets
1.1 maven-plugins/multichanges/xdocs/changes.xml
Index: changes.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<title>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/multichanges/xdocs/index.xml
Index: index.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<title>Maven Multichanges plugin</title>
<author email="vmassol@apache.org">Vincent Massol</author>
</properties>
<body>
<section name="Maven Multichanges plugin">
<p>
Generate a release dashboard from information found in
project <code>changes.xml</code> files. This plugin operates
on all subprojects. It shows the latest release dates and
versions of all subprojects.
</p>
</section>
</body>
</document>
1.1 maven-plugins/multichanges/xdocs/navigation.xml
Index: navigation.xml
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Maven Multichanges plugin">
<title>Maven MultiChanges 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/multichanges/xdocs/goals.xml
Index: goals.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<title>Maven Multichanges plugin Goals</title>
<author email="vmassol@apache.org">Vincent Massol</author>
</properties>
<body>
<section name="Goals">
<p>
This plugin is called automatically by the
<code>site</code> plugin when it generates the project
web site.
</p>
<table>
<tr><th>Goal</th><th>Description</th></tr>
<tr>
<td>multichanges:report</td>
<td>
Generate the release dashboard showing the latest release dates
and versions of the different subprojects.
</td>
</tr>
</table>
</section>
</body>
</document>
1.1 maven-plugins/multichanges/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/multichanges/plugin.properties
Index: plugin.properties
===================================================================
# -------------------------------------------------------------------
# P L U G I N P R O P E R I E S
# -------------------------------------------------------------------
# Multichanges plugin.
# -------------------------------------------------------------------
maven.multichanges.basedir=${basedir}
maven.multichanges.includes=*/project.xml
maven.multichanges.excludes=**/target/**/project.xml,project.xml
maven.multichanges.ignoreFailures=false
# Generated dashboard raw data file
maven.multichanges.data = ${maven.build.dir}/multichanges.xml
# Report name (without extension)
maven.multichanges.report = multichanges-report
1.1 maven-plugins/multichanges/project.xml
Index: project.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<project>
<extend>../project.xml</extend>
<pomVersion>3</pomVersion>
<id>maven-multichanges-plugin</id>
<name>Maven MultiChanges plugin</name>
<currentVersion>1.0-SNAPSHOT</currentVersion>
<shortDescription>Produce release dashboard for subprojects</shortDescription>
<url>http://maven.apache.org/reference/plugins/multichanges/</url>
<siteDirectory>/www/maven.apache.org/reference/plugins/multichanges/</siteDirectory>
<repository>
<connection>scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:maven-plugins/multichanges/</connection>
<url>http://cvs.apache.org/viewcvs/maven-plugins/multichanges/</url>
</repository>
<versions>
<version>
<id>1.0</id>
<name>1.0</name>
<tag>HEAD</tag>
</version>
</versions>
<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/multichanges/plugin.jelly
Index: plugin.jelly
===================================================================
<?xml version="1.0"?>
<project
xmlns:j="jelly:core"
xmlns:ant="jelly:ant"
xmlns:define="jelly:define"
xmlns:util="jelly:util"
xmlns:m="jelly:maven"
xmlns:x="jelly:xml"
xmlns:doc="doc">
<!--
========================================================================
Generate a multiproject release report, providing a unified view of
the latest release of projects.
========================================================================
-->
<goal name="multichanges:report">
<m:reactor
basedir="${maven.multichanges.basedir}"
banner="Gathering project list"
includes="${maven.multichanges.includes}"
excludes="${maven.multichanges.excludes}"
postProcessing="true"
ignoreFailures="${maven.multichanges.ignoreFailures}"/>
<ant:dirname property="dataReportDir" file="${maven.multichanges.data}"/>
<ant:mkdir dir="${dataReportDir}"/>
<j:file name="${maven.multichanges.data}" prettyPrint="true"
xmlns="release">
<releases>
<j:forEach var="reactorProject" items="${reactorProjects}">
<x:element name="project">
<x:attribute name="name">
${reactorProject.name}
</x:attribute>
<util:file var="changesAsFile"
name="${reactorProject.context.getVariable('maven.docs.src')}/changes.xml"/>
<j:choose>
<j:when test="${changesAsFile.exists()}">
<x:parse var="doc" xml="${changesAsFile}"/>
<!-- Extract latest version. We assume it is contained in
the first <release> tag found -->
<!-- TODO: Improve algorithm by writing a java bean -->
<x:set var="versionElems"
select="$doc//release[contains(@date,'-')]"/>
<j:choose>
<j:when test="${not(versionElems.isEmpty())}">
<x:attribute name="version">
${versionElems.get(0).attributeValue('version')}
</x:attribute>
<x:attribute name="date">
${versionElems.get(0).attributeValue('date')}
</x:attribute>
</j:when>
<j:otherwise>
<x:attribute name="version">
Not released
</x:attribute>
<x:attribute name="date">
Not released
</x:attribute>
</j:otherwise>
</j:choose>
</j:when>
<j:otherwise>
<x:attribute name="version">
No information available
</x:attribute>
<x:attribute name="date">
No information available
</x:attribute>
</j:otherwise>
</j:choose>
</x:element>
</j:forEach>
</releases>
</j:file>
<ant:dirname property="reportDir" file="${maven.multichanges.report}"/>
<ant:mkdir dir="${reportDir}"/>
<doc:jsl
input="${maven.multichanges.data}"
output="${maven.multichanges.report}.xml"
stylesheet="${plugin.resources}/releases.jsl"
outputMode="xml"
prettyPrint="true"/>
</goal>
<goal name="maven-multichanges-plugin:register">
<doc:registerReport
name="Releases"
pluginName="multichanges"
link="${maven.multichanges.report}"
description="Report on latest project releases."/>
</goal>
<goal name="maven-multichanges-plugin:deregister">
<doc:deregisterReport name="Releases"/>
</goal>
</project>
1.1 maven-plugins/multichanges/.cvsignore
Index: .cvsignore
===================================================================
target
velocity.log
maven.log
build.properties
.classpath
.project
1.1 maven-plugins/multichanges/src/plugin-resources/releases.jsl
Index: releases.jsl
===================================================================
<?xml version="1.0"?>
<jsl:stylesheet
select="$doc"
xmlns:j="jelly:core"
xmlns:jsl="jelly:jsl"
xmlns:x="jelly:xml"
xmlns="dummy" trim="false">
<jsl:template match="releases">
<document>
<properties>
<title>Latest releases</title>
</properties>
<body>
<section name="Latest releases">
<table>
<tr>
<th>Project name</th>
<th>Latest version</th>
<th>Released date</th>
</tr>
<x:set var="projects" sort="@date" descending="true"
select="project[not(@date = 'Not released') and not(@date = 'No information available')]"/>
<j:forEach var="project" items="${projects}">
<tr>
<td>
<x:expr select="$project/@name"/>
</td>
<td>
<x:expr select="$project/@version"/>
</td>
<td>
<x:expr select="$project/@date"/>
</td>
</tr>
</j:forEach>
<x:set var="projects" sort="@date" descending="true"
select="project[@date = 'Not released']"/>
<j:forEach var="project" items="${projects}">
<tr>
<td>
<x:expr select="$project/@name"/>
</td>
<td>
<x:expr select="$project/@version"/>
</td>
<td>
<x:expr select="$project/@date"/>
</td>
</tr>
</j:forEach>
<x:set var="projects" sort="@date" descending="true"
select="project[@date = 'No information available']"/>
<j:forEach var="project" items="${projects}">
<tr>
<td>
<x:expr select="$project/@name"/>
</td>
<td>
<x:expr select="$project/@version"/>
</td>
<td>
<x:expr select="$project/@date"/>
</td>
</tr>
</j:forEach>
</table>
</section>
</body>
</document>
</jsl:template>
</jsl:stylesheet>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
RE: cvs commit: maven-plugins/multichanges/src/plugin-resources releases.jsl
Posted by Vincent Massol <vm...@pivolis.com>.
> -----Original Message-----
> From: Michal Maczka [mailto:mmaczka@interia.pl]
> Sent: 11 November 2003 11:16
> To: Maven Developers List
> Subject: Re: cvs commit:
maven-plugins/multichanges/src/plugin-resources
> releases.jsl
>
> Vincent Massol wrote:
>
> >dIon,
> >
> >I don't quite agree. Each of these plugins are separate. Sharing the
> >same properties ties them together. I would agree, provided the
> >multiproject plugin provides some useful infrastructure for all
plugins
> >dealing with several projects. In which case the other plugins would
> >"extend" it and it would make sense to share properties. Tying them
> >together just to share some properties does not seem enough to me to
> >justify the tie.
> >
> >Ideas?
> >
> >
> >
> >
> I agree with dIon here.
Please see the proposal for a multireport plugin (or whatever name we
wish to call it). That would solve part of the issue.
>
> We have alredy have a set of properties which are shared among plugins
> and even such properties which don't belong
> to any plugin (like ${maven.build.dest}}.
>
> I see that you are not happy about the fact that multiproject plugin
is
> in some way favourized.
>
> Then we can imagine to have( as for this just compilcates things for
end
> user):
>
> maven.reactor.basedir=${basedir}
> maven.reactor.includes=*/project.xml
> maven.reactor.excludes=**/target/**/project.xml,project.xml
> maven.reactor.ignoreFailures=false
>
>
> (and then default setting per plugin)
>
> maven.multiproject.basedir=${maven.reactor.basedir}
> maven.multiproject.includes=${maven.reactor.includes}
> maven.multiproject.excludes=${maven.reactor.excludes}
> maven.multiproject.ignoreFailures={maven.reactor.ignoreFailures}
>
>
> maven.multichanges.basedir=${maven.reactor.basedir}
> maven.multichanges.includes=${maven.reactor.includes}
> maven.multichanges.excludes=${maven.reactor.excludes}
>
> maven.multichanges.ignoreFailures=${maven.reactor.ignoreFailures}
>
>
> So no plugin is favourized.
>
> The fundamental question here is: shall we use properties which belong
> to no plugin and what technical problems it can cause.
> If this should be recommended or forbbiden pratice.
>
> I personally have noting against using properties of multiproject
> plugin in other plugins.
>
> [completly off topic]We can even imagine to have plugins of the
> multiproject plugin:
> so multiproject is a plugin which runs reactor in favour of its
plugins
> and those plugins can be e.g plugged into maven reporting API.
This is what already exists with the site plugin. And it is what I am
proposing in my other email. However there are 2 features we're looking
for:
1- Ability to simply execute the same goal over several plugins
2- Report aggregator
The multiproject could stay the way it is and provide feature 1. The
multireport plugin could do 2.
> Plugins of multiproject need not even be plugins in maven sense. They
> can be scripts or java classes
> In case of reactor-powered plugins this can speed up many things in
> significant way.
Yes, that's what I imagine with the multireport stuff.
-Vincent
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: cvs commit: maven-plugins/multichanges/src/plugin-resources releases.jsl
Posted by Michal Maczka <mm...@interia.pl>.
Vincent Massol wrote:
>dIon,
>
>I don't quite agree. Each of these plugins are separate. Sharing the
>same properties ties them together. I would agree, provided the
>multiproject plugin provides some useful infrastructure for all plugins
>dealing with several projects. In which case the other plugins would
>"extend" it and it would make sense to share properties. Tying them
>together just to share some properties does not seem enough to me to
>justify the tie.
>
>Ideas?
>
>
>
>
I agree with dIon here.
We have alredy have a set of properties which are shared among plugins
and even such properties which don't belong
to any plugin (like ${maven.build.dest}}.
I see that you are not happy about the fact that multiproject plugin is
in some way favourized.
Then we can imagine to have( as for this just compilcates things for end
user):
maven.reactor.basedir=${basedir}
maven.reactor.includes=*/project.xml
maven.reactor.excludes=**/target/**/project.xml,project.xml
maven.reactor.ignoreFailures=false
(and then default setting per plugin)
maven.multiproject.basedir=${maven.reactor.basedir}
maven.multiproject.includes=${maven.reactor.includes}
maven.multiproject.excludes=${maven.reactor.excludes}
maven.multiproject.ignoreFailures={maven.reactor.ignoreFailures}
maven.multichanges.basedir=${maven.reactor.basedir}
maven.multichanges.includes=${maven.reactor.includes}
maven.multichanges.excludes=${maven.reactor.excludes}
maven.multichanges.ignoreFailures=${maven.reactor.ignoreFailures}
So no plugin is favourized.
The fundamental question here is: shall we use properties which belong
to no plugin and what technical problems it can cause.
If this should be recommended or forbbiden pratice.
I personally have noting against using properties of multiproject
plugin in other plugins.
[completly off topic]We can even imagine to have plugins of the
multiproject plugin:
so multiproject is a plugin which runs reactor in favour of its plugins
and those plugins can be e.g plugged into maven reporting API.
Plugins of multiproject need not even be plugins in maven sense. They
can be scripts or java classes
In case of reactor-powered plugins this can speed up many things in
significant way.
Michal
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
RE: cvs commit: maven-plugins/multichanges/src/plugin-resources
releases.jsl
Posted by di...@multitask.com.au.
"Vincent Massol" <vm...@pivolis.com> wrote on 11/11/2003 07:54:55 PM:
> dIon,
>
> I don't quite agree. Each of these plugins are separate. Sharing the
> same properties ties them together. I would agree, provided the
> multiproject plugin provides some useful infrastructure for all plugins
> dealing with several projects. In which case the other plugins would
> "extend" it and it would make sense to share properties. Tying them
> together just to share some properties does not seem enough to me to
> justify the tie.
>
> Ideas?
Infrastructure provided by multiproject:
- multiproject:goal for running any goal across multiple projects.
- 2 multiproject reports: dependency convergence and overview.
- the notion of project 'type' (war, jar, ear, etc).
- a single point for declaring the multiple projects being processed
This could easily be made better without having 25 odd sets of properties
declared over time.
Can you imagine how the normal reporting would look if each report
required project.xml to be defined using plugin specific properties?
That's how the various multireport/changes/dashboard stuff is looking to
me now.
--
dIon Gillard, Multitask Consulting
Blog: http://blogs.codehaus.org/people/dion/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
RE: cvs commit: maven-plugins/multichanges/src/plugin-resources releases.jsl
Posted by Vincent Massol <vm...@pivolis.com>.
dIon,
I don't quite agree. Each of these plugins are separate. Sharing the
same properties ties them together. I would agree, provided the
multiproject plugin provides some useful infrastructure for all plugins
dealing with several projects. In which case the other plugins would
"extend" it and it would make sense to share properties. Tying them
together just to share some properties does not seem enough to me to
justify the tie.
Ideas?
Thanks
-Vincent
> -----Original Message-----
> From: dion@multitask.com.au [mailto:dion@multitask.com.au]
> Sent: 11 November 2003 01:32
> To: Maven Developers List
> Subject: Re: cvs commit:
maven-plugins/multichanges/src/plugin-resources
> releases.jsl
>
> Vincent,
>
> is there a reason that we're not using the multiproject plugin for
these,
> or at least the same property names?
>
> We now have
> maven.multichanges.basedir=${basedir}
> maven.multichanges.includes=*/project.xml
> maven.multichanges.excludes=**/target/**/project.xml,project.xml
> maven.multichanges.ignoreFailures=false
>
> and
>
> maven.multiproject.basedir=${basedir}
> maven.multiproject.includes=*/project.xml
> maven.multiproject.excludes=
> maven.multiproject.ignoreFailures=false
>
> and
>
> maven.dashboard.basedir=${basedir}
> maven.dashboard.includes=*/project.xml
> maven.dashboard.excludes=**/target/**/project.xml,project.xml
> maven.dashboard.ignoreFailures=false
>
> which would hopefully all have the same values.
>
> I'd like to move to having the same set of properties used by default,
> e.g. have the dashboard and multichanges plugins default to the
> multiproject values.
>
> What do you think?
> --
> dIon Gillard, Multitask Consulting
> Blog: http://blogs.codehaus.org/people/dion/
> Pub Key:http://blogs.codehaus.org/people/dion/public-key.asc
>
>
> vmassol@apache.org wrote on 11/11/2003 07:00:25 AM:
>
> > vmassol 2003/11/10 12:00:25
> >
> > Added: multichanges/xdocs properties.xml .cvsignore
changes.xml
> > index.xml navigation.xml goals.xml
> > multichanges project.properties plugin.properties
> > project.xml plugin.jelly .cvsignore
> > multichanges/src/plugin-resources releases.jsl
> > Log:
> > Initial release of multichanges plugin. It generates a release
> > dashboard for all subprojects. An example can be found at http:
> > //maven.apache.org/reference/plugins/optional/release-report.html
> >
> > Revision Changes Path
> > 1.1
maven-plugins/multichanges/xdocs/properties.xml
> >
> > Index: properties.xml
> >
===================================================================
> > <?xml version="1.0" encoding="ISO-8859-1"?>
> > <document>
> >
> > <properties>
> > <title>Multichanges properties</title>
> > <author email="vmassol@apache.org">Vincent Massol</author>
> > </properties>
> >
> > <body>
> > <section name="Multichanges properties">
> > <source><![CDATA[
> > maven.multichanges.basedir=${basedir}
> > maven.multichanges.includes=*/project.xml
> > maven.multichanges.excludes=**/target/**/project.xml,project.xml
> > maven.multichanges.ignoreFailures=false
> >
> > # Generated dashboard raw data file
> > maven.multichanges.data = ${maven.build.dir}/multichanges.xml
> >
> > # Report name (without extension)
> > maven.multichanges.report = multichanges-report
> > ]]></source>
> > </section>
> > </body>
> > </document>
> >
> >
> >
> > 1.1 maven-plugins/multichanges/xdocs/.cvsignore
> >
> > Index: .cvsignore
> >
===================================================================
> > stylesheets
> >
> >
> >
> > 1.1 maven-plugins/multichanges/xdocs/changes.xml
> >
> > Index: changes.xml
> >
===================================================================
> > <?xml version="1.0"?>
> > <document>
> > <properties>
> > <title>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/multichanges/xdocs/index.xml
> >
> > Index: index.xml
> >
===================================================================
> > <?xml version="1.0"?>
> > <document>
> >
> > <properties>
> > <title>Maven Multichanges plugin</title>
> > <author email="vmassol@apache.org">Vincent Massol</author>
> > </properties>
> >
> > <body>
> > <section name="Maven Multichanges plugin">
> > <p>
> > Generate a release dashboard from information found in
> > project <code>changes.xml</code> files. This plugin
operates
> > on all subprojects. It shows the latest release dates and
> > versions of all subprojects.
> > </p>
> > </section>
> > </body>
> >
> > </document>
> >
> >
> >
> > 1.1
maven-plugins/multichanges/xdocs/navigation.xml
> >
> > Index: navigation.xml
> >
===================================================================
> > <?xml version="1.0" encoding="ISO-8859-1"?>
> >
> > <project name="Maven Multichanges plugin">
> >
> > <title>Maven MultiChanges 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/multichanges/xdocs/goals.xml
> >
> > Index: goals.xml
> >
===================================================================
> > <?xml version="1.0"?>
> > <document>
> >
> > <properties>
> > <title>Maven Multichanges plugin Goals</title>
> > <author email="vmassol@apache.org">Vincent Massol</author>
> > </properties>
> >
> > <body>
> > <section name="Goals">
> > <p>
> > This plugin is called automatically by the
> > <code>site</code> plugin when it generates the project
> > web site.
> > </p>
> > <table>
> > <tr><th>Goal</th><th>Description</th></tr>
> > <tr>
> > <td>multichanges:report</td>
> > <td>
> > Generate the release dashboard showing the latest
release
> dates
> > and versions of the different subprojects.
> > </td>
> > </tr>
> > </table>
> > </section>
> > </body>
> > </document>
> >
> >
> >
> > 1.1 maven-plugins/multichanges/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/multichanges/plugin.properties
> >
> > Index: plugin.properties
> >
===================================================================
> > #
-------------------------------------------------------------------
> > # P L U G I N P R O P E R I E S
> > #
-------------------------------------------------------------------
> > # Multichanges plugin.
> > #
-------------------------------------------------------------------
> >
> > maven.multichanges.basedir=${basedir}
> > maven.multichanges.includes=*/project.xml
> > maven.multichanges.excludes=**/target/**/project.xml,project.xml
> > maven.multichanges.ignoreFailures=false
> >
> > # Generated dashboard raw data file
> > maven.multichanges.data = ${maven.build.dir}/multichanges.xml
> >
> > # Report name (without extension)
> > maven.multichanges.report = multichanges-report
> >
> >
> >
> > 1.1 maven-plugins/multichanges/project.xml
> >
> > Index: project.xml
> >
===================================================================
> > <?xml version="1.0" encoding="UTF-8"?>
> >
> > <project>
> > <extend>../project.xml</extend>
> > <pomVersion>3</pomVersion>
> > <id>maven-multichanges-plugin</id>
> > <name>Maven MultiChanges plugin</name>
> > <currentVersion>1.0-SNAPSHOT</currentVersion>
> > <shortDescription>Produce release dashboard for
> > subprojects</shortDescription>
> >
<url>http://maven.apache.org/reference/plugins/multichanges/</url>
> > <siteDirectory>/www/maven.apache.
> > org/reference/plugins/multichanges/</siteDirectory>
> > <repository>
> > <connection>scm:cvs:pserver:anoncvs@cvs.apache.org:
> > /home/cvspublic:maven-plugins/multichanges/</connection>
> > <url>http://cvs.apache.org/viewcvs/maven-plugins/multichanges/</url>
> > </repository>
> > <versions>
> > <version>
> > <id>1.0</id>
> > <name>1.0</name>
> > <tag>HEAD</tag>
> > </version>
> > </versions>
> > <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/multichanges/plugin.jelly
> >
> > Index: plugin.jelly
> >
===================================================================
> > <?xml version="1.0"?>
> >
> > <project
> > xmlns:j="jelly:core"
> > xmlns:ant="jelly:ant"
> > xmlns:define="jelly:define"
> > xmlns:util="jelly:util"
> > xmlns:m="jelly:maven"
> > xmlns:x="jelly:xml"
> > xmlns:doc="doc">
> >
> > <!--
>
> >
========================================================================
> >
> Generate a multiproject release report, providing a
> > unified view of
> the latest release of projects.
>
> >
========================================================================
> >
> -->
> > <goal name="multichanges:report">
> >
> > <m:reactor
> > basedir="${maven.multichanges.basedir}"
> > banner="Gathering project list"
> > includes="${maven.multichanges.includes}"
> > excludes="${maven.multichanges.excludes}"
> > postProcessing="true"
> > ignoreFailures="${maven.multichanges.ignoreFailures}"/>
> >
> > <ant:dirname property="dataReportDir" file="${maven.
> > multichanges.data}"/>
> > <ant:mkdir dir="${dataReportDir}"/>
> >
> > <j:file name="${maven.multichanges.data}" prettyPrint="true"
> > xmlns="release">
> > <releases>
> > <j:forEach var="reactorProject" items="${reactorProjects}">
> > <x:element name="project">
> > <x:attribute name="name">
> > ${reactorProject.name}
> > </x:attribute>
> > <util:file var="changesAsFile"
> > name="${reactorProject.context.getVariable('maven.
> > docs.src')}/changes.xml"/>
> > <j:choose>
> > <j:when test="${changesAsFile.exists()}">
> > <x:parse var="doc" xml="${changesAsFile}"/>
> > <!-- Extract latest version. We assume it is
> > contained in
> the first <release> tag found -->
> > <!-- TODO: Improve algorithm by writing a java bean
-->
> > <x:set var="versionElems"
> > select="$doc//release[contains(@date,'-')]"/>
> > <j:choose>
> > <j:when test="${not(versionElems.isEmpty())}">
> > <x:attribute name="version">
> >
${versionElems.get(0).attributeValue('version')}
> > </x:attribute>
> > <x:attribute name="date">
> > ${versionElems.get(0).attributeValue('date')}
> > </x:attribute>
> > </j:when>
> > <j:otherwise>
> > <x:attribute name="version">
> > Not released
> > </x:attribute>
> > <x:attribute name="date">
> > Not released
> > </x:attribute>
> > </j:otherwise>
> > </j:choose>
> > </j:when>
> > <j:otherwise>
> > <x:attribute name="version">
> > No information available
> > </x:attribute>
> > <x:attribute name="date">
> > No information available
> > </x:attribute>
> > </j:otherwise>
> > </j:choose>
> > </x:element>
> > </j:forEach>
> > </releases>
> > </j:file>
> >
> > <ant:dirname property="reportDir"
> file="${maven.multichanges.report}"/>
> > <ant:mkdir dir="${reportDir}"/>
> >
> > <doc:jsl
> > input="${maven.multichanges.data}"
> > output="${maven.multichanges.report}.xml"
> > stylesheet="${plugin.resources}/releases.jsl"
> > outputMode="xml"
> > prettyPrint="true"/>
> >
> > </goal>
> >
> > <goal name="maven-multichanges-plugin:register">
> > <doc:registerReport
> > name="Releases"
> > pluginName="multichanges"
> > link="${maven.multichanges.report}"
> > description="Report on latest project releases."/>
> > </goal>
> >
> > <goal name="maven-multichanges-plugin:deregister">
> > <doc:deregisterReport name="Releases"/>
> > </goal>
> >
> > </project>
> >
> >
> >
> > 1.1 maven-plugins/multichanges/.cvsignore
> >
> > Index: .cvsignore
> >
===================================================================
> > target
> > velocity.log
> > maven.log
> > build.properties
> > .classpath
> > .project
> >
> >
> >
> > 1.1 maven-plugins/multichanges/src/plugin-
> > resources/releases.jsl
> >
> > Index: releases.jsl
> >
===================================================================
> > <?xml version="1.0"?>
> >
> >
> >
> > <jsl:stylesheet
> >
> > select="$doc"
> >
> > xmlns:j="jelly:core"
> >
> > xmlns:jsl="jelly:jsl"
> >
> > xmlns:x="jelly:xml"
> >
> > xmlns="dummy" trim="false">
> >
> >
> >
> > <jsl:template match="releases">
> >
> > <document>
> >
> > <properties>
> >
> > <title>Latest releases</title>
> >
> > </properties>
> >
> > <body>
> >
> > <section name="Latest releases">
> >
> > <table>
> >
> > <tr>
> >
> > <th>Project name</th>
> >
> > <th>Latest version</th>
> >
> > <th>Released date</th>
> >
> > </tr>
> >
> > <x:set var="projects" sort="@date" descending="true"
> >
> > select="project[not(@date = 'Not released') and
> > not(@date = 'No information available')]"/>
> >
> > <j:forEach var="project" items="${projects}">
> >
> > <tr>
> >
> > <td>
> >
> > <x:expr select="$project/@name"/>
> >
> > </td>
> >
> > <td>
> >
> > <x:expr select="$project/@version"/>
> >
> > </td>
> >
> > <td>
> >
> > <x:expr select="$project/@date"/>
> >
> > </td>
> >
> > </tr>
> >
> > </j:forEach>
> >
> > <x:set var="projects" sort="@date" descending="true"
> >
> > select="project[@date = 'Not released']"/>
> >
> > <j:forEach var="project" items="${projects}">
> >
> > <tr>
> >
> > <td>
> >
> > <x:expr select="$project/@name"/>
> >
> > </td>
> >
> > <td>
> >
> > <x:expr select="$project/@version"/>
> >
> > </td>
> >
> > <td>
> >
> > <x:expr select="$project/@date"/>
> >
> > </td>
> >
> > </tr>
> >
> > </j:forEach>
> >
> > <x:set var="projects" sort="@date" descending="true"
> >
> > select="project[@date = 'No information
available']"/>
> >
> > <j:forEach var="project" items="${projects}">
> >
> > <tr>
> >
> > <td>
> >
> > <x:expr select="$project/@name"/>
> >
> > </td>
> >
> > <td>
> >
> > <x:expr select="$project/@version"/>
> >
> > </td>
> >
> > <td>
> >
> > <x:expr select="$project/@date"/>
> >
> > </td>
> >
> > </tr>
> >
> > </j:forEach>
> >
> > </table>
> >
> > </section>
> >
> > </body>
> >
> > </document>
> >
> > </jsl:template>
> >
> >
> >
> > </jsl:stylesheet>
> >
> >
> >
> >
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> > For additional commands, e-mail: dev-help@maven.apache.org
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: cvs commit: maven-plugins/multichanges/src/plugin-resources
releases.jsl
Posted by di...@multitask.com.au.
Vincent,
is there a reason that we're not using the multiproject plugin for these,
or at least the same property names?
We now have
maven.multichanges.basedir=${basedir}
maven.multichanges.includes=*/project.xml
maven.multichanges.excludes=**/target/**/project.xml,project.xml
maven.multichanges.ignoreFailures=false
and
maven.multiproject.basedir=${basedir}
maven.multiproject.includes=*/project.xml
maven.multiproject.excludes=
maven.multiproject.ignoreFailures=false
and
maven.dashboard.basedir=${basedir}
maven.dashboard.includes=*/project.xml
maven.dashboard.excludes=**/target/**/project.xml,project.xml
maven.dashboard.ignoreFailures=false
which would hopefully all have the same values.
I'd like to move to having the same set of properties used by default,
e.g. have the dashboard and multichanges plugins default to the
multiproject values.
What do you think?
--
dIon Gillard, Multitask Consulting
Blog: http://blogs.codehaus.org/people/dion/
Pub Key:http://blogs.codehaus.org/people/dion/public-key.asc
vmassol@apache.org wrote on 11/11/2003 07:00:25 AM:
> vmassol 2003/11/10 12:00:25
>
> Added: multichanges/xdocs properties.xml .cvsignore changes.xml
> index.xml navigation.xml goals.xml
> multichanges project.properties plugin.properties
> project.xml plugin.jelly .cvsignore
> multichanges/src/plugin-resources releases.jsl
> Log:
> Initial release of multichanges plugin. It generates a release
> dashboard for all subprojects. An example can be found at http:
> //maven.apache.org/reference/plugins/optional/release-report.html
>
> Revision Changes Path
> 1.1 maven-plugins/multichanges/xdocs/properties.xml
>
> Index: properties.xml
> ===================================================================
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <document>
>
> <properties>
> <title>Multichanges properties</title>
> <author email="vmassol@apache.org">Vincent Massol</author>
> </properties>
>
> <body>
> <section name="Multichanges properties">
> <source><![CDATA[
> maven.multichanges.basedir=${basedir}
> maven.multichanges.includes=*/project.xml
> maven.multichanges.excludes=**/target/**/project.xml,project.xml
> maven.multichanges.ignoreFailures=false
>
> # Generated dashboard raw data file
> maven.multichanges.data = ${maven.build.dir}/multichanges.xml
>
> # Report name (without extension)
> maven.multichanges.report = multichanges-report
> ]]></source>
> </section>
> </body>
> </document>
>
>
>
> 1.1 maven-plugins/multichanges/xdocs/.cvsignore
>
> Index: .cvsignore
> ===================================================================
> stylesheets
>
>
>
> 1.1 maven-plugins/multichanges/xdocs/changes.xml
>
> Index: changes.xml
> ===================================================================
> <?xml version="1.0"?>
> <document>
> <properties>
> <title>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/multichanges/xdocs/index.xml
>
> Index: index.xml
> ===================================================================
> <?xml version="1.0"?>
> <document>
>
> <properties>
> <title>Maven Multichanges plugin</title>
> <author email="vmassol@apache.org">Vincent Massol</author>
> </properties>
>
> <body>
> <section name="Maven Multichanges plugin">
> <p>
> Generate a release dashboard from information found in
> project <code>changes.xml</code> files. This plugin operates
> on all subprojects. It shows the latest release dates and
> versions of all subprojects.
> </p>
> </section>
> </body>
>
> </document>
>
>
>
> 1.1 maven-plugins/multichanges/xdocs/navigation.xml
>
> Index: navigation.xml
> ===================================================================
> <?xml version="1.0" encoding="ISO-8859-1"?>
>
> <project name="Maven Multichanges plugin">
>
> <title>Maven MultiChanges 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/multichanges/xdocs/goals.xml
>
> Index: goals.xml
> ===================================================================
> <?xml version="1.0"?>
> <document>
>
> <properties>
> <title>Maven Multichanges plugin Goals</title>
> <author email="vmassol@apache.org">Vincent Massol</author>
> </properties>
>
> <body>
> <section name="Goals">
> <p>
> This plugin is called automatically by the
> <code>site</code> plugin when it generates the project
> web site.
> </p>
> <table>
> <tr><th>Goal</th><th>Description</th></tr>
> <tr>
> <td>multichanges:report</td>
> <td>
> Generate the release dashboard showing the latest release
dates
> and versions of the different subprojects.
> </td>
> </tr>
> </table>
> </section>
> </body>
> </document>
>
>
>
> 1.1 maven-plugins/multichanges/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/multichanges/plugin.properties
>
> Index: plugin.properties
> ===================================================================
> # -------------------------------------------------------------------
> # P L U G I N P R O P E R I E S
> # -------------------------------------------------------------------
> # Multichanges plugin.
> # -------------------------------------------------------------------
>
> maven.multichanges.basedir=${basedir}
> maven.multichanges.includes=*/project.xml
> maven.multichanges.excludes=**/target/**/project.xml,project.xml
> maven.multichanges.ignoreFailures=false
>
> # Generated dashboard raw data file
> maven.multichanges.data = ${maven.build.dir}/multichanges.xml
>
> # Report name (without extension)
> maven.multichanges.report = multichanges-report
>
>
>
> 1.1 maven-plugins/multichanges/project.xml
>
> Index: project.xml
> ===================================================================
> <?xml version="1.0" encoding="UTF-8"?>
>
> <project>
> <extend>../project.xml</extend>
> <pomVersion>3</pomVersion>
> <id>maven-multichanges-plugin</id>
> <name>Maven MultiChanges plugin</name>
> <currentVersion>1.0-SNAPSHOT</currentVersion>
> <shortDescription>Produce release dashboard for
> subprojects</shortDescription>
> <url>http://maven.apache.org/reference/plugins/multichanges/</url>
> <siteDirectory>/www/maven.apache.
> org/reference/plugins/multichanges/</siteDirectory>
> <repository>
> <connection>scm:cvs:pserver:anoncvs@cvs.apache.org:
> /home/cvspublic:maven-plugins/multichanges/</connection>
> <url>http://cvs.apache.org/viewcvs/maven-plugins/multichanges/</url>
> </repository>
> <versions>
> <version>
> <id>1.0</id>
> <name>1.0</name>
> <tag>HEAD</tag>
> </version>
> </versions>
> <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/multichanges/plugin.jelly
>
> Index: plugin.jelly
> ===================================================================
> <?xml version="1.0"?>
>
> <project
> xmlns:j="jelly:core"
> xmlns:ant="jelly:ant"
> xmlns:define="jelly:define"
> xmlns:util="jelly:util"
> xmlns:m="jelly:maven"
> xmlns:x="jelly:xml"
> xmlns:doc="doc">
>
> <!--
> ========================================================================
>
Generate a multiproject release report, providing a
> unified view of
the latest release of projects.
> ========================================================================
>
-->
> <goal name="multichanges:report">
>
> <m:reactor
> basedir="${maven.multichanges.basedir}"
> banner="Gathering project list"
> includes="${maven.multichanges.includes}"
> excludes="${maven.multichanges.excludes}"
> postProcessing="true"
> ignoreFailures="${maven.multichanges.ignoreFailures}"/>
>
> <ant:dirname property="dataReportDir" file="${maven.
> multichanges.data}"/>
> <ant:mkdir dir="${dataReportDir}"/>
>
> <j:file name="${maven.multichanges.data}" prettyPrint="true"
> xmlns="release">
> <releases>
> <j:forEach var="reactorProject" items="${reactorProjects}">
> <x:element name="project">
> <x:attribute name="name">
> ${reactorProject.name}
> </x:attribute>
> <util:file var="changesAsFile"
> name="${reactorProject.context.getVariable('maven.
> docs.src')}/changes.xml"/>
> <j:choose>
> <j:when test="${changesAsFile.exists()}">
> <x:parse var="doc" xml="${changesAsFile}"/>
> <!-- Extract latest version. We assume it is
> contained in
the first <release> tag found -->
> <!-- TODO: Improve algorithm by writing a java bean -->
> <x:set var="versionElems"
> select="$doc//release[contains(@date,'-')]"/>
> <j:choose>
> <j:when test="${not(versionElems.isEmpty())}">
> <x:attribute name="version">
> ${versionElems.get(0).attributeValue('version')}
> </x:attribute>
> <x:attribute name="date">
> ${versionElems.get(0).attributeValue('date')}
> </x:attribute>
> </j:when>
> <j:otherwise>
> <x:attribute name="version">
> Not released
> </x:attribute>
> <x:attribute name="date">
> Not released
> </x:attribute>
> </j:otherwise>
> </j:choose>
> </j:when>
> <j:otherwise>
> <x:attribute name="version">
> No information available
> </x:attribute>
> <x:attribute name="date">
> No information available
> </x:attribute>
> </j:otherwise>
> </j:choose>
> </x:element>
> </j:forEach>
> </releases>
> </j:file>
>
> <ant:dirname property="reportDir"
file="${maven.multichanges.report}"/>
> <ant:mkdir dir="${reportDir}"/>
>
> <doc:jsl
> input="${maven.multichanges.data}"
> output="${maven.multichanges.report}.xml"
> stylesheet="${plugin.resources}/releases.jsl"
> outputMode="xml"
> prettyPrint="true"/>
>
> </goal>
>
> <goal name="maven-multichanges-plugin:register">
> <doc:registerReport
> name="Releases"
> pluginName="multichanges"
> link="${maven.multichanges.report}"
> description="Report on latest project releases."/>
> </goal>
>
> <goal name="maven-multichanges-plugin:deregister">
> <doc:deregisterReport name="Releases"/>
> </goal>
>
> </project>
>
>
>
> 1.1 maven-plugins/multichanges/.cvsignore
>
> Index: .cvsignore
> ===================================================================
> target
> velocity.log
> maven.log
> build.properties
> .classpath
> .project
>
>
>
> 1.1 maven-plugins/multichanges/src/plugin-
> resources/releases.jsl
>
> Index: releases.jsl
> ===================================================================
> <?xml version="1.0"?>
>
>
>
> <jsl:stylesheet
>
> select="$doc"
>
> xmlns:j="jelly:core"
>
> xmlns:jsl="jelly:jsl"
>
> xmlns:x="jelly:xml"
>
> xmlns="dummy" trim="false">
>
>
>
> <jsl:template match="releases">
>
> <document>
>
> <properties>
>
> <title>Latest releases</title>
>
> </properties>
>
> <body>
>
> <section name="Latest releases">
>
> <table>
>
> <tr>
>
> <th>Project name</th>
>
> <th>Latest version</th>
>
> <th>Released date</th>
>
> </tr>
>
> <x:set var="projects" sort="@date" descending="true"
>
> select="project[not(@date = 'Not released') and
> not(@date = 'No information available')]"/>
>
> <j:forEach var="project" items="${projects}">
>
> <tr>
>
> <td>
>
> <x:expr select="$project/@name"/>
>
> </td>
>
> <td>
>
> <x:expr select="$project/@version"/>
>
> </td>
>
> <td>
>
> <x:expr select="$project/@date"/>
>
> </td>
>
> </tr>
>
> </j:forEach>
>
> <x:set var="projects" sort="@date" descending="true"
>
> select="project[@date = 'Not released']"/>
>
> <j:forEach var="project" items="${projects}">
>
> <tr>
>
> <td>
>
> <x:expr select="$project/@name"/>
>
> </td>
>
> <td>
>
> <x:expr select="$project/@version"/>
>
> </td>
>
> <td>
>
> <x:expr select="$project/@date"/>
>
> </td>
>
> </tr>
>
> </j:forEach>
>
> <x:set var="projects" sort="@date" descending="true"
>
> select="project[@date = 'No information available']"/>
>
> <j:forEach var="project" items="${projects}">
>
> <tr>
>
> <td>
>
> <x:expr select="$project/@name"/>
>
> </td>
>
> <td>
>
> <x:expr select="$project/@version"/>
>
> </td>
>
> <td>
>
> <x:expr select="$project/@date"/>
>
> </td>
>
> </tr>
>
> </j:forEach>
>
> </table>
>
> </section>
>
> </body>
>
> </document>
>
> </jsl:template>
>
>
>
> </jsl:stylesheet>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org