1 package org.apache.maven.plugin.issues;
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.MojoExecutionException;
23
24 import java.util.ArrayList;
25 import java.util.List;
26
27
28
29
30
31
32
33
34 public class IssueUtils
35 {
36 public static final String SNAPSHOT_SUFFIX = "-SNAPSHOT";
37
38
39
40
41
42
43
44
45
46 public static List<Issue> filterIssuesWithVersionPrefix( List<Issue> issues, String prefix )
47 throws MojoExecutionException
48 {
49 List<Issue> filteredIssues = new ArrayList<Issue>();
50 boolean isFound = false;
51 Issue issue;
52
53 for ( Issue issue1 : issues )
54 {
55 issue = issue1;
56
57 if ( issue.getFixVersions() != null )
58 {
59 for ( String fixVersion : issue.getFixVersions() )
60 {
61 if ( prefix == null || fixVersion.startsWith( prefix ) )
62 {
63 isFound = true;
64 filteredIssues.add( issue );
65 break;
66 }
67 }
68 }
69 }
70
71 if ( !isFound )
72 {
73 throw new MojoExecutionException( "Couldn't find any issues with a Fix Version prefix of '" + prefix
74 + "' among the supplied issues: " + toString( issues ) );
75 }
76 return filteredIssues;
77 }
78
79
80
81
82
83
84
85
86
87
88
89 public static List<Issue> getIssuesForVersion( List<Issue> issues, String version )
90 throws MojoExecutionException
91 {
92 List<Issue> issuesForVersion = new ArrayList<Issue>();
93 boolean isFound = false;
94 Issue issue;
95 String releaseVersion = version;
96
97
98 if ( version != null && version.endsWith( SNAPSHOT_SUFFIX ) )
99 {
100 releaseVersion = version.substring( 0, version.length() - SNAPSHOT_SUFFIX.length() );
101 }
102
103 for ( Issue issue1 : issues )
104 {
105 issue = issue1;
106
107 if ( issue.getFixVersions() != null && issue.getFixVersions().contains( releaseVersion ) )
108 {
109 isFound = true;
110 issuesForVersion.add( issue );
111 }
112 }
113
114 if ( !isFound )
115 {
116 throw new MojoExecutionException( "Couldn't find any issues for the version '" + releaseVersion
117 + "' among the supplied issues: " + toString( issues ) );
118 }
119 return issuesForVersion;
120 }
121
122 public static String toString( List<Issue> issues )
123 {
124 List<String> issueStrings = new ArrayList<String>( issues.size() );
125 for ( Issue issue : issues )
126 {
127 issueStrings.add( issue.toString() );
128 }
129 return issueStrings.toString();
130 }
131 }