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