1 package org.apache.maven.plugin;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.codehaus.plexus.compiler.util.scan.SimpleSourceInclusionScanner;
23 import org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner;
24 import org.codehaus.plexus.compiler.util.scan.StaleSourceScanner;
25
26 import java.io.File;
27 import java.util.Collections;
28 import java.util.HashSet;
29 import java.util.List;
30 import java.util.Map;
31 import java.util.Set;
32
33
34
35
36
37
38
39
40
41
42
43
44 public class TestCompilerMojo
45 extends AbstractCompilerMojo
46 {
47
48
49
50
51
52
53 private boolean skip;
54
55
56
57
58
59
60
61
62 private List<String> compileSourceRoots;
63
64
65
66
67
68
69
70
71 private List<String> classpathElements;
72
73
74
75
76
77
78
79
80 private File outputDirectory;
81
82
83
84
85
86
87 private Set<String> testIncludes = new HashSet<String>();
88
89
90
91
92
93
94 private Set<String> testExcludes = new HashSet<String>();
95
96
97
98
99
100
101
102 private String testSource;
103
104
105
106
107
108
109
110 private String testTarget;
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125 private Map<String, String> testCompilerArguments;
126
127
128
129
130
131
132
133
134
135
136
137
138
139 private String testCompilerArgument;
140
141
142
143
144
145
146
147
148
149 private File generatedTestSourcesDirectory;
150
151
152 public void execute()
153 throws MojoExecutionException, CompilationFailureException
154 {
155 if ( skip )
156 {
157 getLog().info( "Not compiling test sources" );
158 }
159 else
160 {
161 super.execute();
162 }
163 }
164
165 protected List<String> getCompileSourceRoots()
166 {
167 return compileSourceRoots;
168 }
169
170 protected List<String> getClasspathElements()
171 {
172 return classpathElements;
173 }
174
175 protected File getOutputDirectory()
176 {
177 return outputDirectory;
178 }
179
180 protected SourceInclusionScanner getSourceInclusionScanner( int staleMillis )
181 {
182 SourceInclusionScanner scanner = null;
183
184 if ( testIncludes.isEmpty() && testExcludes.isEmpty() )
185 {
186 scanner = new StaleSourceScanner( staleMillis );
187 }
188 else
189 {
190 if ( testIncludes.isEmpty() )
191 {
192 testIncludes.add( "**/*.java" );
193 }
194 scanner = new StaleSourceScanner( staleMillis, testIncludes, testExcludes );
195 }
196
197 return scanner;
198 }
199
200 protected SourceInclusionScanner getSourceInclusionScanner( String inputFileEnding )
201 {
202 SourceInclusionScanner scanner = null;
203
204 if ( testIncludes.isEmpty() && testExcludes.isEmpty() )
205 {
206 testIncludes = Collections.singleton( "**/*." + inputFileEnding );
207 scanner = new SimpleSourceInclusionScanner( testIncludes, Collections.EMPTY_SET );
208 }
209 else
210 {
211 if ( testIncludes.isEmpty() )
212 {
213 testIncludes.add( "**/*." + inputFileEnding );
214 }
215 scanner = new SimpleSourceInclusionScanner( testIncludes, testExcludes );
216 }
217
218 return scanner;
219 }
220
221 protected String getSource()
222 {
223 return testSource == null ? source : testSource;
224 }
225
226 protected String getTarget()
227 {
228 return testTarget == null ? target : testTarget;
229 }
230
231 protected String getCompilerArgument()
232 {
233 return testCompilerArgument == null ? compilerArgument : testCompilerArgument;
234 }
235
236 protected Map<String, String> getCompilerArguments()
237 {
238 return testCompilerArguments == null ? compilerArguments : testCompilerArguments;
239 }
240
241 protected File getGeneratedSourcesDirectory()
242 {
243 return generatedTestSourcesDirectory;
244 }
245
246 }