You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2017/04/23 08:21:01 UTC

[3/3] maven-surefire git commit: [SUREFIRE-1366] mvn javadoc:javadoc fails on Javadoc syntax with JDK 1.8

[SUREFIRE-1366] mvn javadoc:javadoc fails on Javadoc syntax with JDK 1.8


Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/48198b1b
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/48198b1b
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/48198b1b

Branch: refs/heads/SUREFIRE-1366
Commit: 48198b1b4e4f4be6cff1f00c1a1cb332d14d65dd
Parents: cba4adb
Author: Tibor17 <ti...@lycos.com>
Authored: Sun Apr 23 10:20:35 2017 +0200
Committer: Tibor17 <ti...@lycos.com>
Committed: Sun Apr 23 10:20:36 2017 +0200

----------------------------------------------------------------------
 maven-failsafe-plugin/pom.xml                   |   9 ++
 .../plugin/failsafe/IntegrationTestMojo.java    | 147 +++++++++---------
 .../plugin/failsafe/xmlsummary/ErrorType.java   |   2 +-
 .../failsafe/xmlsummary/FailsafeSummary.java    |   2 +-
 .../failsafe/xmlsummary/ObjectFactory.java      |   2 +-
 .../plugin/surefire/AbstractSurefireMojo.java   |  99 ++++++------
 .../surefire/InPluginVMSurefireStarter.java     |   2 +-
 .../surefire/StartupReportConfiguration.java    |   6 +-
 .../surefire/SurefireExecutionParameters.java   |   1 -
 .../surefire/SurefireReportParameters.java      |   1 -
 .../surefire/booterclient/BooterSerializer.java |   4 +-
 .../booterclient/ForkConfiguration.java         |   3 +-
 .../surefire/booterclient/ForkStarter.java      |   4 +-
 .../surefire/booterclient/ProviderDetector.java |   1 -
 .../lazytestprovider/AbstractCommandStream.java |   4 +
 .../TestProvidingInputStream.java               |   6 +-
 .../output/DeserializedStacktraceWriter.java    |   2 +-
 .../booterclient/output/ForkClient.java         |   6 +-
 .../output/ThreadedStreamConsumer.java          |   4 +-
 .../report/ConsoleOutputFileReporter.java       |   2 +-
 .../surefire/report/DefaultReporterFactory.java |   4 +-
 .../surefire/report/DirectConsoleOutput.java    |   2 +-
 .../surefire/report/StatelessXmlReporter.java   |   5 +-
 .../surefire/report/TestSetRunListener.java     |   2 +-
 maven-surefire-plugin/pom.xml                   |   9 ++
 .../maven/plugin/surefire/SurefirePlugin.java   | 153 ++++++++++---------
 maven-surefire-report-plugin/pom.xml            |   9 ++
 pom.xml                                         |   8 +-
 .../surefire/booter/DumpErrorSingleton.java     |   2 +-
 .../surefire/booter/ForkingReporterFactory.java |   2 -
 .../surefire/booter/ForkingRunListener.java     |   6 +-
 .../surefire/booter/SurefireReflector.java      |   2 +-
 .../maven/surefire/cli/CommandLineOption.java   |   2 +-
 .../providerapi/ProviderParameters.java         |   8 +-
 .../surefire/providerapi/SurefireProvider.java  |  17 ++-
 .../surefire/report/ConsoleOutputCapture.java   |   2 +-
 .../report/LegacyPojoStackTraceWriter.java      |   1 -
 .../maven/surefire/report/ReportEntry.java      |   3 +-
 .../surefire/report/ReporterConfiguration.java  |   2 +-
 .../maven/surefire/report/RunListener.java      |   2 +-
 .../surefire/report/SimpleReportEntry.java      |  45 +++---
 .../apache/maven/surefire/suite/RunResult.java  |   2 +-
 .../maven/surefire/testset/ResolvedTest.java    |  25 ++-
 .../surefire/testset/TestListResolver.java      |   4 +-
 .../maven/surefire/testset/TestRequest.java     |   2 +
 .../testset/TestSetFailedException.java         |   2 +-
 .../util/internal/DaemonThreadFactory.java      |   1 +
 .../surefire/util/internal/DumpFileUtils.java   |   3 +
 .../surefire/util/internal/StringUtils.java     |  50 ++----
 .../surefire/testset/FundamentalFilterTest.java |   1 +
 .../surefire/booter/BooterDeserializer.java     |   4 +-
 .../apache/maven/surefire/booter/Classpath.java |   3 +
 .../surefire/booter/ClasspathConfiguration.java |   2 +-
 .../maven/surefire/booter/ForkedBooter.java     |   6 +-
 .../surefire/booter/IsolatedClassLoader.java    |   2 +-
 .../surefire/booter/ProviderConfiguration.java  |   2 +-
 .../maven/surefire/booter/ProviderFactory.java  |   2 +-
 .../surefire/booter/StartupConfiguration.java   |   2 +-
 .../its/IncludesExcludesFromFileIT.java         |   2 +-
 .../maven/surefire/its/UnicodeTestNamesIT.java  |   2 +-
 .../surefire/its/fixture/MavenLauncher.java     |   2 +-
 .../SurefireJUnit4IntegrationTestCase.java      |   2 +-
 .../surefire/its/fixture/SurefireLauncher.java  |   2 +-
 .../Surefire1024VerifyFailsafeIfTestedIT.java   |   2 +-
 .../jiras/Surefire1028UnableToRunSingleIT.java  |   8 +-
 ...onFilterableJUnitRunnerWithCategoriesIT.java |   2 +-
 .../jiras/Surefire1053SystemPropertiesIT.java   |   2 +-
 .../Surefire1080ParallelForkDoubleTestIT.java   |   6 +-
 ...urefire1082ParallelJUnitParameterizedIT.java |   2 +-
 .../its/jiras/Surefire1095NpeInRunListener.java |   7 +-
 .../jiras/Surefire1098BalancedRunOrderIT.java   |  14 +-
 .../Surefire1122ParallelAndFlakyTestsIT.java    |   2 +-
 ...Surefire1146RerunFailedAndParameterized.java |   2 +-
 .../jiras/Surefire1158RemoveInfoLinesIT.java    |   2 +-
 .../its/jiras/Surefire1202RerunAndSkipIT.java   |   2 +-
 .../jiras/Surefire1209RerunAndForkCountIT.java  |   2 +-
 .../its/jiras/Surefire1211JUnitTestNgIT.java    |   2 +-
 .../its/jiras/Surefire1260NewTestsPattern.java  |   2 +-
 .../surefire/its/jiras/Surefire1265Java9IT.java |   3 +-
 ...urefire649EmptyStringSystemPropertiesIT.java |   2 +-
 .../its/jiras/Surefire817SystemExitIT.java      |   2 +-
 ...refire855AllowFailsafeUseArtifactFileIT.java |   2 +-
 .../jiras/Surefire995CategoryInheritanceIT.java |   2 +-
 .../plugin/surefire/log/api/ConsoleLogger.java  |   7 +-
 .../common/junit48/JUnit46StackTraceWriter.java |   2 +-
 .../junitcore/ConcurrentRunListener.java        |   2 +-
 .../maven/surefire/junitcore/JUnitCore.java     |   2 +-
 .../surefire/junitcore/JUnitCoreParameters.java |   5 +-
 .../junitcore/JUnitCoreRunListener.java         |   2 +-
 .../maven/surefire/junitcore/TestMethod.java    |   2 +-
 .../maven/surefire/junitcore/ThreadSafe.java    |   2 +-
 .../maven/surefire/junitcore/pc/Balancer.java   |   2 +-
 .../surefire/junitcore/pc/BalancerFactory.java  |   3 +
 .../surefire/junitcore/pc/ExecutionStatus.java  |   2 +-
 .../junitcore/pc/ParallelComputerBuilder.java   |   3 +-
 .../maven/surefire/junitcore/pc/Scheduler.java  |  42 +++--
 .../junitcore/pc/SchedulingStrategies.java      |   2 +-
 .../junitcore/pc/SchedulingStrategy.java        |   8 +-
 .../junitcore/pc/SingleThreadScheduler.java     |   4 +-
 .../surefire/junitcore/pc/WrappedRunners.java   |   2 +-
 .../MavenSurefireJUnit47RunnerTest.java         |  14 +-
 .../MavenSurefireJUnit48RunnerTest.java         |  14 +-
 .../surefire/junitcore/Surefire746Test.java     |   2 +-
 .../junitcore/pc/SchedulingStrategiesTest.java  |   2 +-
 .../surefire/testng/utils/MethodSelector.java   |   1 -
 .../ConfigurationAwareTestNGReporter.java       |   1 -
 .../maven/surefire/testng/TestNGProvider.java   |   1 -
 .../maven/surefire/testng/TestNGReporter.java   |   5 +-
 .../testng/conf/TestNG4751Configurator.java     |   4 +-
 .../testng/conf/TestNG513Configurator.java      |   2 +-
 .../testng/conf/TestNG5143Configurator.java     |   2 +-
 .../testng/conf/TestNG52Configurator.java       |   4 +-
 .../testng/conf/TestNGMapConfigurator.java      |   2 +-
 113 files changed, 498 insertions(+), 432 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-failsafe-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/maven-failsafe-plugin/pom.xml b/maven-failsafe-plugin/pom.xml
