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 2008/11/07 00:12:50 UTC
svn commit: r712007 - in
/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin:
announcement/AnnouncementMailMojo.java announcement/AnnouncementMojo.java
jira/AbstractJiraDownloader.java
Author: olamy
Date: Thu Nov 6 15:12:41 2008
New Revision: 712007
URL: http://svn.apache.org/viewvc?rev=712007&view=rev
Log:
[MCHANGES-130] Announce mail : Merging content from the changes file and from jira
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/main/java/org/apache/maven/plugin/jira/AbstractJiraDownloader.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=712007&r1=712006&r2=712007&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 Thu Nov 6 15:12:41 2008
@@ -168,7 +168,7 @@
throws MojoExecutionException
{
File templateFile = new File( templateOutputDirectory, template );
-
+
ConsoleLogger logger = new ConsoleLogger( 0, "base" );
mailer.enableLogging( logger );
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=712007&r1=712006&r2=712007&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 Thu Nov 6 15:12:41 2008
@@ -23,6 +23,7 @@
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -104,7 +105,7 @@
/**
* The name of the artifact to be used in the announcement.
*
- * @parameter expression="${project.build.finalName}"
+ * @parameter expression="${changes.finalName}" default-value="${project.build.finalName}"
* @required
*/
private String finalName;
@@ -255,7 +256,7 @@
/**
* Defines the JIRA username for authentication into a private JIRA installation.
*
- * @parameter default-value=""
+ * @parameter default-value="" expression="${changes.jiraUser}"
* @since 2.1
*/
private String jiraUser;
@@ -263,7 +264,7 @@
/**
* Defines the JIRA password for authentication into a private JIRA installation.
*
- * @parameter default-value=""
+ * @parameter default-value="" expression="${changes.jiraPassword}"
* @since 2.1
*/
private String jiraPassword;
@@ -275,6 +276,15 @@
* @since 2.1
*/
private String templateEncoding;
+
+ /**
+ * The template encoding.
+ *
+ * @parameter expression="${changes.jiraMerge}" default-value="false"
+ * @since 2.1
+ */
+
+ private boolean jiraMerge;
//=======================================//
// announcement-generate execution //
@@ -288,26 +298,36 @@
public void execute()
throws MojoExecutionException
{
-
- if ( !generateJiraAnnouncement )
+ if ( this.jiraMerge )
+ {
+ ChangesXML changesXML = new ChangesXML( getXmlPath(), getLog() );
+ List changesReleases = changesXML.getReleaseList();
+ List jiraReleases = getJiraReleases();
+ List mergedReleases = mergeReleases( changesReleases, jiraReleases );
+ doGenerate( mergedReleases );
+ }
+ else
{
- if ( getXmlPath().exists() )
+ if ( !generateJiraAnnouncement )
{
- setXml( new ChangesXML( getXmlPath(), getLog() ) );
+ if ( getXmlPath().exists() )
+ {
+ setXml( new ChangesXML( getXmlPath(), getLog() ) );
- getLog().info( "Creating announcement file from " + getXmlPath() + "..." );
+ getLog().info( "Creating announcement file from " + getXmlPath() + "..." );
- doGenerate( getXml().getReleaseList() );
+ doGenerate( getXml().getReleaseList() );
+ }
+ else
+ {
+ getLog().warn( "changes.xml file " + getXmlPath().getAbsolutePath() + " does not exist." );
+ }
}
else
{
- getLog().warn( "changes.xml file " + getXmlPath().getAbsolutePath() + " does not exist." );
+ doJiraGenerate();
}
}
- else
- {
- doJiraGenerate();
- }
}
/**
@@ -319,6 +339,12 @@
public void doGenerate( List releases )
throws MojoExecutionException
{
+ doGenerate( releases, getLatestRelease( releases ) );
+ }
+
+ protected void doGenerate( List releases, Release release )
+ throws MojoExecutionException
+ {
try
{
Context context = new VelocityContext();
@@ -340,7 +366,7 @@
context.put( "url", getUrl() );
- context.put( "release", getLatestRelease( releases ) );
+ context.put( "release", release );
context.put( "introduction", getIntroduction() );
@@ -406,14 +432,47 @@
}
}
+ release = getRelease( releases, pomVersion );
+ isFound = (release != null);
+
if ( !isFound )
{
throw new MojoExecutionException( "Couldn't find the release '" + pomVersion
+ "' among the supplied releases." );
}
+ else
+ {
+
+ }
return release;
}
+
+ protected Release getRelease(List releases, String version)
+ {
+ Release release = null;
+ for ( int i = 0; i < releases.size(); i++ )
+ {
+ release = (Release) releases.get( i );
+ if ( getLog().isDebugEnabled() )
+ {
+ getLog().debug( "The release: " + release.getVersion()
+ + " has " + release.getActions().size() + " actions." );
+ }
+
+ if ( release.getVersion() != null && release.getVersion().equals( version ) )
+ {
+ if ( getLog().isDebugEnabled() )
+ {
+ getLog().debug( "Found the correct release: " + release.getVersion() );
+ logRelease( release );
+ }
+ return release;
+ }
+ }
+ return null;
+ }
+
private void logRelease( Release release )
{
Action action;
@@ -496,6 +555,16 @@
public void doJiraGenerate()
throws MojoExecutionException
{
+ List releases = getJiraReleases();
+
+ getLog().info( "Creating announcement file from JIRA releases..." );
+
+ doGenerate( releases );
+ }
+
+ protected List getJiraReleases()
+ throws MojoExecutionException
+ {
JiraDownloader jiraDownloader = new JiraDownloader();
File jiraXMLFile = jiraXML;
@@ -528,12 +597,13 @@
List issues = jiraParser.getIssueList();
- List releases = JiraXML.getReleases( issues );
-
- getLog().info( "Creating announcement file from JIRA releases..." );
-
- doGenerate( releases );
+ return JiraXML.getReleases( issues );
}
+ else
+ {
+ getLog().warn( "jira file " + jiraXMLFile.getPath() + " doesn't exists " );
+ }
+ return Collections.EMPTY_LIST;
}
catch ( Exception e )
{
@@ -541,6 +611,36 @@
}
}
+ protected List mergeReleases( List changesReleases, List jiraReleases )
+ {
+ if ( changesReleases == null && jiraReleases == null )
+ {
+ return Collections.EMPTY_LIST;
+ }
+ if ( changesReleases == null )
+ {
+ return jiraReleases;
+ }
+ if ( jiraReleases == null )
+ {
+ return changesReleases;
+ }
+
+ for ( Iterator iterator = changesReleases.iterator(); iterator.hasNext(); )
+ {
+ Release release = (Release) iterator.next();
+ Release jiraRelease = getRelease( jiraReleases, release.getVersion() );
+ if ( jiraRelease != null )
+ {
+ if ( jiraRelease.getActions() != null )
+ {
+ release.getActions().addAll( jiraRelease.getActions() );
+ }
+ }
+ }
+ return changesReleases;
+ }
+
/*
* accessors
*/
Modified: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/AbstractJiraDownloader.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/AbstractJiraDownloader.java?rev=712007&r1=712006&r2=712007&view=diff
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/AbstractJiraDownloader.java (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/AbstractJiraDownloader.java Thu Nov 6 15:12:41 2008
@@ -382,6 +382,11 @@
fullURL += ( "&tempMax=" + nbEntriesMax + "&reset=true&decorator=none" );
+ if (log.isDebugEnabled())
+ {
+ log.debug( "download jira issues from url " + fullURL );
+ }
+
// execute the GET
download( client, fullURL );
}