Author: dennisl
Date: Fri Dec 17 23:00:59 2010
New Revision: 1050525

URL: http://svn.apache.org/viewvc?rev=1050525&view=rev
Log:
[MCHANGES-141] Jira Report fails to pick up issues that contain multiple 
fix-for elements.
Submitted by: Mark Derricutt
Reviewed by: Dennis Lundberg

o I needed to add some code in JiraReportGenerator to take care of the 
presentation of more than one fixVersion

Modified:
    
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraIssue.java
    
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraReportGenerator.java
    
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraXML.java

Modified: 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraIssue.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraIssue.java?rev=1050525&r1=1050524&r2=1050525&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraIssue.java
 (original)
+++ 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraIssue.java
 Fri Dec 17 23:00:59 2010
@@ -31,7 +31,7 @@ public class JiraIssue
 {
     private String component;
 
-    private String fixVersion;
+    private List fixVersions;
 
     private String key;
 
@@ -131,14 +131,18 @@ public class JiraIssue
         this.component = component;
     }
 
-    public String getFixVersion()
+    public List getFixVersions()
     {
-        return fixVersion;
+        return fixVersions;
     }
 
-    public void setFixVersion( String fixVersion )
+    public void addFixVersion( String fixVersion )
     {
-        this.fixVersion = fixVersion;
+        if ( fixVersions == null )
+        {
+            fixVersions = new ArrayList();
+        }
+        fixVersions.add( fixVersion );
     }
 
     public String getPriority()

Modified: 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraReportGenerator.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraReportGenerator.java?rev=1050525&r1=1050524&r2=1050525&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraReportGenerator.java
 (original)
+++ 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraReportGenerator.java
 Fri Dec 17 23:00:59 2010
@@ -26,6 +26,7 @@ import org.apache.maven.reporting.MavenR
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.ResourceBundle;
 
@@ -279,7 +280,7 @@ public class JiraReportGenerator
                         break;
 
                     case COLUMN_FIX_VERSION:
-                        sinkCell( sink, issue.getFixVersion() );
+                        sinkCell( sink, printVersions( issue.getFixVersions() 
) );
                         break;
 
                     case COLUMN_COMPONENT:
@@ -398,7 +399,7 @@ public class JiraReportGenerator
         {
             issue = (JiraIssue) allIssues.get( i );
 
-            if ( issue.getFixVersion() != null && 
issue.getFixVersion().equals( releaseVersion ) )
+            if ( issue.getFixVersions() != null && 
issue.getFixVersions().contains( releaseVersion ) )
             {
                 isFound = true;
                 currentReleaseIssues.add( issue );
@@ -412,4 +413,29 @@ public class JiraReportGenerator
         }
         return currentReleaseIssues;
     }
+
+    /**
+     * Print a list of versions separated by commas.
+     *
+     * @param versions The versions to print
+     * @return A nicely formatted string of version.
+     */
+    private static String printVersions( List versions )
+    {
+        StringBuffer sb = new StringBuffer();
+        if( versions != null )
+        {
+            Iterator iterator = versions.iterator();
+            while ( iterator.hasNext() )
+            {
+                String version = (String) iterator.next();
+                sb.append( version );
+                if ( iterator.hasNext() )
+                {
+                    sb.append( ", " );
+                }
+            }
+        }
+        return sb.toString();
+    }
 }

Modified: 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraXML.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraXML.java?rev=1050525&r1=1050524&r2=1050525&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraXML.java
 (original)
+++ 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraXML.java
 Fri Dec 17 23:00:59 2010
@@ -133,7 +133,7 @@ public class JiraXML
         }
         else if ( qName.equals( "fixVersion" ) )
         {
-            issue.setFixVersion( currentElement.toString().trim() );
+            issue.addFixVersion( currentElement.toString().trim() );
         }
         else if ( qName.equals( "component" ) )
         {
@@ -172,21 +172,26 @@ public class JiraXML
         {
             JiraIssue issue = (JiraIssue) issues.get( i );
             // Do NOT create a release for issues that lack a fixVersion
-            if ( issue.getFixVersion() != null )
+            if ( issue.getFixVersions() != null )
             {
-                // Try to get a matching Release from the map
-                Release release = (Release) releasesMap.get( 
issue.getFixVersion() );
-                if ( release == null )
+                for ( Iterator iterator = issue.getFixVersions().iterator(); 
iterator.hasNext(); )
                 {
-                    // Add a new Release to the Map if it wasn't there
-                    release = new Release();
-                    release.setVersion( issue.getFixVersion() );
-                    releasesMap.put( issue.getFixVersion(), release );
-                }
+                    String fixVersion = (String) iterator.next();
 
-                // Add this issue as an Action to this release
-                Action action = createAction( issue );
-                release.addAction( action );
+                    // Try to get a matching Release from the map
+                    Release release = (Release) releasesMap.get( fixVersion );
+                    if ( release == null )
+                    {
+                        // Add a new Release to the Map if it wasn't there
+                        release = new Release();
+                        release.setVersion( fixVersion );
+                        releasesMap.put( fixVersion, release );
+                    }
+
+                    // Add this issue as an Action to this release
+                    Action action = createAction( issue );
+                    release.addAction( action );
+                }
             }
         }
 


Reply via email to