index ed1d751..5f9c7f3 100644
--- a/maven-failsafe-plugin/pom.xml
+++ b/maven-failsafe-plugin/pom.xml
@@ -105,6 +105,15 @@
         </executions>
       </plugin>
       <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <compilerArgs>
+            <!-- -syntax due to HelpMojo -->
+            <arg>-Xdoclint:-syntax</arg>
+          </compilerArgs>
+        </configuration>
+      </plugin>
+      <plugin>
         <artifactId>maven-surefire-plugin</artifactId>
         <dependencies>
           <dependency>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java
----------------------------------------------------------------------
diff --git a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java
index 1ad317f..c8efff7 100644
--- a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java
+++ b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java
@@ -47,7 +47,6 @@ import static org.apache.maven.shared.utils.ReaderFactory.FILE_ENCODING;
  *
  * @author Jason van Zyl
  * @author Stephen Connolly
- * @noinspection JavaDoc,
  */
 @Mojo( name = "integration-test", requiresProject = true, requiresDependencyResolution = ResolutionScope.TEST,
              defaultPhase = LifecyclePhase.INTEGRATION_TEST, threadSafe = true )
@@ -60,7 +59,7 @@ public class IntegrationTestMojo
     /**
      * The path representing project <em>JAR</em> file, if exists; Otherwise the directory containing generated
      * classes of the project being tested. This will be included after the test classes in the test classpath.
-     * Defaults to built artifact <em>JAR</em> file or ${project.build.outputDirectory}.
+     * Defaults to built artifact <em>JAR</em> file or <em>${project.build.outputDirectory}</em>.
      */
     @Parameter
     private File classesDirectory;
@@ -84,24 +83,27 @@ public class IntegrationTestMojo
     private File reportsDirectory;
 
     /**
-     * Specify this parameter to run individual tests by file name, overriding the <code>includes/excludes</code>
+     * Specify this parameter to run individual tests by file name, overriding the <em>includes/excludes</em>
      * parameters. Each pattern you specify here will be used to create an include pattern formatted like
-     * <code>**&#47;${it.test}.java</code>, so you can just type "-Dit.test=MyIT" to run a single test called
-     * "foo/MyIT.java".<br/>
-     * This parameter overrides the <code>includes/excludes</code> parameters, and the TestNG <code>suiteXmlFiles</code>
+     * <em>**&#47;${it.test}.java</em>, so you can just type "-Dit.test=MyIT" to run a single test called
+     * "foo/MyIT.java".<br>
+     * This parameter overrides the <em>includes/excludes</em> parameters, and the TestNG <em>suiteXmlFiles</em>
      * parameter.
-     * <p/>
+     * <br>
      * Since 2.7.3 You can execute a limited number of methods in the test with adding #myMethod or #my*ethod. E.g. type
-     * "-Dit.test=MyIT#myMethod" <b>supported for junit 4.x and testNg</b>
-     * <br/>
-     * Since 2.19 a complex syntax is supported in one parameter (JUnit 4, JUnit 4.7+, TestNG):<br/>
-     * "-Dit.test=???IT, !Unstable*, pkg&#47;**&#47;Ci*leIT.java, *IT#test*One+testTwo?????, #fast*+slowTest"<br/>
-     * "-Dit.test=Basic*, !%regex[.*.Unstable.*], !%regex[.*.MyIT.class#one.*|two.*], %regex[#fast.*|slow.*]"<br/>
-     * <br/>
+     * <em>-Dit.test=MyIT#myMethod</em> <b>supported for junit 4.x and testNg.</b>
+     * <br>
+     * Since 2.19 a complex syntax is supported in one parameter (JUnit 4, JUnit 4.7+, TestNG):<br>
+     * <em>-Dit.test=???IT, !Unstable*, pkg&#47;**&#47;Ci*leIT.java, *IT#test*One+testTwo?????, #fast*+slowTest</em>
+     * <br>
+     * or e.g.
+     * <br>
+     * <em>-Dit.test=Basic*, !%regex[.*.Unstable.*], !%regex[.*.MyIT.class#one.*|two.*], %regex[#fast.*|slow.*]</em>
+     * <br>
+     * <br>
      * The Parameterized JUnit runner <em>describes</em> test methods using an index in brackets, so the non-regex
      * method pattern would become: <em>#testMethod[*]</em>. If using <em>@Parameters(name="{index}: fib({0})={1}")</em>
      * and selecting the index e.g. 5 in pattern, the non-regex method pattern would become <em>#testMethod[5:*]</em>.
-     * <br/>
      */
     @Parameter( property = "it.test" )
     private String test;
@@ -143,7 +145,7 @@ public class IntegrationTestMojo
     /**
      * Attach a debugger to the forked JVM. If set to "true", the process will suspend and wait for a debugger to attach
      * on port 5005. If set to some other string, that string will be appended to the argLine, allowing you to configure
-     * arbitrary debuggability options (without overwriting the other options specified through the <code>argLine</code>
+     * arbitrary debuggability options (without overwriting the other options specified through the <em>argLine</em>
      * parameter).
      *
      * @since 2.4
@@ -174,11 +176,11 @@ public class IntegrationTestMojo
 
     /**
      * Stop executing queued parallel JUnit tests after a certain number of seconds.
-     * <br/>
-     * Example values: "3.5", "4"<br/>
-     * <br/>
+     * <br>
+     * Example values: "3.5", "4"<br>
+     * <br>
      * If set to 0, wait forever, never timing out.
-     * Makes sense with specified <code>parallel</code> different from "none".
+     * Makes sense with specified <em>parallel</em> different from "none".
      *
      * @since 2.16
      */
@@ -188,11 +190,11 @@ public class IntegrationTestMojo
     /**
      * Stop executing queued parallel JUnit tests
      * and <em>interrupt</em> currently running tests after a certain number of seconds.
-     * <br/>
-     * Example values: "3.5", "4"<br/>
-     * <br/>
+     * <br>
+     * Example values: "3.5", "4"<br>
+     * <br>
      * If set to 0, wait forever, never timing out.
-     * Makes sense with specified <code>parallel</code> different from "none".
+     * Makes sense with specified <em>parallel</em> different from "none".
      *
      * @since 2.16
      */
