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 2011/05/15 14:38:00 UTC

svn commit: r1103342 - /maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java

Author: dennisl
Date: Sun May 15 12:38:00 2011
New Revision: 1103342

URL: http://svn.apache.org/viewvc?rev=1103342&view=rev
Log:
[MCHANGES-244] announcement-generate: Allow specification of a version-prefix

Modified:
    maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.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=1103342&r1=1103341&r2=1103342&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 Sun May 15 12:38:00 2011
@@ -34,6 +34,7 @@ import org.apache.maven.plugin.changes.I
 import org.apache.maven.plugin.changes.ProjectUtils;
 import org.apache.maven.plugin.changes.ReleaseUtils;
 import org.apache.maven.plugin.issues.Issue;
+import org.apache.maven.plugin.issues.IssueUtils;
 import org.apache.maven.plugin.trac.TracDownloader;
 import org.apache.maven.plugins.changes.model.Release;
 import org.apache.maven.project.MavenProject;
@@ -350,6 +351,21 @@ public class AnnouncementMojo
      */
     private String webPassword;
 
+    /**
+     * The prefix used when naming versions in JIRA.
+     * <p>
+     * If you have a project in JIRA with several components that have different
+     * release cycles, it is an often used pattern to prefix the version with
+     * the name of the component, e.g. maven-filtering-1.0 etc. To fetch issues
+     * from JIRA for a release of the "maven-filtering" component you would need
+     * to set this parameter to "maven-filtering-".
+     * </p>
+     *
+     * @parameter default-value=""
+     * @since 2.5
+     */
+    private String versionPrefix;
+
     //=======================================//
     //  Trac Parameters                      //
     //=======================================//
@@ -505,7 +521,9 @@ public class AnnouncementMojo
     public void doGenerate( List<Release> releases )
         throws MojoExecutionException
     {
-        doGenerate( releases, releaseUtils.getLatestRelease( releases, getVersion() )  );
+        String version = ( versionPrefix == null ? "" : versionPrefix ) + getVersion();
+
+        doGenerate( releases, releaseUtils.getLatestRelease( releases, version )  );
     }
 
     protected void doGenerate( List<Release> releases, Release release )
@@ -675,7 +693,17 @@ public class AnnouncementMojo
         {
             jiraDownloader.doExecute();
 
-            return getReleases( jiraDownloader.getIssueList() );
+            List<Issue> issueList = jiraDownloader.getIssueList();
+
+            if ( StringUtils.isNotEmpty( versionPrefix ) )
+            {
+                int originalNumberOfIssues = issueList.size();
+                issueList = IssueUtils.filterIssuesWithVersionPrefix( issueList, versionPrefix );
+                getLog().debug( "Filtered out " + issueList.size() + " issues of " + originalNumberOfIssues
+                    + " that matched the versionPrefix '" + versionPrefix + "'." );
+            }
+
+            return getReleases( issueList );
         }
         catch ( Exception e )
         {