You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2009/07/27 01:23:00 UTC

svn commit: r798002 - in /maven/plugins/trunk/maven-changes-plugin: ./ src/it/announcement-generate-custom-template/ src/it/report-changes-generation/ src/it/report-changes-interpolation/ src/it/report-changes-interpolation/src/changes/ src/it/report-c...

Author: olamy
Date: Sun Jul 26 23:22:56 2009
New Revision: 798002

URL: http://svn.apache.org/viewvc?rev=798002&view=rev
Log:
[MCHANGES-161] Add properties interpolation for changes.xml
null

Added:
    maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/
      - copied from r797948, maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-generation/
Modified:
    maven/plugins/trunk/maven-changes-plugin/pom.xml
    maven/plugins/trunk/maven-changes-plugin/src/it/announcement-generate-custom-template/pom.xml
    maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-generation/pom.xml
    maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/pom.xml
    maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/src/changes/changes.xml
    maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/verify.bsh
    maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-nofile/pom.xml
    maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-system-noissuemanagement/pom.xml
    maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-system/pom.xml
    maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java

Modified: maven/plugins/trunk/maven-changes-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/pom.xml?rev=798002&r1=798001&r2=798002&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-changes-plugin/pom.xml Sun Jul 26 23:22:56 2009
@@ -163,7 +163,7 @@
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
-      <version>1.4.5</version>
+      <version>1.5.8</version>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
@@ -239,6 +239,12 @@
       <artifactId>velocity</artifactId>
       <version>1.5</version>
     </dependency>
+    
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-filtering</artifactId>
+      <version>1.0-beta-2</version>
+    </dependency>
 
     <!-- schema validation dependencies : jaxp 1.3 is not included with jdk 1.4 (start with 1.5) -->
     <dependency>