@@ -200,26 +202,31 @@ public class IntegrationTestMojo
     private double parallelTestsTimeoutForcedInSeconds;
 
     /**
-     * A list of &lt;include> elements specifying the tests (by pattern) that should be included in testing. When not
-     * specified and when the <code>test</code> parameter is not specified, the default includes will be <code><br/>
-     * &lt;includes><br/>
-     * &nbsp;&lt;include>**&#47;IT*.java&lt;/include><br/>
-     * &nbsp;&lt;include>**&#47;*IT.java&lt;/include><br/>
-     * &nbsp;&lt;include>**&#47;*ITCase.java&lt;/include><br/>
-     * &lt;/includes><br/>
-     * </code>
-     * <p/>
+     * A list of &lt;include&gt; elements specifying the tests (by pattern) that should be included in testing. When not
+     * specified and when the <em>test</em> parameter is not specified, the default includes will be <br>
+     * <em>
+     * &lt;includes&gt;<br>
+     * &nbsp;&lt;include&gt;**&#47;IT*.java&lt;/include&gt;<br>
+     * &nbsp;&lt;include&gt;**&#47;*IT.java&lt;/include&gt;<br>
+     * &nbsp;&lt;include&gt;**&#47;*ITCase.java&lt;/include&gt;<br>
+     * &lt;/includes&gt;<br>
+     * </em>
+     * <br>
      * Each include item may also contain a comma-separated sublist of items, which will be treated as multiple
-     * &nbsp;&lt;include> entries.<br/>
-     * Since 2.19 a complex syntax is supported in one parameter (JUnit 4, JUnit 4.7+, TestNG):<br/>
-     * &nbsp;&lt;include>%regex[.*[Cat|Dog].*], Basic????, !Unstable*&lt;/include><br/>
-     * &nbsp;&lt;include>%regex[.*[Cat|Dog].*], !%regex[pkg.*Slow.*.class], pkg&#47;**&#47;*Fast*.java&lt;/include><br/>
-     * <p/>
-     * This parameter is ignored if the TestNG <code>suiteXmlFiles</code> parameter is specified.<br/>
-     * <br/>
+     * &nbsp;&lt;include&gt; entries.<br>
+     * Since 2.19 a complex syntax is supported in one parameter (JUnit 4, JUnit 4.7+, TestNG):<br>
+     * <em>
+     * &nbsp;&lt;include&gt;%regex[.*[Cat|Dog].*], Basic????, !Unstable*&lt;/include&gt;<br>
+     * &nbsp;&lt;include&gt;%regex[.*[Cat|Dog].*], !%regex[pkg.*Slow.*.class], pkg&#47;**&#47;*Fast*.java
+     * &lt;/include&gt;
+     * </em>
+     * <br>
+     * <br>
+     * This parameter is ignored if the TestNG <em>suiteXmlFiles</em> parameter is specified.<br>
+     * <br>
      * <em>Notice that</em> these values are relative to the directory containing generated test classes of the project
-     * being tested. This directory is declared by the parameter <code>testClassesDirectory</code> which defaults
-     * to the POM property <code>${project.build.testOutputDirectory}</code>, typically <em>src/test/java</em>
+     * being tested. This directory is declared by the parameter <em>testClassesDirectory</em> which defaults
+     * to the POM property <em>${project.build.testOutputDirectory}</em>, typically <em>src/test/java</em>
      * unless overridden.
      */
     @Parameter
@@ -241,7 +248,7 @@ public class IntegrationTestMojo
      * <a href="http://maven.apache.org/plugins/maven-failsafe-plugin/examples/class-loading.html">
      * http://maven.apache.org/plugins/maven-failsafe-plugin/examples/class-loading.html</a>
      * for a more detailed explanation of manifest-only JARs and their benefits.)
-     * <br/>
+     * <br>
      * Beware, setting this to "false" may cause your tests to fail on Windows if your classpath is too long.
      *
      * @since 2.4.3
@@ -265,10 +272,10 @@ public class IntegrationTestMojo
     private int rerunFailingTestsCount;
 
     /**
-     * (TestNG) List of &lt;suiteXmlFile> elements specifying TestNG suite xml file locations. Note that
-     * <code>suiteXmlFiles</code> is incompatible with several other parameters of this plugin, like
-     * <code>includes/excludes</code>.<br/>
-     * This parameter is ignored if the <code>test</code> parameter is specified (allowing you to run a single test
+     * (TestNG) List of &lt;suiteXmlFile&gt; elements specifying TestNG suite xml file locations. Note that
+     * <em>suiteXmlFiles</em> is incompatible with several other parameters of this plugin, like
+     * <em>includes/excludes</em>.<br>
+     * This parameter is ignored if the <em>test</em> parameter is specified (allowing you to run a single test
      * instead of an entire suite).
      *
      * @since 2.2
@@ -280,19 +287,19 @@ public class IntegrationTestMojo
      * Defines the order the tests will be run in. Supported values are "alphabetical", "reversealphabetical", "random",
      * "hourly" (alphabetical on even hours, reverse alphabetical on odd hours), "failedfirst", "balanced" and
      * "filesystem".
-     * <br/>
-     * <br/>
+     * <br>
+     * <br>
      * Odd/Even for hourly is determined at the time the of scanning the classpath, meaning it could change during a
      * multi-module build.
-     * <br/>
-     * <br/>
+     * <br>
+     * <br>
      * Failed first will run tests that failed on previous run first, as well as new tests for this run.
-     * <br/>
-     * <br/>
+     * <br>
+     * <br>
      * Balanced is only relevant with parallel=classes, and will try to optimize the run-order of the tests reducing the
      * overall execution time. Initially a statistics file is created and every next test run will reorder classes.
-     * <br/>
-     * <br/>
+     * <br>
+     * <br>
      * Note that the statistics are stored in a file named .surefire-XXXXXXXXX beside pom.xml, and should not be checked
      * into version control. The "XXXXX" is the SHA1 checksum of the entire surefire configuration, so different
      * configurations will have different statistics files, meaning if you change any config settings you will re-run
@@ -305,30 +312,34 @@ public class IntegrationTestMojo
 
     /**
      * A file containing include patterns. Blank lines, or lines starting with # are ignored. If {@code includes} are
-     * also specified, these patterns are appended. Example with path, simple and regex includes:<br/>
-     * &#042;&#047;it/*<br/>
-     * &#042;&#042;&#047;NotIncludedByDefault.java<br/>
-     * %regex[.*IT.*|.*Not.*]<br/>
+     * also specified, these patterns are appended. Example with path, simple and regex includes:<br>
+     * <em>
+     * &#042;&#047;it/*<br>
+     * &#042;&#042;&#047;NotIncludedByDefault.java<br>
+     * %regex[.*IT.*|.*Not.*]
+     * </em>
      */
     @Parameter( property = "failsafe.includesFile" )
     private File includesFile;
 
     /**
      * A file containing exclude patterns. Blank lines, or lines starting with # are ignored. If {@code excludes} are
-     * also specified, these patterns are appended. Example with path, simple and regex excludes:<br/>
-     * &#042;&#047;it/*<br/>
-     * &#042;&#042;&#047;DontRunIT.*<br/>
-     * %regex[.*IT.*|.*Not.*]<br/>
+     * also specified, these patterns are appended. Example with path, simple and regex excludes:<br>
+     * <em>
+     *     &#042;&#047;it/*<br>
+     *     &#042;&#042;&#047;DontRunIT.*<br>
+     *     %regex[.*IT.*|.*Not.*]
+     * </em>
      */
     @Parameter( property = "failsafe.excludesFile" )
     private File excludesFile;
 
     /**
      * Set to error/failure count in order to skip remaining tests.
-     * Due to race conditions in parallel/forked execution this may not be fully guaranteed.<br/>
+     * Due to race conditions in parallel/forked execution this may not be fully guaranteed.<br>
      * Enable with system property -Dfailsafe.skipAfterFailureCount=1 or any number greater than zero.
-     * Defaults to "0".<br/>
-     * See the prerequisites and limitations in documentation:<br/>
+     * Defaults to "0".<br>
+     * See the prerequisites and limitations in documentation:<br>
      * <a href="http://maven.apache.org/plugins/maven-failsafe-plugin/examples/skip-after-failure.html">
      * http://maven.apache.org/plugins/maven-failsafe-plugin/examples/skip-after-failure.html</a>
      *
@@ -340,9 +351,9 @@ public class IntegrationTestMojo
     /**
      * After the plugin process is shutdown by sending SIGTERM signal (CTRL+C), SHUTDOWN command is received by every
      * forked JVM. By default (shutdown=testset) forked JVM would not continue with new test which means that
-     * the current test may still continue to run.<br/>
-     * The parameter can be configured with other two values "exit" and "kill".<br/>
-     * Using "exit" forked JVM executes System.exit(1) after the plugin process has received SIGTERM signal.<br/>
+     * the current test may still continue to run.<br>
+     * The parameter can be configured with other two values "exit" and "kill".<br>
+     * Using "exit" forked JVM executes System.exit(1) after the plugin process has received SIGTERM signal.<br>
      * Using "kill" the JVM executes Runtime.halt(1) and kills itself.
      *
      * @since 2.19

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/ErrorType.java
----------------------------------------------------------------------
diff --git a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/ErrorType.java b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/ErrorType.java
index f301527..3fcddad 100644
--- a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/ErrorType.java
+++ b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/ErrorType.java
@@ -1 +1 @@
-package org.apache.maven.plugin.failsafe.xmlsummary;

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import javax.xml.bind.annotation.XmlType;
 
/**
 * <p>Java class for errorType.
 * <p/>
 * <p>The following schema fragment specifies the expected content contained within this class.
 * <p/>
 * <pre>
 * &lt;simpleType name="errorType">
 *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *     &lt;enumeration value="255"/>
 *     &lt;enumeration value="254"/>
 *   &lt;/restriction>
 * &lt;/simpleType>
 * </pre>
 */
