svn commit: r884559 - /maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java

2009-11-26 Thread dennisl
Author: dennisl
Date: Thu Nov 26 13:58:18 2009
New Revision: 884559

URL: http://svn.apache.org/viewvc?rev=884559view=rev
Log:
[MCHANGES-186] Issue links for JIRA are broken when using the %URL% token

o Restore the old behavior

Modified:

maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java

Modified: 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java?rev=884559r1=884558r2=884559view=diff
==
--- 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java
 (original)
+++ 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java
 Thu Nov 26 13:58:18 2009
@@ -343,12 +343,7 @@
 parseLink = issueLink.replaceFirst( ISSUE_TOKEN, issue );
 if ( parseLink.indexOf( URL_TOKEN ) = 0 )
 {
-String url = getUrl();
-// remove the trailing slash if it exists.
-if ( url.endsWith( / ) )
-{
-url = url.substring( 0, url.length() - 1 );
-}
+String url = this.url.substring( 0, this.url.lastIndexOf( / ) );
 parseLink = parseLink.replaceFirst( URL_TOKEN, url );
 }
 




svn commit: r884563 - in /maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement: AbstractAnnouncementMojo.java AnnouncementMailMojo.java AnnouncementMojo.java

2009-11-26 Thread dennisl
Author: dennisl
Date: Thu Nov 26 14:25:48 2009
New Revision: 884563

URL: http://svn.apache.org/viewvc?rev=884563view=rev
Log:
[MCHANGES-145] Make it possible to run the announcement goals only once for a 
multi-module project

Added:

maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AbstractAnnouncementMojo.java
   (with props)
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

Added: 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AbstractAnnouncementMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AbstractAnnouncementMojo.java?rev=884563view=auto
==
--- 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AbstractAnnouncementMojo.java
 (added)
+++ 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AbstractAnnouncementMojo.java
 Thu Nov 26 14:25:48 2009
@@ -0,0 +1,63 @@
+package org.apache.maven.plugin.announcement;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.execution.MavenSession;
+
+/**
+ * Abstract superclass for announcement mojos.
+ *
+ * @version $Id$
+ * @since 2.3
+ */
+public abstract class AbstractAnnouncementMojo extends AbstractMojo {
+/**
+ * The current project base directory.
+ *
+ * @parameter expression=${basedir}
+ * @required
+ * @since 2.1
+ */
+protected String basedir;
+
+/**
+ * The Maven Session.
+ *
+ * @parameter expression=${session}
+ * @readonly
+ * @required
+ * @since 2.3
+ */
+protected MavenSession mavenSession;
+
+/**
+ * This will cause the execution to be run only at the top of a given 
module
+ * tree. That is, run in the project contained in the same folder where the
+ * mvn execution was launched.
+ *
+ * @parameter expression=${announcement.runOnlyAtExecutionRoot} 
default-value=false
+ * @since 2.3
+ */
+protected boolean runOnlyAtExecutionRoot;
+
+/**
+ * Returns codetrue/code if the current project is located at the
+ * Execution Root Directory (where mvn was launched).
+ *
+ * @return codetrue/code if the current project is at the Execution 
Root
+ */
+protected boolean isThisTheExecutionRoot()
+{
+getLog().debug( Root Folder: + 
mavenSession.getExecutionRootDirectory() );
+getLog().debug( Current Folder: + basedir );
+boolean result = 
mavenSession.getExecutionRootDirectory().equalsIgnoreCase( basedir.toString() );
+if ( result )
+{
+getLog().debug( This is the execution root. );
+}
+else
+{
+getLog().debug( This is NOT the execution root. );
+}
+return result;
+}
+}

Propchange: 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AbstractAnnouncementMojo.java
--
svn:eol-style = native

Propchange: 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AbstractAnnouncementMojo.java
--
svn:keywords = Date Revision Author Id

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=884563r1=884562r2=884563view=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 26 14:25:48 2009
@@ -27,7 +27,6 @@
 import java.util.List;
 
 import org.apache.maven.model.Developer;
-import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import 
org.apache.maven.plugin.announcement.mailsender.ProjectJavamailMailSender;
 import org.apache.maven.project.MavenProject;
@@ -46,7 +45,7 @@
  * @execute goal=announcement-generate
  */
 public class AnnouncementMailMojo
