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 );