@XmlType( name = "errorType" )
@XmlEnum( Integer.class )
public enum ErrorType
{

    @XmlEnumValue( "255" )
    FAILURE( 255 ),

    @XmlEnumValue( "254" )
    NO_TESTS( 254 );

    private final int value;

    ErrorType( int v )
    {
        value = v;
    }

    public static ErrorType fromValue( Integer v )
    {
        if ( v == null )
        {
            return null;
        }

        for ( ErrorType c : ErrorType.values() )
        {
            if ( c.value == v )
            {
                return c;
            }
        }
        throw new IllegalArgumentException( "" + v );
 
    }

    public int value()
    {
        return value;
    }

}
\ No newline at end of file
+package org.apache.maven.plugin.failsafe.xmlsummary;

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import javax.xml.bind.annotation.XmlType;
 
@SuppressWarnings( { "javadoc", "checkstyle:javadoctype" } )
/**
 * <p>Java class for errorType.
 * <br>
 * <p>The following schema fragment specifies the expected content contained within this class.
 * <br>
 * <pre>
 * &lt;simpleType name="errorType">
 *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *     &lt;enumeration value="255"/>
 *     &lt;enumeration value="254"/>
 *   &lt;/restriction>
 * &lt;/simpleType>
 * </pre>
 */
@XmlType( name = "errorType" )
@XmlEnum( Integer.class )
public enum ErrorType
{

    @XmlEnumValue( "255" )
    FAILURE( 255 ),

    @XmlEnumValue( "254" )
    NO_TESTS( 254 );

    private final int value;

    ErrorType( int v )
    {
        value = v;
    }

    public static ErrorType fromValue( Integer v )
    {
        if ( v == null )
        {
            return null;
        }

        for ( ErrorType c : ErrorType.values() )
        {
            if ( c.value == v )
            {
                return c;
            }
    
     }
        throw new IllegalArgumentException( "" + v );
    }

    public int value()
    {
        return value;
    }

}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/FailsafeSummary.java
----------------------------------------------------------------------
diff --git a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/FailsafeSummary.java b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/FailsafeSummary.java
index d20fd4f..cf476c2 100644
--- a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/FailsafeSummary.java
+++ b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/FailsafeSummary.java
@@ -1 +1 @@
-package org.apache.maven.plugin.failsafe.xmlsummary;

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.X
 mlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

import static java.util.Collections.emptyList;
import static org.apache.maven.plugin.failsafe.xmlsummary.ErrorType.FAILURE;
import static org.apache.maven.plugin.failsafe.xmlsummary.ErrorType.NO_TESTS;


/**
 * <p>Java class for anonymous complex type.
 * <p/>
 * <p>The following schema fragment specifies the expected content contained within this class.
 * <p/>
 * <pre>
 * &lt;complexType>
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="completed" type="{http://www.w3.org/2001/XMLSchema}int"/>
 *         &lt;element name="errors" type="{http://www.w3.org/2001/XMLSc
 hema}int"/>
 *         &lt;element name="failures" type="{http://www.w3.org/2001/XMLSchema}int"/>
 *         &lt;element name="skipped" type="{http://www.w3.org/2001/XMLSchema}int"/>
 *         &lt;element name="failureMessage" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *       &lt;/sequence>
 *       &lt;attribute name="result" type="{}errorType" />
 *       &lt;attribute name="timeout" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 */
@XmlAccessorType( XmlAccessType.FIELD )
@XmlType( name = "", propOrder = {
                                         "completed",
                                         "errors",
                                         "failures",
                                         "skipped",
                                         "failureMessage"
} )
@XmlRootElement( name = "failsafe-summary" )
public class FailsafeSummary
{
    private static fin
 al String ERROR_MSG_PREFIX = "org.apache.maven.surefire.booter.SurefireBooterForkException: ";
    private static final Pattern STACK_TRACE_ELEMENT1 = Pattern.compile( "^\\tat.*\\(.*\\.java\\:[\\d]+\\)$" );
    private static final Pattern STACK_TRACE_ELEMENT2 = Pattern.compile( "^\\tat.*\\(Native Method\\)$" );
    private static final Pattern STACK_TRACE_ELEMENT3 = Pattern.compile( "^Caused by\\: .*" );

    private int completed;

    private int errors;

    private int failures;

    private int skipped;

    @XmlElement( required = true, nillable = true )
    private String failureMessage;

    @XmlAttribute( name = "result" )
    private ErrorType result;

    @XmlAttribute( name = "timeout", required = true )
    private boolean timeout;

    /**
     * Gets the value of the completed property.
     */
    public int getCompleted()
    {
        return completed;
    }

    /**
     * Sets the value of the completed property.
     */
    public void setCompleted( int value )
 
    {
        this.completed = value;
    }

    /**
     * Gets the value of the errors property.
     */
    public int getErrors()
    {
        return errors;
    }

    /**
     * Sets the value of the errors property.
     */
    public void setErrors( int value )
    {
        this.errors = value;
    }

    /**
     * Gets the value of the failures property.
     */
    public int getFailures()
    {
        return failures;
    }

    /**
     * Sets the value of the failures property.
     */
    public void setFailures( int value )
    {
        this.failures = value;
    }

    /**
     * Gets the value of the skipped property.
     */
    public int getSkipped()
    {
        return skipped;
    }

    /**
     * Sets the value of the skipped property.
     */
    public void setSkipped( int value )
    {
        this.skipped = value;
    }

    /**
     * Gets the value of the failureMessage property.
     *
     * @return possible object is
     * {@link String }
   
   */
    public String getFailureMessage()
    {
        return failureMessage;
    }

    /**
     * Sets the value of the failureMessage property.
     *
     * @param value allowed object is
     *              {@link String }
     */
    public void setFailureMessage( String value )
    {
        this.failureMessage = value;
    }

    /**
     * Gets the value of the result property.
     *
     * @return possible object is
     * {@link ErrorType }
     */
    public ErrorType getResult()
    {
        return result;
    }

    /**
     * Sets the value of the result property.
     *
     * @param value allowed object is
     *              {@link ErrorType }
     */
    public void setResult( ErrorType value )
    {
        this.result = value;
    }

    /**
     * Gets the value of the timeout property.
     */
    public boolean isTimeout()
    {
        return timeout;
    }

    /**
     * Sets the value of the timeout property.
     */
    public void setTimeout( boolea
 n value )
    {
        this.timeout = value;
    }

    public boolean hasNoTests()
    {
        return getResult() == NO_TESTS;
    }

    public boolean isFailure()
    {
        return getResult() == FAILURE;
    }

    public List<String> extractExceptionMessageLines() throws IOException
    {
        if ( getFailureMessage() == null )
        {
            return emptyList();
        }

        List<String> msg = new ArrayList<String>();
        LineNumberReader reader = new LineNumberReader( new StringReader( getFailureMessage() ) );
        for ( @SuppressWarnings( "checkstyle:innerassignment" ) String line; ( line = reader.readLine() ) != null; )
        {
            if ( !STACK_TRACE_ELEMENT1.matcher( line ).matches()
                         && !STACK_TRACE_ELEMENT2.matcher( line ).matches()
                         && !STACK_TRACE_ELEMENT3.matcher( line ).matches() )
            {
                line = line.trim();
                msg.add( line.startsWith( ERROR_MSG_P
 REFIX ) ? line.substring( ERROR_MSG_PREFIX.length() ) : line );
            }
            else
            {
                break;
            }
        }
        return msg;
    }

    @Override
    public boolean equals( Object o )
    {
        if ( this == o )
        {
            return true;
        }

        if ( o == null || getClass() != o.getClass() )
        {
            return false;
        }

        FailsafeSummary summary = (FailsafeSummary) o;

        return getCompleted() == summary.getCompleted()
                       && getErrors() == summary.getErrors()
                       && getFailures() == summary.getFailures()
                       && getSkipped() == summary.getSkipped()
                       && isTimeout() == summary.isTimeout()
                       && equal( getFailureMessage(), summary.getFailureMessage() )
                       && getResult() == summary.getResult();
    }

