You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by de...@apache.org on 2014/03/17 19:26:48 UTC

svn commit: r1578498 - in /maven/plugins/trunk/maven-changes-plugin/src: main/java/org/apache/maven/plugin/announcement/ test/java/org/apache/maven/plugin/announcement/

Author: dennisl
Date: Mon Mar 17 18:26:47 2014
New Revision: 1578498

URL: http://svn.apache.org/r1578498
Log:
[MCHANGES-280] announcement-mail broken when using the announcementFile parameter

Modified:
    maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMailMojo.java
    maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java
    maven/plugins/trunk/maven-changes-plugin/src/test/java/org/apache/maven/plugin/announcement/AnnouncementMojoTest.java

Modified: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMailMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMailMojo.java?rev=1578498&r1=1578497&r2=1578498&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMailMojo.java (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMailMojo.java Mon Mar 17 18:26:47 2014
@@ -141,15 +141,27 @@ public class AnnouncementMailMojo
     private String subject;
 
     /**
-     * The Velocity template used to format the announcement.
+     * The file that contains the generated announcement.
+     *
+     * @since 2.10
      */
-    @Parameter( property = "changes.template", defaultValue = "announcement.vm", required = true )
-    private String template;
+    @Parameter( property = "changes.announcementFile", defaultValue = "announcement.vm", required = true )
+    private String announcementFile;
 
     /**
-     * Directory which contains the template for announcement email.
+     * Directory where the generated announcement file exists.
+     *
+     * @since 2.10
      */
     @Parameter( defaultValue = "${project.build.directory}/announcement", required = true )
+    private File announcementDirectory;
+
+    /**
+     * Directory which contains the template for announcement email.
+     *
+     * @deprecated Starting with version 2.10 this parameter is no longer used. You must use {@link #announcementDirectory} instead.
+     */
+    @Parameter
     private File templateOutputDirectory;
 
     /**
@@ -185,6 +197,12 @@ public class AnnouncementMailMojo
     public void execute()
         throws MojoExecutionException
     {
+        // Fail build fast if it is using deprecated parameters
+        if( templateOutputDirectory != null )
+        {
+            throw new MojoExecutionException( "You are using the old parameter 'templateOutputDirectory'. You must use 'announcementDirectory' instead." );
+        }
+
         // Run only at the execution root
         if ( runOnlyAtExecutionRoot && !isThisTheExecutionRoot() )
         {
@@ -192,7 +210,7 @@ public class AnnouncementMailMojo
         }
         else
         {
-            File templateFile = new File( templateOutputDirectory, template );
+            File file = new File( announcementDirectory, announcementFile );
 
             ConsoleLogger logger = new ConsoleLogger( Logger.LEVEL_INFO, "base" );
 
@@ -226,7 +244,7 @@ public class AnnouncementMailMojo
                 getLog().debug( "fromDeveloperId: " + getFromDeveloperId() );
             }
 
-            if ( templateFile.isFile() )
+            if ( file.isFile() )
             {
                 getLog().info( "Connecting to Host: " + getSmtpHost() + ":" + getSmtpPort() );
 
@@ -234,7 +252,7 @@ public class AnnouncementMailMojo
             }
             else
             {
-                throw new MojoExecutionException( "Announcement template " + templateFile + " not found..." );
+                throw new MojoExecutionException( "Announcement file " + file + " not found..." );
             }
         }
     }
@@ -247,7 +265,7 @@ public class AnnouncementMailMojo
     protected void sendMessage()
         throws MojoExecutionException
     {
-        File templateFile = new File( templateOutputDirectory, template );
+        File file = new File( announcementDirectory, announcementFile );
         String email = "";
         final MailSender ms = getActualMailSender();
         final String fromName = ms.getName();
@@ -261,7 +279,7 @@ public class AnnouncementMailMojo
         {
             MailMessage mailMsg = new MailMessage();
             mailMsg.setSubject( getSubject() );
-            mailMsg.setContent( IOUtil.toString( readAnnouncement( templateFile ) ) );
+            mailMsg.setContent( IOUtil.toString( readAnnouncement( file ) ) );
             mailMsg.setContentType( this.mailContentType );
             mailMsg.setFrom( fromAddress, fromName );
 
@@ -494,24 +512,24 @@ public class AnnouncementMailMojo
         this.subject = subject;
     }
 
-    public String getTemplate()
+    public String getAnnouncementFile()
     {
-        return template;
+        return announcementFile;
     }
 
-    public void setTemplate( String template )
+    public void setAnnouncementFile( String announcementFile )
     {
-        this.template = template;
+        this.announcementFile = announcementFile;
     }
 
-    public File getTemplateOutputDirectory()
+    public File getAnnouncementDirectory()
     {
-        return templateOutputDirectory;
+        return announcementDirectory;
     }
 
-    public void setTemplateOutputDirectory( File templateOutputDirectory )
+    public void setAnnouncementDirectory( File announcementDirectory )
     {
-        this.templateOutputDirectory = templateOutputDirectory;
+        this.announcementDirectory = announcementDirectory;
     }
 
     public List getToAddresses()

Modified: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java?rev=1578498&r1=1578497&r2=1578498&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java Mon Mar 17 18:26:47 2014
@@ -159,8 +159,18 @@ public class AnnouncementMojo
 
     /**
      * Directory where the announcement file will be generated.
+     *
+     * @since 2.10
      */
     @Parameter( defaultValue = "${project.build.directory}/announcement", required = true )
+    private File announcementDirectory;
+
+    /**
+     * Directory where the announcement file will be generated.
+     *
+     * @deprecated Starting with version 2.10 this parameter is no longer used. You must use {@link #announcementDirectory} instead.
+     */
+    @Parameter
     private File outputDirectory;
 
     /**
@@ -435,6 +445,12 @@ public class AnnouncementMojo
     public void execute()
         throws MojoExecutionException
     {
+        // Fail build fast if it is using deprecated parameters
+        if( outputDirectory != null )
+        {
+            throw new MojoExecutionException( "You are using the old parameter 'outputDirectory'. You must use 'announcementDirectory' instead." );
+        }
+
         // Run only at the execution root
         if ( runOnlyAtExecutionRoot && !isThisTheExecutionRoot() )
         {
@@ -614,7 +630,7 @@ public class AnnouncementMojo
             }
 
 
-            processTemplate( context, getOutputDirectory(), template, announcementFile );
+            processTemplate( context, announcementDirectory, template, announcementFile );
         }
         catch ( ResourceNotFoundException rnfe )
         {
@@ -874,14 +890,14 @@ public class AnnouncementMojo
 		return issueTypes;
 	}
 
-    public File getOutputDirectory()
+    public File getAnnouncementDirectory()
     {
-        return outputDirectory;
+        return announcementDirectory;
     }
 
-    public void setOutputDirectory( File outputDirectory )
+    public void setAnnouncementDirectory( File announcementDirectory )
     {
-        this.outputDirectory = outputDirectory;
+        this.announcementDirectory = announcementDirectory;
     }
 
     public String getPackaging()

Modified: maven/plugins/trunk/maven-changes-plugin/src/test/java/org/apache/maven/plugin/announcement/AnnouncementMojoTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/test/java/org/apache/maven/plugin/announcement/AnnouncementMojoTest.java?rev=1578498&r1=1578497&r2=1578498&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/test/java/org/apache/maven/plugin/announcement/AnnouncementMojoTest.java (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/test/java/org/apache/maven/plugin/announcement/AnnouncementMojoTest.java Mon Mar 17 18:26:47 2014
@@ -42,18 +42,18 @@ public class AnnouncementMojoTest
 
         setVariableValueToObject( mojo, "xmlPath", new File( getBasedir(), "/src/test/unit/announce-changes.xml" ) );
 
-        File outputDirectory = new File( getBasedir(), "target/test" );
+        File announcementDirectory = new File( getBasedir(), "target/test" );
 
-        if ( outputDirectory.exists() )
+        if ( announcementDirectory.exists() )
         {
-            FileUtils.deleteDirectory( outputDirectory );
-            outputDirectory.mkdirs();
+            FileUtils.deleteDirectory( announcementDirectory );
+            announcementDirectory.mkdirs();
         }
         else
         {
-            outputDirectory.mkdirs();
+            announcementDirectory.mkdirs();
         }
-        setVariableValueToObject( mojo, "outputDirectory", outputDirectory );
+        setVariableValueToObject( mojo, "announcementDirectory", announcementDirectory );
         setVariableValueToObject( mojo, "version", "1.1" );
         setVariableValueToObject( mojo, "template", "announcement.vm" );
         setVariableValueToObject( mojo, "templateDirectory",
@@ -62,7 +62,7 @@ public class AnnouncementMojoTest
         setVariableValueToObject( mojo, "introduction", "Nice library" );
         mojo.execute();
 
-        FileReader fileReader = new FileReader( new File( outputDirectory, "announcement.vm" ) );
+        FileReader fileReader = new FileReader( new File( announcementDirectory, "announcement.vm" ) );
         String result = IOUtil.toString( fileReader );
 
         assertContains( "Nice library", result );