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 2007/07/08 18:01:55 UTC
svn commit: r554379 -
/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/JiraAnnouncementParser.java
Author: dennisl
Date: Sun Jul 8 09:01:55 2007
New Revision: 554379
URL: http://svn.apache.org/viewvc?view=rev&rev=554379
Log:
o Make getReleases(List) actually work.
Modified:
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/JiraAnnouncementParser.java
Modified: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/JiraAnnouncementParser.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/JiraAnnouncementParser.java?view=diff&rev=554379&r1=554378&r2=554379
==============================================================================
--- maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/JiraAnnouncementParser.java (original)
+++ maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/JiraAnnouncementParser.java Sun Jul 8 09:01:55 2007
@@ -19,19 +19,21 @@
* under the License.
*/
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
import org.apache.maven.plugin.changes.Action;
import org.apache.maven.plugin.changes.Release;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
/**
* XML Parser for <code>JiraAnnouncement</code>s. This works on an XML file
* downloaded from JIRA and creates a List of issues that is exposed to the
@@ -164,26 +166,40 @@
public List getReleases( List issues )
{
- List releases = new ArrayList();
-
- Release release = new Release();
-
+ // A Map of releases keyed by fixVersion
+ Map releasesMap = new HashMap();
+ // Loop through all issues looking for fixVersions
for ( int i = 0; i < issues.size(); i++ )
{
JiraAnnouncement issue = (JiraAnnouncement) issues.get( i );
-
- Action action = createAction( issue );
-
- release.addAction( action );
-
- release.setDescription( issue.getSummary() );
-
- release.setVersion( issue.getFixVersion() );
-
- releases.add( release );
+ // Do NOT create a release for issues that lack a fixVersion
+ if ( issue.getFixVersion() != null )
+ {
+ // Try to get a matching Release from the map
+ Release release = (Release) releasesMap.get( issue.getFixVersion() );
+ if ( release == null )
+ {
+ // Add a new Release to the Map if it wasn't there
+ release = new Release();
+ release.setVersion( issue.getFixVersion() );
+ releasesMap.put( issue.getFixVersion(), release );
+ }
+
+ // Add this issue as an Action to this release
+ Action action = createAction( issue );
+ release.addAction( action );
+ }
+ }
+
+ // Extract the releases from the Map to a List
+ List releasesList = new ArrayList();
+ for ( Iterator iterator = releasesMap.entrySet().iterator(); iterator.hasNext(); )
+ {
+ Release o = (Release) ( (Map.Entry) iterator.next() ).getValue();
+ releasesList.add( o );
}
- return releases;
+ return releasesList;
}
/**