svn commit: r884559 - /maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java
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
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
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
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