    @Override
    public int hashCode()
    {
        int result1 = 
 getCompleted();
        result1 = 31 * result1 + getErrors();
        result1 = 31 * result1 + getFailures();
        result1 = 31 * result1 + getSkipped();
        result1 = 31 * result1 + ( getFailureMessage() != null ? getFailureMessage().hashCode() : 0 );
        result1 = 31 * result1 + ( getResult() != null ? getResult().hashCode() : 0 );
        result1 = 31 * result1 + ( isTimeout() ? 1 : 0 );
        return result1;
    }

    private boolean equal( String s1, String s2 )
    {
        return s1 == null ? s2 == null : s1.equals( s2 );
    }
}
\ No newline at end of file
+package org.apache.maven.plugin.failsafe.xmlsummary;

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.X
 mlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

import static java.util.Collections.emptyList;
import static org.apache.maven.plugin.failsafe.xmlsummary.ErrorType.FAILURE;
import static org.apache.maven.plugin.failsafe.xmlsummary.ErrorType.NO_TESTS;


@SuppressWarnings( { "javadoc", "checkstyle:javadoctype" } )
/**
 * <p>Java class for anonymous complex type.
 * <br>
 * <p>The following schema fragment specifies the expected content contained within this class.
 * <br>
 * <pre>
 * &lt;complexType>
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="completed" type="{http://www.w3.org/2001/XMLSchema}int"/>
 *         
 &lt;element name="errors" type="{http://www.w3.org/2001/XMLSchema}int"/>
 *         &lt;element name="failures" type="{http://www.w3.org/2001/XMLSchema}int"/>
 *         &lt;element name="skipped" type="{http://www.w3.org/2001/XMLSchema}int"/>
 *         &lt;element name="failureMessage" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *       &lt;/sequence>
 *       &lt;attribute name="result" type="{}errorType" />
 *       &lt;attribute name="timeout" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 */
