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