-extends AbstractMojo
+extends AbstractAnnouncementMojo
 {
 //=
 // announcement-mail goal fields
@@ -154,9 +153,9 @@
  * @required
  */
 private String 

svn commit: r884570 - in /maven/plugins/trunk/maven-changes-plugin/src: main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java test/java/org/apache/maven/plugin/announcement/Announcement

2009-11-26 Thread dennisl
Author: dennisl
Date: Thu Nov 26 14:38:57 2009
New Revision: 884570

URL: http://svn.apache.org/viewvc?rev=884570view=rev
Log:
[MCHANGES-187] If jiraMerge=true then releases that are only in JIRA will not 
be included in the announcement

o Also make sure that the List parameters are not changed inside the 
mergeReleases() method. Instead a new List is created for the merged releases.

Modified:

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/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=884570r1=884569r2=884570view=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 26 14:38:57 2009
@@ -23,6 +23,7 @@
 import java.io.FileOutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
@@ -473,7 +474,13 @@
 return release;
 }
 
-
+/**
+ * Get a release with the specified version from the list of releases.
+ *
+ * @param releases A list of releases
+ * @param version The version we want
+ * @return A Release, or null if no release with the specified version can 
be found
+ */
 protected Release getRelease( List releases, String version )
 {
 Release release = null;
@@ -637,34 +644,60 @@
 }
 }
 
-protected List mergeReleases( List changesReleases, List jiraReleases )
+/**
+ * Merge releases from one issue tracker with releases from another issue
+ * tracker. If a release is found in both issue trackers, i.e. they have
+ * the same version, their issues are merged into one release.
+ *
+ * @param firstReleases Releases from the first issue tracker
+ * @param secondReleases Releases from the second issue tracker
+ * @return A list containing the merged releases
+ */
+protected List mergeReleases( final List firstReleases, final List 
secondReleases )
 {
-if ( changesReleases == null  jiraReleases == null )
+if ( firstReleases == null  secondReleases == null )
 {
 return Collections.EMPTY_LIST;
 }
-if ( changesReleases == null )
+if ( firstReleases == null )
 {
-return jiraReleases;
+return secondReleases;
 }
-if ( jiraReleases == null )
+if ( secondReleases == null )
 {
-return changesReleases;
+return firstReleases;
 }
 
-for ( Iterator iterator = changesReleases.iterator(); 
iterator.hasNext(); )
+List mergedReleases = new ArrayList();
+
+// Loop through the releases from the first issue tracker, merging in
+// actions from releases with the same version from the second issue
+// tracker
+for ( Iterator iterator = firstReleases.iterator(); 
iterator.hasNext(); )
 {
-Release release = (Release) iterator.next();
-Release jiraRelease = getRelease( jiraReleases, 
release.getVersion() );
-if ( jiraRelease != null )
+Release firstRelease = (Release) iterator.next();
+Release secondRelease = getRelease( secondReleases, 
firstRelease.getVersion() );
+if ( secondRelease != null )
 {
-if ( jiraRelease.getActions() != null )
+if ( secondRelease.getActions() != null )
 {
-release.getActions().addAll( jiraRelease.getActions() );
+firstRelease.getActions().addAll( 
secondRelease.getActions() );
 }
 }
+mergedReleases.add(firstRelease);
+}
+
+// Handle releases that are only in the second issue tracker
+for ( Iterator iterator = secondReleases.iterator(); 
iterator.hasNext(); )
+{
+Release secondRelease = (Release) iterator.next();
+Release mergedRelease = getRelease( mergedReleases, 
secondRelease.getVersion() );
+if ( mergedRelease == null )
+{
+mergedReleases.add(secondRelease);
+}
 }
-return changesReleases;
+return mergedReleases;
 }
 
 /*

Modified: 

svn commit: r884601 - /maven/plugins/trunk/maven-changes-plugin/pom.xml

2009-11-26 Thread dennisl
Author: dennisl
Date: Thu Nov 26 15:44:54 2009
New Revision: 884601

URL: http://svn.apache.org/viewvc?rev=884601view=rev
Log:
[MCHANGES-135] JIRA links on changes report are broken

o Fix the broken link on our sample Changes Report

Modified:
maven/plugins/trunk/maven-changes-plugin/pom.xml

Modified: maven/plugins/trunk/maven-changes-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/pom.xml?rev=884601r1=884600r2=884601view=diff
==
--- maven/plugins/trunk/maven-changes-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-changes-plugin/pom.xml Thu Nov 26 15:44:54 2009
@@ -451,6 +451,9 @@
   !-- For Announcement --
   generateJiraAnnouncementtrue/generateJiraAnnouncement
   !-- For Changes-report --
+  issueLinkTemplatePerSystem
+default%URL%/%ISSUE%/default
+  /issueLinkTemplatePerSystem
   xmlPath${basedir}/src/site/changes/sample-changes.xml/xmlPath
   !-- For JIRA-report --
   columnNamesType,Key,Summary,Assignee,Status,Resolution,Fix 
Version/columnNames