@XmlAccessorType( XmlAccessType.FIELD )
@XmlType( name = "", propOrder = {
                                         "completed",
                                         "errors",
                                         "failures",
                                         "skipped",
                                         "failureMessage"
} )
@XmlRootElement( name = "failsafe-sum
 mary" )
public class FailsafeSummary
{
    private static final String ERROR_MSG_PREFIX = "org.apache.maven.surefire.booter.SurefireBooterForkException: ";
    private static final Pattern STACK_TRACE_ELEMENT1 = Pattern.compile( "^\\tat.*\\(.*\\.java\\:[\\d]+\\)$" );
    private static final Pattern STACK_TRACE_ELEMENT2 = Pattern.compile( "^\\tat.*\\(Native Method\\)$" );
    private static final Pattern STACK_TRACE_ELEMENT3 = Pattern.compile( "^Caused by\\: .*" );

    private int completed;

    private int errors;

    private int failures;

    private int skipped;

    @XmlElement( required = true, nillable = true )
    private String failureMessage;

    @XmlAttribute( name = "result" )
    private ErrorType result;

    @XmlAttribute( name = "timeout", required = true )
    private boolean timeout;

    /**
     * Gets the value of the completed property.
     *
     * @return number of tests completed
     */
    public int getCompleted()
    {
        return completed;
    
 }

    /**
     * Sets the value of the completed property.
     *
     * @param value    number of tests completed
     */
    public void setCompleted( int value )
    {
        this.completed = value;
    }

    /**
     * Gets the value of the errors property.
     *
     * @return number of errors
     */
    public int getErrors()
    {
        return errors;
    }

    /**
     * Sets the value of the errors property.
     *
     * @param value    number of errors
     */
    public void setErrors( int value )
    {
        this.errors = value;
    }

    /**
     * Gets the value of the failures property.
     *
     * @return number of failures
     */
    public int getFailures()
    {
        return failures;
    }

    /**
     * Sets the value of the failures property.
     *
     * @param value    number of failures
     */
    public void setFailures( int value )
    {
        this.failures = value;
    }

    /**
     * Gets the value of the skipped property.
     *
      * @return number of skipped tests
     */
    public int getSkipped()
    {
        return skipped;
    }

    /**
     * Sets the value of the skipped property.
     *
     * @param value    number of skipped tests
     */
    public void setSkipped( int value )
    {
        this.skipped = value;
    }

    /**
     * Gets the value of the failureMessage property.
     *
     * @return possible object is
     * {@link String }
     */
    public String getFailureMessage()
    {
        return failureMessage;
    }

    /**
     * Sets the value of the failureMessage property.
     *
     * @param value allowed object is
     *              {@link String }
     */
    public void setFailureMessage( String value )
    {
        this.failureMessage = value;
    }

    /**
     * Gets the value of the result property.
     *
     * @return possible object is
     * {@link ErrorType }
     */
    public ErrorType getResult()
    {
        return result;
    }

    /**
     * Sets 
 the value of the result property.
     *
     * @param value allowed object is
     *              {@link ErrorType }
     */
    public void setResult( ErrorType value )
    {
        this.result = value;
    }

    /**
     * Gets the value of the timeout property.
     *
     * @return {@code true} if timeout elapsed
     */
    public boolean isTimeout()
    {
        return timeout;
    }

    /**
     * Sets the value of the timeout property.
     *
     * @param value    {@code true} if timeout elapsed
     */
    public void setTimeout( boolean value )
    {
        this.timeout = value;
    }

    public boolean hasNoTests()
    {
        return getResult() == NO_TESTS;
    }

    public boolean isFailure()
    {
        return getResult() == FAILURE;
    }

    public List<String> extractExceptionMessageLines() throws IOException
    {
        if ( getFailureMessage() == null )
        {
            return emptyList();
        }

        List<String> msg = new ArrayList<St
 ring>();
        LineNumberReader reader = new LineNumberReader( new StringReader( getFailureMessage() ) );
        for ( @SuppressWarnings( "checkstyle:innerassignment" ) String line; ( line = reader.readLine() ) != null; )
        {
            if ( !STACK_TRACE_ELEMENT1.matcher( line ).matches()
                         && !STACK_TRACE_ELEMENT2.matcher( line ).matches()
                         && !STACK_TRACE_ELEMENT3.matcher( line ).matches() )
            {
                line = line.trim();
                msg.add( line.startsWith( ERROR_MSG_PREFIX ) ? line.substring( ERROR_MSG_PREFIX.length() ) : line );
            }
            else
            {
                break;
            }
        }
        return msg;
    }

    @Override
    public boolean equals( Object o )
    {
        if ( this == o )
        {
            return true;
        }

        if ( o == null || getClass() != o.getClass() )
        {
            return false;
        }

        FailsafeSummary su
 mmary = (FailsafeSummary) o;

        return getCompleted() == summary.getCompleted()
                       && getErrors() == summary.getErrors()
                       && getFailures() == summary.getFailures()
                       && getSkipped() == summary.getSkipped()
                       && isTimeout() == summary.isTimeout()
                       && equal( getFailureMessage(), summary.getFailureMessage() )
                       && getResult() == summary.getResult();
    }

    @Override
    public int hashCode()
    {
        int result1 = getCompleted();
        result1 = 31 * result1 + getErrors();
        result1 = 31 * result1 + getFailures();
        result1 = 31 * result1 + getSkipped();
        result1 = 31 * result1 + ( getFailureMessage() != null ? getFailureMessage().hashCode() : 0 );
        result1 = 31 * result1 + ( getResult() != null ? getResult().hashCode() : 0 );
        result1 = 31 * result1 + ( isTimeout() ? 1 : 0 );
        return result1;
    }

    
 private boolean equal( String s1, String s2 )
    {
        return s1 == null ? s2 == null : s1.equals( s2 );
    }
}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/ObjectFactory.java
----------------------------------------------------------------------
diff --git a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/ObjectFactory.java b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/ObjectFactory.java
index 7e1c252..906fa72 100644
--- a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/ObjectFactory.java
+++ b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/xmlsummary/ObjectFactory.java
@@ -1 +1 @@
-package org.apache.maven.plugin.failsafe.xmlsummary;

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import javax.xml.bind.annotation.XmlRegistry;


/**
 * This object contains factory methods for each
 * Java content interface and J
 ava element interface
 * generated in the org.apache.maven.surefire.suite package.
 * <p>An ObjectFactory allows you to programatically
 * construct new instances of the Java representation
 * for XML content. The Java representation of XML
 * content can consist of schema derived interfaces
 * and classes representing the binding of schema
 * type definitions, element declarations and model
 * groups.  Factory methods for each of these are
 * provided in this class.
 */
@XmlRegistry
public class ObjectFactory
{


    /**
     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package:
     * org.apache.maven.surefire.suite
     */
    public ObjectFactory()
    {
    }

    /**
     * Create an instance of {@link FailsafeSummary }
     */
    public FailsafeSummary createFailsafeSummary()
    {
        return new FailsafeSummary();
    }

}
\ No newline at end of file
+package org.apache.maven.plugin.failsafe.xmlsummary;

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import javax.xml.bind.annotation.XmlRegistry;


@SuppressWarnings( { "javadoc", "checkstyle:javadoctype" } )
/**
 * This object cont
 ains factory methods for each
 * Java content interface and Java element interface
 * generated in the org.apache.maven.surefire.suite package.
 * <p>An ObjectFactory allows you to programatically
 * construct new instances of the Java representation
 * for XML content. The Java representation of XML
 * content can consist of schema derived interfaces
 * and classes representing the binding of schema
 * type definitions, element declarations and model
 * groups.  Factory methods for each of these are
 * provided in this class.
 */
@XmlRegistry
public class ObjectFactory
{


    /**
     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package:
     * org.apache.maven.surefire.suite
     */
    @SuppressWarnings( "javadoc" )
    public ObjectFactory()
    {
    }

    /**
     * Create an instance of {@link FailsafeSummary }
     */
    @SuppressWarnings( "javadoc" )
    public FailsafeSummary createFailsafeSummary()
    {
        re
 turn new FailsafeSummary();
    }

}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
index f2c32d0..fb30cec 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
@@ -184,7 +184,7 @@ public abstract class AbstractSurefireMojo
     /**
      * A dependency scope to exclude from the test classpath. The scope should be one of the scopes defined by
      * org.apache.maven.artifact.Artifact. This includes the following:
-     * <p/>
+     * <br>
      * <ul>
      * <li><i>compile</i> - system, provided, compile
      * <li><i>runtime</i> - compile, runtime
@@ -215,22 +215,28 @@ public abstract class AbstractSurefireMojo
     private File testSourceDirectory;
 
     /**
-     * A list of &lt;exclude> elements specifying the tests (by pattern) that should be excluded in testing. When not
-     * specified and when the <code>test</code> parameter is not specified, the default excludes will be <code><br/>
-     * &lt;excludes><br/>
-     * &nbsp;&lt;exclude>**&#47;*$*&lt;/exclude><br/>
-     * &lt;/excludes><br/>
-     * </code> (which excludes all inner classes).<br>
-     * This parameter is ignored if the TestNG <code>suiteXmlFiles</code> parameter is specified.
-     * <p/>
+     * A list of &lt;exclude&gt; elements specifying the tests (by pattern) that should be excluded in testing. When not
+     * specified and when the <em>test</em> parameter is not specified, the default excludes will be <br>
+     *     <em>
+     *         &lt;excludes&gt;<br>
+     *             &nbsp;&lt;exclude&gt;**&#47;*$*&lt;/exclude&gt;<br>
+     *         &lt;/excludes&gt;
+     *     </em>
+     * <br>
+     * (which excludes all inner classes).<br>
+     * This parameter is ignored if the TestNG <em>suiteXmlFiles</em> parameter is specified.
+     * <br>
      * Each exclude item may also contain a comma-separated sublist of items, which will be treated as multiple
-     * &nbsp;&lt;exclude> entries.<br/>
-     * Since 2.19 a complex syntax is supported in one parameter (JUnit 4, JUnit 4.7+, TestNG):<br/>
-     * <exclude>%regex[pkg.*Slow.*.class], Unstable*</exclude><br/>
-     * <br/>
+     * &nbsp;&lt;exclude&gt; entries.<br>
+     * Since 2.19 a complex syntax is supported in one parameter (JUnit 4, JUnit 4.7+, TestNG):<br>
+     *     <em>
+     *         &lt;exclude&gt;%regex[pkg.*Slow.*.class], Unstable*&lt;/exclude&gt;
+     *     </em>
+     * <br>
+     * <br>
      * <em>Notice that</em> these values are relative to the directory containing generated test classes of the project
-     * being tested. This directory is declared by the parameter <code>testClassesDirectory</code> which defaults
-     * to the POM property <code>${project.build.testOutputDirectory}</code>, typically <em>src/test/java</em>
+     * being tested. This directory is declared by the parameter <em>testClassesDirectory</em> which defaults
+     * to the POM property <em>${project.build.testOutputDirectory}</em>, typically <em>src/test/java</em>
      * unless overridden.
      */
     @Parameter
@@ -320,12 +326,12 @@ public abstract class AbstractSurefireMojo
 
     /**
      * <strong>DEPRECATED</strong> since version 2.14. Use <code>forkCount</code> and <code>reuseForks</code> instead.
-     * <br/>
-     * <br/>
+     * <br>
+     * <br>
      * Option to specify the forking mode. Can be "never", "once", "always", "perthread". "none" and "pertest" are also
      * accepted for backwards compatibility. "always" forks for each test-class. "perthread" will create
      * <code>threadCount</code> parallel forks, each executing one test-class. See also parameter
-     * <code>reuseForks</code>.<br/>
+     * <code>reuseForks</code>.<br>
      *
      * @since 2.1
      */
@@ -353,15 +359,15 @@ public abstract class AbstractSurefireMojo
 
     /**
      * Arbitrary JVM options to set on the command line.
-     * <br/>
-     * <br/>
-     * Since the Version 2.17 using an alternate syntax for <em>argLine</em>, <pre>@{...}</pre> allows late replacement
+     * <br>
+     * <br>
+     * Since the Version 2.17 using an alternate syntax for <em>argLine</em>, <b>@{...}</b> allows late replacement
      * of properties when the plugin is executed, so properties that have been modified by other plugins will be picked
      * up correctly.
-     * See the Frequently Asked Questions page with more details:<br/>
+     * See the Frequently Asked Questions page with more details:<br>
      * <a href="http://maven.apache.org/surefire/maven-surefire-plugin/faq.html">
      *     http://maven.apache.org/surefire/maven-surefire-plugin/faq.html</a>
-     * <br/>
+     * <br>
      * <a href="http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html">
      *     http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html</a>
      *
@@ -388,7 +394,7 @@ public abstract class AbstractSurefireMojo
 
     /**
      * When false it makes tests run using the standard classloader delegation instead of the default Maven isolated
-     * classloader. Only used when forking (forkMode is not "none").<br/>
+     * classloader. Only used when forking (forkMode is not "none").<br>
      * Setting it to false helps with some problems caused by conflicts between xml parsers in the classpath and the
      * Java 5 provider parser.
      *
@@ -399,12 +405,12 @@ public abstract class AbstractSurefireMojo
 
     /**
      * (TestNG/JUnit47 provider with JUnit4.8+ only) Groups for this test. Only classes/methods/etc decorated with one
-     * of the groups specified here will be included in test run, if specified.<br/>
-     * For JUnit, this parameter forces the use of the 4.7 provider<br/>
-     * This parameter is ignored if the <code>suiteXmlFiles</code> parameter is specified.<br/>
-     * Since version 2.18.1 and JUnit 4.12, the <em>@Category<em> annotation type is automatically inherited from
+     * of the groups specified here will be included in test run, if specified.<br>
+     * For JUnit, this parameter forces the use of the 4.7 provider<br>
+     * This parameter is ignored if the <em>suiteXmlFiles</em> parameter is specified.<br>
+     * Since version 2.18.1 and JUnit 4.12, the <em>@Category</em> annotation type is automatically inherited from
      * superclasses, see <em>@java.lang.annotation.Inherited</em>. Make sure that test class inheritance still makes
-     * sense together with <em>@Category<em> annotation of the JUnit 4.12 or higher appeared in superclass.
+     * sense together with <em>@Category</em> annotation of the JUnit 4.12 or higher appeared in superclass.
      *
      * @since 2.2
      */
@@ -413,12 +419,12 @@ public abstract class AbstractSurefireMojo
 
     /**
      * (TestNG/JUnit47 provider with JUnit4.8+ only) Excluded groups. Any methods/classes/etc with one of the groups
-     * specified in this list will specifically not be run.<br/>
-     * For JUnit, this parameter forces the use of the 4.7 provider<br/>
-     * This parameter is ignored if the <code>suiteXmlFiles</code> parameter is specified.<br/>
-     * Since version 2.18.1 and JUnit 4.12, the <em>@Category<em> annotation type is automatically inherited from
+     * specified in this list will specifically not be run.<br>
+     * For JUnit, this parameter forces the use of the 4.7 provider.<br>
+     * This parameter is ignored if the <em>suiteXmlFiles</em> parameter is specified.<br>
+     * Since version 2.18.1 and JUnit 4.12, the <em>@Category</em> annotation type is automatically inherited from
      * superclasses, see <em>@java.lang.annotation.Inherited</em>. Make sure that test class inheritance still makes
-     * sense together with <em>@Category<em> annotation of the JUnit 4.12 or higher appeared in superclass.
+     * sense together with <em>@Category</em> annotation of the JUnit 4.12 or higher appeared in superclass.
      *
      * @since 2.2
      */
@@ -453,10 +459,10 @@ public abstract class AbstractSurefireMojo
     /**
      * Option to specify the number of VMs to fork in parallel in order to execute the tests. When terminated with "C",
      * the number part is multiplied with the number of CPU cores. Floating point value are only accepted together with
-     * "C". If set to "0", no VM is forked and all tests are executed within the main process.<br/>
-     * <br/>
-     * Example values: "1.5C", "4"<br/>
-     * <br/>
+     * "C". If set to "0", no VM is forked and all tests are executed within the main process.<br>
+     * <br>
+     * Example values: "1.5C", "4"<br>
+     * <br>
      * The system properties and the <code>argLine</code> of the forked processes may contain the place holder string
      * <code>${surefire.forkNumber}</code>, which is replaced with a fixed number for each of the parallel forks,
      * ranging from <code>1</code> to the effective value of <code>forkCount</code> times the maximum number of parallel
@@ -501,13 +507,13 @@ public abstract class AbstractSurefireMojo
      * (TestNG provider) When you use the <code>parallel</code> attribute, TestNG will try to run all your test methods
      * in separate threads, except for methods that depend on each other, which will be run in the same thread in order
      * to respect their order of execution.
-     * <p/>
+     * <br>
      * (JUnit 4.7 provider) Supports values "classes"/"methods"/"both" to run in separate threads, as controlled by
-     * <code>threadCount</code>.<br/>
-     * <br/>
+     * <code>threadCount</code>.<br>
+     * <br>
      * Since version 2.16 (JUnit 4.7 provider), the value "both" is <strong>DEPRECATED</strong>.
-     * Use <strong>"classesAndMethods"</strong> instead.<br/>
-     * <br/>
+     * Use <strong>"classesAndMethods"</strong> instead.<br>
+     * <br>
      * Since version 2.16 (JUnit 4.7 provider), additional vales are available
      * "suites"/"suitesAndClasses"/"suitesAndMethods"/"classesAndMethods"/"all".
      *
@@ -519,7 +525,7 @@ public abstract class AbstractSurefireMojo
     /**
      * (JUnit 4.7 / provider only) The thread counts do not exceed the number of parallel suite, class runners and
      * average number of methods per class if set to <strong>true</strong>.
-     * <p/>
+     * <br>
      * True by default.
      *
      * @since 2.17
@@ -723,6 +729,8 @@ public abstract class AbstractSurefireMojo
     /**
      * Calls {@link #getSuiteXmlFiles()} as {@link List list}.
      * Never returns <tt>null</tt>.
+     *
+     * @return list of TestNG suite XML files provided by MOJO
      */
     protected abstract List<File> suiteXmlFiles();
 
@@ -2838,9 +2846,6 @@ public abstract class AbstractSurefireMojo
         this.localRepository = localRepository;
     }
 
