Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
SurefirePlugin |
|
| 1.1111111111111112;1.111 |
1 | package org.apache.maven.plugin.surefire; | |
2 | ||
3 | /* | |
4 | * Licensed to the Apache Software Foundation (ASF) under one | |
5 | * or more contributor license agreements. See the NOTICE file | |
6 | * distributed with this work for additional information | |
7 | * regarding copyright ownership. The ASF licenses this file | |
8 | * to you under the Apache License, Version 2.0 (the | |
9 | * "License"); you may not use this file except in compliance | |
10 | * with the License. You may obtain a copy of the License at | |
11 | * | |
12 | * http://www.apache.org/licenses/LICENSE-2.0 | |
13 | * | |
14 | * Unless required by applicable law or agreed to in writing, | |
15 | * software distributed under the License is distributed on an | |
16 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
17 | * KIND, either express or implied. See the License for the | |
18 | * specific language governing permissions and limitations | |
19 | * under the License. | |
20 | */ | |
21 | ||
22 | import java.io.File; | |
23 | import java.util.HashMap; | |
24 | import java.util.List; | |
25 | import java.util.Map; | |
26 | import java.util.Properties; | |
27 | ||
28 | import org.apache.maven.artifact.Artifact; | |
29 | import org.apache.maven.artifact.factory.ArtifactFactory; | |
30 | import org.apache.maven.artifact.metadata.ArtifactMetadataSource; | |
31 | import org.apache.maven.artifact.repository.ArtifactRepository; | |
32 | import org.apache.maven.artifact.resolver.ArtifactResolver; | |
33 | import org.apache.maven.execution.MavenSession; | |
34 | import org.apache.maven.plugin.MojoExecutionException; | |
35 | import org.apache.maven.plugin.MojoFailureException; | |
36 | import org.apache.maven.plugin.descriptor.PluginDescriptor; | |
37 | import org.apache.maven.plugin.surefire.booterclient.ChecksumCalculator; | |
38 | import org.apache.maven.project.MavenProject; | |
39 | import org.apache.maven.surefire.suite.RunResult; | |
40 | import org.apache.maven.toolchain.ToolchainManager; | |
41 | import org.codehaus.plexus.util.StringUtils; | |
42 | ||
43 | /** | |
44 | * Run tests using Surefire. | |
45 | * | |
46 | * @author Jason van Zyl | |
47 | * @version $Id: SurefirePlugin.java 1232972 2012-01-18 17:53:39Z jdcasey $ | |
48 | * @requiresDependencyResolution test | |
49 | * @goal test | |
50 | * @phase test | |
51 | * @threadSafe | |
52 | * @noinspection JavaDoc | |
53 | */ | |
54 | 0 | public class SurefirePlugin |
55 | extends AbstractSurefireMojo | |
56 | implements SurefireReportParameters | |
57 | { | |
58 | ||
59 | /** | |
60 | * Information about this plugin, mainly used to lookup this plugin's configuration from the currently executing | |
61 | * project. | |
62 | * | |
63 | * @parameter default-value="${plugin}" | |
64 | * @readonly | |
65 | * @since 2.12 | |
66 | */ | |
67 | private PluginDescriptor pluginDescriptor; | |
68 | ||
69 | /** | |
70 | * Set this to "true" to skip running tests, but still compile them. Its use is NOT RECOMMENDED, but quite | |
71 | * convenient on occasion. | |
72 | * | |
73 | * @parameter default-value="false" expression="${skipTests}" | |
74 | * @since 2.4 | |
75 | */ | |
76 | private boolean skipTests; | |
77 | ||
78 | /** | |
79 | * This old parameter is just like <code>skipTests</code>, but bound to the old property "maven.test.skip.exec". | |
80 | * | |
81 | * @parameter expression="${maven.test.skip.exec}" | |
82 | * @since 2.3 | |
83 | * @deprecated Use skipTests instead. | |
84 | */ | |
85 | private boolean skipExec; | |
86 | ||
87 | /** | |
88 | * Set this to "true" to bypass unit tests entirely. Its use is NOT RECOMMENDED, especially if you enable it using | |
89 | * the "maven.test.skip" property, because maven.test.skip disables both running the tests and compiling the tests. | |
90 | * Consider using the <code>skipTests</code> parameter instead. | |
91 | * | |
92 | * @parameter default-value="false" expression="${maven.test.skip}" | |
93 | */ | |
94 | private boolean skip; | |
95 | ||
96 | /** | |
97 | * Set this to "true" to ignore a failure during testing. Its use is NOT RECOMMENDED, but quite convenient on | |
98 | * occasion. | |
99 | * | |
100 | * @parameter default-value="false" expression="${maven.test.failure.ignore}" | |
101 | */ | |
102 | private boolean testFailureIgnore; | |
103 | ||
104 | /** | |
105 | * The base directory of the project being tested. This can be obtained in your unit test via | |
106 | * System.getProperty("basedir"). | |
107 | * | |
108 | * @parameter default-value="${basedir}" | |
109 | */ | |
110 | private File basedir; | |
111 | ||
112 | /** | |
113 | * The directory containing generated test classes of the project being tested. This will be included at the | |
114 | * beginning of the test classpath. * | |
115 | * | |
116 | * @parameter default-value="${project.build.testOutputDirectory}" | |
117 | */ | |
118 | private File testClassesDirectory; | |
119 | ||
120 | /** | |
121 | * The directory containing generated classes of the project being tested. This will be included after the test | |
122 | * classes in the test classpath. | |
123 | * | |
124 | * @parameter default-value="${project.build.outputDirectory}" | |
125 | */ | |
126 | private File classesDirectory; | |
127 | ||
128 | /** | |
129 | * The Maven Project Object. | |
130 | * | |
131 | * @parameter default-value="${project}" | |
132 | * @readonly | |
133 | */ | |
134 | private MavenProject project; | |
135 | ||
136 | /** | |
137 | * List of dependencies to exclude from the test classpath. Each dependency string must follow the format | |
138 | * <i>groupId:artifactId</i>. For example: <i>org.acme:project-a</i> | |
139 | * | |
140 | * @parameter | |
141 | * @since 2.6 | |
142 | */ | |
143 | private List<String> classpathDependencyExcludes; | |
144 | ||
145 | /** | |
146 | * A dependency scope to exclude from the test classpath. The scope can be one of the following scopes: | |
147 | * <p/> | |
148 | * <ul> | |
149 | * <li><i>compile</i> - system, provided, compile | |
150 | * <li><i>runtime</i> - compile, runtime | |
151 | * <li><i>test</i> - system, provided, compile, runtime, test | |
152 | * </ul> | |
153 | * | |
154 | * @parameter default-value="" | |
155 | * @since 2.6 | |
156 | */ | |
157 | private String classpathDependencyScopeExclude; | |
158 | ||
159 | /** | |
160 | * Additional elements to be appended to the classpath. | |
161 | * | |
162 | * @parameter | |
163 | * @since 2.4 | |
164 | */ | |
165 | private List<String> additionalClasspathElements; | |
166 | ||
167 | /** | |
168 | * Base directory where all reports are written to. | |
169 | * | |
170 | * @parameter default-value="${project.build.directory}/surefire-reports" | |
171 | */ | |
172 | private File reportsDirectory; | |
173 | ||
174 | /** | |
175 | * The test source directory containing test class sources. | |
176 | * | |
177 | * @parameter default-value="${project.build.testSourceDirectory}" | |
178 | * @required | |
179 | * @since 2.2 | |
180 | */ | |
181 | private File testSourceDirectory; | |
182 | ||
183 | /** | |
184 | * Specify this parameter to run individual tests by file name, overriding the <code>includes/excludes</code> | |
185 | * parameters. Each pattern you specify here will be used to create an include pattern formatted like | |
186 | * <code>**/${test}.java</code>, so you can just type "-Dtest=MyTest" to run a single test called | |
187 | * "foo/MyTest.java".<br/> | |
188 | * This parameter overrides the <code>includes/excludes</code> parameters, and the TestNG <code>suiteXmlFiles</code> | |
189 | * parameter. | |
190 | * <p/> | |
191 | * Since 2.7.3, you can execute a limited number of methods in the test by adding #myMethod or #my*ethod. For example, | |
192 | * "-Dtest=MyTest#myMethod". This is supported for junit 4.x and testNg. | |
193 | * | |
194 | * @parameter expression="${test}" | |
195 | */ | |
196 | private String test; | |
197 | ||
198 | /** | |
199 | * A list of <include> elements specifying the tests (by pattern) that should be included in testing. When not | |
200 | * specified and when the <code>test</code> parameter is not specified, the default includes will be <code><br/> | |
201 | * <includes><br/> | |
202 | * <include>**/Test*.java</include><br/> | |
203 | * <include>**/*Test.java</include><br/> | |
204 | * <include>**/*TestCase.java</include><br/> | |
205 | * </includes><br/> | |
206 | * </code> This parameter is ignored if the TestNG <code>suiteXmlFiles</code> parameter is specified. | |
207 | * | |
208 | * @parameter | |
209 | */ | |
210 | private List<String> includes; | |
211 | ||
212 | /** | |
213 | * A list of <exclude> elements specifying the tests (by pattern) that should be excluded in testing. When not | |
214 | * specified and when the <code>test</code> parameter is not specified, the default excludes will be <code><br/> | |
215 | * <excludes><br/> | |
216 | * <exclude>**/*$*</exclude><br/> | |
217 | * </excludes><br/> | |
218 | * </code> (which excludes all inner classes).<br> | |
219 | * This parameter is ignored if the TestNG <code>suiteXmlFiles</code> parameter is specified. | |
220 | * | |
221 | * @parameter | |
222 | */ | |
223 | private List<String> excludes; | |
224 | ||
225 | /** | |
226 | * ArtifactRepository of the localRepository. To obtain the directory of localRepository in unit tests use | |
227 | * System.getProperty("localRepository"). | |
228 | * | |
229 | * @parameter expression="${localRepository}" | |
230 | * @required | |
231 | * @readonly | |
232 | */ | |
233 | private ArtifactRepository localRepository; | |
234 | ||
235 | /** | |
236 | * List of System properties to pass to the JUnit tests. | |
237 | * | |
238 | * @parameter | |
239 | * @deprecated Use systemPropertyVariables instead. | |
240 | */ | |
241 | private Properties systemProperties; | |
242 | ||
243 | /** | |
244 | * List of System properties to pass to the JUnit tests. | |
245 | * | |
246 | * @parameter | |
247 | * @since 2.5 | |
248 | */ | |
249 | private Map<String,String> systemPropertyVariables; | |
250 | ||
251 | /** | |
252 | * List of System properties, loaded from a file, to pass to the JUnit tests. | |
253 | * | |
254 | * @parameter | |
255 | * @since 2.8.2 | |
256 | */ | |
257 | private File systemPropertiesFile; | |
258 | ||
259 | /** | |
260 | * List of properties for configuring all TestNG related configurations. This is the new preferred method of | |
261 | * configuring TestNG. | |
262 | * | |
263 | * @parameter | |
264 | * @since 2.4 | |
265 | */ | |
266 | private Properties properties; | |
267 | ||
268 | /** | |
269 | * Map of plugin artifacts. | |
270 | * | |
271 | * @parameter expression="${plugin.artifactMap}" | |
272 | * @required | |
273 | * @readonly | |
274 | */ | |
275 | private Map<String,Artifact> pluginArtifactMap; | |
276 | ||
277 | /** | |
278 | * Map of project artifacts. | |
279 | * | |
280 | * @parameter expression="${project.artifactMap}" | |
281 | * @required | |
282 | * @readonly | |
283 | */ | |
284 | private Map<String,Artifact> projectArtifactMap; | |
285 | ||
286 | /** | |
287 | * Option to print summary of test suites or just print the test cases that have errors. | |
288 | * | |
289 | * @parameter expression="${surefire.printSummary}" default-value="true" | |
290 | */ | |
291 | private boolean printSummary; | |
292 | ||
293 | /** | |
294 | * Selects the formatting for the test report to be generated. Can be set as "brief" or "plain". | |
295 | * | |
296 | * @parameter expression="${surefire.reportFormat}" default-value="brief" | |
297 | */ | |
298 | private String reportFormat; | |
299 | ||
300 | /** | |
301 | * Add custom text into report filename: TEST-testClassName-reportNameSuffix.xml, | |
302 | * testClassName-reportNameSuffix.txt and testClassName-reportNameSuffix-output.txt. | |
303 | * File TEST-testClassName-reportNameSuffix.xml has changed attributes 'testsuite'--'name' | |
304 | * and 'testcase'--'classname' - reportNameSuffix is added to the attribute value. | |
305 | * | |
306 | * @parameter expression="${surefire.reportNameSuffix}" default-value="" | |
307 | */ | |
308 | private String reportNameSuffix; | |
309 | ||
310 | /** | |
311 | * Option to generate a file test report or just output the test report to the console. | |
312 | * | |
313 | * @parameter expression="${surefire.useFile}" default-value="true" | |
314 | */ | |
315 | private boolean useFile; | |
316 | ||
317 | /** | |
318 | * Set this to "true" to redirect the unit test standard output to a file (found in | |
319 | * reportsDirectory/testName-output.txt). | |
320 | * | |
321 | * @parameter expression="${maven.test.redirectTestOutputToFile}" default-value="false" | |
322 | * @since 2.3 | |
323 | */ | |
324 | private boolean redirectTestOutputToFile; | |
325 | ||
326 | /** | |
327 | * Set this to "true" to cause a failure if there are no tests to run. Defaults to "false". | |
328 | * | |
329 | * @parameter expression="${failIfNoTests}" | |
330 | * @since 2.4 | |
331 | */ | |
332 | private Boolean failIfNoTests; | |
333 | ||
334 | /** | |
335 | * Set this to "true" to cause a failure if the none of the tests specified in -Dtest=... are run. Defaults to | |
336 | * "true". | |
337 | * | |
338 | * @parameter expression="${surefire.failIfNoSpecifiedTests}" | |
339 | * @since 2.12 | |
340 | */ | |
341 | private Boolean failIfNoSpecifiedTests; | |
342 | ||
343 | /** | |
344 | * Option to specify the forking mode. Can be "never", "once", "always" or "perthread". "none" and "pertest" are also accepted | |
345 | * for backwards compatibility. "always" forks for each test-class. "perthread" will create "threadCount" parallel forks. | |
346 | * | |
347 | * @parameter expression="${forkMode}" default-value="once" | |
348 | * @since 2.1 | |
349 | */ | |
350 | private String forkMode; | |
351 | ||
352 | /** | |
353 | * Option to specify the jvm (or path to the java executable) to use with the forking options. For the default, the | |
354 | * jvm will be a new instance of the same VM as the one used to run Maven. JVM settings are not inherited from | |
355 | * MAVEN_OPTS. | |
356 | * | |
357 | * @parameter expression="${jvm}" | |
358 | * @since 2.1 | |
359 | */ | |
360 | private String jvm; | |
361 | ||
362 | /** | |
363 | * Arbitrary JVM options to set on the command line. | |
364 | * | |
365 | * @parameter expression="${argLine}" | |
366 | * @since 2.1 | |
367 | */ | |
368 | private String argLine; | |
369 | ||
370 | /** | |
371 | * Attach a debugger to the forked JVM. If set to "true", the process will suspend and wait for a debugger to attach | |
372 | * on port 5005. If set to some other string, that string will be appended to the argLine, allowing you to configure | |
373 | * arbitrary debuggability options (without overwriting the other options specified through the <code>argLine</code> | |
374 | * parameter). | |
375 | * | |
376 | * @parameter expression="${maven.surefire.debug}" | |
377 | * @since 2.4 | |
378 | */ | |
379 | private String debugForkedProcess; | |
380 | ||
381 | /** | |
382 | * Kill the forked test process after a certain number of seconds. If set to 0, wait forever for the process, never | |
383 | * timing out. | |
384 | * | |
385 | * @parameter expression="${surefire.timeout}" | |
386 | * @since 2.4 | |
387 | */ | |
388 | private int forkedProcessTimeoutInSeconds; | |
389 | ||
390 | /** | |
391 | * Additional environment variables to set on the command line. | |
392 | * | |
393 | * @parameter | |
394 | * @since 2.1.3 | |
395 | */ | |
396 | 0 | private Map<String,String> environmentVariables = new HashMap<String,String>(); |
397 | ||
398 | /** | |
399 | * Command line working directory. | |
400 | * | |
401 | * @parameter expression="${basedir}" | |
402 | * @since 2.1.3 | |
403 | */ | |
404 | private File workingDirectory; | |
405 | ||
406 | /** | |
407 | * When false it makes tests run using the standard classloader delegation instead of the default Maven isolated | |
408 | * classloader. Only used when forking (forkMode is not "none").<br/> | |
409 | * Setting it to false helps with some problems caused by conflicts between xml parsers in the classpath and the | |
410 | * Java 5 provider parser. | |
411 | * | |
412 | * @parameter expression="${childDelegation}" default-value="false" | |
413 | * @since 2.1 | |
414 | */ | |
415 | private boolean childDelegation; | |
416 | ||
417 | /** | |
418 | * (TestNG/JUnit47 provider with JUnit4.8+ only) Groups for this test. Only classes/methods/etc decorated with one of the groups specified here will | |
419 | * be included in test run, if specified. <br/>For JUnit, this parameter forces the use of the 4.7 provider<br/> | |
420 | * This parameter is ignored if the <code>suiteXmlFiles</code> parameter is specified. | |
421 | * . | |
422 | * | |
423 | * @parameter expression="${groups}" | |
424 | * @since 2.2 | |
425 | */ | |
426 | private String groups; | |
427 | ||
428 | /** | |
429 | * (TestNG/JUnit47 provider with JUnit4.8+ only) Excluded groups. Any methods/classes/etc with one of the groups specified in this list will | |
430 | * specifically not be run.<br/>For JUnit, this parameter forces the use of the 4.7 provider<br/> | |
431 | * This parameter is ignored if the <code>suiteXmlFiles</code> parameter is specified. | |
432 | * | |
433 | * @parameter expression="${excludedGroups}" | |
434 | * @since 2.2 | |
435 | */ | |
436 | private String excludedGroups; | |
437 | ||
438 | /** | |
439 | * (TestNG) List of <suiteXmlFile> elements specifying TestNG suite xml file locations. Note that | |
440 | * <code>suiteXmlFiles</code> is incompatible with several other parameters of this plugin, like | |
441 | * <code>includes/excludes</code>.<br/> | |
442 | * This parameter is ignored if the <code>test</code> parameter is specified (allowing you to run a single test | |
443 | * instead of an entire suite). | |
444 | * | |
445 | * @parameter | |
446 | * @since 2.2 | |
447 | */ | |
448 | private File[] suiteXmlFiles; | |
449 | ||
450 | /** | |
451 | * Allows you to specify the name of the JUnit artifact. If not set, <code>junit:junit</code> will be used. | |
452 | * | |
453 | * @parameter expression="${junitArtifactName}" default-value="junit:junit" | |
454 | * @since 2.3.1 | |
455 | */ | |
456 | private String junitArtifactName; | |
457 | ||
458 | /** | |
459 | * Allows you to specify the name of the TestNG artifact. If not set, <code>org.testng:testng</code> will be used. | |
460 | * | |
461 | * @parameter expression="${testNGArtifactName}" default-value="org.testng:testng" | |
462 | * @since 2.3.1 | |
463 | */ | |
464 | private String testNGArtifactName; | |
465 | ||
466 | /** | |
467 | * (forkMode=perthread or TestNG/JUnit 4.7 provider) The attribute thread-count allows you to specify how many threads should be | |
468 | * allocated for this execution. Only makes sense to use in conjunction with the <code>parallel</code> parameter. (forkMode=perthread | |
469 | * does not support/require the <code>parallel</code> parameter) | |
470 | * | |
471 | * @parameter expression="${threadCount}" | |
472 | * @since 2.2 | |
473 | */ | |
474 | private int threadCount; | |
475 | ||
476 | /** | |
477 | * (JUnit 4.7 provider) Indicates that threadCount is per cpu core. | |
478 | * | |
479 | * @parameter expression="${perCoreThreadCount}" default-value="true" | |
480 | * @since 2.5 | |
481 | */ | |
482 | private boolean perCoreThreadCount; | |
483 | ||
484 | /** | |
485 | * (JUnit 4.7 provider) Indicates that the thread pool will be unlimited. The <code>parallel</code> parameter and | |
486 | * the actual number of classes/methods will decide. Setting this to "true" effectively disables | |
487 | * <code>perCoreThreadCount</code> and <code>threadCount</code>. Defaults to "false". | |
488 | * | |
489 | * @parameter expression="${useUnlimitedThreads}" default-value="false" | |
490 | * @since 2.5 | |
491 | */ | |
492 | private boolean useUnlimitedThreads; | |
493 | ||
494 | /** | |
495 | * (TestNG only) When you use the <code>parallel</code> attribute, TestNG will try to run all your test methods in | |
496 | * separate threads, except for methods that depend on each other, which will be run in the same thread in order to | |
497 | * respect their order of execution. | |
498 | * <p/> | |
499 | * (JUnit 4.7 provider) Supports values "classes"/"methods"/"both" to run in separate threads, as controlled by | |
500 | * <code>threadCount</code>. | |
501 | * | |
502 | * @parameter expression="${parallel}" | |
503 | * @since 2.2 | |
504 | */ | |
505 | private String parallel; | |
506 | ||
507 | /** | |
508 | * Whether to trim the stack trace in the reports to just the lines within the test, or show the full trace. | |
509 | * | |
510 | * @parameter expression="${trimStackTrace}" default-value="true" | |
511 | * @since 2.2 | |
512 | */ | |
513 | private boolean trimStackTrace; | |
514 | ||
515 | /** | |
516 | * Resolves the artifacts needed. | |
517 | * | |
518 | * @component | |
519 | */ | |
520 | private ArtifactResolver artifactResolver; | |
521 | ||
522 | /** | |
523 | * Creates the artifact. | |
524 | * | |
525 | * @component | |
526 | */ | |
527 | private ArtifactFactory artifactFactory; | |
528 | ||
529 | /** | |
530 | * The remote plugin repositories declared in the POM. | |
531 | * | |
532 | * @parameter expression="${project.pluginArtifactRepositories}" | |
533 | * @since 2.2 | |
534 | */ | |
535 | private List<ArtifactRepository> remoteRepositories; | |
536 | ||
537 | /** | |
538 | * For retrieval of artifact's metadata. | |
539 | * | |
540 | * @component | |
541 | */ | |
542 | private ArtifactMetadataSource metadataSource; | |
543 | ||
544 | private Properties originalSystemProperties; | |
545 | ||
546 | /** | |
547 | * systemPropertyVariables + systemProperties | |
548 | */ | |
549 | 0 | private Properties internalSystemProperties = new Properties(); |
550 | ||
551 | /** | |
552 | * Flag to disable the generation of report files in xml format. | |
553 | * | |
554 | * @parameter expression="${disableXmlReport}" default-value="false" | |
555 | * @since 2.2 | |
556 | */ | |
557 | private boolean disableXmlReport; | |
558 | ||
559 | /** | |
560 | * Option to pass dependencies to the system's classloader instead of using an isolated class loader when forking. | |
561 | * Prevents problems with JDKs which implement the service provider lookup mechanism by using the system's | |
562 | * classloader. | |
563 | * | |
564 | * @parameter expression="${surefire.useSystemClassLoader}" default-value="true" | |
565 | * @since 2.3 | |
566 | */ | |
567 | private boolean useSystemClassLoader; | |
568 | ||
569 | /** | |
570 | * By default, Surefire forks your tests using a manifest-only JAR; set this parameter to "false" to force it to | |
571 | * launch your tests with a plain old Java classpath. (See | |
572 | * http://maven.apache.org/plugins/maven-surefire-plugin/examples/class-loading.html for a more detailed explanation | |
573 | * of manifest-only JARs and their benefits.) | |
574 | * <p/> | |
575 | * Beware, setting this to "false" may cause your tests to fail on Windows if your classpath is too long. | |
576 | * | |
577 | * @parameter expression="${surefire.useManifestOnlyJar}" default-value="true" | |
578 | * @since 2.4.3 | |
579 | */ | |
580 | private boolean useManifestOnlyJar; | |
581 | ||
582 | /** | |
583 | * By default, Surefire enables JVM assertions for the execution of your test cases. To disable the assertions, set | |
584 | * this flag to "false". | |
585 | * | |
586 | * @parameter expression="${enableAssertions}" default-value="true" | |
587 | * @since 2.3.1 | |
588 | */ | |
589 | private boolean enableAssertions; | |
590 | ||
591 | /** | |
592 | * The current build session instance. | |
593 | * | |
594 | * @parameter expression="${session}" | |
595 | * @required | |
596 | * @readonly | |
597 | */ | |
598 | private MavenSession session; | |
599 | ||
600 | /** | |
601 | * (TestNG only) Define the factory class used to create all test instances. | |
602 | * | |
603 | * @parameter expression="${objectFactory}" | |
604 | * @since 2.5 | |
605 | */ | |
606 | private String objectFactory; | |
607 | ||
608 | /** | |
609 | * @parameter default-value="${session.parallel}" | |
610 | * @readonly | |
611 | * @noinspection UnusedDeclaration | |
612 | */ | |
613 | private Boolean parallelMavenExecution; | |
614 | ||
615 | /** | |
616 | * Defines the order the tests will be run in. Supported values are "alphabetical", "reversealphabetical", "random", | |
617 | * "hourly" (alphabetical on even hours, reverse alphabetical on odd hours), "failedfirst", "balanced" and "filesystem". | |
618 | * <p/> | |
619 | * <p/> | |
620 | * Odd/Even for hourly is determined at the time the of scanning the classpath, meaning it could change during a | |
621 | * multi-module build. | |
622 | * <p/> | |
623 | * Failed first will run tests that failed on previous run first, as well as new tests for this run. | |
624 | * <p/> | |
625 | * Balanced is only relevant with parallel=classes, and will try to optimize the run-order of the tests to | |
626 | * make all tests complete at the same time, reducing the overall execution time. | |
627 | * <p/> | |
628 | * Note that the statistics are stored in a file named .surefire-XXXXXXXXX beside pom.xml, and should not | |
629 | * be checked into version control. The "XXXXX" is the SHA1 checksum of the entire surefire configuration, | |
630 | * so different configurations will have different statistics files, meaning if you change any config | |
631 | * settings you will re-run once before new statistics data can be established. | |
632 | * | |
633 | * @parameter default-value="filesystem" | |
634 | * @since 2.7 | |
635 | */ | |
636 | private String runOrder; | |
637 | ||
638 | /** | |
639 | * @component | |
640 | */ | |
641 | private ToolchainManager toolchainManager; | |
642 | ||
643 | protected void handleSummary( Summary summary ) | |
644 | throws MojoExecutionException, MojoFailureException | |
645 | { | |
646 | 0 | assertNoException( summary ); |
647 | 0 | assertNoFailureOrTimeout( summary ); |
648 | 0 | writeSummary( summary ); |
649 | 0 | } |
650 | ||
651 | private void assertNoException( Summary summary ) | |
652 | throws MojoExecutionException | |
653 | { | |
654 | 0 | if ( !summary.isErrorFree() ) |
655 | { | |
656 | 0 | Exception cause = summary.getFirstException(); |
657 | 0 | throw new MojoExecutionException( cause.getMessage(), cause ); |
658 | } | |
659 | 0 | } |
660 | ||
661 | private void assertNoFailureOrTimeout( Summary summary ) | |
662 | throws MojoExecutionException | |
663 | { | |
664 | 0 | if ( summary.isFailureOrTimeout() ) |
665 | { | |
666 | 0 | throw new MojoExecutionException( "Failure or timeout" ); |
667 | } | |
668 | 0 | } |
669 | ||
670 | private void writeSummary( Summary summary ) | |
671 | throws MojoFailureException | |
672 | { | |
673 | 0 | RunResult result = summary.getResultOfLastSuccessfulRun(); |
674 | 0 | SurefireHelper.reportExecution( this, result, getLog() ); |
675 | 0 | } |
676 | ||
677 | protected boolean isSkipExecution() | |
678 | { | |
679 | 0 | return isSkip() || isSkipTests() || isSkipExec(); |
680 | } | |
681 | ||
682 | protected String getPluginName() | |
683 | { | |
684 | 0 | return "surefire"; |
685 | } | |
686 | ||
687 | protected String[] getDefaultIncludes() | |
688 | { | |
689 | 0 | return new String[]{ "**/Test*.java", "**/*Test.java", "**/*TestCase.java" }; |
690 | } | |
691 | ||
692 | // now for the implementation of the field accessors | |
693 | ||
694 | public boolean isSkipTests() | |
695 | { | |
696 | 0 | return skipTests; |
697 | } | |
698 | ||
699 | public void setSkipTests( boolean skipTests ) | |
700 | { | |
701 | 0 | this.skipTests = skipTests; |
702 | 0 | } |
703 | ||
704 | /** | |
705 | * @noinspection deprecation | |
706 | */ | |
707 | public boolean isSkipExec() | |
708 | { | |
709 | 0 | return skipExec; |
710 | } | |
711 | ||
712 | /** | |
713 | * @noinspection deprecation | |
714 | */ | |
715 | public void setSkipExec( boolean skipExec ) | |
716 | { | |
717 | 0 | this.skipExec = skipExec; |
718 | 0 | } |
719 | ||
720 | public boolean isSkip() | |
721 | { | |
722 | 0 | return skip; |
723 | } | |
724 | ||
725 | public void setSkip( boolean skip ) | |
726 | { | |
727 | 0 | this.skip = skip; |
728 | 0 | } |
729 | ||
730 | public boolean isTestFailureIgnore() | |
731 | { | |
732 | 0 | return testFailureIgnore; |
733 | } | |
734 | ||
735 | public void setTestFailureIgnore( boolean testFailureIgnore ) | |
736 | { | |
737 | 0 | this.testFailureIgnore = testFailureIgnore; |
738 | 0 | } |
739 | ||
740 | public File getBasedir() | |
741 | { | |
742 | 0 | return basedir; |
743 | } | |
744 | ||
745 | public void setBasedir( File basedir ) | |
746 | { | |
747 | 0 | this.basedir = basedir; |
748 | 0 | } |
749 | ||
750 | public File getTestClassesDirectory() | |
751 | { | |
752 | 0 | return testClassesDirectory; |
753 | } | |
754 | ||
755 | public void setTestClassesDirectory( File testClassesDirectory ) | |
756 | { | |
757 | 0 | this.testClassesDirectory = testClassesDirectory; |
758 | 0 | } |
759 | ||
760 | public File getClassesDirectory() | |
761 | { | |
762 | 0 | return classesDirectory; |
763 | } | |
764 | ||
765 | public void setClassesDirectory( File classesDirectory ) | |
766 | { | |
767 | 0 | this.classesDirectory = classesDirectory; |
768 | 0 | } |
769 | ||
770 | public MavenProject getProject() | |
771 | { | |
772 | 0 | return project; |
773 | } | |
774 | ||
775 | public void setProject( MavenProject project ) | |
776 | { | |
777 | 0 | this.project = project; |
778 | 0 | } |
779 | ||
780 | public List<String> getClasspathDependencyExcludes() | |
781 | { | |
782 | 0 | return classpathDependencyExcludes; |
783 | } | |
784 | ||
785 | public void setClasspathDependencyExcludes( List<String> classpathDependencyExcludes ) | |
786 | { | |
787 | 0 | this.classpathDependencyExcludes = classpathDependencyExcludes; |
788 | 0 | } |
789 | ||
790 | public String getClasspathDependencyScopeExclude() | |
791 | { | |
792 | 0 | return classpathDependencyScopeExclude; |
793 | } | |
794 | ||
795 | public void setClasspathDependencyScopeExclude( String classpathDependencyScopeExclude ) | |
796 | { | |
797 | 0 | this.classpathDependencyScopeExclude = classpathDependencyScopeExclude; |
798 | 0 | } |
799 | ||
800 | public List<String> getAdditionalClasspathElements() | |
801 | { | |
802 | 0 | return additionalClasspathElements; |
803 | } | |
804 | ||
805 | public void setAdditionalClasspathElements( List<String> additionalClasspathElements ) | |
806 | { | |
807 | 0 | this.additionalClasspathElements = additionalClasspathElements; |
808 | 0 | } |
809 | ||
810 | public File getReportsDirectory() | |
811 | { | |
812 | 0 | return reportsDirectory; |
813 | } | |
814 | ||
815 | public void setReportsDirectory( File reportsDirectory ) | |
816 | { | |
817 | 0 | this.reportsDirectory = reportsDirectory; |
818 | 0 | } |
819 | ||
820 | public File getTestSourceDirectory() | |
821 | { | |
822 | 0 | return testSourceDirectory; |
823 | } | |
824 | ||
825 | public void setTestSourceDirectory( File testSourceDirectory ) | |
826 | { | |
827 | 0 | this.testSourceDirectory = testSourceDirectory; |
828 | 0 | } |
829 | ||
830 | public String getTest() | |
831 | { | |
832 | 0 | if ( StringUtils.isBlank( test ) ) |
833 | { | |
834 | 0 | return null; |
835 | } | |
836 | 0 | int index = test.indexOf( '#' ); |
837 | 0 | if ( index >= 0 ) |
838 | { | |
839 | 0 | return test.substring( 0, index ); |
840 | } | |
841 | 0 | return test; |
842 | } | |
843 | ||
844 | /** | |
845 | * @since 2.7.3 | |
846 | */ | |
847 | public String getTestMethod() | |
848 | { | |
849 | 0 | if ( StringUtils.isBlank( test ) ) |
850 | { | |
851 | 0 | return null; |
852 | } | |
853 | 0 | int index = this.test.indexOf( '#' ); |
854 | 0 | if ( index >= 0 ) |
855 | { | |
856 | 0 | return this.test.substring( index + 1, this.test.length() ); |
857 | } | |
858 | 0 | return null; |
859 | } | |
860 | ||
861 | public void setTest( String test ) | |
862 | { | |
863 | 0 | this.test = test; |
864 | 0 | } |
865 | ||
866 | public List<String> getIncludes() | |
867 | { | |
868 | 0 | return includes; |
869 | } | |
870 | ||
871 | public void setIncludes( List<String> includes ) | |
872 | { | |
873 | 0 | this.includes = includes; |
874 | 0 | } |
875 | ||
876 | public List<String> getExcludes() | |
877 | { | |
878 | 0 | return excludes; |
879 | } | |
880 | ||
881 | public void setExcludes( List<String> excludes ) | |
882 | { | |
883 | 0 | this.excludes = excludes; |
884 | 0 | } |
885 | ||
886 | public ArtifactRepository getLocalRepository() | |
887 | { | |
888 | 0 | return localRepository; |
889 | } | |
890 | ||
891 | public void setLocalRepository( ArtifactRepository localRepository ) | |
892 | { | |
893 | 0 | this.localRepository = localRepository; |
894 | 0 | } |
895 | ||
896 | /** | |
897 | * @noinspection deprecation | |
898 | */ | |
899 | public Properties getSystemProperties() | |
900 | { | |
901 | 0 | return systemProperties; |
902 | } | |
903 | ||
904 | /** | |
905 | * @noinspection deprecation | |
906 | */ | |
907 | public void setSystemProperties( Properties systemProperties ) | |
908 | { | |
909 | 0 | this.systemProperties = systemProperties; |
910 | 0 | } |
911 | ||
912 | public Map<String,String> getSystemPropertyVariables() | |
913 | { | |
914 | 0 | return systemPropertyVariables; |
915 | } | |
916 | ||
917 | public void setSystemPropertyVariables( Map<String,String> systemPropertyVariables ) | |
918 | { | |
919 | 0 | this.systemPropertyVariables = systemPropertyVariables; |
920 | 0 | } |
921 | ||
922 | public File getSystemPropertiesFile() | |
923 | { | |
924 | 0 | return systemPropertiesFile; |
925 | } | |
926 | ||
927 | public void setSystemPropertiesFile( File systemPropertiesFile ) | |
928 | { | |
929 | 0 | this.systemPropertiesFile = systemPropertiesFile; |
930 | 0 | } |
931 | ||
932 | public Properties getProperties() | |
933 | { | |
934 | 0 | return properties; |
935 | } | |
936 | ||
937 | public void setProperties( Properties properties ) | |
938 | { | |
939 | 0 | this.properties = properties; |
940 | 0 | } |
941 | ||
942 | public Map<String,Artifact> getPluginArtifactMap() | |
943 | { | |
944 | 0 | return pluginArtifactMap; |
945 | } | |
946 | ||
947 | public void setPluginArtifactMap( Map<String,Artifact> pluginArtifactMap ) | |
948 | { | |
949 | 0 | this.pluginArtifactMap = pluginArtifactMap; |
950 | 0 | } |
951 | ||
952 | public Map<String,Artifact> getProjectArtifactMap() | |
953 | { | |
954 | 0 | return projectArtifactMap; |
955 | } | |
956 | ||
957 | public void setProjectArtifactMap( Map<String,Artifact> projectArtifactMap ) | |
958 | { | |
959 | 0 | this.projectArtifactMap = projectArtifactMap; |
960 | 0 | } |
961 | ||
962 | public boolean isPrintSummary() | |
963 | { | |
964 | 0 | return printSummary; |
965 | } | |
966 | ||
967 | public void setPrintSummary( boolean printSummary ) | |
968 | { | |
969 | 0 | this.printSummary = printSummary; |
970 | 0 | } |
971 | ||
972 | public String getReportFormat() | |
973 | { | |
974 | 0 | return reportFormat; |
975 | } | |
976 | ||
977 | public void setReportFormat( String reportFormat ) | |
978 | { | |
979 | 0 | this.reportFormat = reportFormat; |
980 | 0 | } |
981 | ||
982 | public String getReportNameSuffix() | |
983 | { | |
984 | 0 | return reportNameSuffix; |
985 | } | |
986 | ||
987 | public void setReportNameSuffix( String reportNameSuffix ) | |
988 | { | |
989 | 0 | this.reportNameSuffix = reportNameSuffix; |
990 | 0 | } |
991 | ||
992 | public boolean isUseFile() | |
993 | { | |
994 | 0 | return useFile; |
995 | } | |
996 | ||
997 | public void setUseFile( boolean useFile ) | |
998 | { | |
999 | 0 | this.useFile = useFile; |
1000 | 0 | } |
1001 | ||
1002 | public boolean isRedirectTestOutputToFile() | |
1003 | { | |
1004 | 0 | return redirectTestOutputToFile; |
1005 | } | |
1006 | ||
1007 | public void setRedirectTestOutputToFile( boolean redirectTestOutputToFile ) | |
1008 | { | |
1009 | 0 | this.redirectTestOutputToFile = redirectTestOutputToFile; |
1010 | 0 | } |
1011 | ||
1012 | public Boolean getFailIfNoSpecifiedTests() | |
1013 | { | |
1014 | 0 | return failIfNoSpecifiedTests; |
1015 | } | |
1016 | ||
1017 | public void setFailIfNoSpecifiedTests( Boolean failIfNoSpecifiedTests ) | |
1018 | { | |
1019 | 0 | this.failIfNoSpecifiedTests = failIfNoSpecifiedTests; |
1020 | 0 | } |
1021 | ||
1022 | public Boolean getFailIfNoTests() | |
1023 | { | |
1024 | 0 | return failIfNoTests; |
1025 | } | |
1026 | ||
1027 | public void setFailIfNoTests( Boolean failIfNoTests ) | |
1028 | { | |
1029 | 0 | this.failIfNoTests = failIfNoTests; |
1030 | 0 | } |
1031 | ||
1032 | public String getForkMode() | |
1033 | { | |
1034 | 0 | return forkMode; |
1035 | } | |
1036 | ||
1037 | public void setForkMode( String forkMode ) | |
1038 | { | |
1039 | 0 | this.forkMode = forkMode; |
1040 | 0 | } |
1041 | ||
1042 | public String getJvm() | |
1043 | { | |
1044 | 0 | return jvm; |
1045 | } | |
1046 | ||
1047 | public void setJvm( String jvm ) | |
1048 | { | |
1049 | 0 | this.jvm = jvm; |
1050 | 0 | } |
1051 | ||
1052 | public String getArgLine() | |
1053 | { | |
1054 | 0 | return argLine; |
1055 | } | |
1056 | ||
1057 | public void setArgLine( String argLine ) | |
1058 | { | |
1059 | 0 | this.argLine = argLine; |
1060 | 0 | } |
1061 | ||
1062 | public String getDebugForkedProcess() | |
1063 | { | |
1064 | 0 | return debugForkedProcess; |
1065 | } | |
1066 | ||
1067 | public void setDebugForkedProcess( String debugForkedProcess ) | |
1068 | { | |
1069 | 0 | this.debugForkedProcess = debugForkedProcess; |
1070 | 0 | } |
1071 | ||
1072 | public int getForkedProcessTimeoutInSeconds() | |
1073 | { | |
1074 | 0 | return forkedProcessTimeoutInSeconds; |
1075 | } | |
1076 | ||
1077 | public void setForkedProcessTimeoutInSeconds( int forkedProcessTimeoutInSeconds ) | |
1078 | { | |
1079 | 0 | this.forkedProcessTimeoutInSeconds = forkedProcessTimeoutInSeconds; |
1080 | 0 | } |
1081 | ||
1082 | public Map<String,String> getEnvironmentVariables() | |
1083 | { | |
1084 | 0 | return environmentVariables; |
1085 | } | |
1086 | ||
1087 | public void setEnvironmentVariables( Map<String,String> environmentVariables ) | |
1088 | { | |
1089 | 0 | this.environmentVariables = environmentVariables; |
1090 | 0 | } |
1091 | ||
1092 | public File getWorkingDirectory() | |
1093 | { | |
1094 | 0 | return workingDirectory; |
1095 | } | |
1096 | ||
1097 | public void setWorkingDirectory( File workingDirectory ) | |
1098 | { | |
1099 | 0 | this.workingDirectory = workingDirectory; |
1100 | 0 | } |
1101 | ||
1102 | public boolean isChildDelegation() | |
1103 | { | |
1104 | 0 | return childDelegation; |
1105 | } | |
1106 | ||
1107 | public void setChildDelegation( boolean childDelegation ) | |
1108 | { | |
1109 | 0 | this.childDelegation = childDelegation; |
1110 | 0 | } |
1111 | ||
1112 | public String getGroups() | |
1113 | { | |
1114 | 0 | return groups; |
1115 | } | |
1116 | ||
1117 | public void setGroups( String groups ) | |
1118 | { | |
1119 | 0 | this.groups = groups; |
1120 | 0 | } |
1121 | ||
1122 | public String getExcludedGroups() | |
1123 | { | |
1124 | 0 | return excludedGroups; |
1125 | } | |
1126 | ||
1127 | public void setExcludedGroups( String excludedGroups ) | |
1128 | { | |
1129 | 0 | this.excludedGroups = excludedGroups; |
1130 | 0 | } |
1131 | ||
1132 | public File[] getSuiteXmlFiles() | |
1133 | { | |
1134 | 0 | return suiteXmlFiles; |
1135 | } | |
1136 | ||
1137 | public void setSuiteXmlFiles( File[] suiteXmlFiles ) | |
1138 | { | |
1139 | 0 | this.suiteXmlFiles = suiteXmlFiles; |
1140 | 0 | } |
1141 | ||
1142 | public String getJunitArtifactName() | |
1143 | { | |
1144 | 0 | return junitArtifactName; |
1145 | } | |
1146 | ||
1147 | public void setJunitArtifactName( String junitArtifactName ) | |
1148 | { | |
1149 | 0 | this.junitArtifactName = junitArtifactName; |
1150 | 0 | } |
1151 | ||
1152 | public String getTestNGArtifactName() | |
1153 | { | |
1154 | 0 | return testNGArtifactName; |
1155 | } | |
1156 | ||
1157 | public void setTestNGArtifactName( String testNGArtifactName ) | |
1158 | { | |
1159 | 0 | this.testNGArtifactName = testNGArtifactName; |
1160 | 0 | } |
1161 | ||
1162 | public int getThreadCount() | |
1163 | { | |
1164 | 0 | return threadCount; |
1165 | } | |
1166 | ||
1167 | public void setThreadCount( int threadCount ) | |
1168 | { | |
1169 | 0 | this.threadCount = threadCount; |
1170 | 0 | } |
1171 | ||
1172 | public boolean getPerCoreThreadCount() | |
1173 | { | |
1174 | 0 | return perCoreThreadCount; |
1175 | } | |
1176 | ||
1177 | public void setPerCoreThreadCount( boolean perCoreThreadCount ) | |
1178 | { | |
1179 | 0 | this.perCoreThreadCount = perCoreThreadCount; |
1180 | 0 | } |
1181 | ||
1182 | public boolean getUseUnlimitedThreads() | |
1183 | { | |
1184 | 0 | return useUnlimitedThreads; |
1185 | } | |
1186 | ||
1187 | public void setUseUnlimitedThreads( boolean useUnlimitedThreads ) | |
1188 | { | |
1189 | 0 | this.useUnlimitedThreads = useUnlimitedThreads; |
1190 | 0 | } |
1191 | ||
1192 | public String getParallel() | |
1193 | { | |
1194 | 0 | return parallel; |
1195 | } | |
1196 | ||
1197 | public void setParallel( String parallel ) | |
1198 | { | |
1199 | 0 | this.parallel = parallel; |
1200 | 0 | } |
1201 | ||
1202 | public boolean isTrimStackTrace() | |
1203 | { | |
1204 | 0 | return trimStackTrace; |
1205 | } | |
1206 | ||
1207 | public void setTrimStackTrace( boolean trimStackTrace ) | |
1208 | { | |
1209 | 0 | this.trimStackTrace = trimStackTrace; |
1210 | 0 | } |
1211 | ||
1212 | public ArtifactResolver getArtifactResolver() | |
1213 | { | |
1214 | 0 | return artifactResolver; |
1215 | } | |
1216 | ||
1217 | public void setArtifactResolver( ArtifactResolver artifactResolver ) | |
1218 | { | |
1219 | 0 | this.artifactResolver = artifactResolver; |
1220 | 0 | } |
1221 | ||
1222 | public ArtifactFactory getArtifactFactory() | |
1223 | { | |
1224 | 0 | return artifactFactory; |
1225 | } | |
1226 | ||
1227 | public void setArtifactFactory( ArtifactFactory artifactFactory ) | |
1228 | { | |
1229 | 0 | this.artifactFactory = artifactFactory; |
1230 | 0 | } |
1231 | ||
1232 | public List<ArtifactRepository> getRemoteRepositories() | |
1233 | { | |
1234 | 0 | return remoteRepositories; |
1235 | } | |
1236 | ||
1237 | public void setRemoteRepositories( List<ArtifactRepository> remoteRepositories ) | |
1238 | { | |
1239 | 0 | this.remoteRepositories = remoteRepositories; |
1240 | 0 | } |
1241 | ||
1242 | public ArtifactMetadataSource getMetadataSource() | |
1243 | { | |
1244 | 0 | return metadataSource; |
1245 | } | |
1246 | ||
1247 | public void setMetadataSource( ArtifactMetadataSource metadataSource ) | |
1248 | { | |
1249 | 0 | this.metadataSource = metadataSource; |
1250 | 0 | } |
1251 | ||
1252 | public Properties getOriginalSystemProperties() | |
1253 | { | |
1254 | 0 | return originalSystemProperties; |
1255 | } | |
1256 | ||
1257 | public void setOriginalSystemProperties( Properties originalSystemProperties ) | |
1258 | { | |
1259 | 0 | this.originalSystemProperties = originalSystemProperties; |
1260 | 0 | } |
1261 | ||
1262 | public Properties getInternalSystemProperties() | |
1263 | { | |
1264 | 0 | return internalSystemProperties; |
1265 | } | |
1266 | ||
1267 | public void setInternalSystemProperties( Properties internalSystemProperties ) | |
1268 | { | |
1269 | 0 | this.internalSystemProperties = internalSystemProperties; |
1270 | 0 | } |
1271 | ||
1272 | public boolean isDisableXmlReport() | |
1273 | { | |
1274 | 0 | return disableXmlReport; |
1275 | } | |
1276 | ||
1277 | public void setDisableXmlReport( boolean disableXmlReport ) | |
1278 | { | |
1279 | 0 | this.disableXmlReport = disableXmlReport; |
1280 | 0 | } |
1281 | ||
1282 | public boolean isUseSystemClassLoader() | |
1283 | { | |
1284 | 0 | return useSystemClassLoader; |
1285 | } | |
1286 | ||
1287 | public void setUseSystemClassLoader( boolean useSystemClassLoader ) | |
1288 | { | |
1289 | 0 | this.useSystemClassLoader = useSystemClassLoader; |
1290 | 0 | } |
1291 | ||
1292 | public boolean isUseManifestOnlyJar() | |
1293 | { | |
1294 | 0 | return useManifestOnlyJar; |
1295 | } | |
1296 | ||
1297 | public void setUseManifestOnlyJar( boolean useManifestOnlyJar ) | |
1298 | { | |
1299 | 0 | this.useManifestOnlyJar = useManifestOnlyJar; |
1300 | 0 | } |
1301 | ||
1302 | public boolean isEnableAssertions() | |
1303 | { | |
1304 | 0 | return enableAssertions; |
1305 | } | |
1306 | ||
1307 | public void setEnableAssertions( boolean enableAssertions ) | |
1308 | { | |
1309 | 0 | this.enableAssertions = enableAssertions; |
1310 | 0 | } |
1311 | ||
1312 | public MavenSession getSession() | |
1313 | { | |
1314 | 0 | return session; |
1315 | } | |
1316 | ||
1317 | public void setSession( MavenSession session ) | |
1318 | { | |
1319 | 0 | this.session = session; |
1320 | 0 | } |
1321 | ||
1322 | public String getObjectFactory() | |
1323 | { | |
1324 | 0 | return objectFactory; |
1325 | } | |
1326 | ||
1327 | public void setObjectFactory( String objectFactory ) | |
1328 | { | |
1329 | 0 | this.objectFactory = objectFactory; |
1330 | 0 | } |
1331 | ||
1332 | public ToolchainManager getToolchainManager() | |
1333 | { | |
1334 | 0 | return toolchainManager; |
1335 | } | |
1336 | ||
1337 | public void setToolchainManager( ToolchainManager toolchainManager ) | |
1338 | { | |
1339 | 0 | this.toolchainManager = toolchainManager; |
1340 | 0 | } |
1341 | ||
1342 | public boolean isMavenParallel() | |
1343 | { | |
1344 | 0 | return parallelMavenExecution != null && parallelMavenExecution; |
1345 | } | |
1346 | ||
1347 | public String getRunOrder() | |
1348 | { | |
1349 | 0 | return runOrder; |
1350 | } | |
1351 | ||
1352 | public void setRunOrder( String runOrder ) | |
1353 | { | |
1354 | 0 | this.runOrder = runOrder; |
1355 | 0 | } |
1356 | ||
1357 | protected void addPluginSpecificChecksumItems( ChecksumCalculator checksum ) | |
1358 | { | |
1359 | 0 | } |
1360 | ||
1361 | public PluginDescriptor getPluginDescriptor() | |
1362 | { | |
1363 | 0 | return pluginDescriptor; |
1364 | } | |
1365 | ||
1366 | } |