Modified: maven/plugins/trunk/maven-changes-plugin/src/it/announcement-generate-custom-template/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/it/announcement-generate-custom-template/pom.xml?rev=798002&r1=798001&r2=798002&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/it/announcement-generate-custom-template/pom.xml (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/it/announcement-generate-custom-template/pom.xml Sun Jul 26 23:22:56 2009
@@ -78,6 +78,7 @@
     </plugins>
   </build>
   <reporting>
+    <excludeDefaults>true</excludeDefaults>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>

Modified: maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-generation/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-generation/pom.xml?rev=798002&r1=798001&r2=798002&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-generation/pom.xml (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-generation/pom.xml Sun Jul 26 23:22:56 2009
@@ -74,6 +74,7 @@
     </plugins>
   </build>  
   <reporting>
+    <excludeDefaults>true</excludeDefaults>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>

Modified: maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/pom.xml?rev=798002&r1=797948&r2=798002&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/pom.xml (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/pom.xml Sun Jul 26 23:22:56 2009
@@ -74,12 +74,14 @@
     </plugins>
   </build>  
   <reporting>
+    <excludeDefaults>true</excludeDefaults>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-changes-plugin</artifactId>
         <version>@pom.version@</version>
         <configuration>
+          <filteringChanges>true</filteringChanges>
           <issueLinkTemplate>http://myjira/browse/%ISSUE%</issueLinkTemplate>
         </configuration>
         <reportSets>

Modified: maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/src/changes/changes.xml?rev=798002&r1=797948&r2=798002&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/src/changes/changes.xml (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/src/changes/changes.xml Sun Jul 26 23:22:56 2009
@@ -25,7 +25,7 @@
     <author email="zloug@toto.com">Mr Zloug</author>
   </properties>
   <body>
-    <release version="1.1" date="2005-03-01" description="Subsequent release">
+    <release version="${project.version}" date="${publishDate}" description="Subsequent release">
       <action dev="me" type="add">
         Added additional documentation on how to configure the plugin.
       </action>

Modified: maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/verify.bsh?rev=798002&r1=797948&r2=798002&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/verify.bsh (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-interpolation/verify.bsh Sun Jul 26 23:22:56 2009
@@ -71,6 +71,14 @@
       System.err.println( "changes-report.html doesn't handle empty fixes attribute properly" );
       return false;
     }
+    
+    indexOf = reportContent.indexOf( "<a href=\"#a99.0\">" );
+    if ( indexOf < 0)
+    {
+      System.err.println( "changes-report.html doesn't contains version from pom" );
+      return false;
+    }    
+    
 
 }
 catch( Throwable e )

Modified: maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-nofile/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-nofile/pom.xml?rev=798002&r1=798001&r2=798002&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-nofile/pom.xml (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-nofile/pom.xml Sun Jul 26 23:22:56 2009
@@ -74,6 +74,7 @@
     </plugins>
   </build>  
   <reporting>
+    <excludeDefaults>true</excludeDefaults>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>

Modified: maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-system-noissuemanagement/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-system-noissuemanagement/pom.xml?rev=798002&r1=798001&r2=798002&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-system-noissuemanagement/pom.xml (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-system-noissuemanagement/pom.xml Sun Jul 26 23:22:56 2009
@@ -70,6 +70,7 @@
     </plugins>
   </build>  
   <reporting>
+    <excludeDefaults>true</excludeDefaults>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>

Modified: maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-system/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-system/pom.xml?rev=798002&r1=798001&r2=798002&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-system/pom.xml (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/it/report-changes-system/pom.xml Sun Jul 26 23:22:56 2009
@@ -74,6 +74,7 @@
     </plugins>
   </build>  
   <reporting>
+    <excludeDefaults>true</excludeDefaults>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>

Modified: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java?rev=798002&r1=798001&r2=798002&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java Sun Jul 26 23:22:56 2009
@@ -22,12 +22,19 @@
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.Locale;
 import java.util.Map;
 import java.util.ResourceBundle;
 
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.reporting.MavenReportException;
+import org.apache.maven.shared.filtering.MavenFileFilter;
+import org.apache.maven.shared.filtering.MavenFilteringException;
 import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.ReaderFactory;
 
 /**
  * Goal which creates a nicely formatted Changes Report in html format from a changes.xml file.
@@ -94,6 +101,73 @@
      */        
     private boolean addActionDate;    
     
+    /**
+     * 
+     * @component
+     * 
+     * @since 2.2
+     */
+    private MavenFileFilter mavenFileFilter;
+    
+    /**
+     * @parameter expression="${session}"
+     * @readonly
+     * @required
+     * 
+     * @since 2.2
+     * 
+     */
+    protected MavenSession session;
+    
+    /**
+     * applying filtering filtering "a la" resources plugin
+     * 
+     * @parameter default-value="false"
+     * 
+     * @since 2.2
+     */
+    private boolean filteringChanges;
+    
+    /**
+     * The directory for interpolated changes.xml.
+     *
+     * @parameter expression="${project.build.directory}/changes"
+     * @required
+     * @readonly
+     * 
+     * @since 2.2
+     * 
+     */
+    private File outputDirectory;    
+    
+    /**
+     *
+     * Format to use for publishDate 
+     * The value will be available with the following expression ${publishDate}
+     * 
+     * @see SimpleDateFormat
+     * 
+     * @parameter default-value="yyyy-MM-dd"
+     * 
+     * @since 2.2
+     * 
+     */
+    private String publishDateFormat;
+    
+    /**
+    *
+    * Locale to use for publishDate when formatting 
+    * 
+    * @see Locale
+    * 
+    * @parameter default-value="en"
+    * 
+    * @since 2.2
+    * 
+    */    
+    private String publishDateLocale;
+    
+    
     public boolean canGenerateReport()
     {
         return xmlPath.isFile();
@@ -134,7 +208,34 @@
             getLog().warn( "changes.xml file " + xmlPath.getAbsolutePath() + " does not exist." );
             return;
         }
-        
+        if ( filteringChanges )
+        {
+            if ( !outputDirectory.exists() )
+            {
+                outputDirectory.mkdirs();
+            }
+            try
+            {
+                // so we get encoding from the file itself
+                String encoding = ReaderFactory.newXmlReader( xmlPath ).getEncoding();
+                File resultFile = new File( outputDirectory, "changes.xml" );
+                Date now = new Date();
+                SimpleDateFormat simpleDateFormat = new SimpleDateFormat( publishDateFormat, new Locale( publishDateLocale ) );
+                project.getProperties().put( "publishDate", simpleDateFormat.format( now ) );
+                mavenFileFilter.copyFile( xmlPath, resultFile, true, project, new ArrayList(), false, encoding, session );
+                xmlPath = resultFile;
+            }
+            catch ( IOException e )
+            {
+                throw new MavenReportException( "Exception during filtering changes file : " + e.getMessage(), e );
+            }
+            catch ( MavenFilteringException e )
+            {
+                throw new MavenReportException( "Exception during filtering changes file : " + e.getMessage(), e );
+            }
+
+        }
+
         ChangesReportGenerator report = new ChangesReportGenerator( xmlPath, getLog() );
         
         report.setIssueLinksPerSystem( issueLinkTemplatePerSystem ); 



Re: svn commit: r798002 - in /maven/plugins/trunk/maven-changes-plugin: ./ src/it/announcement-generate-custom-template/ src/it/report-changes-generation/ src/it/report-changes-interpolation/ src/it/report-changes-interpolation/src/changes/ src/it/report-c...

Posted by Benjamin Bentmann <be...@udo.edu>.
Hi Olivier,

> Author: olamy
> Date: Sun Jul 26 23:22:56 2009
> New Revision: 798002
> 
> URL: http://svn.apache.org/viewvc?rev=798002&view=rev
> Log:
> [MCHANGES-161] Add properties interpolation for changes.xml
> null
> 
> Modified: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java
> URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java?rev=798002&r1=798001&r2=798002&view=diff
> ==============================================================================
> --- maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java (original)
> +++ maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java Sun Jul 26 23:22:56 2009
> +    /**
> +     *
> +     * Format to use for publishDate 
> +     * The value will be available with the following expression ${publishDate}
> +     * 
> +     * @see SimpleDateFormat
> +     * 
> +     * @parameter default-value="yyyy-MM-dd"
> +     * 
> +     * @since 2.2
> +     * 
> +     */
> +    private String publishDateFormat;

Keep in mind that the generated API/mojo docs (HTML) will loose any 
pretty printing likes the line breaks. So punctuation would improve 
readability.

> +                // so we get encoding from the file itself
> +                String encoding = ReaderFactory.newXmlReader( xmlPath ).getEncoding();

The created reader should be also be closed to ensure the file handle 
doesn't leak.

> +                project.getProperties().put( "publishDate", simpleDateFormat.format( now ) );
> +                mavenFileFilter.copyFile( xmlPath, resultFile, true, project, new ArrayList(), false, encoding, session );

This looks dangerous, a plugin that injects a project property that the 
user did not request to be set. Just trying to imagine the effects on 
the overall build if n plugins come along and inject project properties 
just for the sake of filtering some resource files. For instance, the 
plugin parameter expression evaluator will consult the project 
properties for plugin configuration and now out of a sudden sees values 
that the user didn't put in the POM.

So maybe there should be a new parameter in the filtering component that 
allows for other/private value sources such that plugins don't need to 
spoil the project properties?


Benjamin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org