-    /**
-     * @noinspection deprecation
-     */
     public Properties getSystemProperties()
     {
         return systemProperties;

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/InPluginVMSurefireStarter.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/InPluginVMSurefireStarter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/InPluginVMSurefireStarter.java
index f0d299e..b97c192 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/InPluginVMSurefireStarter.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/InPluginVMSurefireStarter.java
@@ -35,7 +35,7 @@ import static org.apache.maven.surefire.booter.ProviderFactory.invokeProvider;
 
 /**
  * Starts the provider in the same VM as the surefire plugin.
- * <p/>
+ * <br>
  * This part of the booter is always guaranteed to be in the
  * same vm as the tests will be run in.
  *

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java
index 482ce00..d3cca28 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java
@@ -41,7 +41,7 @@ import static org.apache.maven.plugin.surefire.report.ConsoleReporter.PLAIN;
 
 /**
  * All the parameters used to construct reporters
- * <p/>
+ * <br>
  *
  * @author Kristian Rosenvold
  */
@@ -111,6 +111,8 @@ public final class StartupReportConfiguration
 
     /**
      * For testing purposes only.
+     *
+     * @return StartupReportConfiguration fo testing purposes
      */
     public static StartupReportConfiguration defaultValue()
     {
@@ -122,6 +124,8 @@ public final class StartupReportConfiguration
 
     /**
      * For testing purposes only.
+     *
+     * @return StartupReportConfiguration fo testing purposes
      */
     public static StartupReportConfiguration defaultNoXml()
     {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireExecutionParameters.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireExecutionParameters.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireExecutionParameters.java
index 96fb09e..240427f 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireExecutionParameters.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireExecutionParameters.java
@@ -27,7 +27,6 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
  * This interface contains all the common parameters that have different implementations in Surefire vs IntegrationTest
  *
  * @author Stephen Connolly
- * @noinspection UnusedDeclaration, UnusedDeclaration
  */
 public interface SurefireExecutionParameters
 {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireReportParameters.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireReportParameters.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireReportParameters.java
index 2999787..f345b46 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireReportParameters.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireReportParameters.java
@@ -25,7 +25,6 @@ import java.io.File;
  * The parameters required to report on a surefire execution.
  *
  * @author Stephen Connolly
- * @noinspection UnusedDeclaration
  */
 public interface SurefireReportParameters
 {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
index 114150d..0299525 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
@@ -44,12 +44,12 @@ import static org.apache.maven.surefire.booter.BooterConstants.*;
 
 /**
  * Knows how to serialize and deserialize the booter configuration.
- * <p/>
+ * <br>
  * The internal serialization format is through a properties file. The long-term goal of this
  * class is not to expose this implementation information to its clients. This still leaks somewhat,
  * and there are some cases where properties are being accessed as "Properties" instead of
  * more representative domain objects.
- * <p/>
+ * <br>
  *
  * @author Jason van Zyl
  * @author Emmanuel Venisse

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
index c56453a..8ff6768 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
@@ -129,6 +129,7 @@ public class ForkConfiguration
      * @param classPath            cla the classpath arguments
      * @param startupConfiguration The startup configuration
      * @param threadNumber         the thread number, to be the replacement in the argLine   @return A commandline
+     * @return CommandLine able to flush entire command going to be sent to forked JVM
      * @throws org.apache.maven.surefire.booter.SurefireBooterForkException
      *          when unable to perform the fork
      */
@@ -255,7 +256,7 @@ public class ForkConfiguration
      * Create a jar with just a manifest containing a Main-Class entry for BooterConfiguration and a Class-Path entry
      * for all classpath elements.
      *
-     * @param classPath      List&lt;String> of all classpath elements.
+     * @param classPath      List&lt;String&gt; of all classpath elements.
      * @param startClassName  The classname to start (main-class)
      * @return The file pointint to the jar
      * @throws java.io.IOException When a file operation fails.

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
index c46cfb6..7619d0b 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
@@ -101,9 +101,9 @@ import static org.apache.maven.surefire.util.internal.StringUtils.ISO_8859_1;
 
 /**
  * Starts the fork or runs in-process.
- * <p/>
+ * <br>
  * Lives only on the plugin-side (not present in remote vms)
- * <p/>
+ * <br>
  * Knows how to fork new vms and also how to delegate non-forking invocation to SurefireStarter directly
  *
  * @author Jason van Zyl

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ProviderDetector.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ProviderDetector.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ProviderDetector.java
index 3b93eff..3460e3e 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ProviderDetector.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ProviderDetector.java
@@ -28,7 +28,6 @@ import java.util.Set;
 /**
  * @author Stephen Conolly
  * @author Kristian Rosenvold
- * @noinspection UnusedDeclaration
  */
 public final class ProviderDetector
 {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/AbstractCommandStream.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/AbstractCommandStream.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/AbstractCommandStream.java
index 3531ccf..0bc2036 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/AbstractCommandStream.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/AbstractCommandStream.java
@@ -42,6 +42,7 @@ public abstract class AbstractCommandStream
 
     /**
      * Opposite to {@link #isClosed()}.
+     * @return {@code true} if not closed
      */
     protected boolean canContinue()
     {
@@ -51,6 +52,8 @@ public abstract class AbstractCommandStream
     /**
      * Possibly waiting for next command (see {@link #nextCommand()}) unless the stream is atomically
      * closed (see {@link #isClosed()} returns {@code true}) before this method has returned.
+     *
+     * @throws IOException stream error while waiting for notification regarding next test required by forked jvm
      */
     protected void beforeNextCommand()
         throws IOException
@@ -68,6 +71,7 @@ public abstract class AbstractCommandStream
         currentPos = 0;
     }
 
+    @Deprecated
     protected final MasterProcessCommand getLastCommand()
     {
         return lastCommand;

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
index 35cb2d4..bc26ab2 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
@@ -36,13 +36,13 @@ import static org.apache.maven.surefire.booter.Command.toShutdown;
 
 /**
  * An {@link java.io.InputStream} that, when read, provides test class names out of a queue.
- * <p/>
+ * <br>
  * The Stream provides only one test at a time, but only after {@link #provideNewTest()} has been invoked.
- * <p/>
+ * <br>
  * After providing each test class name, followed by a newline character, a flush is performed on the
  * {@link FlushReceiver} provided by the {@link FlushReceiverProvider} that can be set using
  * {@link #setFlushReceiverProvider(FlushReceiverProvider)}.
- * <p/>
+ * <br>
  * The instance is used only in reusable forks in {@link org.apache.maven.plugin.surefire.booterclient.ForkStarter}
  * by one Thread.
  *

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/DeserializedStacktraceWriter.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/DeserializedStacktraceWriter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/DeserializedStacktraceWriter.java
index b5a53b4..d7a01b6 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/DeserializedStacktraceWriter.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/DeserializedStacktraceWriter.java
@@ -25,7 +25,7 @@ import org.apache.maven.surefire.report.StackTraceWriter;
 /**
  * Represents a deserialize stacktracewriter that has been
  * marshalled across to the plugin from the fork.
- * <p/>
+ * <br>
  * Might be better to represent this whole thing differently
  *
  * @author Kristian Rosenvold

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
index b02ae54..0b31a83 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
@@ -90,7 +90,7 @@ public class ForkClient
     private final Queue<String> testsInProgress = new ConcurrentLinkedQueue<String>();
 
     /**
-     * <t>testSetStartedAt</t> is set to non-zero after received
+     * <em>testSetStartedAt</em> is set to non-zero after received
      * {@link org.apache.maven.surefire.booter.ForkingRunListener#BOOTERCODE_TESTSET_STARTING test-set}.
      */
     private final AtomicLong testSetStartedAt = new AtomicLong( START_TIME_ZERO );
@@ -131,6 +131,10 @@ public class ForkClient
 
     /**
      * Called in concurrent Thread.
+     * Will shutdown if timeout was reached.
+     *
+     * @param currentTimeMillis    current time in millis seconds
+     * @param forkedProcessTimeoutInSeconds timeout in seconds given by MOJO
      */
     public final void tryToTimeout( long currentTimeMillis, int forkedProcessTimeoutInSeconds )
     {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java
index 972eaa7..85e1c9e 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java
@@ -63,10 +63,10 @@ public final class ThreadedStreamConsumer
         }
 
         /**
-         * Calls {@link ForkClient#consumeLine(String)} which may throw any {@link RuntimeException}.<p/>
+         * Calls {@link ForkClient#consumeLine(String)} which may throw any {@link RuntimeException}.<br>
          * Even if {@link ForkClient} is not fault-tolerant, this method MUST be fault-tolerant and thus the
          * try-catch block must be inside of the loop which prevents from loosing events from {@link StreamConsumer}.
-         * <p/>
+         * <br>
          * If {@link org.apache.maven.plugin.surefire.report.ConsoleOutputFileReporter#writeTestOutput} throws
          * {@link java.io.IOException} and then <em>target.consumeLine()</em> throws any RuntimeException, this method
          * MUST NOT skip reading the events from the forked JVM; otherwise we could simply lost events

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java
index 35ee965..84cbabe 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java
@@ -31,7 +31,7 @@ import static org.apache.maven.plugin.surefire.report.FileReporter.getReportFile
 
 /**
  * Surefire output consumer proxy that writes test output to a {@link java.io.File} for each test suite.
- * <p/>
+ * <br>
  * This class is not threadsafe, but can be serially handed off from thread to thread.
  *
  * @author Kristian Rosenvold

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java
index 3b8d765..bbc9591 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java
@@ -56,7 +56,7 @@ import static org.apache.maven.surefire.util.internal.ObjectUtils.useNonNull;
 
 /**
  * Provides reporting modules on the plugin side.
- * <p/>
+ * <br>
  * Keeps a centralized count of test run results.
  *
  * @author Kristian Rosenvold
@@ -209,6 +209,8 @@ public class DefaultReporterFactory
 
     /**
      * For testing purposes only.
+     *
+     * @return DefaultReporterFactory for testing purposes
      */
     public static DefaultReporterFactory defaultNoXml()
     {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DirectConsoleOutput.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DirectConsoleOutput.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DirectConsoleOutput.java
index ab33cb8..acc19ba 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DirectConsoleOutput.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DirectConsoleOutput.java
@@ -30,7 +30,7 @@ import static java.nio.charset.Charset.defaultCharset;
 
 /**
  * Outputs test system out/system err directly to the console
- * <p/>
+ * <br>
  * Just a step on the road to getting the separation of reporting concerns
  * operating properly.
  *

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
index d10151a..aa858f2 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
@@ -47,13 +47,14 @@ import static org.apache.maven.plugin.surefire.report.FileReporterUtils.stripIll
 import static org.apache.maven.surefire.util.internal.StringUtils.UTF_8;
 import static org.apache.maven.surefire.util.internal.StringUtils.isBlank;
 
+@SuppressWarnings( { "javadoc", "checkstyle:javadoctype" } )
 // CHECKSTYLE_OFF: LineLength
 /**
  * XML format reporter writing to <code>TEST-<i>reportName</i>[-<i>suffix</i>].xml</code> file like written and read
  * by Ant's <a href="http://ant.apache.org/manual/Tasks/junit.html"><code>&lt;junit&gt;</code></a> and
  * <a href="http://ant.apache.org/manual/Tasks/junitreport.html"><code>&lt;junitreport&gt;</code></a> tasks,
  * then supported by many tools like CI servers.
- * <p/>
+ * <br>
  * <pre>&lt;?xml version="1.0" encoding="UTF-8"?>
  * &lt;testsuite name="<i>suite name</i>" [group="<i>group</i>"] tests="<i>0</i>" failures="<i>0</i>" errors="<i>0</i>" skipped="<i>0</i>" time="<i>0,###.###</i>">
  *  &lt;properties>
@@ -453,7 +454,7 @@ public class StatelessXmlReporter
 
     /**
      * Adds system properties to the XML report.
-     * <p/>
+     * <br>
      *
      * @param xmlWriter The test suite to report to
      */

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
index 472586b..eea8a7e 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
@@ -37,7 +37,7 @@ import static org.apache.maven.plugin.surefire.report.ReportEntryType.SUCCESS;
 
 /**
  * Reports data for a single test set.
- * <p/>
+ * <br>
  *
  * @author Kristian Rosenvold
  */

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/48198b1b/maven-surefire-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/maven-surefire-plugin/pom.xml b/maven-surefire-plugin/pom.xml
index 62ec4a7..07871bd 100644
--- a/maven-surefire-plugin/pom.xml
+++ b/maven-surefire-plugin/pom.xml
@@ -92,6 +92,15 @@
         </executions>
       </plugin>
       <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <compilerArgs>
+            <!-- -syntax due to HelpMojo -->
+            <arg>-Xdoclint:-syntax</arg>
+          </compilerArgs>
+        </configuration>
+      </plugin>
+      <plugin>
         <artifactId>maven-surefire-plugin</artifactId>
         <dependencies>
           <dependency>