1 package org.apache.maven.plugin.changes;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.plugin.issues.Issue;
23 import org.apache.maven.plugin.issues.IssueManagementSystem;
24 import org.apache.maven.plugins.changes.model.Action;
25 import org.apache.maven.plugins.changes.model.Release;
26
27 import java.util.ArrayList;
28 import java.util.HashMap;
29 import java.util.List;
30 import java.util.Map;
31
32
33
34
35
36
37
38
39
40 public class IssueAdapter
41 {
42 private static final String UNKNOWN_ISSUE_TYPE = "";
43
44 private IssueManagementSystem ims;
45
46
47
48
49
50
51 public IssueAdapter( IssueManagementSystem ims )
52 {
53 this.ims = ims;
54 }
55
56 private Map<String, IssueType> getIssueTypeMap()
57 {
58 return ims.getIssueTypeMap();
59 }
60
61
62
63
64
65
66
67 public List<Release> getReleases( List<Issue> issues )
68 {
69
70 Map<String, Release> releasesMap = new HashMap<String, Release>();
71
72
73 for ( Issue issue : issues )
74 {
75
76 if ( issue.getFixVersions() != null )
77 {
78 for ( String fixVersion : issue.getFixVersions() )
79 {
80
81 Release release = releasesMap.get( fixVersion );
82 if ( release == null )
83 {
84
85 release = new Release();
86 release.setVersion( fixVersion );
87 releasesMap.put( fixVersion, release );
88 }
89
90
91 Action action = createAction( issue );
92 release.addAction( action );
93 }
94 }
95 }
96
97
98 List<Release> releasesList = new ArrayList<Release>();
99 for ( Release release : releasesMap.values() )
100 {
101 releasesList.add( release );
102 }
103 return releasesList;
104 }
105
106
107
108
109
110
111
112 public Action createAction( Issue issue )
113 {
114 Action action = new Action();
115
116
117
118 action.setIssue( issue.getKey() );
119
120
121 IssueType type;
122 if ( getIssueTypeMap().containsKey( issue.getType() ) )
123 {
124 type = getIssueTypeMap().get( issue.getType() );
125 action.setType( type.modelRepresentation() );
126 }
127 else
128 {
129 action.setType( UNKNOWN_ISSUE_TYPE );
130 }
131
132 action.setDev( issue.getAssignee() );
133
134 action.setDueTo( issue.getReporter() == null ? "" : issue.getReporter() );
135
136 action.setAction( issue.getSummary() );
137 return action;
138 }
139 }