diff --git a/0001-Port-to-TestNG-7.4.0.patch b/0001-Port-to-TestNG-7.4.0.patch index be0600e..78588ac 100644 --- a/0001-Port-to-TestNG-7.4.0.patch +++ b/0001-Port-to-TestNG-7.4.0.patch @@ -1,33 +1,249 @@ -From 2506b32ba90ef0e336f088e7aa8c12d3273ba242 Mon Sep 17 00:00:00 2001 +From 5656f9c533dfd7087af7475cb274afcc26f10c02 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 10 Jul 2017 10:37:50 +0200 -Subject: [PATCH 1/4] Port to TestNG 7.4.0 +Subject: [PATCH 1/2] Port to TestNG 7.4.0 --- - pom.xml | 2 +- - surefire-providers/surefire-testng/pom.xml | 1 - - .../maven/surefire/testng/conf/AbstractDirectConfigurator.java | 2 +- - .../maven/surefire/testng/conf/TestNGMapConfigurator.java | 2 +- - 4 files changed, 3 insertions(+), 4 deletions(-) + pom.xml | 2 +- + .../surefire-testng-utils/pom.xml | 1 - + .../java/testng/utils/MethodSelectorTest.java | 106 ++++++++++++++++-- + surefire-providers/surefire-testng/pom.xml | 1 - + .../maven/surefire/testng/TestNGReporter.java | 4 - + .../conf/AbstractDirectConfigurator.java | 2 +- + .../testng/conf/TestNGMapConfigurator.java | 9 +- + .../surefire/testng/TestNGReporterTest.java | 4 +- + .../conf/TestNGMapConfiguratorTest.java | 6 +- + 9 files changed, 104 insertions(+), 31 deletions(-) diff --git a/pom.xml b/pom.xml -index cb15de8f7..2f9a061e7 100644 +index 46ed3c60a..36fbdc5df 100644 --- a/pom.xml +++ b/pom.xml -@@ -97,7 +97,7 @@ +@@ -98,7 +98,7 @@ 3.3.4 2.0.9 - 0.8.11 + 0.8.12 - 5.11 + 7.4.0 ${project.version} scm:git:https://gitbox.apache.org/repos/asf/maven-surefire.git surefire-archives/surefire-LATEST +diff --git a/surefire-providers/surefire-testng-utils/pom.xml b/surefire-providers/surefire-testng-utils/pom.xml +index 19d6d0334..4e86fb9dc 100644 +--- a/surefire-providers/surefire-testng-utils/pom.xml ++++ b/surefire-providers/surefire-testng-utils/pom.xml +@@ -47,7 +47,6 @@ + org.testng + testng + ${testngVersion} +- jdk15 + provided + + +diff --git a/surefire-providers/surefire-testng-utils/src/test/java/testng/utils/MethodSelectorTest.java b/surefire-providers/surefire-testng-utils/src/test/java/testng/utils/MethodSelectorTest.java +index c0e7838bd..5f180624d 100644 +--- a/surefire-providers/surefire-testng-utils/src/test/java/testng/utils/MethodSelectorTest.java ++++ b/surefire-providers/surefire-testng-utils/src/test/java/testng/utils/MethodSelectorTest.java +@@ -19,6 +19,10 @@ + package testng.utils; + + import java.lang.reflect.Method; ++import java.util.Collections; ++import java.util.List; ++import java.util.Map; ++import java.util.concurrent.Callable; + + import junit.framework.TestCase; + import org.apache.maven.surefire.api.testset.TestListResolver; +@@ -27,7 +31,11 @@ + import org.testng.IRetryAnalyzer; + import org.testng.ITestClass; + import org.testng.ITestNGMethod; ++import org.testng.ITestResult; ++import org.testng.internal.ConstructorOrMethod; + import org.testng.internal.DefaultMethodSelectorContext; ++import org.testng.internal.reflect.ReflectionHelper; ++import org.testng.xml.XmlTest; + + /** + * +@@ -65,16 +73,26 @@ public void testInclusionOfMethodFromSubClass() { + } + + private static class FakeTestNGMethod implements ITestNGMethod { ++ private final ConstructorOrMethod consMethod; + private final Class clazz; + private final String methodName; + + FakeTestNGMethod(Class clazz, String methodName) { ++ ConstructorOrMethod temp = null; ++ Method[] methods = ReflectionHelper.getLocalMethods(clazz); ++ for (Method method : methods) { ++ if (method.getName().equalsIgnoreCase(methodName)) { ++ temp = new ConstructorOrMethod(method); ++ break; ++ } ++ } + this.clazz = clazz; + this.methodName = methodName; ++ this.consMethod = temp; + } + + @Override +- public Class getRealClass() { ++ public Class getRealClass() { + return clazz; + } + +@@ -86,19 +104,14 @@ public ITestClass getTestClass() { + @Override + public void setTestClass(ITestClass iTestClass) {} + +- @Override +- public Method getMethod() { +- return null; +- } +- + @Override + public String getMethodName() { + return methodName; + } + + @Override +- public Object[] getInstances() { +- return new Object[0]; ++ public Object getInstance() { ++ return null; + } + + @Override +@@ -202,6 +215,9 @@ public long getTimeOut() { + return 0; + } + ++ @Override ++ public void setTimeOut(long timeOut) {} ++ + @Override + public int getInvocationCount() { + return 0; +@@ -249,11 +265,19 @@ public int getThreadPoolSize() { + @Override + public void setThreadPoolSize(int i) {} + ++ @Override ++ public boolean getEnabled() { ++ return false; ++ } ++ + @Override + public String getDescription() { + return null; + } + ++ @Override ++ public void setDescription(String description) {} ++ + @Override + public void incrementCurrentInvocationCount() {} + +@@ -270,6 +294,14 @@ public int getParameterInvocationCount() { + return 0; + } + ++ @Override ++ public void setMoreInvocationChecker(Callable moreInvocationChecker) {} ++ ++ @Override ++ public boolean hasMoreInvocation() { ++ return false; ++ } ++ + @Override + public ITestNGMethod clone() { + try { +@@ -280,12 +312,17 @@ public ITestNGMethod clone() { + } + + @Override +- public IRetryAnalyzer getRetryAnalyzer() { ++ public IRetryAnalyzer getRetryAnalyzer(ITestResult result) { ++ return null; ++ } ++ ++ @Override ++ public Class getRetryAnalyzerClass() { + return null; + } + + @Override +- public void setRetryAnalyzer(IRetryAnalyzer iRetryAnalyzer) {} ++ public void setRetryAnalyzerClass(Class clazz) {} + + @Override + public boolean skipFailedInvocations() { +@@ -309,8 +346,55 @@ public boolean ignoreMissingDependencies() { + public void setIgnoreMissingDependencies(boolean b) {} + + @Override +- public int compareTo(Object o) { ++ public List getInvocationNumbers() { ++ return Collections.emptyList(); ++ } ++ ++ @Override ++ public void setInvocationNumbers(List numbers) {} ++ ++ @Override ++ public void addFailedInvocationNumber(int number) {} ++ ++ @Override ++ public List getFailedInvocationNumbers() { ++ return Collections.emptyList(); ++ } ++ ++ @Override ++ public int getPriority() { ++ return 0; ++ } ++ ++ @Override ++ public void setPriority(int priority) {} ++ ++ @Override ++ public int getInterceptedPriority() { + return 0; + } ++ ++ @Override ++ public void setInterceptedPriority(int priority) {} ++ ++ @Override ++ public XmlTest getXmlTest() { ++ return null; ++ } ++ ++ @Override ++ public ConstructorOrMethod getConstructorOrMethod() { ++ return consMethod; ++ } ++ ++ @Override ++ public Map findMethodParameters(XmlTest test) { ++ return test.getLocalParameters(); ++ } ++ ++ @Override ++ public String getQualifiedName() { ++ return null; ++ } + } + } diff --git a/surefire-providers/surefire-testng/pom.xml b/surefire-providers/surefire-testng/pom.xml -index c7633d60c..00f22400c 100644 +index e180a41ac..72ac6bad5 100644 --- a/surefire-providers/surefire-testng/pom.xml +++ b/surefire-providers/surefire-testng/pom.xml -@@ -56,7 +56,6 @@ +@@ -57,7 +57,6 @@ org.testng testng ${testngVersion} @@ -35,8 +251,23 @@ index c7633d60c..00f22400c 100644 provided +diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java +index ec887b792..3021a4049 100644 +--- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java ++++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java +@@ -59,10 +59,6 @@ public class TestNGReporter + /** + * Constructs a new instance that will listen to + * test updates from a {@link org.testng.TestNG} class instance. +- *
+- *
It is assumed that the requisite {@link org.testng.TestNG#addListener(ITestListener)} +- * method call has already associated with this instance before the test +- * suite is run. + * + * @param reportManager Instance to report suite status to + */ diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java -index b73b9bacd..ab187b6d5 100644 +index b73b9bacd..6ab5a626d 100644 --- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java +++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java @@ -57,7 +57,7 @@ public void configure(TestNG testng, Map options) throws TestSet @@ -44,15 +275,29 @@ index b73b9bacd..ab187b6d5 100644 configureInstance(testng, options); // TODO: we should have the Profile so that we can decide if this is needed or not - testng.setListenerClasses(loadListenerClasses(listeners)); -+ testng.setListenerClasses((List)loadListenerClasses(listeners)); ++ testng.setListenerClasses((List) loadListenerClasses(listeners)); } @Override diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNGMapConfigurator.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNGMapConfigurator.java -index d91e76afc..06dbd2316 100755 +index d91e76afc..4bb4fe0b0 100755 --- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNGMapConfigurator.java +++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNGMapConfigurator.java -@@ -71,7 +71,7 @@ protected void configureThreadCount(XmlSuite suite, Map options) +@@ -33,12 +33,7 @@ + + /** + * TestNG configurator for 5.3+ versions. TestNG exposes a {@link org.testng.TestNG#configure(java.util.Map)} method. +- * All supported TestNG options are passed in String format, except +- * {@link org.testng.TestNGCommandLineArgs#LISTENER_COMMAND_OPT} which is {@link java.util.List List>Class<}, +- * {@link org.testng.TestNGCommandLineArgs#JUNIT_DEF_OPT} which is a {@link Boolean}, +- * {@link org.testng.TestNGCommandLineArgs#SKIP_FAILED_INVOCATION_COUNT_OPT} which is a {@link Boolean}, +- * {@link org.testng.TestNGCommandLineArgs#OBJECT_FACTORY_COMMAND_OPT} which is a {@link Class}, +- * {@link org.testng.TestNGCommandLineArgs#REPORTERS_LIST} which is a {@link java.util.List List>ReporterConfig<}. ++ * All supported TestNG options are passed in String format. + *
+ * Test classes and/or suite files are not passed along as options parameters, but configured separately. + * +@@ -71,7 +66,7 @@ protected void configureThreadCount(XmlSuite suite, Map options) protected void configureParallel(XmlSuite suite, Map options) throws TestSetFailedException { String parallel = options.get(PARALLEL_PROP); if (parallel != null) { @@ -61,6 +306,52 @@ index d91e76afc..06dbd2316 100755 } } +diff --git a/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/TestNGReporterTest.java b/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/TestNGReporterTest.java +index 514ecf9f8..5b201d765 100644 +--- a/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/TestNGReporterTest.java ++++ b/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/TestNGReporterTest.java +@@ -129,7 +129,7 @@ public void testOnTestFailure() { + + ITestResult testResult = mock(ITestResult.class); + when(testResult.getThrowable()).thenReturn(stackTrace); +- when(cls.getRealClass()).thenReturn(getClass()); ++ when((Object) cls.getRealClass()).thenReturn(getClass()); + when(testResult.getTestClass()).thenReturn(cls); + when(testResult.getMethod()).thenReturn(method); + when(testResult.getName()).thenReturn("myTest"); +@@ -200,7 +200,7 @@ public void testOnTestFailedButWithinSuccessPercentage() { + + ITestResult testResult = mock(ITestResult.class); + when(testResult.getThrowable()).thenReturn(stackTrace); +- when(cls.getRealClass()).thenReturn(getClass()); ++ when((Object) cls.getRealClass()).thenReturn(getClass()); + when(testResult.getTestClass()).thenReturn(cls); + when(testResult.getMethod()).thenReturn(method); + when(testResult.getName()).thenReturn("myTest"); +diff --git a/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/conf/TestNGMapConfiguratorTest.java b/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/conf/TestNGMapConfiguratorTest.java +index 097a74d1e..8b34db85d 100755 +--- a/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/conf/TestNGMapConfiguratorTest.java ++++ b/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/conf/TestNGMapConfiguratorTest.java +@@ -24,7 +24,7 @@ + + import junit.framework.TestCase; + import org.apache.maven.surefire.api.testset.TestSetFailedException; +-import org.testng.ReporterConfig; ++import org.testng.internal.ReporterConfig; + + /** + * @author Kristian Rosenvold +@@ -62,8 +62,8 @@ public void testGroupByInstances() throws Exception { + + public void testReporter() throws Exception { + Map convertedOptions = getConvertedOptions("reporter", "classname"); +- List reporter = (List) convertedOptions.get("-reporterslist"); +- ReporterConfig reporterConfig = reporter.get(0); ++ String reporter = (String) convertedOptions.get("-reporterslist"); ++ ReporterConfig reporterConfig = ReporterConfig.deserialize(reporter); + assertEquals("classname", reporterConfig.getClassName()); + } + -- -2.44.0 +2.47.0 diff --git a/0002-Unshade-surefire.patch b/0002-Unshade-surefire.patch new file mode 100644 index 0000000..b50473c --- /dev/null +++ b/0002-Unshade-surefire.patch @@ -0,0 +1,2040 @@ +From baf95099bc61a6e5eed9172576b4de175cbad6f1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Tue, 1 Oct 2024 22:01:47 +0200 +Subject: [PATCH 2/2] Unshade surefire + +--- + maven-failsafe-plugin/pom.xml | 26 ++++--------- + .../maven/plugin/failsafe/VerifyMojo.java | 2 +- + .../util/FailsafeSummaryXmlUtils.java | 6 +-- + maven-surefire-common/pom.xml | 37 +++++++++++-------- + .../plugin/surefire/AbstractSurefireMojo.java | 22 +++++------ + .../surefire/StartupReportConfiguration.java | 2 +- + .../maven/plugin/surefire/SurefireHelper.java | 2 +- + .../plugin/surefire/SurefireProperties.java | 2 +- + .../maven/plugin/surefire/TestClassPath.java | 2 +- + .../ClasspathForkConfiguration.java | 2 +- + .../DefaultForkConfiguration.java | 2 +- + .../surefire/booterclient/ForkStarter.java | 4 +- + .../JarManifestForkConfiguration.java | 8 ++-- + .../ModularClasspathForkConfiguration.java | 2 +- + .../lazytestprovider/Commandline.java | 6 +-- + .../extensions/SurefireForkChannel.java | 4 +- + .../surefire/report/ConsoleReporter.java | 4 +- + .../report/DefaultReporterFactory.java | 4 +- + .../plugin/surefire/report/FileReporter.java | 2 +- + .../surefire/report/FileReporterUtils.java | 2 +- + .../surefire/report/StatelessXmlReporter.java | 8 ++-- + .../plugin/surefire/report/TestSetStats.java | 4 +- + .../surefire/report/WrappedReportEntry.java | 2 +- + .../plugin/surefire/util/FileScanner.java | 2 +- + .../plugin/surefire/util/ScannerUtil.java | 2 +- + .../surefire/util/SpecificFileFilter.java | 2 +- + .../maven/surefire/stream/EventDecoder.java | 2 +- + .../surefire/AbstractSurefireMojoTest.java | 6 +-- + .../plugin/surefire/SurefireHelperTest.java | 2 +- + .../booterclient/ForkConfigurationTest.java | 22 +++++------ + .../booterclient/ForkStarterTest.java | 6 +-- + .../JarManifestForkConfigurationTest.java | 2 +- + ...ModularClasspathForkConfigurationTest.java | 2 +- + .../lazytestprovider/CommandlineTest.java | 4 +- + .../report/DefaultReporterFactoryTest.java | 2 +- + .../report/StatelessXmlReporterTest.java | 6 +-- + .../surefire/report/TestSetStatsTest.java | 2 +- + .../StatelessTestsetInfoReporterTest.java | 2 +- + .../report/ConsoleOutputFileReporterTest.java | 2 +- + maven-surefire-report-plugin/pom.xml | 31 +++++++++------- + pom.xml | 1 - + surefire-api/pom.xml | 18 ++++++--- + .../maven/surefire/api/booter/Command.java | 2 +- + .../api/filter/SpecificTestClassFilter.java | 2 +- + .../api/report/CategorizedReportEntry.java | 2 +- + .../report/LegacyPojoStackTraceWriter.java | 2 +- + .../api/stream/AbstractStreamDecoder.java | 2 +- + .../surefire/api/testset/ResolvedTest.java | 14 +++---- + .../api/testset/TestListResolver.java | 10 ++--- + .../api/util/DefaultDirectoryScanner.java | 4 +- + .../api/util/internal/ClassMethod.java | 2 +- + .../api/util/internal/ObjectUtils.java | 4 +- + .../api/util/internal/ObjectUtilsTest.java | 4 +- + surefire-booter/pom.xml | 28 +++++++++++--- + .../maven/surefire/booter/CommandReader.java | 4 +- + .../maven/surefire/booter/ForkedBooter.java | 2 +- + .../maven/surefire/booter/PpidChecker.java | 10 ++--- + .../surefire/booter/ProcessCheckerType.java | 2 +- + .../surefire/booter/PropertiesWrapper.java | 2 +- + .../booter/SurefireBooterForkException.java | 2 +- + .../maven/surefire/booter/SystemUtils.java | 14 +++---- + .../booter/stream/CommandDecoder.java | 2 +- + .../surefire/booter/ForkedBooterMockTest.java | 2 +- + .../booter/IsolatedClassLoaderTest.java | 2 +- + .../surefire/booter/NewClassLoaderRunner.java | 2 +- + .../surefire/booter/PpidCheckerTest.java | 4 +- + .../surefire/booter/SystemUtilsTest.java | 12 +++--- + surefire-extensions-api/pom.xml | 14 ++++--- + .../extensions/ConsoleOutputReporter.java | 2 +- + .../extensions/StatelessReporter.java | 2 +- + .../extensions/util/CommandlineExecutor.java | 8 ++-- + .../extensions/CommandlineExecutorTest.java | 4 +- + surefire-grouper/pom.xml | 4 +- + surefire-its/pom.xml | 10 ----- + surefire-providers/common-java5/pom.xml | 5 +-- + .../report/SmartStackTraceParser.java | 4 +- + surefire-providers/common-junit4/pom.xml | 9 ++--- + .../junit4/JUnit4RunListenerFactory.java | 2 +- + surefire-providers/common-junit48/pom.xml | 9 ++--- + .../common/junit48/FilterFactory.java | 2 +- + .../common/junit48/FilterFactoryTest.java | 2 +- + .../surefire-junit-platform/pom.xml | 17 +++++++-- + .../junitplatform/JUnitPlatformProvider.java | 4 +- + .../junitplatform/RunListenerAdapter.java | 2 +- + surefire-providers/surefire-junit3/pom.xml | 11 +++--- + .../surefire/junit/JUnitTestSetTest.java | 4 +- + surefire-providers/surefire-testng/pom.xml | 9 ++--- + .../testng/TestNGDirectoryTestSuite.java | 2 +- + .../maven/surefire/testng/TestNGExecutor.java | 2 +- + surefire-report-parser/pom.xml | 5 +++ + 90 files changed, 282 insertions(+), 258 deletions(-) + +diff --git a/maven-failsafe-plugin/pom.xml b/maven-failsafe-plugin/pom.xml +index 0d371c294..4332be577 100644 +--- a/maven-failsafe-plugin/pom.xml ++++ b/maven-failsafe-plugin/pom.xml +@@ -45,6 +45,14 @@ + + + ++ ++ org.apache.commons ++ commons-lang3 ++ ++ ++ org.apache.maven.shared ++ maven-shared-utils ++ + + org.apache.maven.surefire + surefire-api +@@ -60,24 +68,11 @@ + surefire-extensions-api + ${project.version} + +- +- org.apache.maven.surefire +- surefire-shared-utils +- ${project.version} +- + + org.apache.maven.surefire + maven-surefire-common + ${project.version} + +- +- org.apache.maven.plugins +- maven-surefire-plugin +- ${project.version} +- site-source +- zip +- provided +- + + org.apache.maven + maven-plugin-api +@@ -108,11 +103,6 @@ + mockito-core + test + +- +- org.codehaus.plexus +- plexus-xml +- test +- + + + +diff --git a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/VerifyMojo.java b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/VerifyMojo.java +index cef6391ec..546d963e8 100644 +--- a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/VerifyMojo.java ++++ b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/VerifyMojo.java +@@ -39,8 +39,8 @@ + import org.codehaus.plexus.logging.Logger; + + import static org.apache.maven.plugin.surefire.SurefireHelper.reportExecution; ++import static org.apache.maven.shared.utils.StringUtils.capitalizeFirstLetter; + import static org.apache.maven.surefire.api.suite.RunResult.noTestsRun; +-import static org.apache.maven.surefire.shared.utils.StringUtils.capitalizeFirstLetter; + + /** + * Verify integration tests ran using Failsafe. +diff --git a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/util/FailsafeSummaryXmlUtils.java b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/util/FailsafeSummaryXmlUtils.java +index fac986b39..bd50a01d2 100644 +--- a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/util/FailsafeSummaryXmlUtils.java ++++ b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/util/FailsafeSummaryXmlUtils.java +@@ -39,9 +39,9 @@ + import static java.lang.String.format; + import static java.nio.charset.StandardCharsets.UTF_8; + import static javax.xml.xpath.XPathConstants.NODE; +-import static org.apache.maven.surefire.shared.lang3.StringEscapeUtils.escapeXml10; +-import static org.apache.maven.surefire.shared.lang3.StringEscapeUtils.unescapeXml; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; ++import static org.apache.commons.lang3.StringEscapeUtils.escapeXml10; ++import static org.apache.commons.lang3.StringEscapeUtils.unescapeXml; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; + + /** + * @author Tibor Digana (tibor17) +diff --git a/maven-surefire-common/pom.xml b/maven-surefire-common/pom.xml +index eb1d57549..547acb951 100644 +--- a/maven-surefire-common/pom.xml ++++ b/maven-surefire-common/pom.xml +@@ -32,6 +32,28 @@ + API used in Surefire and Failsafe MOJO. + + ++ ++ org.powermock ++ powermock-reflect ++ test ++ ++ ++ org.hamcrest ++ hamcrest ++ test ++ ++ ++ org.apache.commons ++ commons-lang3 ++ ++ ++ org.apache.maven.shared ++ maven-shared-utils ++ ++ ++ org.apache.commons ++ commons-compress ++ + + org.apache.maven.surefire + surefire-api +@@ -113,16 +135,6 @@ + org.eclipse.sisu.plexus + provided + +- +- org.fusesource.jansi +- jansi +- provided +- +- +- org.apache.maven.surefire +- surefire-shared-utils +- ${surefire-shared-utils.version} +- + + com.google.code.findbugs + jsr305 +@@ -154,11 +166,6 @@ + runtime + test + +- +- org.codehaus.plexus +- plexus-xml +- test +- + + commons-io + commons-io +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 67e0cb60f..3d082d6e8 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 +@@ -81,6 +81,7 @@ + import org.apache.maven.plugins.annotations.Parameter; + import org.apache.maven.project.MavenProject; + import org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter; ++import org.apache.maven.shared.utils.io.FileUtils; + import org.apache.maven.surefire.api.booter.ProviderParameterNames; + import org.apache.maven.surefire.api.booter.Shutdown; + import org.apache.maven.surefire.api.cli.CommandLineOption; +@@ -110,7 +111,6 @@ + import org.apache.maven.surefire.providerapi.ProviderDetector; + import org.apache.maven.surefire.providerapi.ProviderInfo; + import org.apache.maven.surefire.providerapi.ProviderRequirements; +-import org.apache.maven.surefire.shared.utils.io.FileUtils; + import org.apache.maven.toolchain.DefaultToolchain; + import org.apache.maven.toolchain.Toolchain; + import org.apache.maven.toolchain.ToolchainManager; +@@ -129,12 +129,22 @@ + import static java.util.Collections.emptyList; + import static java.util.Collections.singletonList; + import static java.util.Collections.singletonMap; ++import static org.apache.commons.lang3.JavaVersion.JAVA_RECENT; ++import static org.apache.commons.lang3.StringUtils.substringBeforeLast; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.apache.maven.plugin.surefire.AbstractSurefireMojo.PluginFailureReason.COULD_NOT_RUN_DEFAULT_TESTS; + import static org.apache.maven.plugin.surefire.AbstractSurefireMojo.PluginFailureReason.COULD_NOT_RUN_SPECIFIED_TESTS; + import static org.apache.maven.plugin.surefire.AbstractSurefireMojo.PluginFailureReason.NONE; + import static org.apache.maven.plugin.surefire.SurefireDependencyResolver.isWithinVersionSpec; + import static org.apache.maven.plugin.surefire.SurefireHelper.replaceThreadNumberPlaceholders; + import static org.apache.maven.plugin.surefire.util.DependencyScanner.filter; ++import static org.apache.maven.shared.utils.StringUtils.capitalizeFirstLetter; ++import static org.apache.maven.shared.utils.StringUtils.isEmpty; ++import static org.apache.maven.shared.utils.StringUtils.isNotBlank; ++import static org.apache.maven.shared.utils.StringUtils.isNotEmpty; ++import static org.apache.maven.shared.utils.StringUtils.split; ++import static org.apache.maven.shared.utils.cli.ShutdownHookUtils.addShutDownHook; ++import static org.apache.maven.shared.utils.cli.ShutdownHookUtils.removeShutdownHook; + import static org.apache.maven.surefire.api.booter.ProviderParameterNames.EXCLUDE_JUNIT5_ENGINES_PROP; + import static org.apache.maven.surefire.api.booter.ProviderParameterNames.INCLUDE_JUNIT5_ENGINES_PROP; + import static org.apache.maven.surefire.api.suite.RunResult.failure; +@@ -145,16 +155,6 @@ + import static org.apache.maven.surefire.booter.SystemUtils.isJava9AtLeast; + import static org.apache.maven.surefire.booter.SystemUtils.toJdkHomeFromJvmExec; + import static org.apache.maven.surefire.booter.SystemUtils.toJdkVersionFromReleaseFile; +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_RECENT; +-import static org.apache.maven.surefire.shared.lang3.StringUtils.substringBeforeLast; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS; +-import static org.apache.maven.surefire.shared.utils.StringUtils.capitalizeFirstLetter; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isEmpty; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotBlank; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotEmpty; +-import static org.apache.maven.surefire.shared.utils.StringUtils.split; +-import static org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils.addShutDownHook; +-import static org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils.removeShutdownHook; + + /** + * Abstract base class for running tests using Surefire. +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 89e6614f3..bffeb11af 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,10 +41,10 @@ + import org.apache.maven.surefire.extensions.StatelessTestsetInfoFileReportEventListener; + + import static java.nio.charset.StandardCharsets.UTF_8; ++import static org.apache.commons.lang3.StringUtils.trimToNull; + import static org.apache.maven.plugin.surefire.SurefireHelper.replaceForkThreadsInPath; + import static org.apache.maven.plugin.surefire.report.ConsoleReporter.BRIEF; + import static org.apache.maven.plugin.surefire.report.ConsoleReporter.PLAIN; +-import static org.apache.maven.surefire.shared.lang3.StringUtils.trimToNull; + + /** + * All the parameters used to construct reporters +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireHelper.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireHelper.java +index 6285506c7..ab0628d9f 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireHelper.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireHelper.java +@@ -38,6 +38,7 @@ + import org.apache.maven.surefire.booter.SurefireBooterForkException; + + import static java.util.Collections.unmodifiableList; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.apache.maven.surefire.api.booter.DumpErrorSingleton.DUMPSTREAM_FILE_EXT; + import static org.apache.maven.surefire.api.booter.DumpErrorSingleton.DUMP_FILE_EXT; + import static org.apache.maven.surefire.api.cli.CommandLineOption.LOGGING_LEVEL_DEBUG; +@@ -46,7 +47,6 @@ + import static org.apache.maven.surefire.api.cli.CommandLineOption.LOGGING_LEVEL_WARN; + import static org.apache.maven.surefire.api.cli.CommandLineOption.SHOW_ERRORS; + import static org.apache.maven.surefire.api.util.internal.DumpFileUtils.newFormattedDateFileName; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS; + + /** + * Helper class for surefire plugins +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java +index 6aeef18f0..5259aff5a 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java +@@ -33,9 +33,9 @@ + import java.util.Properties; + import java.util.Set; + ++import org.apache.maven.shared.utils.StringUtils; + import org.apache.maven.surefire.booter.Classpath; + import org.apache.maven.surefire.booter.KeyValueSource; +-import org.apache.maven.surefire.shared.utils.StringUtils; + + import static java.util.Arrays.asList; + import static java.util.Map.Entry; +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/TestClassPath.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/TestClassPath.java +index d86910342..feb2b6025 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/TestClassPath.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/TestClassPath.java +@@ -28,7 +28,7 @@ + import org.apache.maven.surefire.booter.Classpath; + + import static java.util.Collections.addAll; +-import static org.apache.maven.surefire.shared.utils.StringUtils.split; ++import static org.apache.maven.shared.utils.StringUtils.split; + + final class TestClassPath { + private final Iterable artifacts; +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ClasspathForkConfiguration.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ClasspathForkConfiguration.java +index 16b4800da..3fff286d2 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ClasspathForkConfiguration.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ClasspathForkConfiguration.java +@@ -32,7 +32,7 @@ + import org.apache.maven.surefire.booter.SurefireBooterForkException; + import org.apache.maven.surefire.extensions.ForkNodeFactory; + +-import static org.apache.maven.surefire.shared.utils.StringUtils.join; ++import static org.apache.maven.shared.utils.StringUtils.join; + + /** + * @author Tibor Digana (tibor17) +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/DefaultForkConfiguration.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/DefaultForkConfiguration.java +index d78f6807d..5c9056742 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/DefaultForkConfiguration.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/DefaultForkConfiguration.java +@@ -31,13 +31,13 @@ + import org.apache.maven.plugin.surefire.JdkAttributes; + import org.apache.maven.plugin.surefire.booterclient.lazytestprovider.Commandline; + import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; ++import org.apache.maven.shared.utils.cli.CommandLineException; + import org.apache.maven.surefire.api.util.internal.ImmutableMap; + import org.apache.maven.surefire.booter.AbstractPathConfiguration; + import org.apache.maven.surefire.booter.Classpath; + import org.apache.maven.surefire.booter.StartupConfiguration; + import org.apache.maven.surefire.booter.SurefireBooterForkException; + import org.apache.maven.surefire.extensions.ForkNodeFactory; +-import org.apache.maven.surefire.shared.utils.cli.CommandLineException; + + import static org.apache.maven.plugin.surefire.SurefireHelper.replaceForkThreadsInPath; + import static org.apache.maven.plugin.surefire.SurefireHelper.replaceThreadNumberPlaceholders; +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 c612861eb..cf3278fb8 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 +@@ -95,6 +95,8 @@ + import static org.apache.maven.plugin.surefire.booterclient.ForkNumberBucket.drawNumber; + import static org.apache.maven.plugin.surefire.booterclient.ForkNumberBucket.returnNumber; + import static org.apache.maven.plugin.surefire.booterclient.lazytestprovider.TestLessInputStream.TestLessInputStreamBuilder; ++import static org.apache.maven.shared.utils.cli.ShutdownHookUtils.addShutDownHook; ++import static org.apache.maven.shared.utils.cli.ShutdownHookUtils.removeShutdownHook; + import static org.apache.maven.surefire.api.cli.CommandLineOption.SHOW_ERRORS; + import static org.apache.maven.surefire.api.suite.RunResult.SUCCESS; + import static org.apache.maven.surefire.api.suite.RunResult.failure; +@@ -104,8 +106,6 @@ + import static org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.newDaemonThreadFactory; + import static org.apache.maven.surefire.api.util.internal.StringUtils.NL; + import static org.apache.maven.surefire.booter.SystemPropertyManager.writePropertiesFile; +-import static org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils.addShutDownHook; +-import static org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils.removeShutdownHook; + + /** + * Starts the fork or runs in-process. +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/JarManifestForkConfiguration.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/JarManifestForkConfiguration.java +index a13de8fb8..3ea47f1cf 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/JarManifestForkConfiguration.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/JarManifestForkConfiguration.java +@@ -38,6 +38,9 @@ + import java.util.jar.Manifest; + import java.util.zip.Deflater; + ++import org.apache.commons.compress.archivers.zip.Zip64Mode; ++import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; ++import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; + import org.apache.maven.plugin.surefire.booterclient.lazytestprovider.Commandline; + import org.apache.maven.plugin.surefire.booterclient.output.InPluginProcessDumpSingleton; + import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; +@@ -46,17 +49,14 @@ + import org.apache.maven.surefire.booter.StartupConfiguration; + import org.apache.maven.surefire.booter.SurefireBooterForkException; + import org.apache.maven.surefire.extensions.ForkNodeFactory; +-import org.apache.maven.surefire.shared.compress.archivers.zip.Zip64Mode; +-import org.apache.maven.surefire.shared.compress.archivers.zip.ZipArchiveEntry; +-import org.apache.maven.surefire.shared.compress.archivers.zip.ZipArchiveOutputStream; + + import static java.nio.charset.StandardCharsets.UTF_8; + import static java.nio.file.Files.isDirectory; + import static org.apache.maven.plugin.surefire.SurefireHelper.escapeToPlatformPath; + import static org.apache.maven.plugin.surefire.booterclient.JarManifestForkConfiguration.ClasspathElementUri.absolute; + import static org.apache.maven.plugin.surefire.booterclient.JarManifestForkConfiguration.ClasspathElementUri.relative; ++import static org.apache.maven.shared.utils.StringUtils.isNotBlank; + import static org.apache.maven.surefire.api.util.internal.StringUtils.NL; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotBlank; + + /** + * @author Tibor Digana (tibor17) +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java +index 5a2576117..ef13fdb8d 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java +@@ -45,8 +45,8 @@ + + import static java.io.File.pathSeparatorChar; + import static org.apache.maven.plugin.surefire.SurefireHelper.escapeToPlatformPath; ++import static org.apache.maven.shared.utils.StringUtils.replace; + import static org.apache.maven.surefire.api.util.internal.StringUtils.NL; +-import static org.apache.maven.surefire.shared.utils.StringUtils.replace; + + /** + * @author Tibor Digana (tibor17) +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/Commandline.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/Commandline.java +index 651e80ca3..4377d5c40 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/Commandline.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/Commandline.java +@@ -24,16 +24,16 @@ + import java.util.Set; + import java.util.concurrent.ConcurrentLinkedDeque; + +-import org.apache.maven.surefire.shared.utils.cli.CommandLineUtils; ++import org.apache.maven.shared.utils.cli.CommandLineUtils; + + import static java.util.Collections.addAll; + + /** +- * A {@link org.apache.maven.surefire.shared.utils.cli.Commandline} implementation. ++ * A {@link org.apache.maven.shared.utils.cli.Commandline} implementation. + * + * @author Andreas Gudian + */ +-public class Commandline extends org.apache.maven.surefire.shared.utils.cli.Commandline { ++public class Commandline extends org.apache.maven.shared.utils.cli.Commandline { + private final Collection excludedEnvironmentVariables; + private final Set addedEnvironmentVariables; + +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java +index c58d3ee16..03d4b8f41 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java +@@ -55,13 +55,13 @@ + import static java.nio.channels.AsynchronousChannelGroup.withThreadPool; + import static java.nio.channels.AsynchronousServerSocketChannel.open; + import static java.nio.charset.StandardCharsets.US_ASCII; ++import static org.apache.commons.lang3.StringUtils.isBlank; ++import static org.apache.commons.lang3.StringUtils.isNotBlank; + import static org.apache.maven.surefire.api.util.internal.Channels.newBufferedChannel; + import static org.apache.maven.surefire.api.util.internal.Channels.newChannel; + import static org.apache.maven.surefire.api.util.internal.Channels.newInputStream; + import static org.apache.maven.surefire.api.util.internal.Channels.newOutputStream; + import static org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.newDaemonThreadFactory; +-import static org.apache.maven.surefire.shared.lang3.StringUtils.isBlank; +-import static org.apache.maven.surefire.shared.lang3.StringUtils.isNotBlank; + + /** + * The TCP/IP server accepting only one client connection. The forked JVM connects to the server using the +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleReporter.java +index f6645e6ca..325b49719 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleReporter.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleReporter.java +@@ -22,13 +22,13 @@ + + import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; + import org.apache.maven.plugin.surefire.log.api.Level; ++import org.apache.maven.shared.utils.logging.MessageBuilder; + import org.apache.maven.surefire.api.report.TestSetReportEntry; + import org.apache.maven.surefire.extensions.StatelessTestsetInfoConsoleReportEventListener; +-import org.apache.maven.surefire.shared.utils.logging.MessageBuilder; + + import static org.apache.maven.plugin.surefire.log.api.Level.resolveLevel; + import static org.apache.maven.plugin.surefire.report.TestSetStats.concatenateWithTestGroup; +-import static org.apache.maven.surefire.shared.utils.logging.MessageUtils.buffer; ++import static org.apache.maven.shared.utils.logging.MessageUtils.buffer; + + /** + * Base class for console reporters. +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 cde479eac..1984912e2 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 +@@ -31,6 +31,7 @@ + import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; + import org.apache.maven.plugin.surefire.log.api.Level; + import org.apache.maven.plugin.surefire.runorder.StatisticsReporter; ++import org.apache.maven.shared.utils.logging.MessageBuilder; + import org.apache.maven.surefire.api.report.ReporterFactory; + import org.apache.maven.surefire.api.report.StackTraceWriter; + import org.apache.maven.surefire.api.report.TestOutputReportEntry; +@@ -41,7 +42,6 @@ + import org.apache.maven.surefire.extensions.StatelessTestsetInfoConsoleReportEventListener; + import org.apache.maven.surefire.extensions.StatelessTestsetInfoFileReportEventListener; + import org.apache.maven.surefire.report.RunStatistics; +-import org.apache.maven.surefire.shared.utils.logging.MessageBuilder; + + import static org.apache.maven.plugin.surefire.log.api.Level.resolveLevel; + import static org.apache.maven.plugin.surefire.report.ConsoleReporter.PLAIN; +@@ -54,8 +54,8 @@ + import static org.apache.maven.plugin.surefire.report.ReportEntryType.ERROR; + import static org.apache.maven.plugin.surefire.report.ReportEntryType.FAILURE; + import static org.apache.maven.plugin.surefire.report.ReportEntryType.SUCCESS; ++import static org.apache.maven.shared.utils.logging.MessageUtils.buffer; + import static org.apache.maven.surefire.api.util.internal.ObjectUtils.useNonNull; +-import static org.apache.maven.surefire.shared.utils.logging.MessageUtils.buffer; + + /** + * Provides reporting modules on the plugin side. +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporter.java +index dfafeb531..8f2c137b7 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporter.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporter.java +@@ -31,7 +31,7 @@ + import org.apache.maven.surefire.extensions.StatelessTestsetInfoFileReportEventListener; + + import static org.apache.maven.plugin.surefire.report.FileReporterUtils.stripIllegalFilenameChars; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotBlank; ++import static org.apache.maven.shared.utils.StringUtils.isNotBlank; + + /** + * Base class for file reporters. +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java +index fb54edaeb..aebd48e01 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java +@@ -18,7 +18,7 @@ + */ + package org.apache.maven.plugin.surefire.report; + +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS; + + /** + * Utils class for file-based reporters +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 7724b1210..ef6a5e9d2 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 +@@ -36,18 +36,18 @@ + import java.util.concurrent.ConcurrentLinkedDeque; + + import org.apache.maven.plugin.surefire.booterclient.output.InPluginProcessDumpSingleton; ++import org.apache.maven.shared.utils.xml.PrettyPrintXMLWriter; ++import org.apache.maven.shared.utils.xml.XMLWriter; + import org.apache.maven.surefire.api.report.SafeThrowable; + import org.apache.maven.surefire.extensions.StatelessReportEventListener; +-import org.apache.maven.surefire.shared.utils.xml.PrettyPrintXMLWriter; +-import org.apache.maven.surefire.shared.utils.xml.XMLWriter; + + import static java.nio.charset.StandardCharsets.UTF_8; + import static org.apache.maven.plugin.surefire.report.DefaultReporterFactory.TestResultType; + import static org.apache.maven.plugin.surefire.report.FileReporterUtils.stripIllegalFilenameChars; + import static org.apache.maven.plugin.surefire.report.ReportEntryType.SKIPPED; + import static org.apache.maven.plugin.surefire.report.ReportEntryType.SUCCESS; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotBlank; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.StringUtils.isNotBlank; + + // CHECKSTYLE_OFF: LineLength + /** +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetStats.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetStats.java +index 1431d8fde..e29e4275d 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetStats.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetStats.java +@@ -24,11 +24,11 @@ + import java.util.Queue; + import java.util.concurrent.ConcurrentLinkedQueue; + ++import org.apache.maven.shared.utils.logging.MessageBuilder; + import org.apache.maven.surefire.api.report.ReportEntry; +-import org.apache.maven.surefire.shared.utils.logging.MessageBuilder; + ++import static org.apache.maven.shared.utils.logging.MessageUtils.buffer; + import static org.apache.maven.surefire.api.report.CategorizedReportEntry.GROUP_PREFIX; +-import static org.apache.maven.surefire.shared.utils.logging.MessageUtils.buffer; + + /** + * Maintains per-thread test result state. Not thread safe. +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/WrappedReportEntry.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/WrappedReportEntry.java +index f661a003f..f88fbe6fb 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/WrappedReportEntry.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/WrappedReportEntry.java +@@ -31,8 +31,8 @@ + import org.apache.maven.surefire.api.report.TestSetReportEntry; + + import static java.util.Collections.unmodifiableMap; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; + import static org.apache.maven.surefire.api.util.internal.StringUtils.NL; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; + + /** + * @author Kristian Rosenvold +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/FileScanner.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/FileScanner.java +index 48d72f230..a525edbed 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/FileScanner.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/FileScanner.java +@@ -23,7 +23,7 @@ + + import org.apache.maven.surefire.api.testset.TestFilter; + +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; + + final class FileScanner { + private final File basedir; +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/ScannerUtil.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/ScannerUtil.java +index 7541db72c..004dce86f 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/ScannerUtil.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/ScannerUtil.java +@@ -20,7 +20,7 @@ + + import javax.annotation.Nonnull; + +-import org.apache.maven.surefire.shared.lang3.StringUtils; ++import org.apache.commons.lang3.StringUtils; + + final class ScannerUtil { + +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/SpecificFileFilter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/SpecificFileFilter.java +index 8246180dc..94aced9ee 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/SpecificFileFilter.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/util/SpecificFileFilter.java +@@ -23,7 +23,7 @@ + import java.util.HashSet; + import java.util.Set; + +-import org.apache.maven.surefire.shared.utils.io.SelectorUtils; ++import org.apache.maven.shared.utils.io.SelectorUtils; + + import static org.apache.maven.plugin.surefire.util.ScannerUtil.convertSlashToSystemFileSeparator; + +diff --git a/maven-surefire-common/src/main/java/org/apache/maven/surefire/stream/EventDecoder.java b/maven-surefire-common/src/main/java/org/apache/maven/surefire/stream/EventDecoder.java +index 0bfc1e26b..f03a83d7a 100644 +--- a/maven-surefire-common/src/main/java/org/apache/maven/surefire/stream/EventDecoder.java ++++ b/maven-surefire-common/src/main/java/org/apache/maven/surefire/stream/EventDecoder.java +@@ -64,6 +64,7 @@ + import org.apache.maven.surefire.api.stream.SegmentType; + + import static java.util.Collections.emptyMap; ++import static org.apache.maven.shared.utils.cli.ShutdownHookUtils.addShutDownHook; + import static org.apache.maven.surefire.api.booter.Constants.MAGIC_NUMBER_FOR_EVENTS_BYTES; + import static org.apache.maven.surefire.api.report.CategorizedReportEntry.reportEntry; + import static org.apache.maven.surefire.api.stream.SegmentType.DATA_INTEGER; +@@ -72,7 +73,6 @@ + import static org.apache.maven.surefire.api.stream.SegmentType.RUN_MODE; + import static org.apache.maven.surefire.api.stream.SegmentType.STRING_ENCODING; + import static org.apache.maven.surefire.api.stream.SegmentType.TEST_RUN_ID; +-import static org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils.addShutDownHook; + + /** + * +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoTest.java +index 1af67c838..da890b8e5 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoTest.java +@@ -91,12 +91,12 @@ + import static java.util.Collections.emptyMap; + import static java.util.Collections.singleton; + import static java.util.Collections.singletonList; ++import static org.apache.commons.lang3.JavaVersion.JAVA_9; ++import static org.apache.commons.lang3.JavaVersion.JAVA_RECENT; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.apache.maven.artifact.ArtifactUtils.artifactMapByVersionlessId; + import static org.apache.maven.artifact.versioning.VersionRange.createFromVersion; + import static org.apache.maven.artifact.versioning.VersionRange.createFromVersionSpec; +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_9; +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_RECENT; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.assertj.core.api.Assertions.assertThat; + import static org.codehaus.plexus.languages.java.jpms.ModuleNameSource.MODULEDESCRIPTOR; + import static org.mockito.ArgumentMatchers.any; +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireHelperTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireHelperTest.java +index 88c609ea5..7b19ed64c 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireHelperTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireHelperTest.java +@@ -37,9 +37,9 @@ + + import static java.util.Collections.addAll; + import static java.util.Collections.singleton; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.apache.maven.plugin.surefire.SurefireHelper.escapeToPlatformPath; + import static org.apache.maven.plugin.surefire.SurefireHelper.reportExecution; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.assertj.core.api.Assertions.assertThat; + import static org.hamcrest.Matchers.containsString; + import static org.junit.Assume.assumeTrue; +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java +index c6d7330ca..de4bc121c 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java +@@ -52,10 +52,10 @@ + import static java.nio.file.Files.readAllBytes; + import static java.util.Collections.singletonList; + import static org.apache.commons.io.FileUtils.getTempDirectory; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.apache.maven.surefire.api.util.internal.StringUtils.NL; + import static org.apache.maven.surefire.booter.Classpath.emptyClasspath; + import static org.apache.maven.surefire.booter.ProcessCheckerType.ALL; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.assertj.core.api.Assertions.assertThat; + import static org.junit.Assert.assertEquals; + import static org.junit.Assert.assertTrue; +@@ -137,8 +137,7 @@ protected void resolveClasspath( + ClassLoaderConfiguration clc = new ClassLoaderConfiguration(true, true); + StartupConfiguration startup = new StartupConfiguration("cls", cpConfig, clc, ALL, providerJpmsArgs); + +- org.apache.maven.surefire.shared.utils.cli.Commandline cli = +- config.createCommandLine(startup, 1, getTempDirectory()); ++ org.apache.maven.shared.utils.cli.Commandline cli = config.createCommandLine(startup, 1, getTempDirectory()); + + assertThat(cli.getEnvironmentVariables()) + .contains("key1=val1", "key2=val2", "key3=val3") +@@ -191,7 +190,7 @@ protected void resolveClasspath( + ClassLoaderConfiguration clc = new ClassLoaderConfiguration(true, true); + StartupConfiguration startup = new StartupConfiguration("cls", cpConfig, clc, ALL, providerJpmsArgs); + +- org.apache.maven.surefire.shared.utils.cli.Commandline cliFork1 = ++ org.apache.maven.shared.utils.cli.Commandline cliFork1 = + config.createCommandLine(startup, 1, getTempDirectory()); + + assertThat(cliFork1.getEnvironmentVariables()) +@@ -199,7 +198,7 @@ protected void resolveClasspath( + .doesNotContain("PATH=") + .doesNotHaveDuplicates(); + +- org.apache.maven.surefire.shared.utils.cli.Commandline cliFork2 = ++ org.apache.maven.shared.utils.cli.Commandline cliFork2 = + config.createCommandLine(startup, 2, getTempDirectory()); + + assertThat(cliFork2.getEnvironmentVariables()) +@@ -241,8 +240,7 @@ public void testCliArgs() throws Exception { + ClassLoaderConfiguration clc = new ClassLoaderConfiguration(true, true); + StartupConfiguration startup = new StartupConfiguration("cls", cpConfig, clc, ALL, providerJpmsArgs); + +- org.apache.maven.surefire.shared.utils.cli.Commandline cli = +- config.createCommandLine(startup, 1, getTempDirectory()); ++ org.apache.maven.shared.utils.cli.Commandline cli = config.createCommandLine(startup, 1, getTempDirectory()); + String cliAsString = cli.toString(); + + assertThat(cliAsString).contains("arg1"); +@@ -316,8 +314,7 @@ protected void resolveClasspath( + + assertThat(startup.isShadefire()).isFalse(); + +- org.apache.maven.surefire.shared.utils.cli.Commandline cli = +- config.createCommandLine(startup, 1, getTempDirectory()); ++ org.apache.maven.shared.utils.cli.Commandline cli = config.createCommandLine(startup, 1, getTempDirectory()); + + assertThat(cli.toString()).contains("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"); + } +@@ -336,8 +333,7 @@ public void testCreateCommandLine_UseSystemClassLoaderForkOnce_ShouldConstructMa + StartupConfiguration startup = + new StartupConfiguration("", cpConfig, clc, ALL, Collections.emptyList()); + +- org.apache.maven.surefire.shared.utils.cli.Commandline cli = +- config.createCommandLine(startup, 1, getTempDirectory()); ++ org.apache.maven.shared.utils.cli.Commandline cli = config.createCommandLine(startup, 1, getTempDirectory()); + + String line = join(" ", cli.getCommandline()); + assertTrue(line.contains("-jar")); +@@ -356,7 +352,7 @@ public void testArglineWithNewline() throws IOException, SurefireBooterForkExcep + StartupConfiguration startup = + new StartupConfiguration("", cpConfig, clc, ALL, Collections.emptyList()); + +- org.apache.maven.surefire.shared.utils.cli.Commandline commandLine = ++ org.apache.maven.shared.utils.cli.Commandline commandLine = + config.createCommandLine(startup, 1, getTempDirectory()); + assertThat(commandLine.toString()).contains(IS_OS_WINDOWS ? "abc def" : "'abc' 'def'"); + } +@@ -372,7 +368,7 @@ public void testCurrentWorkingDirectoryPropagationIncludingForkNumberExpansion() + StartupConfiguration startup = + new StartupConfiguration("", cpConfig, clc, ALL, Collections.emptyList()); + ForkConfiguration config = getForkConfiguration(cwd.getCanonicalFile()); +- org.apache.maven.surefire.shared.utils.cli.Commandline commandLine = ++ org.apache.maven.shared.utils.cli.Commandline commandLine = + config.createCommandLine(startup, 1, getTempDirectory()); + + File forkDirectory = new File(basedir, "fork_1"); +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkStarterTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkStarterTest.java +index b16765038..c7fe40d99 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkStarterTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkStarterTest.java +@@ -29,6 +29,9 @@ + import java.util.jar.Manifest; + import java.util.zip.Deflater; + ++import org.apache.commons.compress.archivers.zip.Zip64Mode; ++import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; ++import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; + import org.apache.maven.plugin.surefire.StartupReportConfiguration; + import org.apache.maven.plugin.surefire.SurefireProperties; + import org.apache.maven.plugin.surefire.booterclient.lazytestprovider.AbstractCommandReader; +@@ -53,9 +56,6 @@ + import org.apache.maven.surefire.booter.StartupConfiguration; + import org.apache.maven.surefire.booter.SurefireBooterForkException; + import org.apache.maven.surefire.extensions.ForkNodeFactory; +-import org.apache.maven.surefire.shared.compress.archivers.zip.Zip64Mode; +-import org.apache.maven.surefire.shared.compress.archivers.zip.ZipArchiveEntry; +-import org.apache.maven.surefire.shared.compress.archivers.zip.ZipArchiveOutputStream; + import org.junit.AfterClass; + import org.junit.BeforeClass; + import org.junit.Rule; +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/JarManifestForkConfigurationTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/JarManifestForkConfigurationTest.java +index 9a9bf430f..6c62389ff 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/JarManifestForkConfigurationTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/JarManifestForkConfigurationTest.java +@@ -40,11 +40,11 @@ + import org.powermock.modules.junit4.PowerMockRunnerDelegate; + + import static java.nio.charset.StandardCharsets.UTF_8; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.apache.maven.plugin.surefire.booterclient.JarManifestForkConfiguration.escapeUri; + import static org.apache.maven.plugin.surefire.booterclient.JarManifestForkConfiguration.relativize; + import static org.apache.maven.plugin.surefire.booterclient.JarManifestForkConfiguration.toAbsoluteUri; + import static org.apache.maven.plugin.surefire.booterclient.JarManifestForkConfiguration.toClasspathElementUri; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.assertj.core.api.Assertions.assertThat; + import static org.assertj.core.util.Files.delete; + import static org.assertj.core.util.Files.newTemporaryFolder; +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfigurationTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfigurationTest.java +index fbf3e54fd..addf0fcdd 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfigurationTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfigurationTest.java +@@ -43,8 +43,8 @@ + import static java.nio.file.Files.readAllLines; + import static java.util.Arrays.asList; + import static java.util.Collections.singleton; ++import static org.apache.maven.shared.utils.StringUtils.replace; + import static org.apache.maven.surefire.booter.Classpath.emptyClasspath; +-import static org.apache.maven.surefire.shared.utils.StringUtils.replace; + import static org.assertj.core.api.Assertions.assertThat; + import static org.mockito.Mockito.mock; + +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/CommandlineTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/CommandlineTest.java +index 2ebcd3e85..e89f4dc85 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/CommandlineTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/CommandlineTest.java +@@ -18,11 +18,11 @@ + */ + package org.apache.maven.plugin.surefire.booterclient.lazytestprovider; + +-import org.apache.maven.surefire.shared.utils.cli.CommandLineException; ++import org.apache.maven.shared.utils.cli.CommandLineException; + import org.assertj.core.api.Condition; + import org.junit.Test; + +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.assertj.core.api.Assertions.assertThat; + + /** +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java +index 484d71798..23e40892c 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java +@@ -32,13 +32,13 @@ + import org.apache.maven.plugin.surefire.extensions.SurefireStatelessTestsetInfoReporter; + import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; + import org.apache.maven.plugin.surefire.report.DefaultReporterFactory.TestResultType; ++import org.apache.maven.shared.utils.logging.MessageUtils; + import org.apache.maven.surefire.api.report.SafeThrowable; + import org.apache.maven.surefire.api.report.StackTraceWriter; + import org.apache.maven.surefire.api.report.TestOutputReportEntry; + import org.apache.maven.surefire.api.report.TestReportListener; + import org.apache.maven.surefire.api.suite.RunResult; + import org.apache.maven.surefire.report.RunStatistics; +-import org.apache.maven.surefire.shared.utils.logging.MessageUtils; + + import static java.nio.charset.StandardCharsets.UTF_8; + import static java.util.Arrays.asList; +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java +index 362facb15..5501f259c 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java +@@ -34,22 +34,22 @@ + + import junit.framework.TestCase; + import org.apache.maven.plugin.surefire.booterclient.output.DeserializedStacktraceWriter; ++import org.apache.maven.shared.utils.xml.Xpp3Dom; ++import org.apache.maven.shared.utils.xml.Xpp3DomBuilder; + import org.apache.maven.surefire.api.report.ReportEntry; + import org.apache.maven.surefire.api.report.SimpleReportEntry; + import org.apache.maven.surefire.api.report.StackTraceWriter; +-import org.apache.maven.surefire.shared.utils.xml.Xpp3Dom; +-import org.apache.maven.surefire.shared.utils.xml.Xpp3DomBuilder; + + import static java.nio.charset.StandardCharsets.UTF_8; + import static java.nio.file.Files.readAllLines; + import static org.apache.maven.plugin.surefire.report.ReportEntryType.ERROR; + import static org.apache.maven.plugin.surefire.report.ReportEntryType.SKIPPED; + import static org.apache.maven.plugin.surefire.report.ReportEntryType.SUCCESS; ++import static org.apache.maven.shared.utils.StringUtils.isEmpty; + import static org.apache.maven.surefire.api.report.RunMode.NORMAL_RUN; + import static org.apache.maven.surefire.api.report.RunMode.RERUN_TEST_AFTER_FAILURE; + import static org.apache.maven.surefire.api.util.internal.ObjectUtils.systemProps; + import static org.apache.maven.surefire.api.util.internal.StringUtils.NL; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isEmpty; + import static org.assertj.core.api.Assertions.assertThat; + import static org.mockito.Mockito.doThrow; + import static org.mockito.Mockito.mock; +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/TestSetStatsTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/TestSetStatsTest.java +index f7cab66e7..b93e92c57 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/TestSetStatsTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/TestSetStatsTest.java +@@ -25,7 +25,7 @@ + import org.powermock.core.classloader.annotations.PowerMockIgnore; + import org.powermock.modules.junit4.PowerMockRunner; + +-import static org.apache.maven.surefire.shared.utils.logging.MessageUtils.buffer; ++import static org.apache.maven.shared.utils.logging.MessageUtils.buffer; + import static org.assertj.core.api.Assertions.assertThat; + import static org.mockito.Mockito.atLeastOnce; + import static org.mockito.Mockito.times; +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/StatelessTestsetInfoReporterTest.java b/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/StatelessTestsetInfoReporterTest.java +index 0c2a98a50..66a9cc144 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/StatelessTestsetInfoReporterTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/StatelessTestsetInfoReporterTest.java +@@ -30,8 +30,8 @@ + import org.apache.maven.plugin.surefire.report.FileReporter; + import org.apache.maven.plugin.surefire.report.TestSetStats; + import org.apache.maven.plugin.surefire.report.WrappedReportEntry; ++import org.apache.maven.shared.utils.logging.MessageUtils; + import org.apache.maven.surefire.api.report.TestSetReportEntry; +-import org.apache.maven.surefire.shared.utils.logging.MessageUtils; + import org.junit.Test; + import org.junit.runner.RunWith; + import org.mockito.ArgumentCaptor; +diff --git a/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/ConsoleOutputFileReporterTest.java b/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/ConsoleOutputFileReporterTest.java +index ca9382fb5..9f671e5be 100644 +--- a/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/ConsoleOutputFileReporterTest.java ++++ b/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/ConsoleOutputFileReporterTest.java +@@ -27,10 +27,10 @@ + + import junit.framework.TestCase; + import org.apache.maven.plugin.surefire.report.ConsoleOutputFileReporter; ++import org.apache.maven.shared.utils.io.FileUtils; + import org.apache.maven.surefire.api.report.SimpleReportEntry; + import org.apache.maven.surefire.api.report.TestOutputReportEntry; + import org.apache.maven.surefire.api.report.TestSetReportEntry; +-import org.apache.maven.surefire.shared.utils.io.FileUtils; + + import static java.nio.charset.StandardCharsets.US_ASCII; + import static org.apache.maven.surefire.api.report.RunMode.NORMAL_RUN; +diff --git a/maven-surefire-report-plugin/pom.xml b/maven-surefire-report-plugin/pom.xml +index 82a5f2a75..5dc8e20b3 100644 +--- a/maven-surefire-report-plugin/pom.xml ++++ b/maven-surefire-report-plugin/pom.xml +@@ -50,6 +50,23 @@ + + + ++ ++ org.hamcrest ++ hamcrest ++ test ++ ++ ++ org.apache.maven.doxia ++ doxia-module-xhtml5 ++ 2.0.0-M12 ++ test ++ ++ ++ org.apache.maven.doxia ++ doxia-integration-tools ++ 2.0.0-M19 ++ test ++ + + org.apache.maven.surefire + surefire-logger-api +@@ -116,10 +133,6 @@ + maven-reporting-impl + 4.0.0 + +- +- org.codehaus.plexus +- plexus-xml +- + + org.codehaus.plexus + plexus-i18n +@@ -130,16 +143,6 @@ + plexus-interpolation + 1.27 + +- +- org.fusesource.jansi +- jansi +- provided +- +- +- commons-io +- commons-io +- test +- + + org.apache.maven.plugin-testing + maven-plugin-testing-harness +diff --git a/pom.xml b/pom.xml +index 36fbdc5df..788342963 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -48,7 +48,6 @@ + + + +- surefire-shared-utils + surefire-logger-api + surefire-api + surefire-extensions-api +diff --git a/surefire-api/pom.xml b/surefire-api/pom.xml +index 0d93447b4..ecb4484af 100644 +--- a/surefire-api/pom.xml ++++ b/surefire-api/pom.xml +@@ -33,14 +33,22 @@ + + + +- org.apache.maven.surefire +- surefire-logger-api +- ${project.version} ++ org.hamcrest ++ hamcrest ++ test ++ ++ ++ org.apache.commons ++ commons-lang3 ++ ++ ++ org.apache.maven.shared ++ maven-shared-utils + + + org.apache.maven.surefire +- surefire-shared-utils +- ${surefire-shared-utils.version} ++ surefire-logger-api ++ ${project.version} + + + com.google.code.findbugs +diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/Command.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/Command.java +index df86fee54..9c30bdd8f 100644 +--- a/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/Command.java ++++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/Command.java +@@ -21,7 +21,7 @@ + import java.util.Objects; + + import static java.util.Objects.requireNonNull; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; + + /** + * Encapsulates data and command sent from master to forked process. +diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/filter/SpecificTestClassFilter.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/filter/SpecificTestClassFilter.java +index 5efc91c17..7027b8a79 100644 +--- a/surefire-api/src/main/java/org/apache/maven/surefire/api/filter/SpecificTestClassFilter.java ++++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/filter/SpecificTestClassFilter.java +@@ -22,8 +22,8 @@ + import java.util.HashSet; + import java.util.Set; + ++import org.apache.maven.shared.utils.io.SelectorUtils; + import org.apache.maven.surefire.api.util.ScannerFilter; +-import org.apache.maven.surefire.shared.utils.io.SelectorUtils; + + /** + * Filter for test class files +diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/CategorizedReportEntry.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/CategorizedReportEntry.java +index 4dc6d7f2a..69ae007e3 100644 +--- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/CategorizedReportEntry.java ++++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/CategorizedReportEntry.java +@@ -25,7 +25,7 @@ + import java.util.Map; + import java.util.Objects; + +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; + + /** + * @author Kristian Rosenvold +diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/LegacyPojoStackTraceWriter.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/LegacyPojoStackTraceWriter.java +index 21466f41b..219f9bd6f 100644 +--- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/LegacyPojoStackTraceWriter.java ++++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/LegacyPojoStackTraceWriter.java +@@ -23,7 +23,7 @@ + + import org.apache.maven.surefire.api.util.internal.StringUtils; + +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotEmpty; ++import static org.apache.maven.shared.utils.StringUtils.isNotEmpty; + + /** + * Write the trace out for a POJO test. Java 1.5 compatible. +diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/stream/AbstractStreamDecoder.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/stream/AbstractStreamDecoder.java +index 400f74f6c..744a9c7d5 100644 +--- a/surefire-api/src/main/java/org/apache/maven/surefire/api/stream/AbstractStreamDecoder.java ++++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/stream/AbstractStreamDecoder.java +@@ -43,10 +43,10 @@ + import static java.nio.charset.CodingErrorAction.REPLACE; + import static java.nio.charset.StandardCharsets.US_ASCII; + import static java.util.Arrays.copyOf; ++import static org.apache.commons.lang3.StringUtils.isBlank; + import static org.apache.maven.surefire.api.booter.Constants.DEFAULT_STREAM_ENCODING; + import static org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatus.OVERFLOW; + import static org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatus.UNDERFLOW; +-import static org.apache.maven.surefire.shared.lang3.StringUtils.isBlank; + + /** + * @param message object +diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/testset/ResolvedTest.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/testset/ResolvedTest.java +index 9e976c291..6168ea5db 100644 +--- a/surefire-api/src/main/java/org/apache/maven/surefire/api/testset/ResolvedTest.java ++++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/testset/ResolvedTest.java +@@ -20,16 +20,16 @@ + + import java.util.regex.Pattern; + +-import org.apache.maven.surefire.shared.utils.StringUtils; +-import org.apache.maven.surefire.shared.utils.io.MatchPatterns; ++import org.apache.maven.shared.utils.StringUtils; ++import org.apache.maven.shared.utils.io.MatchPatterns; + + import static java.io.File.separatorChar; + import static java.util.regex.Pattern.compile; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; +-import static org.apache.maven.surefire.shared.utils.io.MatchPatterns.from; +-import static org.apache.maven.surefire.shared.utils.io.SelectorUtils.PATTERN_HANDLER_SUFFIX; +-import static org.apache.maven.surefire.shared.utils.io.SelectorUtils.REGEX_HANDLER_PREFIX; +-import static org.apache.maven.surefire.shared.utils.io.SelectorUtils.matchPath; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.io.MatchPatterns.from; ++import static org.apache.maven.shared.utils.io.SelectorUtils.PATTERN_HANDLER_SUFFIX; ++import static org.apache.maven.shared.utils.io.SelectorUtils.REGEX_HANDLER_PREFIX; ++import static org.apache.maven.shared.utils.io.SelectorUtils.matchPath; + + /** + * Single pattern test filter resolved from multi pattern filter -Dtest=MyTest#test,AnotherTest#otherTest. +diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/testset/TestListResolver.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/testset/TestListResolver.java +index ab8938dc2..3d213410d 100644 +--- a/surefire-api/src/main/java/org/apache/maven/surefire/api/testset/TestListResolver.java ++++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/testset/TestListResolver.java +@@ -26,13 +26,13 @@ + + import static java.util.Collections.singleton; + import static java.util.Collections.unmodifiableSet; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.StringUtils.isNotBlank; ++import static org.apache.maven.shared.utils.StringUtils.split; ++import static org.apache.maven.shared.utils.io.SelectorUtils.PATTERN_HANDLER_SUFFIX; ++import static org.apache.maven.shared.utils.io.SelectorUtils.REGEX_HANDLER_PREFIX; + import static org.apache.maven.surefire.api.testset.ResolvedTest.Type.CLASS; + import static org.apache.maven.surefire.api.testset.ResolvedTest.Type.METHOD; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotBlank; +-import static org.apache.maven.surefire.shared.utils.StringUtils.split; +-import static org.apache.maven.surefire.shared.utils.io.SelectorUtils.PATTERN_HANDLER_SUFFIX; +-import static org.apache.maven.surefire.shared.utils.io.SelectorUtils.REGEX_HANDLER_PREFIX; + + // TODO In Surefire 3.0 see SUREFIRE-1309 and use normal fully qualified class name regex instead. + /** +diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/util/DefaultDirectoryScanner.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/util/DefaultDirectoryScanner.java +index c4d4bb342..12a48e719 100644 +--- a/surefire-api/src/main/java/org/apache/maven/surefire/api/util/DefaultDirectoryScanner.java ++++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/util/DefaultDirectoryScanner.java +@@ -95,8 +95,8 @@ private static Class loadClass(ClassLoader classLoader, String className) { + String[] collectTests() { + String[] tests = EMPTY_STRING_ARRAY; + if (basedir.exists()) { +- org.apache.maven.surefire.shared.utils.io.DirectoryScanner scanner = +- new org.apache.maven.surefire.shared.utils.io.DirectoryScanner(); ++ org.apache.maven.shared.utils.io.DirectoryScanner scanner = ++ new org.apache.maven.shared.utils.io.DirectoryScanner(); + + scanner.setBasedir(basedir); + +diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/util/internal/ClassMethod.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/util/internal/ClassMethod.java +index a4436e702..b88fc6dcb 100644 +--- a/surefire-api/src/main/java/org/apache/maven/surefire/api/util/internal/ClassMethod.java ++++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/util/internal/ClassMethod.java +@@ -20,7 +20,7 @@ + + import java.util.Objects; + +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; + + /** + * Data transfer object of class and method literals. +diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/util/internal/ObjectUtils.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/util/internal/ObjectUtils.java +index 4dda97583..01d24d1e6 100644 +--- a/surefire-api/src/main/java/org/apache/maven/surefire/api/util/internal/ObjectUtils.java ++++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/util/internal/ObjectUtils.java +@@ -21,8 +21,8 @@ + import java.lang.management.ManagementFactory; + import java.util.Map; + +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_17; +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_RECENT; ++import static org.apache.commons.lang3.JavaVersion.JAVA_17; ++import static org.apache.commons.lang3.JavaVersion.JAVA_RECENT; + + /** + * Similar to Java 7 java.util.Objects. +diff --git a/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/ObjectUtilsTest.java b/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/ObjectUtilsTest.java +index 9e1640b6a..1717b05c0 100644 +--- a/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/ObjectUtilsTest.java ++++ b/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/ObjectUtilsTest.java +@@ -20,8 +20,8 @@ + + import org.junit.Test; + +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_17; +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_RECENT; ++import static org.apache.commons.lang3.JavaVersion.JAVA_17; ++import static org.apache.commons.lang3.JavaVersion.JAVA_RECENT; + import static org.assertj.core.api.Assertions.assertThat; + + /** +diff --git a/surefire-booter/pom.xml b/surefire-booter/pom.xml +index 4a5b67947..c53610aa9 100644 +--- a/surefire-booter/pom.xml ++++ b/surefire-booter/pom.xml +@@ -33,18 +33,36 @@ + + + +- org.apache.maven.surefire +- surefire-api +- ${project.version} ++ org.powermock ++ powermock-reflect ++ test ++ ++ ++ org.hamcrest ++ hamcrest ++ test ++ ++ ++ commons-io ++ commons-io ++ test ++ ++ ++ org.apache.commons ++ commons-lang3 ++ ++ ++ org.apache.maven.shared ++ maven-shared-utils + + + org.apache.maven.surefire +- surefire-extensions-spi ++ surefire-api + ${project.version} + + + org.apache.maven.surefire +- surefire-shared-utils ++ surefire-extensions-spi + ${project.version} + + +diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/CommandReader.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/CommandReader.java +index b1dba3bb5..2166eda1d 100644 +--- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/CommandReader.java ++++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/CommandReader.java +@@ -48,14 +48,14 @@ + import static java.lang.Thread.State.RUNNABLE; + import static java.lang.Thread.State.TERMINATED; + import static java.util.Objects.requireNonNull; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.StringUtils.isNotBlank; + import static org.apache.maven.surefire.api.booter.Command.toShutdown; + import static org.apache.maven.surefire.api.booter.MasterProcessCommand.BYE_ACK; + import static org.apache.maven.surefire.api.booter.MasterProcessCommand.NOOP; + import static org.apache.maven.surefire.api.booter.MasterProcessCommand.SHUTDOWN; + import static org.apache.maven.surefire.api.booter.MasterProcessCommand.SKIP_SINCE_NEXT_TEST; + import static org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.newDaemonThread; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotBlank; + + /** + * Reader of commands coming from plugin(master) process. +diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java +index 1bcdc8b09..0133fe51c 100644 +--- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java ++++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java +@@ -37,6 +37,7 @@ + import java.util.concurrent.atomic.AtomicBoolean; + + import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; ++import org.apache.maven.shared.utils.cli.ShutdownHookUtils; + import org.apache.maven.surefire.api.booter.BaseProviderFactory; + import org.apache.maven.surefire.api.booter.Command; + import org.apache.maven.surefire.api.booter.DumpErrorSingleton; +@@ -51,7 +52,6 @@ + import org.apache.maven.surefire.api.testset.TestSetFailedException; + import org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactory; + import org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory; +-import org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils; + import org.apache.maven.surefire.spi.MasterProcessChannelProcessorFactory; + + import static java.lang.Thread.currentThread; +diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java +index 2c836ea21..0f22e77ea 100644 +--- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java ++++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java +@@ -44,16 +44,16 @@ + import static java.util.concurrent.TimeUnit.HOURS; + import static java.util.concurrent.TimeUnit.MINUTES; + import static java.util.regex.Pattern.compile; ++import static org.apache.commons.lang3.StringUtils.isNotBlank; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_HP_UX; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_LINUX; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_UNIX; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.apache.maven.surefire.api.util.internal.StringUtils.NL; + import static org.apache.maven.surefire.booter.ProcessInfo.ERR_PROCESS_INFO; + import static org.apache.maven.surefire.booter.ProcessInfo.INVALID_PROCESS_INFO; + import static org.apache.maven.surefire.booter.ProcessInfo.unixProcessInfo; + import static org.apache.maven.surefire.booter.ProcessInfo.windowsProcessInfo; +-import static org.apache.maven.surefire.shared.lang3.StringUtils.isNotBlank; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_HP_UX; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_LINUX; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_UNIX; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS; + + /** + * Recognizes PID of Plugin process and determines lifetime. +diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessCheckerType.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessCheckerType.java +index 9b49055a4..911735fe8 100644 +--- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessCheckerType.java ++++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessCheckerType.java +@@ -18,7 +18,7 @@ + */ + package org.apache.maven.surefire.booter; + +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; + + /** + * +diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java +index 91cdb4f8c..059d1f808 100644 +--- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java ++++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java +@@ -23,7 +23,7 @@ + import java.util.List; + import java.util.Map; + +-import org.apache.maven.surefire.shared.utils.StringUtils; ++import org.apache.maven.shared.utils.StringUtils; + + /** + * @author Kristian Rosenvold +diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java +index 56c5e4408..839fe32ab 100644 +--- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java ++++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java +@@ -20,7 +20,7 @@ + + import org.apache.maven.surefire.api.suite.RunResult; + +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotBlank; ++import static org.apache.maven.shared.utils.StringUtils.isNotBlank; + + /** + * Encapsulates exceptions thrown during Surefire forking. +diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java +index 3f7b4aa5b..35b90575c 100644 +--- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java ++++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java +@@ -34,16 +34,16 @@ + + import static java.lang.Thread.currentThread; + import static java.util.Objects.requireNonNull; ++import static org.apache.commons.lang3.JavaVersion.JAVA_9; ++import static org.apache.commons.lang3.JavaVersion.JAVA_RECENT; ++import static org.apache.commons.lang3.StringUtils.isNumeric; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_FREE_BSD; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_LINUX; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_NET_BSD; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_OPEN_BSD; + import static org.apache.maven.surefire.api.util.ReflectionUtils.invokeMethodChain; + import static org.apache.maven.surefire.api.util.ReflectionUtils.invokeMethodWithArray; + import static org.apache.maven.surefire.api.util.ReflectionUtils.tryLoadClass; +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_9; +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_RECENT; +-import static org.apache.maven.surefire.shared.lang3.StringUtils.isNumeric; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_FREE_BSD; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_LINUX; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_NET_BSD; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_OPEN_BSD; + + /** + * JDK 9 support. +diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/stream/CommandDecoder.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/stream/CommandDecoder.java +index 3a48ca92d..d46bb53fc 100644 +--- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/stream/CommandDecoder.java ++++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/stream/CommandDecoder.java +@@ -37,6 +37,7 @@ + import org.apache.maven.surefire.api.stream.MalformedChannelException; + import org.apache.maven.surefire.api.stream.SegmentType; + ++import static org.apache.maven.shared.utils.cli.ShutdownHookUtils.addShutDownHook; + import static org.apache.maven.surefire.api.booter.Command.BYE_ACK; + import static org.apache.maven.surefire.api.booter.Command.NOOP; + import static org.apache.maven.surefire.api.booter.Command.SKIP_SINCE_NEXT_TEST; +@@ -48,7 +49,6 @@ + import static org.apache.maven.surefire.api.stream.SegmentType.DATA_STRING; + import static org.apache.maven.surefire.api.stream.SegmentType.END_OF_FRAME; + import static org.apache.maven.surefire.api.stream.SegmentType.STRING_ENCODING; +-import static org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils.addShutDownHook; + + /** + * +diff --git a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ForkedBooterMockTest.java b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ForkedBooterMockTest.java +index 0c5dff743..b5a8be1fb 100644 +--- a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ForkedBooterMockTest.java ++++ b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ForkedBooterMockTest.java +@@ -34,6 +34,7 @@ + import java.util.concurrent.FutureTask; + + import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; ++import org.apache.maven.shared.utils.cli.ShutdownHookUtils; + import org.apache.maven.surefire.api.booter.MasterProcessChannelDecoder; + import org.apache.maven.surefire.api.booter.MasterProcessChannelEncoder; + import org.apache.maven.surefire.api.fork.ForkNodeArguments; +@@ -43,7 +44,6 @@ + import org.apache.maven.surefire.booter.spi.EventChannelEncoder; + import org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactory; + import org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory; +-import org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils; + import org.apache.maven.surefire.spi.MasterProcessChannelProcessorFactory; + import org.junit.Rule; + import org.junit.Test; +diff --git a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/IsolatedClassLoaderTest.java b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/IsolatedClassLoaderTest.java +index ccc1c1f66..c01aa4d7c 100644 +--- a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/IsolatedClassLoaderTest.java ++++ b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/IsolatedClassLoaderTest.java +@@ -21,8 +21,8 @@ + import java.io.File; + import java.net.URL; + ++import org.apache.maven.shared.utils.io.FileUtils; + import org.apache.maven.surefire.api.provider.AbstractProvider; +-import org.apache.maven.surefire.shared.utils.io.FileUtils; + import org.junit.Before; + import org.junit.Test; + +diff --git a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java +index 1bb96440c..37b3d1c4e 100644 +--- a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java ++++ b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java +@@ -28,7 +28,7 @@ + import java.util.HashSet; + import java.util.List; + +-import org.apache.maven.surefire.shared.utils.io.FileUtils; ++import org.apache.maven.shared.utils.io.FileUtils; + import org.junit.After; + import org.junit.Before; + import org.junit.Test; +diff --git a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java +index 78f35716f..83417659b 100644 +--- a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java ++++ b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java +@@ -38,10 +38,10 @@ + import static java.nio.charset.StandardCharsets.US_ASCII; + import static java.nio.file.Files.readAllBytes; + import static java.util.concurrent.TimeUnit.SECONDS; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_UNIX; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.apache.maven.surefire.booter.ProcessInfo.unixProcessInfo; + import static org.apache.maven.surefire.booter.ProcessInfo.windowsProcessInfo; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_UNIX; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.assertj.core.api.Assertions.assertThat; + import static org.hamcrest.CoreMatchers.is; + import static org.hamcrest.CoreMatchers.not; +diff --git a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java +index 6752ba75b..9e2277916 100644 +--- a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java ++++ b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java +@@ -31,12 +31,12 @@ + import org.powermock.modules.junit4.PowerMockRunner; + + import static java.io.File.separator; +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_9; +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_RECENT; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_FREE_BSD; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_LINUX; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_NET_BSD; +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_OPEN_BSD; ++import static org.apache.commons.lang3.JavaVersion.JAVA_9; ++import static org.apache.commons.lang3.JavaVersion.JAVA_RECENT; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_FREE_BSD; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_LINUX; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_NET_BSD; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_OPEN_BSD; + import static org.assertj.core.api.Assertions.assertThat; + import static org.junit.Assume.assumeTrue; + import static org.mockito.Matchers.any; +diff --git a/surefire-extensions-api/pom.xml b/surefire-extensions-api/pom.xml +index a76ec0378..3796e3691 100644 +--- a/surefire-extensions-api/pom.xml ++++ b/surefire-extensions-api/pom.xml +@@ -30,6 +30,15 @@ + Surefire Extensions API + + ++ ++ org.apache.commons ++ commons-lang3 ++ test ++ ++ ++ org.apache.maven.shared ++ maven-shared-utils ++ + + org.apache.maven.surefire + surefire-api +@@ -47,11 +56,6 @@ + jsr305 + provided + +- +- org.apache.maven.surefire +- surefire-shared-utils +- ${surefire-shared-utils.version} +- + + org.mockito + mockito-core +diff --git a/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/ConsoleOutputReporter.java b/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/ConsoleOutputReporter.java +index 5f32f9b78..2129e8589 100644 +--- a/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/ConsoleOutputReporter.java ++++ b/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/ConsoleOutputReporter.java +@@ -21,7 +21,7 @@ + import java.io.File; + import java.io.PrintStream; + +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; + + /** + * Extension for logger. +diff --git a/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/StatelessReporter.java b/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/StatelessReporter.java +index 3cf833daa..9cde28fb4 100644 +--- a/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/StatelessReporter.java ++++ b/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/StatelessReporter.java +@@ -20,7 +20,7 @@ + + import org.apache.maven.surefire.api.report.TestSetReportEntry; + +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; + + /** + * Extension for stateless reporter. +diff --git a/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/util/CommandlineExecutor.java b/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/util/CommandlineExecutor.java +index 737fd5af1..9fa7ade79 100644 +--- a/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/util/CommandlineExecutor.java ++++ b/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/util/CommandlineExecutor.java +@@ -20,11 +20,11 @@ + + import java.io.Closeable; + +-import org.apache.maven.surefire.shared.utils.cli.CommandLineException; +-import org.apache.maven.surefire.shared.utils.cli.Commandline; ++import org.apache.maven.shared.utils.cli.CommandLineException; ++import org.apache.maven.shared.utils.cli.Commandline; + +-import static org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils.addShutDownHook; +-import static org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils.removeShutdownHook; ++import static org.apache.maven.shared.utils.cli.ShutdownHookUtils.addShutDownHook; ++import static org.apache.maven.shared.utils.cli.ShutdownHookUtils.removeShutdownHook; + + /** + * Programming model with this class: +diff --git a/surefire-extensions-api/src/test/java/org/apache/maven/plugin/surefire/extensions/CommandlineExecutorTest.java b/surefire-extensions-api/src/test/java/org/apache/maven/plugin/surefire/extensions/CommandlineExecutorTest.java +index 1443947df..89960a02a 100644 +--- a/surefire-extensions-api/src/test/java/org/apache/maven/plugin/surefire/extensions/CommandlineExecutorTest.java ++++ b/surefire-extensions-api/src/test/java/org/apache/maven/plugin/surefire/extensions/CommandlineExecutorTest.java +@@ -21,17 +21,17 @@ + import java.io.Closeable; + import java.nio.file.Paths; + ++import org.apache.maven.shared.utils.cli.Commandline; + import org.apache.maven.surefire.extensions.EventHandler; + import org.apache.maven.surefire.extensions.util.CommandlineExecutor; + import org.apache.maven.surefire.extensions.util.CommandlineStreams; + import org.apache.maven.surefire.extensions.util.CountdownCloseable; + import org.apache.maven.surefire.extensions.util.LineConsumerThread; +-import org.apache.maven.surefire.shared.utils.cli.Commandline; + import org.junit.After; + import org.junit.Before; + import org.junit.Test; + +-import static org.apache.maven.surefire.shared.lang3.SystemUtils.IS_OS_WINDOWS; ++import static org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS; + import static org.assertj.core.api.Assertions.assertThat; + import static org.assertj.core.util.Files.delete; + import static org.mockito.ArgumentMatchers.contains; +diff --git a/surefire-grouper/pom.xml b/surefire-grouper/pom.xml +index d54fa0173..52d556dd1 100644 +--- a/surefire-grouper/pom.xml ++++ b/surefire-grouper/pom.xml +@@ -34,9 +34,9 @@ + + + +- org.javacc.plugin ++ org.codehaus.mojo + javacc-maven-plugin +- 3.0.3 ++ 3.1.0 + + + net.java.dev.javacc +diff --git a/surefire-its/pom.xml b/surefire-its/pom.xml +index ffc745302..fb062b322 100644 +--- a/surefire-its/pom.xml ++++ b/surefire-its/pom.xml +@@ -58,21 +58,11 @@ + hamcrest + test + +- +- org.apache.maven +- maven-settings +- test +- + + org.htmlunit + htmlunit + test + +- +- org.apache.maven +- maven-artifact +- test +- + + org.apache.maven.shared + maven-shared-utils +diff --git a/surefire-providers/common-java5/pom.xml b/surefire-providers/common-java5/pom.xml +index 93534cfe5..55f2d6b75 100644 +--- a/surefire-providers/common-java5/pom.xml ++++ b/surefire-providers/common-java5/pom.xml +@@ -33,9 +33,8 @@ + + + +- org.apache.maven.surefire +- surefire-shared-utils +- ${surefire-shared-utils.version} ++ org.apache.maven.shared ++ maven-shared-utils + + + +diff --git a/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java b/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java +index e5c66dde8..171d267f1 100644 +--- a/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java ++++ b/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java +@@ -26,8 +26,8 @@ + + import static java.util.Arrays.asList; + import static java.util.Collections.reverse; +-import static org.apache.maven.surefire.shared.utils.StringUtils.chompLast; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotEmpty; ++import static org.apache.maven.shared.utils.StringUtils.chompLast; ++import static org.apache.maven.shared.utils.StringUtils.isNotEmpty; + + /** + * @author Kristian Rosenvold +diff --git a/surefire-providers/common-junit4/pom.xml b/surefire-providers/common-junit4/pom.xml +index 848fbd45e..1fe45e32f 100644 +--- a/surefire-providers/common-junit4/pom.xml ++++ b/surefire-providers/common-junit4/pom.xml +@@ -32,6 +32,10 @@ + Shared JUnit4 Provider Code + + ++ ++ org.apache.maven.shared ++ maven-shared-utils ++ + + junit + junit +@@ -43,11 +47,6 @@ + surefire-logger-api + ${project.version} + +- +- org.apache.maven.surefire +- surefire-shared-utils +- ${project.version} +- + + org.apache.maven.surefire + common-junit3 +diff --git a/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListenerFactory.java b/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListenerFactory.java +index b0a74a4f7..26be9beac 100644 +--- a/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListenerFactory.java ++++ b/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListenerFactory.java +@@ -24,7 +24,7 @@ + import org.apache.maven.surefire.api.util.ReflectionUtils; + import org.junit.runner.notification.RunListener; + +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotBlank; ++import static org.apache.maven.shared.utils.StringUtils.isNotBlank; + + /** + * @author Kristian Rosenvold +diff --git a/surefire-providers/common-junit48/pom.xml b/surefire-providers/common-junit48/pom.xml +index bac3c870d..e53e9e9ef 100644 +--- a/surefire-providers/common-junit48/pom.xml ++++ b/surefire-providers/common-junit48/pom.xml +@@ -32,17 +32,16 @@ + Shared JUnit48 Provider Code + + ++ ++ org.apache.maven.shared ++ maven-shared-utils ++ + + junit + junit + 4.8.1 + provided + +- +- org.apache.maven.surefire +- surefire-shared-utils +- ${project.version} +- + + org.apache.maven.surefire + common-junit4 +diff --git a/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/FilterFactory.java b/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/FilterFactory.java +index 45d21b751..6cdd9c892 100644 +--- a/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/FilterFactory.java ++++ b/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/FilterFactory.java +@@ -29,9 +29,9 @@ + import org.junit.runner.Description; + import org.junit.runner.manipulation.Filter; + ++import static org.apache.maven.shared.utils.StringUtils.isNotBlank; + import static org.apache.maven.surefire.api.booter.ProviderParameterNames.TESTNG_EXCLUDEDGROUPS_PROP; + import static org.apache.maven.surefire.api.booter.ProviderParameterNames.TESTNG_GROUPS_PROP; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isNotBlank; + + /** + * @author Todd Lipcon +diff --git a/surefire-providers/common-junit48/src/test/java/org/apache/maven/surefire/common/junit48/FilterFactoryTest.java b/surefire-providers/common-junit48/src/test/java/org/apache/maven/surefire/common/junit48/FilterFactoryTest.java +index ddb772ae6..679ef712a 100644 +--- a/surefire-providers/common-junit48/src/test/java/org/apache/maven/surefire/common/junit48/FilterFactoryTest.java ++++ b/surefire-providers/common-junit48/src/test/java/org/apache/maven/surefire/common/junit48/FilterFactoryTest.java +@@ -23,10 +23,10 @@ + import java.util.Collection; + import java.util.Collections; + ++import org.apache.maven.shared.utils.io.MatchPatterns; + import org.apache.maven.surefire.api.testset.ResolvedTest; + import org.apache.maven.surefire.api.testset.TestListResolver; + import org.apache.maven.surefire.common.junit48.tests.pt.PT; +-import org.apache.maven.surefire.shared.utils.io.MatchPatterns; + import org.junit.Test; + import org.junit.runner.Description; + import org.junit.runner.JUnitCore; +diff --git a/surefire-providers/surefire-junit-platform/pom.xml b/surefire-providers/surefire-junit-platform/pom.xml +index b850fc855..b859011d6 100644 +--- a/surefire-providers/surefire-junit-platform/pom.xml ++++ b/surefire-providers/surefire-junit-platform/pom.xml +@@ -85,13 +85,22 @@ + + + +- org.apache.maven.surefire +- common-java5 +- ${project.version} ++ org.opentest4j ++ opentest4j ++ 1.2.0 ++ test ++ ++ ++ org.apache.commons ++ commons-lang3 ++ ++ ++ org.apache.maven.shared ++ maven-shared-utils + + + org.apache.maven.surefire +- surefire-shared-utils ++ common-java5 + ${project.version} + + +diff --git a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java +index 5e8255490..684a28f3c 100644 +--- a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java ++++ b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java +@@ -30,6 +30,7 @@ + import java.util.Properties; + import java.util.logging.Logger; + ++import org.apache.maven.shared.utils.StringUtils; + import org.apache.maven.surefire.api.provider.AbstractProvider; + import org.apache.maven.surefire.api.provider.ProviderParameters; + import org.apache.maven.surefire.api.report.ReporterException; +@@ -39,7 +40,6 @@ + import org.apache.maven.surefire.api.util.ScanResult; + import org.apache.maven.surefire.api.util.SurefireReflectionException; + import org.apache.maven.surefire.api.util.TestsToRun; +-import org.apache.maven.surefire.shared.utils.StringUtils; + import org.junit.platform.engine.DiscoverySelector; + import org.junit.platform.engine.Filter; + import org.junit.platform.launcher.EngineFilter; +@@ -55,6 +55,7 @@ + import static java.util.Optional.of; + import static java.util.logging.Level.WARNING; + import static java.util.stream.Collectors.toList; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; + import static org.apache.maven.surefire.api.booter.ProviderParameterNames.EXCLUDE_JUNIT5_ENGINES_PROP; + import static org.apache.maven.surefire.api.booter.ProviderParameterNames.INCLUDE_JUNIT5_ENGINES_PROP; + import static org.apache.maven.surefire.api.booter.ProviderParameterNames.TESTNG_EXCLUDEDGROUPS_PROP; +@@ -64,7 +65,6 @@ + import static org.apache.maven.surefire.api.report.RunMode.RERUN_TEST_AFTER_FAILURE; + import static org.apache.maven.surefire.api.testset.TestListResolver.optionallyWildcardFilter; + import static org.apache.maven.surefire.api.util.TestsToRun.fromClass; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; + import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass; + import static org.junit.platform.engine.discovery.DiscoverySelectors.selectUniqueId; + import static org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder.request; +diff --git a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java +index 7ae8cc79d..094aaafe8 100644 +--- a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java ++++ b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java +@@ -49,8 +49,8 @@ + import static java.util.Collections.emptyMap; + import static java.util.stream.Collectors.joining; + import static java.util.stream.Collectors.toList; ++import static org.apache.commons.lang3.StringUtils.isNotBlank; + import static org.apache.maven.surefire.api.util.internal.ObjectUtils.systemProps; +-import static org.apache.maven.surefire.shared.lang3.StringUtils.isNotBlank; + import static org.junit.platform.engine.TestExecutionResult.Status.FAILED; + + /** +diff --git a/surefire-providers/surefire-junit3/pom.xml b/surefire-providers/surefire-junit3/pom.xml +index 46ff2001d..b1a09e407 100644 +--- a/surefire-providers/surefire-junit3/pom.xml ++++ b/surefire-providers/surefire-junit3/pom.xml +@@ -32,6 +32,11 @@ + Surefire JUnit3 Runner + + ++ ++ org.apache.commons ++ commons-lang3 ++ test ++ + + junit + junit +@@ -48,12 +53,6 @@ + common-java5 + ${project.version} + +- +- org.apache.maven.surefire +- surefire-shared-utils +- ${project.version} +- test +- + + + +diff --git a/surefire-providers/surefire-junit3/src/test/java/org/apache/maven/surefire/junit/JUnitTestSetTest.java b/surefire-providers/surefire-junit3/src/test/java/org/apache/maven/surefire/junit/JUnitTestSetTest.java +index 35979a1ec..1824cb983 100644 +--- a/surefire-providers/surefire-junit3/src/test/java/org/apache/maven/surefire/junit/JUnitTestSetTest.java ++++ b/surefire-providers/surefire-junit3/src/test/java/org/apache/maven/surefire/junit/JUnitTestSetTest.java +@@ -35,8 +35,8 @@ + import org.apache.maven.surefire.api.testset.TestSetFailedException; + import org.apache.maven.surefire.common.junit3.JUnit3Reflector; + +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_17; +-import static org.apache.maven.surefire.shared.lang3.JavaVersion.JAVA_RECENT; ++import static org.apache.commons.lang3.JavaVersion.JAVA_17; ++import static org.apache.commons.lang3.JavaVersion.JAVA_RECENT; + + /** + * +diff --git a/surefire-providers/surefire-testng/pom.xml b/surefire-providers/surefire-testng/pom.xml +index 72ac6bad5..e186ac796 100644 +--- a/surefire-providers/surefire-testng/pom.xml ++++ b/surefire-providers/surefire-testng/pom.xml +@@ -32,17 +32,16 @@ + Surefire TestNG Runner + + ++ ++ org.apache.maven.shared ++ maven-shared-utils ++ + + junit + junit + 3.8.2 + provided + +- +- org.apache.maven.surefire +- surefire-shared-utils +- ${project.version} +- + + org.apache.maven.surefire + common-java5 +diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java +index 871ed9f49..f4a2a9494 100644 +--- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java ++++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java +@@ -32,7 +32,7 @@ + import org.apache.maven.surefire.api.util.TestsToRun; + + import static java.util.Collections.singleton; +-import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank; ++import static org.apache.maven.shared.utils.StringUtils.isBlank; + import static org.apache.maven.surefire.testng.TestNGExecutor.run; + + /** +diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java +index 96e7170b9..e3662f43e 100644 +--- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java ++++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java +@@ -28,12 +28,12 @@ + import java.util.Map; + import java.util.concurrent.atomic.AtomicInteger; + ++import org.apache.maven.shared.utils.StringUtils; + import org.apache.maven.surefire.api.booter.ProviderParameterNames; + import org.apache.maven.surefire.api.cli.CommandLineOption; + import org.apache.maven.surefire.api.report.RunListener; + import org.apache.maven.surefire.api.testset.TestListResolver; + import org.apache.maven.surefire.api.testset.TestSetFailedException; +-import org.apache.maven.surefire.shared.utils.StringUtils; + import org.apache.maven.surefire.testng.conf.Configurator; + import org.apache.maven.surefire.testng.utils.FailFastEventsSingleton; + import org.apache.maven.surefire.testng.utils.FailFastListener; +diff --git a/surefire-report-parser/pom.xml b/surefire-report-parser/pom.xml +index 0fb0f1bac..7b2f14a02 100644 +--- a/surefire-report-parser/pom.xml ++++ b/surefire-report-parser/pom.xml +@@ -32,6 +32,11 @@ + Parses report output files from surefire. + + ++ ++ org.hamcrest ++ hamcrest ++ test ++ + + org.apache.maven.surefire + surefire-logger-api +-- +2.47.0 + diff --git a/_service b/_service index 5be7cbe..b1b1e47 100644 --- a/_service +++ b/_service @@ -2,7 +2,7 @@ git https://github.com/apache/maven-surefire.git - surefire-3.2.5 + surefire-3.5.2 surefire-* @PARENT_TAG@ surefire-(.*) diff --git a/maven-surefire-3.2.5.tar.xz b/maven-surefire-3.2.5.tar.xz deleted file mode 100644 index 5a427d4..0000000 --- a/maven-surefire-3.2.5.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e6d25c539061ce3a441a1654a98ae262a05ed324e2eb904d64d17693d2ef9df6 -size 906352 diff --git a/maven-surefire-3.5.2.tar.xz b/maven-surefire-3.5.2.tar.xz new file mode 100644 index 0000000..e76ccb9 --- /dev/null +++ b/maven-surefire-3.5.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e99aa55c0a99f26780d11e0e13b5b417adca7c43f93f427a623e04ea0bf8fbc +size 911400 diff --git a/maven-surefire-bootstrap-resources.patch b/maven-surefire-bootstrap-resources.patch index 6b64582..0f80a1e 100644 --- a/maven-surefire-bootstrap-resources.patch +++ b/maven-surefire-bootstrap-resources.patch @@ -1,9 +1,10 @@ ---- /dev/null -+++ b/maven-failsafe-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-failsafe-plugin/plugin-help.xml -@@ -0,0 +1,1038 @@ +diff -urEbwBN a/maven-failsafe-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-failsafe-plugin/plugin-help.xml b/maven-failsafe-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-failsafe-plugin/plugin-help.xml +--- a/maven-failsafe-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-failsafe-plugin/plugin-help.xml 1970-01-01 01:00:00.000000000 +0100 ++++ b/maven-failsafe-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-failsafe-plugin/plugin-help.xml 2024-11-04 10:43:47.030374365 +0100 +@@ -0,0 +1,953 @@ + + -+ ++ + + + ${project.name} @@ -85,46 +86,30 @@ + + additionalClasspathDependencies + java.util.List<org.apache.maven.model.Dependency> -+ 3.2 + false + true -+ Additional Maven dependencies to be added to the test classpath at runtime. Each element supports the parametrization like documented in POM Reference: Dependencies <https://maven.apache.org/pom.html#dependencies>. -+Those dependencies are automatically collected (i.e. have their full dependency tree calculated) and then all underlying artifacts are resolved from the repository (including their transitive dependencies). Afterwards the resolved artifacts are filtered to only contain compile and runtime scoped ones and appended to the test classpath at runtime (after the ones from additionalClasspathElements). -+ -+The following differences to regular project dependency resolving apply: -+ -+* The dependency management from the project is not taken into account. -+* Conflicts between the different items and the project dependencies are not resolved. -+* Only external dependencies (outside the current Maven reactor) are supported. ++ + + + additionalClasspathElements + java.lang.String[] -+ 2.4 + false + true -+ Additional elements to be appended to the test classpath at runtime. Each element must be a file system path to a JAR file or a directory containing classes. No wildcards are allowed here. ++ + + + argLine + java.lang.String -+ 2.1 + false + true -+ Arbitrary JVM options to set on the command line. -+ -+Since the Version 2.17 using an alternate syntax for argLine, @{...} 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: -+http://maven.apache.org/surefire/maven-surefire-plugin/faq.html <http://maven.apache.org/surefire/maven-surefire-plugin/faq.html> -+http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html <http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html> ++ + + + childDelegation + boolean -+ 2.1 + false + true -+ When false it makes tests run using the standard classloader delegation instead of the default Maven isolated classloader. Only used when forking (forkCount is greater than zero). -+Setting it to false helps with some problems caused by conflicts between xml parsers in the classpath and the Java 5 provider parser. ++ + + + classesDirectory @@ -136,27 +121,16 @@ + + classpathDependencyExcludes + java.lang.String[] -+ 2.6 + false + true -+ List of dependencies to exclude from the test classpath at runtime. Each item is passed as pattern to org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter. The pattern is matched against the following artifact ids: -+* groupId:artifactId (Short ID) -+* groupId:artifactId:type:classifier (Dependency Conflict ID) -+* groupId:artifactId:type:classifier:version (Full ID) The matching algorithm is described in detail in Advanced Artifact-Matching <https://maven.apache.org/plugins/maven-assembly-plugin/advanced-descriptor-topics.html#advanced-artifact-matching-in-includes-and-excludes> for the maven-assembly-plugin. This parameter behaves the same as the excludes pattern described there. The dependency matching is applied to the project dependency IDs (including transitive ones) after resolving, i.e. excluding one dependency will not exclude its transitive dependencies! ++ + + + classpathDependencyScopeExclude + java.lang.String -+ 2.6 + false + true -+ A dependency scope to exclude from the test classpath at runtime. The scope should be one of the scopes defined by org.apache.maven.artifact.Artifact. This includes the following: -+ -+* compile - system, provided, compile -+* runtime - compile, runtime -+* compile+runtime - system, provided, compile, runtime -+* runtime+system - system, compile, runtime -+* test - system, provided, compile, runtime, test ++ + + + consoleOutputReporter @@ -176,43 +150,31 @@ + + dependenciesToScan + java.lang.String[] -+ 2.15 + false + true -+ List of dependencies to scan for test classes to include in the test run. The child elements of this element must be <dependency> elements, and the contents of each of these elements must be a string which follows the general form: -+groupId[:artifactId[:type[:classifier][:version]]] -+ -+The wildcard character * can be used within the sub parts of those composite identifiers to do glob-like pattern matching. The classifier may be omitted when matching dependencies without a classifier. -+ -+Examples: -+ -+* group or, equivalently, group:* -+* g*p:*rtifac* -+* group:*:jar -+* group:artifact:*:1.0.0 (no classifier) -+* group:*:test-jar:tests -+* *:artifact:*:*:1.0.0 -+Since version 2.22.0 you can scan for test classes from a project dependency of your multi-module project. -+ -+In versions before 3.0.0-M4, only groupId:artifactId is supported. -+ ++ + + + disableXmlReport -+ boolean -+ 2.2 ++ java.lang.Boolean + No reason given + false + true -+ Flag to disable the generation of report files in xml format. Deprecated since 3.0.0-M4. Instead use disable within statelessTestsetReporter since of 3.0.0-M6. ++ + + + enableAssertions + boolean -+ 2.3.1 + false + true -+ By default, Surefire enables JVM assertions for the execution of your test cases. To disable the assertions, set this flag to "false". ++ ++ ++ ++ enableOutErrElements ++ boolean ++ false ++ true ++ + + + enableProcessChecker @@ -232,6 +194,13 @@ +mvn test -Dfailsafe.enableProcessChecker=all + + ++ enablePropertiesElement ++ boolean ++ false ++ true ++ ++ ++ + encoding + java.lang.String + 3.0.0-M1 @@ -242,10 +211,17 @@ + + environmentVariables + java.util.Map<java.lang.String, java.lang.String> -+ 2.1.3 + false + true -+ Additional environment variables to set on the command line. ++ ++ ++ ++ excludeJUnit5Engines ++ java.lang.String[] ++ 3.0.0-M6 ++ false ++ true ++ Provide the ID/s of an JUnit engine to be excluded in the test run. + + + excludedEnvironmentVariables @@ -261,21 +237,9 @@ + + excludedGroups + java.lang.String -+ 2.2 + false + true -+ (TestNG/JUnit47 provider with JUnit4.8+ only and JUnit5+ provider since 2.22.0) Excluded groups/categories/tags. Any methods/classes/etc with one of the groups/categories/tags specified in this list will specifically not be run. -+For JUnit4, this parameter forces the use of the 4.7 provider. For JUnit5, this parameter forces the use of the JUnit platform provider. -+This parameter is ignored if the suiteXmlFiles parameter is specified. -+Since version 2.18.1 and JUnit 4.12, the @Category annotation type is automatically inherited from superclasses, see @java.lang.annotation.Inherited. Make sure that test class inheritance still makes sense together with @Category annotation of the JUnit 4.12 or higher appeared in superclass. -+ -+ -+ excludeJUnit5Engines -+ java.lang.String[] -+ 3.0.0-M6 -+ false -+ true -+ Provide the ID/s of an JUnit engine to be excluded in the test run. ++ + + + excludes @@ -318,22 +282,26 @@ + + failIfNoTests + boolean -+ 2.4 + false + true -+ Set this to "true" to cause a failure if there are no tests to run. Defaults to "false". ++ + + + forkCount + java.lang.String -+ 2.14 + false + true -+ 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. -+ -+Example values: "1.5C", "4" -+ -+The system properties and the argLine of the forked processes may contain the place holder string ${surefire.forkNumber}, which is replaced with a fixed number for each of the parallel forks, ranging from 1 to the effective value of forkCount times the maximum number of parallel Surefire executions in maven parallel builds, i.e. the effective value of the -T command line argument of maven core. ++ ++ ++ ++ forkNode ++ org.apache.maven.surefire.extensions.ForkNodeFactory ++ 3.0.0-M5 ++ false ++ true ++ This parameter configures the forked node. Currently, you can select the communication protocol, i.e. process pipes or TCP/IP sockets. The plugin uses process pipes by default which will be turned to TCP/IP in the version 3.0.0. Alternatively, you can implement your own factory and SPI. ++See the documentation for more details: ++https://maven.apache.org/plugins/maven-surefire-plugin/examples/process-communication.html <https://maven.apache.org/plugins/maven-surefire-plugin/examples/process-communication.html> + + + forkedProcessExitTimeoutInSeconds @@ -352,25 +320,11 @@ + Kill the forked test process after a certain number of seconds. If set to 0, wait forever for the process, never timing out. + + -+ forkNode -+ org.apache.maven.surefire.extensions.ForkNodeFactory -+ 3.0.0-M5 -+ false -+ true -+ This parameter configures the forked node. Currently, you can select the communication protocol, i.e. process pipes or TCP/IP sockets. The plugin uses process pipes by default which will be turned to TCP/IP in the version 3.0.0. Alternatively, you can implement your own factory and SPI. -+See the documentation for more details: -+https://maven.apache.org/plugins/maven-surefire-plugin/examples/process-communication.html <https://maven.apache.org/plugins/maven-surefire-plugin/examples/process-communication.html> -+ -+ + groups + java.lang.String -+ 2.2 + false + true -+ (TestNG/JUnit47 provider with JUnit4.8+ only and JUnit5+ provider since 2.22.0) Groups/categories/tags for this test. Only classes/methods/etc decorated with one of the groups/categories/tags specified here will be included in test run, if specified. -+For JUnit4 tests, this parameter forces the use of the 4.7 provider. For JUnit5 tests, this parameter forces the use of the JUnit platform provider. -+This parameter is ignored if the suiteXmlFiles parameter is specified. -+Since version 2.18.1 and JUnit 4.12, the @Category annotation type is automatically inherited from superclasses, see @java.lang.annotation.Inherited. Make sure that test class inheritance still makes sense together with @Category annotation of the JUnit 4.12 or higher appeared in superclass. ++ + + + includeJUnit5Engines @@ -404,62 +358,44 @@ + + jdkToolchain + java.util.Map<java.lang.String, java.lang.String> -+ 3.0.0-M5 and Maven 3.3.x + false + true -+ -+Allow for configuration of the test jvm via maven toolchains. This permits a configuration where the project is built with one jvm and tested with another. This is similar to jvm, but avoids hardcoding paths. The two parameters are mutually exclusive (jvm wins) -+ -+Examples: -+(see Guide to Toolchains <https://maven.apache.org/guides/mini/guide-using-toolchains.html> for more info) <configuration> ... <jdkToolchain> <version>1.11</version> </jdkToolchain> </configuration> <configuration> ... <jdkToolchain> <version>1.8</version> <vendor>zulu</vendor> </jdkToolchain> </configuration> ++ + + + junitArtifactName + java.lang.String -+ 2.3.1 + false + true -+ Allows you to specify the name of the JUnit artifact. If not set, junit:junit will be used. ++ + + + jvm + java.lang.String -+ 2.1 + false + true -+ Option to specify the jvm (or path to the java executable) to use with the forking options. For the default, the jvm will be a new instance of the same VM as the one used to run Maven. JVM settings are not inherited from MAVEN_OPTS. ++ + + + objectFactory + java.lang.String -+ 2.5 + false + true -+ (TestNG only) Define the factory class used to create all test instances. ++ + + + parallel + java.lang.String -+ 2.2 + false + true -+ (TestNG provider) When you use the parameter parallel, 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. Supports two values: classes or methods. -+(JUnit 4.7 provider) Supports values classes, methods, both to run in separate threads been controlled by threadCount. -+ -+Since version 2.16 (JUnit 4.7 provider), the value both is DEPRECATED. Use classesAndMethods instead. -+ -+Since version 2.16 (JUnit 4.7 provider), additional vales are available: -+suites, suitesAndClasses, suitesAndMethods, classesAndMethods, all. -+By default, Surefire does not execute tests in parallel. You can set the parameter parallel to none to explicitly disable parallel execution (e.g. when disabling parallel execution in special Maven profiles when executing coverage analysis). ++ + + + parallelOptimized + boolean -+ 2.17 + false + true -+ (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 true. -+True by default. ++ + + + parallelTestsTimeoutForcedInSeconds @@ -486,10 +422,9 @@ + + perCoreThreadCount + boolean -+ 2.5 + false + true -+ (JUnit 4.7 provider) Indicates that threadCount, threadCountSuites, threadCountClasses, threadCountMethods are per cpu core. ++ + + + printSummary @@ -499,20 +434,25 @@ + Option to print summary of test suites or just print the test cases that have errors. + + -+ properties -+ java.util.Properties -+ 2.4 ++ promoteUserPropertiesToSystemProperties ++ boolean + false + true -+ List of properties for configuring all TestNG related configurations. This is the new preferred method of configuring TestNG. ++ ++ ++ ++ properties ++ java.util.Properties ++ false ++ true ++ + + + redirectTestOutputToFile + boolean -+ 2.3 + false + true -+ Set this to "true" to redirect the unit test standard output to a file (found in reportsDirectory/testName-output.txt). ++ + + + reportFormat @@ -526,7 +466,7 @@ + java.lang.String + false + true -+ Add custom text into report filename: TEST-testClassName-reportNameSuffix.xml, testClassName-reportNameSuffix.txt and testClassName-reportNameSuffix-output.txt. File TEST-testClassName-reportNameSuffix.xml has changed attributes 'testsuite'--'name' and 'testcase'--'classname' - reportNameSuffix is added to the attribute value. ++ + + + reportsDirectory @@ -545,10 +485,9 @@ + + reuseForks + boolean -+ 2.13 + false + true -+ Indicates if forked VMs can be reused. If set to "false", a new VM is forked for each test class to be executed. If set to "true", up to forkCount VMs will be forked and then reused to execute all tests. ++ + + + runOrder @@ -596,7 +535,7 @@ + boolean + false + true -+ Set this to "true" to bypass unit tests entirely. Its use is NOT RECOMMENDED, especially if you enable it using the "maven.test.skip" property, because maven.test.skip disables both running the tests and compiling the tests. Consider using the skipTests parameter instead. ++ + + + skipAfterFailureCount @@ -612,11 +551,10 @@ + + skipExec + boolean -+ 2.3 -+ Use skipTests instead. ++ No reason given + false + true -+ This old parameter is just like skipTests, but bound to the old property "maven.test.skip.exec". ++ + + + skipITs @@ -629,11 +567,9 @@ + + skipTests + boolean -+ 2.4 + false + true -+ Set this to "true" to skip running tests, but still compile them. Its use is NOT RECOMMENDED, but quite convenient on occasion. -+Failsafe plugin deprecated the parameter skipTests and the parameter will be removed in Failsafe 3.0.0 as it is a source of conflicts between Failsafe and Surefire plugin. ++ + + + statelessTestsetInfoReporter @@ -647,7 +583,7 @@ + org.apache.maven.plugin.surefire.extensions.SurefireStatelessReporter + false + true -+ Note: use the legacy system property disableXmlReport set to true to disable the report. ++ + + + suiteXmlFiles @@ -668,35 +604,32 @@ + + systemProperties + java.util.Properties -+ Use systemPropertyVariables instead. ++ No reason given + false + true -+ List of System properties to pass to a provider. ++ + + + systemPropertiesFile + java.io.File + false + true -+ ++ Properties file being used as system properties passed to the provider. ++See also: systemPropertyVariables for how the effective provider properties are calculated + + + systemPropertyVariables + java.util.Map<java.lang.String, java.lang.String> -+ 2.5 + false + true -+ List of System properties to pass to a provider. ++ + + + tempDir + java.lang.String -+ 2.20 + false + true -+ Relative path to temporary-surefire-boot directory containing internal Surefire temporary files. -+The temporary-surefire-boot directory is project.build.directory on most platforms or system default temporary-directory specified by the system property java.io.tmpdir on Windows (see SUREFIRE-1400 <https://issues.apache.org/jira/browse/SUREFIRE-1400>). -+It is deleted after the test set has completed. ++ + + + test @@ -715,74 +648,56 @@ + java.io.File + false + true -+ The directory containing generated test classes of the project being tested. This will be included at the beginning of the test classpath. ++ + + + testNGArtifactName + java.lang.String -+ 2.3.1 + false + true -+ Allows you to specify the name of the TestNG artifact. If not set, org.testng:testng will be used. ++ + + + testSourceDirectory + java.io.File -+ 2.2 + false + true -+ The test source directory containing test class sources. Important only for TestNG HTML reports. ++ + + + threadCount + int -+ 2.2 + false + true -+ (TestNG/JUnit 4.7 provider) The attribute thread-count allows you to specify how many threads should be allocated for this execution. Only makes sense to use in conjunction with the parallel parameter. ++ + + + threadCountClasses + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test classes, i.e.: -+* number of concurrent classes if threadCount is 0 or unspecified -+* limited classes concurrency if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 30% of threadCount in concurrent classes. -+* as in the previous case but without this leaf thread-count. Example: parallel=suitesAndClasses, threadCount=16, threadCountSuites=5, threadCountClasses is unspecified leaf, the number of concurrent classes is varying from >= 11 to 14 or 15. The threadCountSuites become given number of threads. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + threadCountMethods + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test methods, i.e.: -+* number of concurrent methods if threadCount is 0 or unspecified -+* limited concurrency of methods if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 50% of threadCount which appears in concurrent methods. -+* as in the previous case but without this leaf thread-count. Example: parallel=all, threadCount=16, threadCountSuites=2, threadCountClasses=3, but threadCountMethods is unspecified leaf, the number of concurrent methods is varying from >= 11 to 14 or 15. The threadCountSuites and threadCountClasses become given number of threads. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + threadCountSuites + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test suites, i.e.: -+* number of concurrent suites if threadCount is 0 or unspecified -+* limited suites concurrency if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 20% of threadCount which appeared in concurrent suites. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + trimStackTrace + boolean -+ 2.2 + false + true -+ Whether to trim the stack trace in the reports to just the lines within the test, or show the full trace. ++ + + + useFile @@ -820,18 +735,16 @@ + + useUnlimitedThreads + boolean -+ 2.5 + false + true -+ (JUnit 4.7 provider) Indicates that the thread pool will be unlimited. The parallel parameter and the actual number of classes/methods will decide. Setting this to "true" effectively disables perCoreThreadCount and threadCount. Defaults to "false". ++ + + + workingDirectory + java.io.File -+ 2.1.3 + false + true -+ Command line working directory. ++ + + + @@ -842,22 +755,24 @@ + ${maven.test.dependency.excludes} + ${maven.failsafe.debug} + ${dependenciesToScan} -+ ${disableXmlReport} ++ ${disableXmlReport} + ${enableAssertions} ++ ${enableOutErrElements} + ${failsafe.enableProcessChecker} ++ ${enablePropertiesElement} + ${encoding} ++ ${failsafe.excludeJUnit5Engines} + ${failsafe.excludedEnvironmentVariables} + ${excludedGroups} -+ ${failsafe.excludeJUnit5Engines} + ${failsafe.excludes} + ${failsafe.excludesFile} + ${failsafe.failIfNoSpecifiedTests} + ${it.failIfNoSpecifiedTests} + ${failIfNoTests} + ${forkCount} ++ ${failsafe.forkNode} + ${failsafe.exitTimeout} + ${failsafe.timeout} -+ ${failsafe.forkNode} + ${groups} + ${failsafe.includeJUnit5Engines} + ${failsafe.includes} @@ -871,6 +786,7 @@ + ${failsafe.parallel.timeout} + ${perCoreThreadCount} + ${failsafe.printSummary} ++ + ${maven.test.redirectTestOutputToFile} + ${failsafe.reportFormat} + ${surefire.reportNameSuffix} @@ -908,7 +824,7 @@ + + + verify -+ Verify integration tests ran using Surefire. ++ Verify integration tests ran using Failsafe. + false + true + false @@ -1039,13 +955,13 @@ + + + -\ No newline at end of file ---- /dev/null -+++ b/maven-failsafe-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml -@@ -0,0 +1,1262 @@ +diff -urEbwBN a/maven-failsafe-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml b/maven-failsafe-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml +--- a/maven-failsafe-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml 1970-01-01 01:00:00.000000000 +0100 ++++ b/maven-failsafe-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml 2024-11-04 10:44:32.820687653 +0100 +@@ -0,0 +1,1175 @@ + + -+ ++ + + + ${project.name} @@ -1057,7 +973,7 @@ + false + true + 1.8 -+ 3.2.5 ++ 3.6.3 + + + help @@ -1131,53 +1047,37 @@ + + additionalClasspathDependencies + java.util.List -+ 3.2 + false + true -+ Additional Maven dependencies to be added to the test classpath at runtime. Each element supports the parametrization like documented in POM Reference: Dependencies <https://maven.apache.org/pom.html#dependencies>. -+Those dependencies are automatically collected (i.e. have their full dependency tree calculated) and then all underlying artifacts are resolved from the repository (including their transitive dependencies). Afterwards the resolved artifacts are filtered to only contain compile and runtime scoped ones and appended to the test classpath at runtime (after the ones from additionalClasspathElements). -+ -+The following differences to regular project dependency resolving apply: -+ -+* The dependency management from the project is not taken into account. -+* Conflicts between the different items and the project dependencies are not resolved. -+* Only external dependencies (outside the current Maven reactor) are supported. ++ + + + additionalClasspathElements + java.lang.String[] -+ 2.4 + false + true -+ Additional elements to be appended to the test classpath at runtime. Each element must be a file system path to a JAR file or a directory containing classes. No wildcards are allowed here. ++ + + + argLine + java.lang.String -+ 2.1 + false + true -+ Arbitrary JVM options to set on the command line. -+ -+Since the Version 2.17 using an alternate syntax for argLine, @{...} 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: -+http://maven.apache.org/surefire/maven-surefire-plugin/faq.html <http://maven.apache.org/surefire/maven-surefire-plugin/faq.html> -+http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html <http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html> ++ + + + basedir + java.io.File + true + false -+ The base directory of the project being tested. This can be obtained in your integration test via System.getProperty("basedir"). ++ + + + childDelegation + boolean -+ 2.1 + false + true -+ When false it makes tests run using the standard classloader delegation instead of the default Maven isolated classloader. Only used when forking (forkCount is greater than zero). -+Setting it to false helps with some problems caused by conflicts between xml parsers in the classpath and the Java 5 provider parser. ++ + + + classesDirectory @@ -1189,27 +1089,16 @@ + + classpathDependencyExcludes + java.lang.String[] -+ 2.6 + false + true -+ List of dependencies to exclude from the test classpath at runtime. Each item is passed as pattern to org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter. The pattern is matched against the following artifact ids: -+* groupId:artifactId (Short ID) -+* groupId:artifactId:type:classifier (Dependency Conflict ID) -+* groupId:artifactId:type:classifier:version (Full ID) The matching algorithm is described in detail in Advanced Artifact-Matching <https://maven.apache.org/plugins/maven-assembly-plugin/advanced-descriptor-topics.html#advanced-artifact-matching-in-includes-and-excludes> for the maven-assembly-plugin. This parameter behaves the same as the excludes pattern described there. The dependency matching is applied to the project dependency IDs (including transitive ones) after resolving, i.e. excluding one dependency will not exclude its transitive dependencies! ++ + + + classpathDependencyScopeExclude + java.lang.String -+ 2.6 + false + true -+ A dependency scope to exclude from the test classpath at runtime. The scope should be one of the scopes defined by org.apache.maven.artifact.Artifact. This includes the following: -+ -+* compile - system, provided, compile -+* runtime - compile, runtime -+* compile+runtime - system, provided, compile, runtime -+* runtime+system - system, compile, runtime -+* test - system, provided, compile, runtime, test ++ + + + consoleOutputReporter @@ -1236,43 +1125,31 @@ + + dependenciesToScan + java.lang.String[] -+ 2.15 + false + true -+ List of dependencies to scan for test classes to include in the test run. The child elements of this element must be <dependency> elements, and the contents of each of these elements must be a string which follows the general form: -+groupId[:artifactId[:type[:classifier][:version]]] -+ -+The wildcard character * can be used within the sub parts of those composite identifiers to do glob-like pattern matching. The classifier may be omitted when matching dependencies without a classifier. -+ -+Examples: -+ -+* group or, equivalently, group:* -+* g*p:*rtifac* -+* group:*:jar -+* group:artifact:*:1.0.0 (no classifier) -+* group:*:test-jar:tests -+* *:artifact:*:*:1.0.0 -+Since version 2.22.0 you can scan for test classes from a project dependency of your multi-module project. -+ -+In versions before 3.0.0-M4, only groupId:artifactId is supported. -+ ++ + + + disableXmlReport -+ boolean -+ 2.2 ++ java.lang.Boolean + No reason given + false + true -+ Flag to disable the generation of report files in xml format. Deprecated since 3.0.0-M4. Instead use disable within statelessTestsetReporter since of 3.0.0-M6. ++ + + + enableAssertions + boolean -+ 2.3.1 + false + true -+ By default, Surefire enables JVM assertions for the execution of your test cases. To disable the assertions, set this flag to "false". ++ ++ ++ ++ enableOutErrElements ++ boolean ++ false ++ true ++ + + + enableProcessChecker @@ -1292,6 +1169,13 @@ +mvn test -Dfailsafe.enableProcessChecker=all + + ++ enablePropertiesElement ++ boolean ++ false ++ true ++ ++ ++ + encoding + java.lang.String + 3.0.0-M1 @@ -1302,10 +1186,9 @@ + + environmentVariables + java.util.Map -+ 2.1.3 + false + true -+ Additional environment variables to set on the command line. ++ + + + excludeJUnit5Engines @@ -1329,13 +1212,9 @@ + + excludedGroups + java.lang.String -+ 2.2 + false + true -+ (TestNG/JUnit47 provider with JUnit4.8+ only and JUnit5+ provider since 2.22.0) Excluded groups/categories/tags. Any methods/classes/etc with one of the groups/categories/tags specified in this list will specifically not be run. -+For JUnit4, this parameter forces the use of the 4.7 provider. For JUnit5, this parameter forces the use of the JUnit platform provider. -+This parameter is ignored if the suiteXmlFiles parameter is specified. -+Since version 2.18.1 and JUnit 4.12, the @Category annotation type is automatically inherited from superclasses, see @java.lang.annotation.Inherited. Make sure that test class inheritance still makes sense together with @Category annotation of the JUnit 4.12 or higher appeared in superclass. ++ + + + excludes @@ -1378,22 +1257,16 @@ + + failIfNoTests + boolean -+ 2.4 + false + true -+ Set this to "true" to cause a failure if there are no tests to run. Defaults to "false". ++ + + + forkCount + java.lang.String -+ 2.14 + false + true -+ 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. -+ -+Example values: "1.5C", "4" -+ -+The system properties and the argLine of the forked processes may contain the place holder string ${surefire.forkNumber}, which is replaced with a fixed number for each of the parallel forks, ranging from 1 to the effective value of forkCount times the maximum number of parallel Surefire executions in maven parallel builds, i.e. the effective value of the -T command line argument of maven core. ++ + + + forkNode @@ -1424,13 +1297,9 @@ + + groups + java.lang.String -+ 2.2 + false + true -+ (TestNG/JUnit47 provider with JUnit4.8+ only and JUnit5+ provider since 2.22.0) Groups/categories/tags for this test. Only classes/methods/etc decorated with one of the groups/categories/tags specified here will be included in test run, if specified. -+For JUnit4 tests, this parameter forces the use of the 4.7 provider. For JUnit5 tests, this parameter forces the use of the JUnit platform provider. -+This parameter is ignored if the suiteXmlFiles parameter is specified. -+Since version 2.18.1 and JUnit 4.12, the @Category annotation type is automatically inherited from superclasses, see @java.lang.annotation.Inherited. Make sure that test class inheritance still makes sense together with @Category annotation of the JUnit 4.12 or higher appeared in superclass. ++ + + + includeJUnit5Engines @@ -1464,69 +1333,51 @@ + + jdkToolchain + java.util.Map -+ 3.0.0-M5 and Maven 3.3.x + false + true -+ -+Allow for configuration of the test jvm via maven toolchains. This permits a configuration where the project is built with one jvm and tested with another. This is similar to jvm, but avoids hardcoding paths. The two parameters are mutually exclusive (jvm wins) -+ -+Examples: -+(see Guide to Toolchains <https://maven.apache.org/guides/mini/guide-using-toolchains.html> for more info) <configuration> ... <jdkToolchain> <version>1.11</version> </jdkToolchain> </configuration> <configuration> ... <jdkToolchain> <version>1.8</version> <vendor>zulu</vendor> </jdkToolchain> </configuration> ++ + + + junitArtifactName + java.lang.String -+ 2.3.1 + false + true -+ Allows you to specify the name of the JUnit artifact. If not set, junit:junit will be used. ++ + + + jvm + java.lang.String -+ 2.1 + false + true -+ Option to specify the jvm (or path to the java executable) to use with the forking options. For the default, the jvm will be a new instance of the same VM as the one used to run Maven. JVM settings are not inherited from MAVEN_OPTS. ++ + + + objectFactory + java.lang.String -+ 2.5 + false + true -+ (TestNG only) Define the factory class used to create all test instances. ++ + + + parallel + java.lang.String -+ 2.2 + false + true -+ (TestNG provider) When you use the parameter parallel, 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. Supports two values: classes or methods. -+(JUnit 4.7 provider) Supports values classes, methods, both to run in separate threads been controlled by threadCount. -+ -+Since version 2.16 (JUnit 4.7 provider), the value both is DEPRECATED. Use classesAndMethods instead. -+ -+Since version 2.16 (JUnit 4.7 provider), additional vales are available: -+suites, suitesAndClasses, suitesAndMethods, classesAndMethods, all. -+By default, Surefire does not execute tests in parallel. You can set the parameter parallel to none to explicitly disable parallel execution (e.g. when disabling parallel execution in special Maven profiles when executing coverage analysis). ++ + + + parallelMavenExecution + java.lang.Boolean + false + false -+ Parallel Maven Execution. ++ + + + parallelOptimized + boolean -+ 2.17 + false + true -+ (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 true. -+True by default. ++ + + + parallelTestsTimeoutForcedInSeconds @@ -1553,25 +1404,23 @@ + + perCoreThreadCount + boolean -+ 2.5 + false + true -+ (JUnit 4.7 provider) Indicates that threadCount, threadCountSuites, threadCountClasses, threadCountMethods are per cpu core. ++ + + + pluginArtifactMap + java.util.Map + true + false -+ Map of plugin artifacts. ++ + + + pluginDescriptor + org.apache.maven.plugin.descriptor.PluginDescriptor -+ 2.12 + true + false -+ Information about this plugin, mainly used to lookup this plugin's configuration from the currently executing project. ++ + + + printSummary @@ -1585,38 +1434,42 @@ + org.apache.maven.project.MavenProject + true + false -+ The Maven Project Object. ++ + + + projectArtifactMap + java.util.Map + true + false -+ Map of project artifacts. ++ + + + projectBuildDirectory + java.io.File -+ 2.20 + true + false -+ Read-only parameter with value of Maven property project.build.directory. ++ ++ ++ ++ promoteUserPropertiesToSystemProperties ++ boolean ++ false ++ true ++ + + + properties + java.util.Properties -+ 2.4 + false + true -+ List of properties for configuring all TestNG related configurations. This is the new preferred method of configuring TestNG. ++ + + + redirectTestOutputToFile + boolean -+ 2.3 + false + true -+ Set this to "true" to redirect the unit test standard output to a file (found in reportsDirectory/testName-output.txt). ++ + + + reportFormat @@ -1630,7 +1483,7 @@ + java.lang.String + false + true -+ Add custom text into report filename: TEST-testClassName-reportNameSuffix.xml, testClassName-reportNameSuffix.txt and testClassName-reportNameSuffix-output.txt. File TEST-testClassName-reportNameSuffix.xml has changed attributes 'testsuite'--'name' and 'testcase'--'classname' - reportNameSuffix is added to the attribute value. ++ + + + reportsDirectory @@ -1649,10 +1502,9 @@ + + reuseForks + boolean -+ 2.13 + false + true -+ Indicates if forked VMs can be reused. If set to "false", a new VM is forked for each test class to be executed. If set to "true", up to forkCount VMs will be forked and then reused to execute all tests. ++ + + + runOrder @@ -1687,7 +1539,7 @@ + org.apache.maven.execution.MavenSession + true + false -+ The current build session instance. ++ + + + shutdown @@ -1707,7 +1559,7 @@ + boolean + false + true -+ Set this to "true" to bypass unit tests entirely. Its use is NOT RECOMMENDED, especially if you enable it using the "maven.test.skip" property, because maven.test.skip disables both running the tests and compiling the tests. Consider using the skipTests parameter instead. ++ + + + skipAfterFailureCount @@ -1723,11 +1575,10 @@ + + skipExec + boolean -+ 2.3 -+ Use skipTests instead. ++ No reason given + false + true -+ This old parameter is just like skipTests, but bound to the old property "maven.test.skip.exec". ++ + + + skipITs @@ -1740,11 +1591,9 @@ + + skipTests + boolean -+ 2.4 + false + true -+ Set this to "true" to skip running tests, but still compile them. Its use is NOT RECOMMENDED, but quite convenient on occasion. -+Failsafe plugin deprecated the parameter skipTests and the parameter will be removed in Failsafe 3.0.0 as it is a source of conflicts between Failsafe and Surefire plugin. ++ + + + statelessTestsetInfoReporter @@ -1758,7 +1607,7 @@ + org.apache.maven.plugin.surefire.extensions.SurefireStatelessReporter + false + true -+ Note: use the legacy system property disableXmlReport set to true to disable the report. ++ + + + suiteXmlFiles @@ -1779,35 +1628,32 @@ + + systemProperties + java.util.Properties -+ Use systemPropertyVariables instead. ++ No reason given + false + true -+ List of System properties to pass to a provider. ++ + + + systemPropertiesFile + java.io.File + false + true -+ ++ Properties file being used as system properties passed to the provider. ++See also: systemPropertyVariables for how the effective provider properties are calculated + + + systemPropertyVariables + java.util.Map -+ 2.5 + false + true -+ List of System properties to pass to a provider. ++ + + + tempDir + java.lang.String -+ 2.20 + false + true -+ Relative path to temporary-surefire-boot directory containing internal Surefire temporary files. -+The temporary-surefire-boot directory is project.build.directory on most platforms or system default temporary-directory specified by the system property java.io.tmpdir on Windows (see SUREFIRE-1400 <https://issues.apache.org/jira/browse/SUREFIRE-1400>). -+It is deleted after the test set has completed. ++ + + + test @@ -1826,74 +1672,56 @@ + java.io.File + false + true -+ The directory containing generated test classes of the project being tested. This will be included at the beginning of the test classpath. ++ + + + testNGArtifactName + java.lang.String -+ 2.3.1 + false + true -+ Allows you to specify the name of the TestNG artifact. If not set, org.testng:testng will be used. ++ + + + testSourceDirectory + java.io.File -+ 2.2 + false + true -+ The test source directory containing test class sources. Important only for TestNG HTML reports. ++ + + + threadCount + int -+ 2.2 + false + true -+ (TestNG/JUnit 4.7 provider) The attribute thread-count allows you to specify how many threads should be allocated for this execution. Only makes sense to use in conjunction with the parallel parameter. ++ + + + threadCountClasses + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test classes, i.e.: -+* number of concurrent classes if threadCount is 0 or unspecified -+* limited classes concurrency if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 30% of threadCount in concurrent classes. -+* as in the previous case but without this leaf thread-count. Example: parallel=suitesAndClasses, threadCount=16, threadCountSuites=5, threadCountClasses is unspecified leaf, the number of concurrent classes is varying from >= 11 to 14 or 15. The threadCountSuites become given number of threads. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + threadCountMethods + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test methods, i.e.: -+* number of concurrent methods if threadCount is 0 or unspecified -+* limited concurrency of methods if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 50% of threadCount which appears in concurrent methods. -+* as in the previous case but without this leaf thread-count. Example: parallel=all, threadCount=16, threadCountSuites=2, threadCountClasses=3, but threadCountMethods is unspecified leaf, the number of concurrent methods is varying from >= 11 to 14 or 15. The threadCountSuites and threadCountClasses become given number of threads. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + threadCountSuites + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test suites, i.e.: -+* number of concurrent suites if threadCount is 0 or unspecified -+* limited suites concurrency if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 20% of threadCount which appeared in concurrent suites. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + trimStackTrace + boolean -+ 2.2 + false + true -+ Whether to trim the stack trace in the reports to just the lines within the test, or show the full trace. ++ + + + useFile @@ -1931,18 +1759,16 @@ + + useUnlimitedThreads + boolean -+ 2.5 + false + true -+ (JUnit 4.7 provider) Indicates that the thread pool will be unlimited. The parallel parameter and the actual number of classes/methods will decide. Setting this to "true" effectively disables perCoreThreadCount and threadCount. Defaults to "false". ++ + + + workingDirectory + java.io.File -+ 2.1.3 + false + true -+ Command line working directory. ++ + + + @@ -1955,9 +1781,11 @@ + ${maven.failsafe.debug} + + ${dependenciesToScan} -+ ${disableXmlReport} ++ ${disableXmlReport} + ${enableAssertions} ++ ${enableOutErrElements} + ${failsafe.enableProcessChecker} ++ ${enablePropertiesElement} + ${encoding} + ${failsafe.excludeJUnit5Engines} + ${failsafe.excludedEnvironmentVariables} @@ -1990,6 +1818,7 @@ + + ${project.artifactMap} + ++ + ${maven.test.redirectTestOutputToFile} + ${failsafe.reportFormat} + ${surefire.reportNameSuffix} @@ -2050,7 +1879,7 @@ + + + verify -+ Verify integration tests ran using Surefire. ++ Verify integration tests ran using Failsafe. + false + true + false @@ -2196,100 +2025,10 @@ + + + -+ org.apache.maven.surefire -+ maven-surefire-common -+ jar -+ 3.2.5 -+ -+ -+ org.apache.maven.surefire -+ surefire-api -+ jar -+ 3.2.5 -+ -+ -+ org.apache.maven.surefire -+ surefire-logger-api -+ jar -+ 3.2.5 -+ -+ -+ org.apache.maven.surefire -+ surefire-extensions-api -+ jar -+ 3.2.5 -+ -+ -+ org.apache.maven.surefire -+ surefire-booter -+ jar -+ 3.2.5 -+ -+ -+ org.apache.maven.surefire -+ surefire-extensions-spi -+ jar -+ 3.2.5 -+ -+ -+ org.eclipse.aether -+ aether-util -+ jar -+ 1.0.0.v20140518 -+ -+ -+ org.apache.maven.shared -+ maven-common-artifact-filters -+ jar -+ 3.1.1 -+ -+ -+ org.codehaus.plexus -+ plexus-java -+ jar -+ 1.2.0 -+ -+ -+ org.ow2.asm -+ asm -+ jar -+ 9.2 -+ -+ -+ com.thoughtworks.qdox -+ qdox -+ jar -+ 2.0.1 -+ -+ -+ org.apache.maven.surefire -+ surefire-shared-utils -+ jar -+ 3.2.5 -+ -+ -+ commons-io -+ commons-io -+ jar -+ 2.15.1 -+ -+ + org.apache.commons -+ commons-compress ++ commons-lang3 + jar -+ 1.25.0 -+ -+ -+ org.slf4j -+ slf4j-api -+ jar -+ 1.7.36 -+ -+ -+ org.apache.maven.resolver -+ maven-resolver-api -+ jar -+ 1.9.18 ++ 3.17.0 + + + org.apache.maven.shared @@ -2298,16 +2037,106 @@ + 3.3.4 + + -+ org.apache.commons -+ commons-lang3 ++ commons-io ++ commons-io + jar -+ 3.14.0 ++ 2.17.0 ++ ++ ++ org.slf4j ++ slf4j-api ++ jar ++ 1.7.36 ++ ++ ++ org.apache.maven.surefire ++ surefire-api ++ jar ++ 3.5.2 ++ ++ ++ org.apache.maven.surefire ++ surefire-logger-api ++ jar ++ 3.5.2 ++ ++ ++ org.apache.maven.surefire ++ surefire-booter ++ jar ++ 3.5.2 ++ ++ ++ org.apache.maven.surefire ++ surefire-extensions-spi ++ jar ++ 3.5.2 ++ ++ ++ org.apache.maven.surefire ++ surefire-extensions-api ++ jar ++ 3.5.2 ++ ++ ++ org.apache.maven.surefire ++ maven-surefire-common ++ jar ++ 3.5.2 ++ ++ ++ org.codehaus.plexus ++ plexus-java ++ jar ++ 1.3.0 ++ ++ ++ org.ow2.asm ++ asm ++ jar ++ 9.6 ++ ++ ++ com.thoughtworks.qdox ++ qdox ++ jar ++ 2.0.3 ++ ++ ++ org.apache.commons ++ commons-compress ++ jar ++ 1.27.1 ++ ++ ++ commons-codec ++ commons-codec ++ jar ++ 1.16.1 ++ ++ ++ org.apache.maven.resolver ++ maven-resolver-util ++ jar ++ 1.4.1 ++ ++ ++ org.apache.maven.shared ++ maven-common-artifact-filters ++ jar ++ 3.4.0 ++ ++ ++ org.apache.maven.resolver ++ maven-resolver-api ++ jar ++ 1.9.22 + + + -\ No newline at end of file ---- /dev/null -+++ b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/maven_failsafe_plugin/HelpMojo.java +diff -urEbwBN a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/maven_failsafe_plugin/HelpMojo.java b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/maven_failsafe_plugin/HelpMojo.java +--- a/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/maven_failsafe_plugin/HelpMojo.java 1970-01-01 01:00:00.000000000 +0100 ++++ b/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/maven_failsafe_plugin/HelpMojo.java 2024-11-04 10:37:46.084598212 +0100 @@ -0,0 +1,448 @@ +package org.apache.maven.plugins.maven_failsafe_plugin; + @@ -2757,12 +2586,13 @@ + return null; + } +} ---- /dev/null -+++ b/maven-surefire-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-surefire-plugin/plugin-help.xml -@@ -0,0 +1,897 @@ +diff -urEbwBN a/maven-surefire-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-surefire-plugin/plugin-help.xml b/maven-surefire-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-surefire-plugin/plugin-help.xml +--- a/maven-surefire-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-surefire-plugin/plugin-help.xml 1970-01-01 01:00:00.000000000 +0100 ++++ b/maven-surefire-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-surefire-plugin/plugin-help.xml 2024-11-04 10:47:52.325388910 +0100 +@@ -0,0 +1,812 @@ + + -+ ++ + + + ${project.name} @@ -2835,7 +2665,7 @@ + false + true + test -+ org.apache.maven.plugin.surefire.SurefirePlugin ++ org.apache.maven.plugin.surefire.SurefireMojo + java + per-lookup + once-per-session @@ -2844,46 +2674,30 @@ + + additionalClasspathDependencies + java.util.List<org.apache.maven.model.Dependency> -+ 3.2 + false + true -+ Additional Maven dependencies to be added to the test classpath at runtime. Each element supports the parametrization like documented in POM Reference: Dependencies <https://maven.apache.org/pom.html#dependencies>. -+Those dependencies are automatically collected (i.e. have their full dependency tree calculated) and then all underlying artifacts are resolved from the repository (including their transitive dependencies). Afterwards the resolved artifacts are filtered to only contain compile and runtime scoped ones and appended to the test classpath at runtime (after the ones from additionalClasspathElements). -+ -+The following differences to regular project dependency resolving apply: -+ -+* The dependency management from the project is not taken into account. -+* Conflicts between the different items and the project dependencies are not resolved. -+* Only external dependencies (outside the current Maven reactor) are supported. ++ + + + additionalClasspathElements + java.lang.String[] -+ 2.4 + false + true -+ Additional elements to be appended to the test classpath at runtime. Each element must be a file system path to a JAR file or a directory containing classes. No wildcards are allowed here. ++ + + + argLine + java.lang.String -+ 2.1 + false + true -+ Arbitrary JVM options to set on the command line. -+ -+Since the Version 2.17 using an alternate syntax for argLine, @{...} 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: -+http://maven.apache.org/surefire/maven-surefire-plugin/faq.html <http://maven.apache.org/surefire/maven-surefire-plugin/faq.html> -+http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html <http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html> ++ + + + childDelegation + boolean -+ 2.1 + false + true -+ When false it makes tests run using the standard classloader delegation instead of the default Maven isolated classloader. Only used when forking (forkCount is greater than zero). -+Setting it to false helps with some problems caused by conflicts between xml parsers in the classpath and the Java 5 provider parser. ++ + + + classesDirectory @@ -2895,27 +2709,16 @@ + + classpathDependencyExcludes + java.lang.String[] -+ 2.6 + false + true -+ List of dependencies to exclude from the test classpath at runtime. Each item is passed as pattern to org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter. The pattern is matched against the following artifact ids: -+* groupId:artifactId (Short ID) -+* groupId:artifactId:type:classifier (Dependency Conflict ID) -+* groupId:artifactId:type:classifier:version (Full ID) The matching algorithm is described in detail in Advanced Artifact-Matching <https://maven.apache.org/plugins/maven-assembly-plugin/advanced-descriptor-topics.html#advanced-artifact-matching-in-includes-and-excludes> for the maven-assembly-plugin. This parameter behaves the same as the excludes pattern described there. The dependency matching is applied to the project dependency IDs (including transitive ones) after resolving, i.e. excluding one dependency will not exclude its transitive dependencies! ++ + + + classpathDependencyScopeExclude + java.lang.String -+ 2.6 + false + true -+ A dependency scope to exclude from the test classpath at runtime. The scope should be one of the scopes defined by org.apache.maven.artifact.Artifact. This includes the following: -+ -+* compile - system, provided, compile -+* runtime - compile, runtime -+* compile+runtime - system, provided, compile, runtime -+* runtime+system - system, compile, runtime -+* test - system, provided, compile, runtime, test ++ + + + consoleOutputReporter @@ -2935,43 +2738,31 @@ + + dependenciesToScan + java.lang.String[] -+ 2.15 + false + true -+ List of dependencies to scan for test classes to include in the test run. The child elements of this element must be <dependency> elements, and the contents of each of these elements must be a string which follows the general form: -+groupId[:artifactId[:type[:classifier][:version]]] -+ -+The wildcard character * can be used within the sub parts of those composite identifiers to do glob-like pattern matching. The classifier may be omitted when matching dependencies without a classifier. -+ -+Examples: -+ -+* group or, equivalently, group:* -+* g*p:*rtifac* -+* group:*:jar -+* group:artifact:*:1.0.0 (no classifier) -+* group:*:test-jar:tests -+* *:artifact:*:*:1.0.0 -+Since version 2.22.0 you can scan for test classes from a project dependency of your multi-module project. -+ -+In versions before 3.0.0-M4, only groupId:artifactId is supported. -+ ++ + + + disableXmlReport -+ boolean -+ 2.2 ++ java.lang.Boolean + No reason given + false + true -+ Flag to disable the generation of report files in xml format. Deprecated since 3.0.0-M4. Instead use disable within statelessTestsetReporter since of 3.0.0-M6. ++ + + + enableAssertions + boolean -+ 2.3.1 + false + true -+ By default, Surefire enables JVM assertions for the execution of your test cases. To disable the assertions, set this flag to "false". ++ ++ ++ ++ enableOutErrElements ++ boolean ++ false ++ true ++ + + + enableProcessChecker @@ -2991,6 +2782,13 @@ +mvn test -Dsurefire.enableProcessChecker=all + + ++ enablePropertiesElement ++ boolean ++ false ++ true ++ ++ ++ + encoding + java.lang.String + 3.0.0-M1 @@ -3001,10 +2799,17 @@ + + environmentVariables + java.util.Map<java.lang.String, java.lang.String> -+ 2.1.3 + false + true -+ Additional environment variables to set on the command line. ++ ++ ++ ++ excludeJUnit5Engines ++ java.lang.String[] ++ 3.0.0-M6 ++ false ++ true ++ Provide the ID/s of an JUnit engine to be excluded in the test run. + + + excludedEnvironmentVariables @@ -3020,21 +2825,9 @@ + + excludedGroups + java.lang.String -+ 2.2 + false + true -+ (TestNG/JUnit47 provider with JUnit4.8+ only and JUnit5+ provider since 2.22.0) Excluded groups/categories/tags. Any methods/classes/etc with one of the groups/categories/tags specified in this list will specifically not be run. -+For JUnit4, this parameter forces the use of the 4.7 provider. For JUnit5, this parameter forces the use of the JUnit platform provider. -+This parameter is ignored if the suiteXmlFiles parameter is specified. -+Since version 2.18.1 and JUnit 4.12, the @Category annotation type is automatically inherited from superclasses, see @java.lang.annotation.Inherited. Make sure that test class inheritance still makes sense together with @Category annotation of the JUnit 4.12 or higher appeared in superclass. -+ -+ -+ excludeJUnit5Engines -+ java.lang.String[] -+ 3.0.0-M6 -+ false -+ true -+ Provide the ID/s of an JUnit engine to be excluded in the test run. ++ + + + excludes @@ -3068,10 +2861,9 @@ + + failIfNoTests + boolean -+ 2.4 + false + true -+ Set this to "true" to cause a failure if there are no tests to run. Defaults to "false". ++ + + + failOnFlakeCount @@ -3084,14 +2876,19 @@ + + forkCount + java.lang.String -+ 2.14 + false + true -+ 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. -+ -+Example values: "1.5C", "4" -+ -+The system properties and the argLine of the forked processes may contain the place holder string ${surefire.forkNumber}, which is replaced with a fixed number for each of the parallel forks, ranging from 1 to the effective value of forkCount times the maximum number of parallel Surefire executions in maven parallel builds, i.e. the effective value of the -T command line argument of maven core. ++ ++ ++ ++ forkNode ++ org.apache.maven.surefire.extensions.ForkNodeFactory ++ 3.0.0-M5 ++ false ++ true ++ This parameter configures the forked node. Currently, you can select the communication protocol, i.e. process pipes or TCP/IP sockets. The plugin uses process pipes by default which will be turned to TCP/IP in the version 3.0.0. Alternatively, you can implement your own factory and SPI. ++See the documentation for more details: ++https://maven.apache.org/plugins/maven-surefire-plugin/examples/process-communication.html <https://maven.apache.org/plugins/maven-surefire-plugin/examples/process-communication.html> + + + forkedProcessExitTimeoutInSeconds @@ -3110,25 +2907,11 @@ + Kill the forked test process after a certain number of seconds. If set to 0, wait forever for the process, never timing out. + + -+ forkNode -+ org.apache.maven.surefire.extensions.ForkNodeFactory -+ 3.0.0-M5 -+ false -+ true -+ This parameter configures the forked node. Currently, you can select the communication protocol, i.e. process pipes or TCP/IP sockets. The plugin uses process pipes by default which will be turned to TCP/IP in the version 3.0.0. Alternatively, you can implement your own factory and SPI. -+See the documentation for more details: -+https://maven.apache.org/plugins/maven-surefire-plugin/examples/process-communication.html <https://maven.apache.org/plugins/maven-surefire-plugin/examples/process-communication.html> -+ -+ + groups + java.lang.String -+ 2.2 + false + true -+ (TestNG/JUnit47 provider with JUnit4.8+ only and JUnit5+ provider since 2.22.0) Groups/categories/tags for this test. Only classes/methods/etc decorated with one of the groups/categories/tags specified here will be included in test run, if specified. -+For JUnit4 tests, this parameter forces the use of the 4.7 provider. For JUnit5 tests, this parameter forces the use of the JUnit platform provider. -+This parameter is ignored if the suiteXmlFiles parameter is specified. -+Since version 2.18.1 and JUnit 4.12, the @Category annotation type is automatically inherited from superclasses, see @java.lang.annotation.Inherited. Make sure that test class inheritance still makes sense together with @Category annotation of the JUnit 4.12 or higher appeared in superclass. ++ + + + includeJUnit5Engines @@ -3161,62 +2944,44 @@ + + jdkToolchain + java.util.Map<java.lang.String, java.lang.String> -+ 3.0.0-M5 and Maven 3.3.x + false + true -+ -+Allow for configuration of the test jvm via maven toolchains. This permits a configuration where the project is built with one jvm and tested with another. This is similar to jvm, but avoids hardcoding paths. The two parameters are mutually exclusive (jvm wins) -+ -+Examples: -+(see Guide to Toolchains <https://maven.apache.org/guides/mini/guide-using-toolchains.html> for more info) <configuration> ... <jdkToolchain> <version>1.11</version> </jdkToolchain> </configuration> <configuration> ... <jdkToolchain> <version>1.8</version> <vendor>zulu</vendor> </jdkToolchain> </configuration> ++ + + + junitArtifactName + java.lang.String -+ 2.3.1 + false + true -+ Allows you to specify the name of the JUnit artifact. If not set, junit:junit will be used. ++ + + + jvm + java.lang.String -+ 2.1 + false + true -+ Option to specify the jvm (or path to the java executable) to use with the forking options. For the default, the jvm will be a new instance of the same VM as the one used to run Maven. JVM settings are not inherited from MAVEN_OPTS. ++ + + + objectFactory + java.lang.String -+ 2.5 + false + true -+ (TestNG only) Define the factory class used to create all test instances. ++ + + + parallel + java.lang.String -+ 2.2 + false + true -+ (TestNG provider) When you use the parameter parallel, 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. Supports two values: classes or methods. -+(JUnit 4.7 provider) Supports values classes, methods, both to run in separate threads been controlled by threadCount. -+ -+Since version 2.16 (JUnit 4.7 provider), the value both is DEPRECATED. Use classesAndMethods instead. -+ -+Since version 2.16 (JUnit 4.7 provider), additional vales are available: -+suites, suitesAndClasses, suitesAndMethods, classesAndMethods, all. -+By default, Surefire does not execute tests in parallel. You can set the parameter parallel to none to explicitly disable parallel execution (e.g. when disabling parallel execution in special Maven profiles when executing coverage analysis). ++ + + + parallelOptimized + boolean -+ 2.17 + false + true -+ (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 true. -+True by default. ++ + + + parallelTestsTimeoutForcedInSeconds @@ -3243,10 +3008,9 @@ + + perCoreThreadCount + boolean -+ 2.5 + false + true -+ (JUnit 4.7 provider) Indicates that threadCount, threadCountSuites, threadCountClasses, threadCountMethods are per cpu core. ++ + + + printSummary @@ -3256,20 +3020,25 @@ + Option to print summary of test suites or just print the test cases that have errors. + + -+ properties -+ java.util.Properties -+ 2.4 ++ promoteUserPropertiesToSystemProperties ++ boolean + false + true -+ List of properties for configuring all TestNG related configurations. This is the new preferred method of configuring TestNG. ++ ++ ++ ++ properties ++ java.util.Properties ++ false ++ true ++ + + + redirectTestOutputToFile + boolean -+ 2.3 + false + true -+ Set this to "true" to redirect the unit test standard output to a file (found in reportsDirectory/testName-output.txt). ++ + + + reportFormat @@ -3283,7 +3052,7 @@ + java.lang.String + false + true -+ Add custom text into report filename: TEST-testClassName-reportNameSuffix.xml, testClassName-reportNameSuffix.txt and testClassName-reportNameSuffix-output.txt. File TEST-testClassName-reportNameSuffix.xml has changed attributes 'testsuite'--'name' and 'testcase'--'classname' - reportNameSuffix is added to the attribute value. ++ + + + reportsDirectory @@ -3302,10 +3071,9 @@ + + reuseForks + boolean -+ 2.13 + false + true -+ Indicates if forked VMs can be reused. If set to "false", a new VM is forked for each test class to be executed. If set to "true", up to forkCount VMs will be forked and then reused to execute all tests. ++ + + + runOrder @@ -3353,7 +3121,7 @@ + boolean + false + true -+ Set this to "true" to bypass unit tests entirely. Its use is NOT RECOMMENDED, especially if you enable it using the "maven.test.skip" property, because maven.test.skip disables both running the tests and compiling the tests. Consider using the skipTests parameter instead. ++ + + + skipAfterFailureCount @@ -3369,20 +3137,17 @@ + + skipExec + boolean -+ 2.3 -+ Use skipTests instead. ++ No reason given + false + true -+ This old parameter is just like skipTests, but bound to the old property "maven.test.skip.exec". ++ + + + skipTests + boolean -+ 2.4 + false + true -+ Set this to "true" to skip running tests, but still compile them. Its use is NOT RECOMMENDED, but quite convenient on occasion. -+Failsafe plugin deprecated the parameter skipTests and the parameter will be removed in Failsafe 3.0.0 as it is a source of conflicts between Failsafe and Surefire plugin. ++ + + + statelessTestsetInfoReporter @@ -3396,7 +3161,7 @@ + org.apache.maven.plugin.surefire.extensions.SurefireStatelessReporter + false + true -+ Note: use the legacy system property disableXmlReport set to true to disable the report. ++ + + + suiteXmlFiles @@ -3410,35 +3175,32 @@ + + systemProperties + java.util.Properties -+ Use systemPropertyVariables instead. ++ No reason given + false + true -+ List of System properties to pass to a provider. ++ + + + systemPropertiesFile + java.io.File + false + true -+ ++ Properties file being used as system properties passed to the provider. ++See also: AbstractSurefireMojo#systemPropertyVariables systemPropertyVariables for how the effective provider properties are calculated + + + systemPropertyVariables + java.util.Map<java.lang.String, java.lang.String> -+ 2.5 + false + true -+ List of System properties to pass to a provider. ++ + + + tempDir + java.lang.String -+ 2.20 + false + true -+ Relative path to temporary-surefire-boot directory containing internal Surefire temporary files. -+The temporary-surefire-boot directory is project.build.directory on most platforms or system default temporary-directory specified by the system property java.io.tmpdir on Windows (see SUREFIRE-1400 <https://issues.apache.org/jira/browse/SUREFIRE-1400>). -+It is deleted after the test set has completed. ++ + + + test @@ -3457,7 +3219,7 @@ + java.io.File + false + true -+ The directory containing generated test classes of the project being tested. This will be included at the beginning of the test classpath. ++ + + + testFailureIgnore @@ -3469,69 +3231,51 @@ + + testNGArtifactName + java.lang.String -+ 2.3.1 + false + true -+ Allows you to specify the name of the TestNG artifact. If not set, org.testng:testng will be used. ++ + + + testSourceDirectory + java.io.File -+ 2.2 + false + true -+ The test source directory containing test class sources. Important only for TestNG HTML reports. ++ + + + threadCount + int -+ 2.2 + false + true -+ (TestNG/JUnit 4.7 provider) The attribute thread-count allows you to specify how many threads should be allocated for this execution. Only makes sense to use in conjunction with the parallel parameter. ++ + + + threadCountClasses + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test classes, i.e.: -+* number of concurrent classes if threadCount is 0 or unspecified -+* limited classes concurrency if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 30% of threadCount in concurrent classes. -+* as in the previous case but without this leaf thread-count. Example: parallel=suitesAndClasses, threadCount=16, threadCountSuites=5, threadCountClasses is unspecified leaf, the number of concurrent classes is varying from >= 11 to 14 or 15. The threadCountSuites become given number of threads. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + threadCountMethods + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test methods, i.e.: -+* number of concurrent methods if threadCount is 0 or unspecified -+* limited concurrency of methods if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 50% of threadCount which appears in concurrent methods. -+* as in the previous case but without this leaf thread-count. Example: parallel=all, threadCount=16, threadCountSuites=2, threadCountClasses=3, but threadCountMethods is unspecified leaf, the number of concurrent methods is varying from >= 11 to 14 or 15. The threadCountSuites and threadCountClasses become given number of threads. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + threadCountSuites + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test suites, i.e.: -+* number of concurrent suites if threadCount is 0 or unspecified -+* limited suites concurrency if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 20% of threadCount which appeared in concurrent suites. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + trimStackTrace + boolean -+ 2.2 + false + true -+ Whether to trim the stack trace in the reports to just the lines within the test, or show the full trace. ++ + + + useFile @@ -3569,18 +3313,16 @@ + + useUnlimitedThreads + boolean -+ 2.5 + false + true -+ (JUnit 4.7 provider) Indicates that the thread pool will be unlimited. The parallel parameter and the actual number of classes/methods will decide. Setting this to "true" effectively disables perCoreThreadCount and threadCount. Defaults to "false". ++ + + + workingDirectory + java.io.File -+ 2.1.3 + false + true -+ Command line working directory. ++ + + + @@ -3592,22 +3334,24 @@ + ${maven.test.dependency.excludes} + ${maven.surefire.debug} + ${dependenciesToScan} -+ ${disableXmlReport} ++ ${disableXmlReport} + ${enableAssertions} ++ ${enableOutErrElements} + ${surefire.enableProcessChecker} ++ ${enablePropertiesElement} + ${surefire.encoding} ++ ${surefire.excludeJUnit5Engines} + ${surefire.excludedEnvironmentVariables} + ${excludedGroups} -+ ${surefire.excludeJUnit5Engines} + ${surefire.excludes} + ${surefire.excludesFile} + ${surefire.failIfNoSpecifiedTests} + ${failIfNoTests} + ${surefire.failOnFlakeCount} + ${forkCount} ++ ${surefire.forkNode} + ${surefire.exitTimeout} + ${surefire.timeout} -+ ${surefire.forkNode} + ${groups} + ${surefire.includeJUnit5Engines} + ${surefire.includes} @@ -3621,6 +3365,7 @@ + ${surefire.parallel.timeout} + ${perCoreThreadCount} + ${surefire.printSummary} ++ + ${maven.test.redirectTestOutputToFile} + ${surefire.reportFormat} + ${surefire.reportNameSuffix} @@ -3657,13 +3402,13 @@ + + + -\ No newline at end of file ---- /dev/null -+++ b/maven-surefire-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml -@@ -0,0 +1,1099 @@ +diff -urEbwBN a/maven-surefire-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml b/maven-surefire-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml +--- a/maven-surefire-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml 1970-01-01 01:00:00.000000000 +0100 ++++ b/maven-surefire-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml 2024-11-04 10:48:40.175717003 +0100 +@@ -0,0 +1,1012 @@ + + -+ ++ + + + ${project.name} @@ -3675,7 +3420,7 @@ + false + true + 1.8 -+ 3.2.5 ++ 3.6.3 + + + help @@ -3740,7 +3485,7 @@ + false + true + test -+ org.apache.maven.plugin.surefire.SurefirePlugin ++ org.apache.maven.plugin.surefire.SurefireMojo + java + per-lookup + once-per-session @@ -3749,53 +3494,37 @@ + + additionalClasspathDependencies + java.util.List -+ 3.2 + false + true -+ Additional Maven dependencies to be added to the test classpath at runtime. Each element supports the parametrization like documented in POM Reference: Dependencies <https://maven.apache.org/pom.html#dependencies>. -+Those dependencies are automatically collected (i.e. have their full dependency tree calculated) and then all underlying artifacts are resolved from the repository (including their transitive dependencies). Afterwards the resolved artifacts are filtered to only contain compile and runtime scoped ones and appended to the test classpath at runtime (after the ones from additionalClasspathElements). -+ -+The following differences to regular project dependency resolving apply: -+ -+* The dependency management from the project is not taken into account. -+* Conflicts between the different items and the project dependencies are not resolved. -+* Only external dependencies (outside the current Maven reactor) are supported. ++ + + + additionalClasspathElements + java.lang.String[] -+ 2.4 + false + true -+ Additional elements to be appended to the test classpath at runtime. Each element must be a file system path to a JAR file or a directory containing classes. No wildcards are allowed here. ++ + + + argLine + java.lang.String -+ 2.1 + false + true -+ Arbitrary JVM options to set on the command line. -+ -+Since the Version 2.17 using an alternate syntax for argLine, @{...} 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: -+http://maven.apache.org/surefire/maven-surefire-plugin/faq.html <http://maven.apache.org/surefire/maven-surefire-plugin/faq.html> -+http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html <http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html> ++ + + + basedir + java.io.File + true + false -+ The base directory of the project being tested. This can be obtained in your integration test via System.getProperty("basedir"). ++ + + + childDelegation + boolean -+ 2.1 + false + true -+ When false it makes tests run using the standard classloader delegation instead of the default Maven isolated classloader. Only used when forking (forkCount is greater than zero). -+Setting it to false helps with some problems caused by conflicts between xml parsers in the classpath and the Java 5 provider parser. ++ + + + classesDirectory @@ -3807,27 +3536,16 @@ + + classpathDependencyExcludes + java.lang.String[] -+ 2.6 + false + true -+ List of dependencies to exclude from the test classpath at runtime. Each item is passed as pattern to org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter. The pattern is matched against the following artifact ids: -+* groupId:artifactId (Short ID) -+* groupId:artifactId:type:classifier (Dependency Conflict ID) -+* groupId:artifactId:type:classifier:version (Full ID) The matching algorithm is described in detail in Advanced Artifact-Matching <https://maven.apache.org/plugins/maven-assembly-plugin/advanced-descriptor-topics.html#advanced-artifact-matching-in-includes-and-excludes> for the maven-assembly-plugin. This parameter behaves the same as the excludes pattern described there. The dependency matching is applied to the project dependency IDs (including transitive ones) after resolving, i.e. excluding one dependency will not exclude its transitive dependencies! ++ + + + classpathDependencyScopeExclude + java.lang.String -+ 2.6 + false + true -+ A dependency scope to exclude from the test classpath at runtime. The scope should be one of the scopes defined by org.apache.maven.artifact.Artifact. This includes the following: -+ -+* compile - system, provided, compile -+* runtime - compile, runtime -+* compile+runtime - system, provided, compile, runtime -+* runtime+system - system, compile, runtime -+* test - system, provided, compile, runtime, test ++ + + + consoleOutputReporter @@ -3847,43 +3565,31 @@ + + dependenciesToScan + java.lang.String[] -+ 2.15 + false + true -+ List of dependencies to scan for test classes to include in the test run. The child elements of this element must be <dependency> elements, and the contents of each of these elements must be a string which follows the general form: -+groupId[:artifactId[:type[:classifier][:version]]] -+ -+The wildcard character * can be used within the sub parts of those composite identifiers to do glob-like pattern matching. The classifier may be omitted when matching dependencies without a classifier. -+ -+Examples: -+ -+* group or, equivalently, group:* -+* g*p:*rtifac* -+* group:*:jar -+* group:artifact:*:1.0.0 (no classifier) -+* group:*:test-jar:tests -+* *:artifact:*:*:1.0.0 -+Since version 2.22.0 you can scan for test classes from a project dependency of your multi-module project. -+ -+In versions before 3.0.0-M4, only groupId:artifactId is supported. -+ ++ + + + disableXmlReport -+ boolean -+ 2.2 ++ java.lang.Boolean + No reason given + false + true -+ Flag to disable the generation of report files in xml format. Deprecated since 3.0.0-M4. Instead use disable within statelessTestsetReporter since of 3.0.0-M6. ++ + + + enableAssertions + boolean -+ 2.3.1 + false + true -+ By default, Surefire enables JVM assertions for the execution of your test cases. To disable the assertions, set this flag to "false". ++ ++ ++ ++ enableOutErrElements ++ boolean ++ false ++ true ++ + + + enableProcessChecker @@ -3903,6 +3609,13 @@ +mvn test -Dsurefire.enableProcessChecker=all + + ++ enablePropertiesElement ++ boolean ++ false ++ true ++ ++ ++ + encoding + java.lang.String + 3.0.0-M1 @@ -3913,10 +3626,9 @@ + + environmentVariables + java.util.Map -+ 2.1.3 + false + true -+ Additional environment variables to set on the command line. ++ + + + excludeJUnit5Engines @@ -3940,13 +3652,9 @@ + + excludedGroups + java.lang.String -+ 2.2 + false + true -+ (TestNG/JUnit47 provider with JUnit4.8+ only and JUnit5+ provider since 2.22.0) Excluded groups/categories/tags. Any methods/classes/etc with one of the groups/categories/tags specified in this list will specifically not be run. -+For JUnit4, this parameter forces the use of the 4.7 provider. For JUnit5, this parameter forces the use of the JUnit platform provider. -+This parameter is ignored if the suiteXmlFiles parameter is specified. -+Since version 2.18.1 and JUnit 4.12, the @Category annotation type is automatically inherited from superclasses, see @java.lang.annotation.Inherited. Make sure that test class inheritance still makes sense together with @Category annotation of the JUnit 4.12 or higher appeared in superclass. ++ + + + excludes @@ -3980,10 +3688,9 @@ + + failIfNoTests + boolean -+ 2.4 + false + true -+ Set this to "true" to cause a failure if there are no tests to run. Defaults to "false". ++ + + + failOnFlakeCount @@ -3996,14 +3703,9 @@ + + forkCount + java.lang.String -+ 2.14 + false + true -+ 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. -+ -+Example values: "1.5C", "4" -+ -+The system properties and the argLine of the forked processes may contain the place holder string ${surefire.forkNumber}, which is replaced with a fixed number for each of the parallel forks, ranging from 1 to the effective value of forkCount times the maximum number of parallel Surefire executions in maven parallel builds, i.e. the effective value of the -T command line argument of maven core. ++ + + + forkNode @@ -4034,13 +3736,9 @@ + + groups + java.lang.String -+ 2.2 + false + true -+ (TestNG/JUnit47 provider with JUnit4.8+ only and JUnit5+ provider since 2.22.0) Groups/categories/tags for this test. Only classes/methods/etc decorated with one of the groups/categories/tags specified here will be included in test run, if specified. -+For JUnit4 tests, this parameter forces the use of the 4.7 provider. For JUnit5 tests, this parameter forces the use of the JUnit platform provider. -+This parameter is ignored if the suiteXmlFiles parameter is specified. -+Since version 2.18.1 and JUnit 4.12, the @Category annotation type is automatically inherited from superclasses, see @java.lang.annotation.Inherited. Make sure that test class inheritance still makes sense together with @Category annotation of the JUnit 4.12 or higher appeared in superclass. ++ + + + includeJUnit5Engines @@ -4073,69 +3771,51 @@ + + jdkToolchain + java.util.Map -+ 3.0.0-M5 and Maven 3.3.x + false + true -+ -+Allow for configuration of the test jvm via maven toolchains. This permits a configuration where the project is built with one jvm and tested with another. This is similar to jvm, but avoids hardcoding paths. The two parameters are mutually exclusive (jvm wins) -+ -+Examples: -+(see Guide to Toolchains <https://maven.apache.org/guides/mini/guide-using-toolchains.html> for more info) <configuration> ... <jdkToolchain> <version>1.11</version> </jdkToolchain> </configuration> <configuration> ... <jdkToolchain> <version>1.8</version> <vendor>zulu</vendor> </jdkToolchain> </configuration> ++ + + + junitArtifactName + java.lang.String -+ 2.3.1 + false + true -+ Allows you to specify the name of the JUnit artifact. If not set, junit:junit will be used. ++ + + + jvm + java.lang.String -+ 2.1 + false + true -+ Option to specify the jvm (or path to the java executable) to use with the forking options. For the default, the jvm will be a new instance of the same VM as the one used to run Maven. JVM settings are not inherited from MAVEN_OPTS. ++ + + + objectFactory + java.lang.String -+ 2.5 + false + true -+ (TestNG only) Define the factory class used to create all test instances. ++ + + + parallel + java.lang.String -+ 2.2 + false + true -+ (TestNG provider) When you use the parameter parallel, 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. Supports two values: classes or methods. -+(JUnit 4.7 provider) Supports values classes, methods, both to run in separate threads been controlled by threadCount. -+ -+Since version 2.16 (JUnit 4.7 provider), the value both is DEPRECATED. Use classesAndMethods instead. -+ -+Since version 2.16 (JUnit 4.7 provider), additional vales are available: -+suites, suitesAndClasses, suitesAndMethods, classesAndMethods, all. -+By default, Surefire does not execute tests in parallel. You can set the parameter parallel to none to explicitly disable parallel execution (e.g. when disabling parallel execution in special Maven profiles when executing coverage analysis). ++ + + + parallelMavenExecution + java.lang.Boolean + false + false -+ Parallel Maven Execution. ++ + + + parallelOptimized + boolean -+ 2.17 + false + true -+ (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 true. -+True by default. ++ + + + parallelTestsTimeoutForcedInSeconds @@ -4162,25 +3842,23 @@ + + perCoreThreadCount + boolean -+ 2.5 + false + true -+ (JUnit 4.7 provider) Indicates that threadCount, threadCountSuites, threadCountClasses, threadCountMethods are per cpu core. ++ + + + pluginArtifactMap + java.util.Map + true + false -+ Map of plugin artifacts. ++ + + + pluginDescriptor + org.apache.maven.plugin.descriptor.PluginDescriptor -+ 2.12 + true + false -+ Information about this plugin, mainly used to lookup this plugin's configuration from the currently executing project. ++ + + + printSummary @@ -4194,38 +3872,42 @@ + org.apache.maven.project.MavenProject + true + false -+ The Maven Project Object. ++ + + + projectArtifactMap + java.util.Map + true + false -+ Map of project artifacts. ++ + + + projectBuildDirectory + java.io.File -+ 2.20 + true + false -+ Read-only parameter with value of Maven property project.build.directory. ++ ++ ++ ++ promoteUserPropertiesToSystemProperties ++ boolean ++ false ++ true ++ + + + properties + java.util.Properties -+ 2.4 + false + true -+ List of properties for configuring all TestNG related configurations. This is the new preferred method of configuring TestNG. ++ + + + redirectTestOutputToFile + boolean -+ 2.3 + false + true -+ Set this to "true" to redirect the unit test standard output to a file (found in reportsDirectory/testName-output.txt). ++ + + + reportFormat @@ -4239,7 +3921,7 @@ + java.lang.String + false + true -+ Add custom text into report filename: TEST-testClassName-reportNameSuffix.xml, testClassName-reportNameSuffix.txt and testClassName-reportNameSuffix-output.txt. File TEST-testClassName-reportNameSuffix.xml has changed attributes 'testsuite'--'name' and 'testcase'--'classname' - reportNameSuffix is added to the attribute value. ++ + + + reportsDirectory @@ -4258,10 +3940,9 @@ + + reuseForks + boolean -+ 2.13 + false + true -+ Indicates if forked VMs can be reused. If set to "false", a new VM is forked for each test class to be executed. If set to "true", up to forkCount VMs will be forked and then reused to execute all tests. ++ + + + runOrder @@ -4296,7 +3977,7 @@ + org.apache.maven.execution.MavenSession + true + false -+ The current build session instance. ++ + + + shutdown @@ -4316,7 +3997,7 @@ + boolean + false + true -+ Set this to "true" to bypass unit tests entirely. Its use is NOT RECOMMENDED, especially if you enable it using the "maven.test.skip" property, because maven.test.skip disables both running the tests and compiling the tests. Consider using the skipTests parameter instead. ++ + + + skipAfterFailureCount @@ -4332,20 +4013,17 @@ + + skipExec + boolean -+ 2.3 -+ Use skipTests instead. ++ No reason given + false + true -+ This old parameter is just like skipTests, but bound to the old property "maven.test.skip.exec". ++ + + + skipTests + boolean -+ 2.4 + false + true -+ Set this to "true" to skip running tests, but still compile them. Its use is NOT RECOMMENDED, but quite convenient on occasion. -+Failsafe plugin deprecated the parameter skipTests and the parameter will be removed in Failsafe 3.0.0 as it is a source of conflicts between Failsafe and Surefire plugin. ++ + + + statelessTestsetInfoReporter @@ -4359,7 +4037,7 @@ + org.apache.maven.plugin.surefire.extensions.SurefireStatelessReporter + false + true -+ Note: use the legacy system property disableXmlReport set to true to disable the report. ++ + + + suiteXmlFiles @@ -4373,35 +4051,32 @@ + + systemProperties + java.util.Properties -+ Use systemPropertyVariables instead. ++ No reason given + false + true -+ List of System properties to pass to a provider. ++ + + + systemPropertiesFile + java.io.File + false + true -+ ++ Properties file being used as system properties passed to the provider. ++See also: AbstractSurefireMojo#systemPropertyVariables systemPropertyVariables for how the effective provider properties are calculated + + + systemPropertyVariables + java.util.Map -+ 2.5 + false + true -+ List of System properties to pass to a provider. ++ + + + tempDir + java.lang.String -+ 2.20 + false + true -+ Relative path to temporary-surefire-boot directory containing internal Surefire temporary files. -+The temporary-surefire-boot directory is project.build.directory on most platforms or system default temporary-directory specified by the system property java.io.tmpdir on Windows (see SUREFIRE-1400 <https://issues.apache.org/jira/browse/SUREFIRE-1400>). -+It is deleted after the test set has completed. ++ + + + test @@ -4420,7 +4095,7 @@ + java.io.File + false + true -+ The directory containing generated test classes of the project being tested. This will be included at the beginning of the test classpath. ++ + + + testFailureIgnore @@ -4432,69 +4107,51 @@ + + testNGArtifactName + java.lang.String -+ 2.3.1 + false + true -+ Allows you to specify the name of the TestNG artifact. If not set, org.testng:testng will be used. ++ + + + testSourceDirectory + java.io.File -+ 2.2 + false + true -+ The test source directory containing test class sources. Important only for TestNG HTML reports. ++ + + + threadCount + int -+ 2.2 + false + true -+ (TestNG/JUnit 4.7 provider) The attribute thread-count allows you to specify how many threads should be allocated for this execution. Only makes sense to use in conjunction with the parallel parameter. ++ + + + threadCountClasses + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test classes, i.e.: -+* number of concurrent classes if threadCount is 0 or unspecified -+* limited classes concurrency if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 30% of threadCount in concurrent classes. -+* as in the previous case but without this leaf thread-count. Example: parallel=suitesAndClasses, threadCount=16, threadCountSuites=5, threadCountClasses is unspecified leaf, the number of concurrent classes is varying from >= 11 to 14 or 15. The threadCountSuites become given number of threads. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + threadCountMethods + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test methods, i.e.: -+* number of concurrent methods if threadCount is 0 or unspecified -+* limited concurrency of methods if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 50% of threadCount which appears in concurrent methods. -+* as in the previous case but without this leaf thread-count. Example: parallel=all, threadCount=16, threadCountSuites=2, threadCountClasses=3, but threadCountMethods is unspecified leaf, the number of concurrent methods is varying from >= 11 to 14 or 15. The threadCountSuites and threadCountClasses become given number of threads. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + threadCountSuites + int -+ 2.16 + false + true -+ (JUnit 4.7 provider) This attribute allows you to specify the concurrency in test suites, i.e.: -+* number of concurrent suites if threadCount is 0 or unspecified -+* limited suites concurrency if useUnlimitedThreads is set to true -+* if threadCount and certain thread-count parameters are > 0 for parallel, the concurrency is computed from ratio. For instance parallel=all and the ratio between threadCountSuites:threadCountClasses:threadCountMethods is 2:3:5, there is 20% of threadCount which appeared in concurrent suites. Only makes sense to use in conjunction with the parallel parameter. The default value 0 behaves same as unspecified one. ++ + + + trimStackTrace + boolean -+ 2.2 + false + true -+ Whether to trim the stack trace in the reports to just the lines within the test, or show the full trace. ++ + + + useFile @@ -4532,18 +4189,16 @@ + + useUnlimitedThreads + boolean -+ 2.5 + false + true -+ (JUnit 4.7 provider) Indicates that the thread pool will be unlimited. The parallel parameter and the actual number of classes/methods will decide. Setting this to "true" effectively disables perCoreThreadCount and threadCount. Defaults to "false". ++ + + + workingDirectory + java.io.File -+ 2.1.3 + false + true -+ Command line working directory. ++ + + + @@ -4556,9 +4211,11 @@ + ${maven.test.dependency.excludes} + ${maven.surefire.debug} + ${dependenciesToScan} -+ ${disableXmlReport} ++ ${disableXmlReport} + ${enableAssertions} ++ ${enableOutErrElements} + ${surefire.enableProcessChecker} ++ ${enablePropertiesElement} + ${surefire.encoding} + ${surefire.excludeJUnit5Engines} + ${surefire.excludedEnvironmentVariables} @@ -4591,6 +4248,7 @@ + + ${project.artifactMap} + ++ + ${maven.test.redirectTestOutputToFile} + ${surefire.reportFormat} + ${surefire.reportNameSuffix} @@ -4652,99 +4310,9 @@ + + + org.apache.maven.surefire -+ maven-surefire-common -+ jar -+ 3.2.5 -+ -+ -+ org.apache.maven.surefire + surefire-api + jar -+ 3.2.5 -+ -+ -+ org.apache.maven.surefire -+ surefire-logger-api -+ jar -+ 3.2.5 -+ -+ -+ org.apache.maven.surefire -+ surefire-extensions-api -+ jar -+ 3.2.5 -+ -+ -+ org.apache.maven.surefire -+ surefire-booter -+ jar -+ 3.2.5 -+ -+ -+ org.apache.maven.surefire -+ surefire-extensions-spi -+ jar -+ 3.2.5 -+ -+ -+ org.eclipse.aether -+ aether-util -+ jar -+ 1.0.0.v20140518 -+ -+ -+ org.apache.maven.shared -+ maven-common-artifact-filters -+ jar -+ 3.1.1 -+ -+ -+ org.codehaus.plexus -+ plexus-java -+ jar -+ 1.2.0 -+ -+ -+ org.ow2.asm -+ asm -+ jar -+ 9.2 -+ -+ -+ com.thoughtworks.qdox -+ qdox -+ jar -+ 2.0.1 -+ -+ -+ org.apache.maven.surefire -+ surefire-shared-utils -+ jar -+ 3.2.5 -+ -+ -+ commons-io -+ commons-io -+ jar -+ 2.15.1 -+ -+ -+ org.apache.commons -+ commons-compress -+ jar -+ 1.25.0 -+ -+ -+ org.slf4j -+ slf4j-api -+ jar -+ 1.7.36 -+ -+ -+ org.apache.maven.resolver -+ maven-resolver-api -+ jar -+ 1.9.18 ++ 3.5.2 + + + org.apache.maven.shared @@ -4753,16 +4321,106 @@ + 3.3.4 + + ++ commons-io ++ commons-io ++ jar ++ 2.17.0 ++ ++ ++ org.slf4j ++ slf4j-api ++ jar ++ 1.7.36 ++ ++ ++ org.apache.maven.surefire ++ surefire-logger-api ++ jar ++ 3.5.2 ++ ++ + org.apache.commons + commons-lang3 + jar -+ 3.14.0 ++ 3.17.0 ++ ++ ++ org.apache.maven.surefire ++ surefire-extensions-api ++ jar ++ 3.5.2 ++ ++ ++ org.apache.maven.surefire ++ maven-surefire-common ++ jar ++ 3.5.2 ++ ++ ++ org.codehaus.plexus ++ plexus-java ++ jar ++ 1.3.0 ++ ++ ++ org.ow2.asm ++ asm ++ jar ++ 9.6 ++ ++ ++ com.thoughtworks.qdox ++ qdox ++ jar ++ 2.0.3 ++ ++ ++ org.apache.commons ++ commons-compress ++ jar ++ 1.27.1 ++ ++ ++ commons-codec ++ commons-codec ++ jar ++ 1.16.1 ++ ++ ++ org.apache.maven.resolver ++ maven-resolver-util ++ jar ++ 1.4.1 ++ ++ ++ org.apache.maven.resolver ++ maven-resolver-api ++ jar ++ 1.9.22 ++ ++ ++ org.apache.maven.surefire ++ surefire-booter ++ jar ++ 3.5.2 ++ ++ ++ org.apache.maven.surefire ++ surefire-extensions-spi ++ jar ++ 3.5.2 ++ ++ ++ org.apache.maven.shared ++ maven-common-artifact-filters ++ jar ++ 3.4.0 + + + -\ No newline at end of file ---- /dev/null -+++ b/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/maven_surefire_plugin/HelpMojo.java +diff -urEbwBN a/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/maven_surefire_plugin/HelpMojo.java b/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/maven_surefire_plugin/HelpMojo.java +--- a/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/maven_surefire_plugin/HelpMojo.java 1970-01-01 01:00:00.000000000 +0100 ++++ b/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/maven_surefire_plugin/HelpMojo.java 2024-11-04 10:41:36.879493528 +0100 @@ -0,0 +1,448 @@ +package org.apache.maven.plugins.maven_surefire_plugin; + @@ -5212,12 +4870,13 @@ + return null; + } +} ---- /dev/null -+++ b/maven-surefire-report-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-surefire-report-plugin/plugin-help.xml -@@ -0,0 +1,376 @@ +diff -urEbwBN a/maven-surefire-report-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-surefire-report-plugin/plugin-help.xml b/maven-surefire-report-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-surefire-report-plugin/plugin-help.xml +--- a/maven-surefire-report-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-surefire-report-plugin/plugin-help.xml 1970-01-01 01:00:00.000000000 +0100 ++++ b/maven-surefire-report-plugin/src/main/filtered-resources/META-INF/maven/org.apache.maven.plugins/maven-surefire-report-plugin/plugin-help.xml 2024-11-04 10:45:39.894480900 +0100 +@@ -0,0 +1,496 @@ + + -+ ++ + + + ${project.name} @@ -5236,7 +4895,7 @@ + false + false + true -+ org.apache.maven.plugins.surefire.report.FailsafeReportMojo ++ org.apache.maven.plugins.surefire.report.FailsafeOnlyReport + java + per-lookup + once-per-session @@ -5272,7 +4931,28 @@ + boolean + false + true -+ Whether to link the XRef if found. ++ Link the violation line numbers to the (Test) Source XRef. Links will be created automatically if the JXR plugin is being used. ++ ++ ++ locale ++ java.lang.String ++ false ++ true ++ ++ ++ ++ outputDirectory ++ java.io.File ++ true ++ true ++ ++ ++ ++ outputFormat ++ java.lang.String ++ false ++ true ++ + + + outputName @@ -5282,6 +4962,13 @@ + The filename to use for the report. + + ++ outputTimestamp ++ java.lang.String ++ false ++ true ++ ++ ++ + reportsDirectories + java.io.File[] + false @@ -5304,6 +4991,13 @@ + If set to false, only failures are shown. + + ++ siteDirectory ++ java.io.File ++ false ++ true ++ ++ ++ + skipFailsafeReport + boolean + 2.11 @@ -5312,11 +5006,12 @@ + If set to true the failsafe report generation will be skipped. + + -+ xrefLocation ++ xrefTestLocation + java.io.File + false + true -+ Location of the Xrefs to link. ++ Location where Test Source XRef is generated for this project. ++Default: org.apache.maven.reporting.AbstractMavenReport.getReportOutputDirectory() + /xref-test + + + @@ -5324,10 +5019,14 @@ + ${alwaysGenerateFailsafeReport} + + ${linkXRef} -+ ${outputName} ++ ++ ++ ${output.format} ++ ${outputName} ++ + ${showSuccess} ++ + ${skipFailsafeReport} -+ + + + @@ -5393,7 +5092,7 @@ + false + test + surefire -+ org.apache.maven.plugins.surefire.report.SurefireReportMojo ++ org.apache.maven.plugins.surefire.report.SurefireReport + java + per-lookup + once-per-session @@ -5428,7 +5127,28 @@ + boolean + false + true -+ Whether to link the XRef if found. ++ Link the violation line numbers to the (Test) Source XRef. Links will be created automatically if the JXR plugin is being used. ++ ++ ++ locale ++ java.lang.String ++ false ++ true ++ ++ ++ ++ outputDirectory ++ java.io.File ++ true ++ true ++ ++ ++ ++ outputFormat ++ java.lang.String ++ false ++ true ++ + + + outputName @@ -5438,6 +5158,13 @@ + The filename to use for the report. + + ++ outputTimestamp ++ java.lang.String ++ false ++ true ++ ++ ++ + reportsDirectories + java.io.File[] + false @@ -5460,6 +5187,13 @@ + If set to false, only failures are shown. + + ++ siteDirectory ++ java.io.File ++ false ++ true ++ ++ ++ + skipSurefireReport + boolean + 2.11 @@ -5468,11 +5202,12 @@ + If set to true the surefire report generation will be skipped. + + -+ xrefLocation ++ xrefTestLocation + java.io.File + false + true -+ Location of the Xrefs to link. ++ Location where Test Source XRef is generated for this project. ++Default: org.apache.maven.reporting.AbstractMavenReport.getReportOutputDirectory() + /xref-test + + + @@ -5480,10 +5215,14 @@ + ${alwaysGenerateSurefireReport} + + ${linkXRef} -+ ${outputName} ++ ++ ++ ${output.format} ++ ${outputName} ++ + ${showSuccess} ++ + ${skipSurefireReport} -+ + + + @@ -5495,7 +5234,7 @@ + false + false + true -+ org.apache.maven.plugins.surefire.report.SurefireReportOnlyMojo ++ org.apache.maven.plugins.surefire.report.SurefireOnlyReport + java + per-lookup + once-per-session @@ -5531,7 +5270,28 @@ + boolean + false + true -+ Whether to link the XRef if found. ++ Link the violation line numbers to the (Test) Source XRef. Links will be created automatically if the JXR plugin is being used. ++ ++ ++ locale ++ java.lang.String ++ false ++ true ++ ++ ++ ++ outputDirectory ++ java.io.File ++ true ++ true ++ ++ ++ ++ outputFormat ++ java.lang.String ++ false ++ true ++ + + + outputName @@ -5541,6 +5301,13 @@ + The filename to use for the report. + + ++ outputTimestamp ++ java.lang.String ++ false ++ true ++ ++ ++ + reportsDirectories + java.io.File[] + false @@ -5563,6 +5330,13 @@ + If set to false, only failures are shown. + + ++ siteDirectory ++ java.io.File ++ false ++ true ++ ++ ++ + skipSurefireReport + boolean + 2.11 @@ -5571,11 +5345,12 @@ + If set to true the surefire report generation will be skipped. + + -+ xrefLocation ++ xrefTestLocation + java.io.File + false + true -+ Location of the Xrefs to link. ++ Location where Test Source XRef is generated for this project. ++Default: org.apache.maven.reporting.AbstractMavenReport.getReportOutputDirectory() + /xref-test + + + @@ -5583,21 +5358,25 @@ + ${alwaysGenerateSurefireReport} + + ${linkXRef} -+ ${outputName} ++ ++ ++ ${output.format} ++ ${outputName} ++ + ${showSuccess} ++ + ${skipSurefireReport} -+ + + + + -\ No newline at end of file ---- /dev/null -+++ b/maven-surefire-report-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml -@@ -0,0 +1,838 @@ +diff -urEbwBN a/maven-surefire-report-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml b/maven-surefire-report-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml +--- a/maven-surefire-report-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml 1970-01-01 01:00:00.000000000 +0100 ++++ b/maven-surefire-report-plugin/src/main/filtered-resources/META-INF/maven/plugin.xml 2024-11-04 10:46:55.558333020 +0100 +@@ -0,0 +1,958 @@ + + -+ ++ + + + ${project.name} @@ -5609,7 +5388,7 @@ + false + true + 1.8 -+ 3.2.5 ++ 3.6.3 + + + failsafe-report-only @@ -5620,7 +5399,7 @@ + false + false + true -+ org.apache.maven.plugins.surefire.report.FailsafeReportMojo ++ org.apache.maven.plugins.surefire.report.FailsafeOnlyReport + java + per-lookup + once-per-session @@ -5663,11 +5442,18 @@ + boolean + false + true -+ Whether to link the XRef if found. ++ Link the violation line numbers to the (Test) Source XRef. Links will be created automatically if the JXR plugin is being used. + + -+ localRepository -+ org.apache.maven.artifact.repository.ArtifactRepository ++ locale ++ java.lang.String ++ false ++ true ++ ++ ++ ++ mojoExecution ++ org.apache.maven.plugin.MojoExecution + true + false + @@ -5676,7 +5462,7 @@ + outputDirectory + java.io.File + true -+ false ++ true + + + @@ -5687,6 +5473,13 @@ + + + ++ outputFormat ++ java.lang.String ++ false ++ true ++ ++ ++ + outputName + java.lang.String + true @@ -5694,6 +5487,13 @@ + The filename to use for the report. + + ++ outputTimestamp ++ java.lang.String ++ false ++ true ++ ++ ++ + project + org.apache.maven.project.MavenProject + true @@ -5703,18 +5503,25 @@ + + reactorProjects + java.util.List -+ false ++ true + false -+ The projects in the reactor for aggregation report. ++ + + -+ remoteRepositories ++ remoteProjectRepositories + java.util.List + true + false + + + ++ repoSession ++ org.eclipse.aether.RepositorySystemSession ++ true ++ false ++ ++ ++ + reportsDirectories + java.io.File[] + false @@ -5744,6 +5551,13 @@ + If set to false, only failures are shown. + + ++ siteDirectory ++ java.io.File ++ false ++ true ++ ++ ++ + skipFailsafeReport + boolean + 2.11 @@ -5752,11 +5566,12 @@ + If set to true the failsafe report generation will be skipped. + + -+ xrefLocation ++ xrefTestLocation + java.io.File + false + true -+ Location of the Xrefs to link. ++ Location where Test Source XRef is generated for this project. ++Default: org.apache.maven.reporting.AbstractMavenReport.getReportOutputDirectory() + /xref-test + + + @@ -5765,20 +5580,28 @@ + + ${encoding} + ${linkXRef} -+ -+ ++ ++ ++ + ${outputEncoding} -+ ${outputName} ++ ${output.format} ++ ${outputName} ++ + + -+ ++ ++ + + ${showSuccess} ++ + ${skipFailsafeReport} -+ + + + ++ org.codehaus.plexus.PlexusContainer ++ container ++ ++ + org.codehaus.plexus.i18n.I18N + i18n + @@ -5855,7 +5678,7 @@ + false + test + surefire -+ org.apache.maven.plugins.surefire.report.SurefireReportMojo ++ org.apache.maven.plugins.surefire.report.SurefireReport + java + per-lookup + once-per-session @@ -5897,11 +5720,18 @@ + boolean + false + true -+ Whether to link the XRef if found. ++ Link the violation line numbers to the (Test) Source XRef. Links will be created automatically if the JXR plugin is being used. + + -+ localRepository -+ org.apache.maven.artifact.repository.ArtifactRepository ++ locale ++ java.lang.String ++ false ++ true ++ ++ ++ ++ mojoExecution ++ org.apache.maven.plugin.MojoExecution + true + false + @@ -5910,7 +5740,7 @@ + outputDirectory + java.io.File + true -+ false ++ true + + + @@ -5921,6 +5751,13 @@ + + + ++ outputFormat ++ java.lang.String ++ false ++ true ++ ++ ++ + outputName + java.lang.String + true @@ -5928,6 +5765,13 @@ + The filename to use for the report. + + ++ outputTimestamp ++ java.lang.String ++ false ++ true ++ ++ ++ + project + org.apache.maven.project.MavenProject + true @@ -5937,18 +5781,25 @@ + + reactorProjects + java.util.List -+ false ++ true + false -+ The projects in the reactor for aggregation report. ++ + + -+ remoteRepositories ++ remoteProjectRepositories + java.util.List + true + false + + + ++ repoSession ++ org.eclipse.aether.RepositorySystemSession ++ true ++ false ++ ++ ++ + reportsDirectories + java.io.File[] + false @@ -5978,6 +5829,13 @@ + If set to false, only failures are shown. + + ++ siteDirectory ++ java.io.File ++ false ++ true ++ ++ ++ + skipSurefireReport + boolean + 2.11 @@ -5986,11 +5844,12 @@ + If set to true the surefire report generation will be skipped. + + -+ xrefLocation ++ xrefTestLocation + java.io.File + false + true -+ Location of the Xrefs to link. ++ Location where Test Source XRef is generated for this project. ++Default: org.apache.maven.reporting.AbstractMavenReport.getReportOutputDirectory() + /xref-test + + + @@ -5999,20 +5858,28 @@ + + ${encoding} + ${linkXRef} -+ -+ ++ ++ ++ + ${outputEncoding} -+ ${outputName} ++ ${output.format} ++ ${outputName} ++ + + -+ ++ ++ + + ${showSuccess} ++ + ${skipSurefireReport} -+ + + + ++ org.codehaus.plexus.PlexusContainer ++ container ++ ++ + org.codehaus.plexus.i18n.I18N + i18n + @@ -6035,7 +5902,7 @@ + false + false + true -+ org.apache.maven.plugins.surefire.report.SurefireReportOnlyMojo ++ org.apache.maven.plugins.surefire.report.SurefireOnlyReport + java + per-lookup + once-per-session @@ -6078,11 +5945,18 @@ + boolean + false + true -+ Whether to link the XRef if found. ++ Link the violation line numbers to the (Test) Source XRef. Links will be created automatically if the JXR plugin is being used. + + -+ localRepository -+ org.apache.maven.artifact.repository.ArtifactRepository ++ locale ++ java.lang.String ++ false ++ true ++ ++ ++ ++ mojoExecution ++ org.apache.maven.plugin.MojoExecution + true + false + @@ -6091,7 +5965,7 @@ + outputDirectory + java.io.File + true -+ false ++ true + + + @@ -6102,6 +5976,13 @@ + + + ++ outputFormat ++ java.lang.String ++ false ++ true ++ ++ ++ + outputName + java.lang.String + true @@ -6109,6 +5990,13 @@ + The filename to use for the report. + + ++ outputTimestamp ++ java.lang.String ++ false ++ true ++ ++ ++ + project + org.apache.maven.project.MavenProject + true @@ -6118,18 +6006,25 @@ + + reactorProjects + java.util.List -+ false ++ true + false -+ The projects in the reactor for aggregation report. ++ + + -+ remoteRepositories ++ remoteProjectRepositories + java.util.List + true + false + + + ++ repoSession ++ org.eclipse.aether.RepositorySystemSession ++ true ++ false ++ ++ ++ + reportsDirectories + java.io.File[] + false @@ -6159,6 +6054,13 @@ + If set to false, only failures are shown. + + ++ siteDirectory ++ java.io.File ++ false ++ true ++ ++ ++ + skipSurefireReport + boolean + 2.11 @@ -6167,11 +6069,12 @@ + If set to true the surefire report generation will be skipped. + + -+ xrefLocation ++ xrefTestLocation + java.io.File + false + true -+ Location of the Xrefs to link. ++ Location where Test Source XRef is generated for this project. ++Default: org.apache.maven.reporting.AbstractMavenReport.getReportOutputDirectory() + /xref-test + + + @@ -6180,20 +6083,28 @@ + + ${encoding} + ${linkXRef} -+ -+ ++ ++ ++ + ${outputEncoding} -+ ${outputName} ++ ${output.format} ++ ${outputName} ++ + + -+ ++ ++ + + ${showSuccess} ++ + ${skipSurefireReport} -+ + + + ++ org.codehaus.plexus.PlexusContainer ++ container ++ ++ + org.codehaus.plexus.i18n.I18N + i18n + @@ -6211,15 +6122,63 @@ + + + org.apache.maven.surefire -+ surefire-report-parser ++ surefire-logger-api + jar -+ 3.2.5 ++ 3.5.2 + + + org.apache.maven.surefire -+ surefire-logger-api ++ surefire-report-parser + jar -+ 3.2.5 ++ 3.5.2 ++ ++ ++ org.eclipse.sisu ++ org.eclipse.sisu.plexus ++ jar ++ 0.9.0.M3 ++ ++ ++ org.slf4j ++ slf4j-api ++ jar ++ 1.7.36 ++ ++ ++ org.codehaus.plexus ++ plexus-classworlds ++ jar ++ 2.8.0 ++ ++ ++ org.codehaus.plexus ++ plexus-component-annotations ++ jar ++ 2.1.0 ++ ++ ++ org.eclipse.sisu ++ org.eclipse.sisu.inject ++ jar ++ 0.9.0.M3 ++ ++ ++ org.codehaus.plexus ++ plexus-utils ++ jar ++ 4.0.1 ++ ++ ++ javax.inject ++ javax.inject ++ jar ++ 1 ++ ++ ++ org.codehaus.plexus ++ plexus-xml ++ jar ++ 3.0.1 + + + org.apache.maven.shared @@ -6231,163 +6190,133 @@ + commons-io + commons-io + jar -+ 2.15.1 -+ -+ -+ org.codehaus.plexus -+ plexus-classworlds -+ jar -+ 2.7.0 -+ -+ -+ org.codehaus.plexus -+ plexus-component-annotations -+ jar -+ 2.1.0 -+ -+ -+ org.apache.commons -+ commons-lang3 -+ jar -+ 3.14.0 -+ -+ -+ org.codehaus.plexus -+ plexus-interpolation -+ jar -+ 1.26 -+ -+ -+ org.codehaus.plexus -+ plexus-utils -+ jar -+ 4.0.0 ++ 2.17.0 + + + org.apache.maven.doxia + doxia-sink-api + jar -+ 1.12.0 -+ -+ -+ org.apache.maven.doxia -+ doxia-logging-api -+ jar -+ 1.12.0 ++ 2.0.0 + + + org.apache.maven.doxia + doxia-core + jar -+ 1.12.0 ++ 2.0.0 + + -+ org.codehaus.plexus -+ plexus-container-default ++ org.apache.commons ++ commons-lang3 + jar -+ 2.1.0 -+ -+ -+ org.ow2.asm -+ asm -+ jar -+ 5.0.3 -+ -+ -+ org.ow2.asm -+ asm-commons -+ jar -+ 5.0.3 -+ -+ -+ org.ow2.asm -+ asm-tree -+ jar -+ 9.6 -+ -+ -+ org.apache.xbean -+ xbean-reflect -+ jar -+ 3.7 -+ -+ -+ junit -+ junit -+ jar -+ 4.13.2 -+ -+ -+ org.hamcrest -+ hamcrest-core -+ jar -+ 1.3 ++ 3.17.0 + + + org.apache.commons + commons-text + jar -+ 1.3 -+ -+ -+ org.apache.httpcomponents -+ httpclient -+ jar -+ 4.5.13 -+ -+ -+ commons-logging -+ commons-logging -+ jar -+ 1.2 -+ -+ -+ commons-codec -+ commons-codec -+ jar -+ 1.11 -+ -+ -+ org.apache.httpcomponents -+ httpcore -+ jar -+ 4.4.14 -+ -+ -+ org.apache.maven.reporting -+ maven-reporting-api -+ jar -+ 3.1.1 ++ 1.12.0 + + + org.apache.maven.reporting + maven-reporting-impl + jar -+ 3.2.0 ++ 4.0.0 + + + org.apache.maven.doxia + doxia-site-renderer + jar -+ 1.11.1 -+ -+ -+ commons-collections -+ commons-collections -+ jar -+ 3.2.2 ++ 2.0.0 + + + org.apache.maven.doxia + doxia-skin-model + jar -+ 1.11.1 ++ 2.0.0 ++ ++ ++ org.apache.velocity ++ velocity-engine-core ++ jar ++ 2.4 ++ ++ ++ org.codehaus.plexus ++ plexus-velocity ++ jar ++ 2.2.0 + + + org.apache.maven.doxia + doxia-module-xhtml5 + jar -+ 1.11.1 ++ 2.0.0 ++ ++ ++ org.apache.maven.doxia ++ doxia-module-xdoc ++ jar ++ 2.0.0 ++ ++ ++ org.apache.maven.doxia ++ doxia-integration-tools ++ jar ++ 2.0.0 ++ ++ ++ org.apache.maven.reporting ++ maven-reporting-api ++ jar ++ 4.0.0 ++ ++ ++ org.apache.maven ++ maven-archiver ++ jar ++ 3.6.2 ++ ++ ++ org.codehaus.plexus ++ plexus-archiver ++ jar ++ 4.10.0 ++ ++ ++ org.codehaus.plexus ++ plexus-io ++ jar ++ 3.5.0 ++ ++ ++ org.tukaani ++ xz ++ jar ++ 1.9 ++ ++ ++ org.apache.commons ++ commons-compress ++ jar ++ 1.27.1 ++ ++ ++ commons-codec ++ commons-codec ++ jar ++ 1.16.1 ++ ++ ++ org.apache.maven.doxia ++ doxia-site-model ++ jar ++ 2.0.0 ++ ++ ++ org.apache.maven.doxia ++ doxia-module-apt ++ jar ++ 2.0.0 + + + org.codehaus.plexus @@ -6397,45 +6326,15 @@ + + + org.codehaus.plexus -+ plexus-velocity ++ plexus-interpolation + jar -+ 1.2 -+ -+ -+ org.apache.maven.doxia -+ doxia-module-xhtml -+ jar -+ 1.11.1 -+ -+ -+ org.apache.velocity -+ velocity -+ jar -+ 1.7 -+ -+ -+ org.apache.maven.doxia -+ doxia-decoration-model -+ jar -+ 1.11.1 -+ -+ -+ org.apache.maven.doxia -+ doxia-integration-tools -+ jar -+ 1.11.1 -+ -+ -+ org.codehaus.plexus -+ plexus-xml -+ jar -+ 4.0.0 ++ 1.27 + + + -\ No newline at end of file ---- /dev/null -+++ b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugin/maven_surefire_report_plugin/HelpMojo.java +diff -urEbwBN a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugin/maven_surefire_report_plugin/HelpMojo.java b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugin/maven_surefire_report_plugin/HelpMojo.java +--- a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugin/maven_surefire_report_plugin/HelpMojo.java 1970-01-01 01:00:00.000000000 +0100 ++++ b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugin/maven_surefire_report_plugin/HelpMojo.java 2024-11-04 10:39:38.158690041 +0100 @@ -0,0 +1,448 @@ +package org.apache.maven.plugins.maven_surefire_report_plugin; + @@ -6885,6 +6784,3 @@ + return null; + } +} --- -2.44.0 - diff --git a/maven-surefire-build.tar.xz b/maven-surefire-build.tar.xz index 3de1d9f..b5faeea 100644 --- a/maven-surefire-build.tar.xz +++ b/maven-surefire-build.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:881df1fdcfa1a545bf2449ee0d26b1a1c746d141114a879ff78927a2722bf152 -size 6900 +oid sha256:57b84e1770489a7dfc6ca82e97abeded4b44522bfdc9143044549f248553bad4 +size 4624 diff --git a/maven-surefire-plugins.changes b/maven-surefire-plugins.changes index 1e787af..d39e676 100644 --- a/maven-surefire-plugins.changes +++ b/maven-surefire-plugins.changes @@ -1,3 +1,106 @@ +------------------------------------------------------------------- +Mon Nov 4 09:51:10 UTC 2024 - Fridrich Strba + +- Upgrade to 3.5.2 + * Bug + + SUREFIRE-2276: JUnit5's TestTemplate failures treated as + flakes with retries + + SUREFIRE-2277: RunResult#getFlakes() is lost during + serialisation/deserialisation to/from failsafe-summary.xml + + SUREFIRE-2283: FAQ site contains broken link to + failsafe-plugin + * Improvement + + SUREFIRE-2278: Don't say Please + * Task + + SUREFIRE-2282: surefire-report-plugin: Update Introduction + documentation page + * Dependency upgrade + + SUREFIRE-2281: Upgrade to Doxia 2.0.0 GA Stack +- Modified patches: + * 0001-Port-to-TestNG-7.4.0.patch + * 0002-Unshade-surefire.patch + + rediff + * maven-surefire-bootstrap-resources.patch + + regenerate from non-bootstrap build + +------------------------------------------------------------------- +Thu Oct 3 14:33:33 UTC 2024 - Fridrich Strba + +- Upgrade to 3.5.1 + * Bug + + SUREFIRE-1737: Disabling the JUnit5Xml30StatelessReporter has + no effect + + SUREFIRE-2257: [REGRESSION] NPEx: Cannot invoke + "Object.toString()" because "value" is null + + SUREFIRE-2267: Packages for commons-codec should be relocated + in surefire-shared-utils + + SUREFIRE-2268: Tests run under classpath if JDK 23 is used + * Improvement + + SUREFIRE-2264: Limit usage of commons-io from + surefire-shared-utils + + SUREFIRE-2266: Execute ITs in parallel + + SUREFIRE-2270: Use JUnit5 in surefire-shadefire +- Upgrade to 3.5.0 + * Improvement + + SUREFIRE-2227: Dynamically calculate xrefTestLocation + * Task + + SUREFIRE-2161: Align Mojo class names and output names +- Upgrade to 3.4.0 + * Bug + + SUREFIRE-2251: [REGRESSION] java.lang.NoSuchMethodException: + org.apache.maven.plugin.surefire.StartupReportConfiguration + . + + SUREFIRE-2253: [REGRESSION] Bump + org.apache.commons:commons-compress from 1.26.0 to 1.26.1 + causes hang + * Improvement + + SUREFIRE-1385: System properties defined in the Surefire and + Failsafe plugin configuration should override user properties +- Upgrade to 3.3.1 + * Bug + + SUREFIRE-2105: Failsafe report size increased with version + upgrade from 2.17 to 2.22.2 + + SUREFIRE-2242: Plain test report does not include names of the + skipped tests + + SUREFIRE-2250: Surefire Test Report Schema properties element + is not consistent with the code + * Improvement + + SUREFIRE-1360: Ability to disable properties for successfully + passed tests + + SUREFIRE-1934: Ability to disable system-out/system-err for + successfully passed tests + + SUREFIRE-2124: Avoid creating unnecessary target files for pom + projects + + SUREFIRE-2249: Doc for 'properties' parameter does not mention + JUnit +- Upgrade to 3.3.0 + * Bug + + SUREFIRE-1939: Build fails if java.home has <=2 path + components + + SUREFIRE-2232: [REGRESSION] StatelessXmlReporter fails to + process failed result without a throwable + + SUREFIRE-2240: Using JUnit BOM prevents upgrading the engine + version via plugin dependency + * Improvement + + SUREFIRE-2248: Make "type" attribute on failures and errors in + (surefire|failsafe)-test-report schema optional + * Test + + SUREFIRE-2141: Surefire 3.0.0-M8 tests don't pass on Mac M1 + (Surefire1295AttributeJvmCrashesToTestsIT) + * Task + + SUREFIRE-2244: Make IT for SUREFIRE-1295 reliable + + SUREFIRE-2246: Clean up dependencies reported by + dependencies:analyze +- Modified patches: + * maven-surefire-bootstrap-resources.patch + + regenerate from non-bootstrap build + * 0001-Port-to-TestNG-7.4.0.patch + + rediff and augment to make the test pass in upstream evironment +- Added patch: + * 0002-Unshade-surefire.patch + + remove the use of the shaded surefire-shared-utils artifact + in favour of direct use of the dependencies + ------------------------------------------------------------------- Wed Apr 10 10:54:02 UTC 2024 - Fridrich Strba diff --git a/maven-surefire-plugins.spec b/maven-surefire-plugins.spec index c6b04ed..194ceaf 100644 --- a/maven-surefire-plugins.spec +++ b/maven-surefire-plugins.spec @@ -18,7 +18,7 @@ %global base_name maven-surefire Name: %{base_name}-plugins -Version: 3.2.5 +Version: 3.5.2 Release: 0 Summary: Test framework project License: Apache-2.0 AND CPL-1.0 @@ -28,6 +28,7 @@ Source0: %{base_name}-%{version}.tar.xz Source1: https://www.apache.org/licenses/LICENSE-2.0.txt Source2: https://www.eclipse.org/legal/cpl-v10.html Patch0: 0001-Port-to-TestNG-7.4.0.patch +Patch1: 0002-Unshade-surefire.patch BuildRequires: fdupes BuildRequires: java-devel >= 1.8 BuildRequires: maven-local @@ -35,15 +36,25 @@ BuildRequires: mvn(org.apache.maven.doxia:doxia-core) BuildRequires: mvn(org.apache.maven.doxia:doxia-sink-api) BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations) BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin) -BuildRequires: mvn(org.apache.maven.reporting:maven-reporting-api) BuildRequires: mvn(org.apache.maven.reporting:maven-reporting-impl) +BuildRequires: mvn(org.apache.maven.resolver:maven-resolver-api) +BuildRequires: mvn(org.apache.maven.shared:maven-shared-utils) BuildRequires: mvn(org.apache.maven.surefire:maven-surefire-common) +BuildRequires: mvn(org.apache.maven.surefire:surefire-api) +BuildRequires: mvn(org.apache.maven.surefire:surefire-booter) +BuildRequires: mvn(org.apache.maven.surefire:surefire-extensions-api) +BuildRequires: mvn(org.apache.maven.surefire:surefire-logger-api) BuildRequires: mvn(org.apache.maven.surefire:surefire-report-parser) +BuildRequires: mvn(org.apache.maven:maven-artifact) BuildRequires: mvn(org.apache.maven:maven-core) BuildRequires: mvn(org.apache.maven:maven-model) BuildRequires: mvn(org.apache.maven:maven-parent:pom:) BuildRequires: mvn(org.apache.maven:maven-plugin-api) +BuildRequires: mvn(org.apache.maven:maven-settings) +BuildRequires: mvn(org.codehaus.plexus:plexus-i18n) +BuildRequires: mvn(org.codehaus.plexus:plexus-interpolation) BuildRequires: mvn(org.codehaus.plexus:plexus-xml) +BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus) BuildRequires: mvn(org.fusesource.jansi:jansi) #!BuildRequires: maven-compiler-plugin-bootstrap #!BuildRequires: maven-jar-plugin-bootstrap @@ -102,47 +113,41 @@ Javadoc for %{name}. cp -p %{SOURCE1} %{SOURCE2} . %patch -P 0 -p1 -#patch -P 1 -p1 +%patch -P 1 -p1 # Disable strict doclint sed -i /-Xdoclint:all/d pom.xml -%pom_remove_dep org.junit:junit-bom - -%pom_disable_module surefire-shadefire -%pom_remove_dep -r org.apache.maven.surefire:surefire-shadefire - -# Help plugin is needed only to evaluate effective Maven settings. -# For building RPM package default settings will suffice. -%pom_remove_plugin :maven-help-plugin surefire-its - # QA plugin useful only for upstream %pom_remove_plugin -r :jacoco-maven-plugin # Not wanted %pom_remove_plugin -r :maven-shade-plugin - -find -name *.java -exec sed -i -e s/org.apache.maven.surefire.shared.utils/org.apache.maven.shared.utils/ -e s/org.apache.maven.surefire.shared.io/org.apache.commons.io/ -e s/org.apache.maven.surefire.shared.lang3/org.apache.commons.lang3/ -e s/org.apache.maven.surefire.shared.compress/org.apache.commons.compress/ {} \; - # Not packaged %pom_remove_plugin -r :animal-sniffer-maven-plugin # Complains %pom_remove_plugin -r :apache-rat-plugin + +%pom_disable_module surefire-shadefire +%pom_remove_dep -r :surefire-shadefire + +# Help plugin is needed only to evaluate effective Maven settings. +# For building RPM package default settings will suffice. +%pom_remove_plugin :maven-help-plugin surefire-its + # We don't need site-source %pom_remove_plugin :maven-assembly-plugin maven-surefire-plugin -%pom_remove_dep -r ::::site-source # Disable all modules besides the 3 plugins for module in \ maven-surefire-common \ surefire-api \ surefire-booter \ + surefire-grouper \ surefire-extensions-api \ surefire-extensions-spi \ - surefire-grouper \ surefire-its \ surefire-logger-api \ surefire-providers \ - surefire-shared-utils \ surefire-report-parser; do %pom_disable_module ${module} done diff --git a/maven-surefire-provider-junit5.changes b/maven-surefire-provider-junit5.changes index 26f2abd..343899e 100644 --- a/maven-surefire-provider-junit5.changes +++ b/maven-surefire-provider-junit5.changes @@ -1,3 +1,106 @@ +------------------------------------------------------------------- +Mon Nov 4 09:51:10 UTC 2024 - Fridrich Strba + +- Upgrade to 3.5.2 + * Bug + + SUREFIRE-2276: JUnit5's TestTemplate failures treated as + flakes with retries + + SUREFIRE-2277: RunResult#getFlakes() is lost during + serialisation/deserialisation to/from failsafe-summary.xml + + SUREFIRE-2283: FAQ site contains broken link to + failsafe-plugin + * Improvement + + SUREFIRE-2278: Don't say Please + * Task + + SUREFIRE-2282: surefire-report-plugin: Update Introduction + documentation page + * Dependency upgrade + + SUREFIRE-2281: Upgrade to Doxia 2.0.0 GA Stack +- Modified patches: + * 0001-Port-to-TestNG-7.4.0.patch + * 0002-Unshade-surefire.patch + + rediff + * maven-surefire-bootstrap-resources.patch + + regenerate from non-bootstrap build + +------------------------------------------------------------------- +Thu Oct 3 14:33:33 UTC 2024 - Fridrich Strba + +- Upgrade to 3.5.1 + * Bug + + SUREFIRE-1737: Disabling the JUnit5Xml30StatelessReporter has + no effect + + SUREFIRE-2257: [REGRESSION] NPEx: Cannot invoke + "Object.toString()" because "value" is null + + SUREFIRE-2267: Packages for commons-codec should be relocated + in surefire-shared-utils + + SUREFIRE-2268: Tests run under classpath if JDK 23 is used + * Improvement + + SUREFIRE-2264: Limit usage of commons-io from + surefire-shared-utils + + SUREFIRE-2266: Execute ITs in parallel + + SUREFIRE-2270: Use JUnit5 in surefire-shadefire +- Upgrade to 3.5.0 + * Improvement + + SUREFIRE-2227: Dynamically calculate xrefTestLocation + * Task + + SUREFIRE-2161: Align Mojo class names and output names +- Upgrade to 3.4.0 + * Bug + + SUREFIRE-2251: [REGRESSION] java.lang.NoSuchMethodException: + org.apache.maven.plugin.surefire.StartupReportConfiguration + . + + SUREFIRE-2253: [REGRESSION] Bump + org.apache.commons:commons-compress from 1.26.0 to 1.26.1 + causes hang + * Improvement + + SUREFIRE-1385: System properties defined in the Surefire and + Failsafe plugin configuration should override user properties +- Upgrade to 3.3.1 + * Bug + + SUREFIRE-2105: Failsafe report size increased with version + upgrade from 2.17 to 2.22.2 + + SUREFIRE-2242: Plain test report does not include names of the + skipped tests + + SUREFIRE-2250: Surefire Test Report Schema properties element + is not consistent with the code + * Improvement + + SUREFIRE-1360: Ability to disable properties for successfully + passed tests + + SUREFIRE-1934: Ability to disable system-out/system-err for + successfully passed tests + + SUREFIRE-2124: Avoid creating unnecessary target files for pom + projects + + SUREFIRE-2249: Doc for 'properties' parameter does not mention + JUnit +- Upgrade to 3.3.0 + * Bug + + SUREFIRE-1939: Build fails if java.home has <=2 path + components + + SUREFIRE-2232: [REGRESSION] StatelessXmlReporter fails to + process failed result without a throwable + + SUREFIRE-2240: Using JUnit BOM prevents upgrading the engine + version via plugin dependency + * Improvement + + SUREFIRE-2248: Make "type" attribute on failures and errors in + (surefire|failsafe)-test-report schema optional + * Test + + SUREFIRE-2141: Surefire 3.0.0-M8 tests don't pass on Mac M1 + (Surefire1295AttributeJvmCrashesToTestsIT) + * Task + + SUREFIRE-2244: Make IT for SUREFIRE-1295 reliable + + SUREFIRE-2246: Clean up dependencies reported by + dependencies:analyze +- Modified patches: + * maven-surefire-bootstrap-resources.patch + + regenerate from non-bootstrap build + * 0001-Port-to-TestNG-7.4.0.patch + + rediff and augment to make the test pass in upstream evironment +- Added patch: + * 0002-Unshade-surefire.patch + + remove the use of the shaded surefire-shared-utils artifact + in favour of direct use of the dependencies + ------------------------------------------------------------------- Wed Apr 10 10:54:02 UTC 2024 - Fridrich Strba diff --git a/maven-surefire-provider-junit5.spec b/maven-surefire-provider-junit5.spec index 7a57ed3..76b2196 100644 --- a/maven-surefire-provider-junit5.spec +++ b/maven-surefire-provider-junit5.spec @@ -18,7 +18,7 @@ %global base_name maven-surefire Name: %{base_name}-provider-junit5 -Version: 3.2.5 +Version: 3.5.2 Release: 0 Summary: JUnit 5 provider for Maven Surefire License: Apache-2.0 AND CPL-1.0 @@ -28,11 +28,13 @@ Source0: %{base_name}-%{version}.tar.xz Source1: https://www.apache.org/licenses/LICENSE-2.0.txt Source2: https://www.eclipse.org/legal/cpl-v10.html Patch0: 0001-Port-to-TestNG-7.4.0.patch +Patch1: 0002-Unshade-surefire.patch BuildRequires: fdupes BuildRequires: java-devel >= 1.8 BuildRequires: maven-local BuildRequires: mvn(org.apache.maven.surefire:common-java5) BuildRequires: mvn(org.apache.maven:maven-parent:pom:) +BuildRequires: mvn(org.junit.platform:junit-platform-engine) BuildRequires: mvn(org.junit.platform:junit-platform-launcher) # PpidChecker relies on /usr/bin/ps to check process uptime Requires: procps @@ -53,34 +55,29 @@ Javadoc for %{name}. cp -p %{SOURCE1} %{SOURCE2} . %patch -P 0 -p1 -#patch -P 1 -p1 +%patch -P 1 -p1 # Disable strict doclint sed -i /-Xdoclint:all/d pom.xml -%pom_remove_dep org.junit:junit-bom - -%pom_disable_module surefire-shadefire -%pom_remove_dep -r org.apache.maven.surefire:surefire-shadefire - -# Help plugin is needed only to evaluate effective Maven settings. -# For building RPM package default settings will suffice. -%pom_remove_plugin :maven-help-plugin surefire-its - # QA plugin useful only for upstream %pom_remove_plugin -r :jacoco-maven-plugin # Not wanted %pom_remove_plugin -r :maven-shade-plugin - -find -name *.java -exec sed -i -e s/org.apache.maven.surefire.shared.utils/org.apache.maven.shared.utils/ -e s/org.apache.maven.surefire.shared.io/org.apache.commons.io/ -e s/org.apache.maven.surefire.shared.lang3/org.apache.commons.lang3/ -e s/org.apache.maven.surefire.shared.compress/org.apache.commons.compress/ {} \; - # Not packaged %pom_remove_plugin -r :animal-sniffer-maven-plugin # Complains %pom_remove_plugin -r :apache-rat-plugin + +%pom_disable_module surefire-shadefire +%pom_remove_dep -r :surefire-shadefire + +# Help plugin is needed only to evaluate effective Maven settings. +# For building RPM package default settings will suffice. +%pom_remove_plugin :maven-help-plugin surefire-its + # We don't need site-source %pom_remove_plugin :maven-assembly-plugin maven-surefire-plugin -%pom_remove_dep -r ::::site-source %build pushd surefire-providers/surefire-junit-platform diff --git a/maven-surefire.changes b/maven-surefire.changes index b8e9ada..3312204 100644 --- a/maven-surefire.changes +++ b/maven-surefire.changes @@ -1,3 +1,107 @@ +------------------------------------------------------------------- +Mon Nov 4 09:51:10 UTC 2024 - Fridrich Strba + +- Upgrade to 3.5.2 + * Bug + + SUREFIRE-2276: JUnit5's TestTemplate failures treated as + flakes with retries + + SUREFIRE-2277: RunResult#getFlakes() is lost during + serialisation/deserialisation to/from failsafe-summary.xml + + SUREFIRE-2283: FAQ site contains broken link to + failsafe-plugin + * Improvement + + SUREFIRE-2278: Don't say Please + * Task + + SUREFIRE-2282: surefire-report-plugin: Update Introduction + documentation page + * Dependency upgrade + + SUREFIRE-2281: Upgrade to Doxia 2.0.0 GA Stack +- Modified patches: + * 0001-Port-to-TestNG-7.4.0.patch + * 0002-Unshade-surefire.patch + + rediff + * maven-surefire-bootstrap-resources.patch + + regenerate from non-bootstrap build + +------------------------------------------------------------------- +Thu Oct 3 14:33:33 UTC 2024 - Fridrich Strba + +- Upgrade to 3.5.1 + * Bug + + SUREFIRE-1737: Disabling the JUnit5Xml30StatelessReporter has + no effect + + SUREFIRE-2257: [REGRESSION] NPEx: Cannot invoke + "Object.toString()" because "value" is null + + SUREFIRE-2267: Packages for commons-codec should be relocated + in surefire-shared-utils + + SUREFIRE-2268: Tests run under classpath if JDK 23 is used + * Improvement + + SUREFIRE-2264: Limit usage of commons-io from + surefire-shared-utils + + SUREFIRE-2266: Execute ITs in parallel + + SUREFIRE-2270: Use JUnit5 in surefire-shadefire +- Upgrade to 3.5.0 + * Improvement + + SUREFIRE-2227: Dynamically calculate xrefTestLocation + * Task + + SUREFIRE-2161: Align Mojo class names and output names +- Upgrade to 3.4.0 + * Bug + + SUREFIRE-2251: [REGRESSION] java.lang.NoSuchMethodException: + org.apache.maven.plugin.surefire.StartupReportConfiguration + . + + SUREFIRE-2253: [REGRESSION] Bump + org.apache.commons:commons-compress from 1.26.0 to 1.26.1 + causes hang + * Improvement + + SUREFIRE-1385: System properties defined in the Surefire and + Failsafe plugin configuration should override user properties +- Upgrade to 3.3.1 + * Bug + + SUREFIRE-2105: Failsafe report size increased with version + upgrade from 2.17 to 2.22.2 + + SUREFIRE-2242: Plain test report does not include names of the + skipped tests + + SUREFIRE-2250: Surefire Test Report Schema properties element + is not consistent with the code + * Improvement + + SUREFIRE-1360: Ability to disable properties for successfully + passed tests + + SUREFIRE-1934: Ability to disable system-out/system-err for + successfully passed tests + + SUREFIRE-2124: Avoid creating unnecessary target files for pom + projects + + SUREFIRE-2249: Doc for 'properties' parameter does not mention + JUnit +- Upgrade to 3.3.0 + * Bug + + SUREFIRE-1939: Build fails if java.home has <=2 path + components + + SUREFIRE-2232: [REGRESSION] StatelessXmlReporter fails to + process failed result without a throwable + + SUREFIRE-2240: Using JUnit BOM prevents upgrading the engine + version via plugin dependency + * Improvement + + SUREFIRE-2248: Make "type" attribute on failures and errors in + (surefire|failsafe)-test-report schema optional + * Test + + SUREFIRE-2141: Surefire 3.0.0-M8 tests don't pass on Mac M1 + (Surefire1295AttributeJvmCrashesToTestsIT) + * Task + + SUREFIRE-2244: Make IT for SUREFIRE-1295 reliable + + SUREFIRE-2246: Clean up dependencies reported by + dependencies:analyze +- Modified patches: + * maven-surefire-bootstrap-resources.patch + + regenerate from non-bootstrap build + * 0001-Port-to-TestNG-7.4.0.patch + + rediff and augment to make the test pass in upstream + environment +- Added patch: + * 0002-Unshade-surefire.patch + + remove the use of the shaded surefire-shared-utils artifact + in favour of direct use of the dependencies + ------------------------------------------------------------------- Mon Jun 10 19:00:07 UTC 2024 - Fridrich Strba diff --git a/maven-surefire.spec b/maven-surefire.spec index 00ab08c..45973c7 100644 --- a/maven-surefire.spec +++ b/maven-surefire.spec @@ -17,7 +17,7 @@ Name: maven-surefire -Version: 3.2.5 +Version: 3.5.2 Release: 0 Summary: Test framework project License: Apache-2.0 AND CPL-1.0 @@ -28,6 +28,7 @@ Source1: https://www.apache.org/licenses/LICENSE-2.0.txt Source2: https://www.eclipse.org/legal/cpl-v10.html Source10: %{name}-build.tar.xz Patch0: 0001-Port-to-TestNG-7.4.0.patch +Patch1: 0002-Unshade-surefire.patch Patch10: %{name}-bootstrap-resources.patch BuildRequires: ant BuildRequires: apache-commons-compress @@ -37,21 +38,22 @@ BuildRequires: atinject BuildRequires: fdupes BuildRequires: java-devel >= 1.8 BuildRequires: javacc -BuildRequires: javapackages-local -BuildRequires: jdom +BuildRequires: javapackages-local >= 6 BuildRequires: jsr-305 BuildRequires: junit BuildRequires: maven-common-artifact-filters BuildRequires: maven-doxia-core -BuildRequires: maven-doxia-logging-api BuildRequires: maven-doxia-sink-api -BuildRequires: maven-doxia-sitetools BuildRequires: maven-lib BuildRequires: maven-plugin-annotations BuildRequires: maven-reporting-api BuildRequires: maven-reporting-impl -BuildRequires: maven-resolver +BuildRequires: maven-resolver-api +BuildRequires: maven-resolver-impl +BuildRequires: maven-resolver-named-locks +BuildRequires: maven-resolver-util BuildRequires: maven-shared-utils +BuildRequires: plexus-containers-component-annotations BuildRequires: plexus-i18n BuildRequires: plexus-interpolation BuildRequires: plexus-languages @@ -139,35 +141,29 @@ Javadoc for %{name}. cp -p %{SOURCE1} %{SOURCE2} . %patch -P 0 -p1 -#patch -P 1 -p1 +%patch -P 1 -p1 %patch -P 10 -p1 # Disable strict doclint sed -i /-Xdoclint:all/d pom.xml -%pom_remove_dep org.junit:junit-bom - -%pom_disable_module surefire-shadefire -%pom_remove_dep -r org.apache.maven.surefire:surefire-shadefire - -# Help plugin is needed only to evaluate effective Maven settings. -# For building RPM package default settings will suffice. -%pom_remove_plugin :maven-help-plugin surefire-its - # QA plugin useful only for upstream %pom_remove_plugin -r :jacoco-maven-plugin # Not wanted %pom_remove_plugin -r :maven-shade-plugin - -find -name *.java -exec sed -i -e s/org.apache.maven.surefire.shared.utils/org.apache.maven.shared.utils/ -e s/org.apache.maven.surefire.shared.io/org.apache.commons.io/ -e s/org.apache.maven.surefire.shared.lang3/org.apache.commons.lang3/ -e s/org.apache.maven.surefire.shared.compress/org.apache.commons.compress/ {} \; - # Not packaged %pom_remove_plugin -r :animal-sniffer-maven-plugin # Complains %pom_remove_plugin -r :apache-rat-plugin + +%pom_disable_module surefire-shadefire +%pom_remove_dep -r :surefire-shadefire + +# Help plugin is needed only to evaluate effective Maven settings. +# For building RPM package default settings will suffice. + # We don't need site-source %pom_remove_plugin :maven-assembly-plugin maven-surefire-plugin -%pom_remove_dep -r ::::site-source %build %{mvn_package} ":*tests*" __noinstall @@ -178,20 +174,16 @@ find -name *.java -exec sed -i -e s/org.apache.maven.surefire.shared.utils/org.a mkdir -p lib build-jar-repository -s -p lib \ - atinject \ apache-commons-lang3 \ + atinject \ commons-compress \ commons-io \ - javacc \ jsr-305 \ junit \ maven-common-artifact-filters/maven-common-artifact-filters \ maven-doxia/doxia-core \ - maven-doxia/doxia-logging-api \ maven-doxia/doxia-sink-api \ - maven-doxia-sitetools/doxia-site-renderer \ maven/maven-artifact \ - maven/maven-compat \ maven/maven-core \ maven/maven-model \ maven/maven-plugin-api \ @@ -200,10 +192,12 @@ build-jar-repository -s -p lib \ maven-reporting-api/maven-reporting-api \ maven-reporting-impl/maven-reporting-impl \ maven-resolver/maven-resolver-api \ + maven-resolver/maven-resolver-impl \ + maven-resolver/maven-resolver-named-locks \ maven-resolver/maven-resolver-util \ maven-shared-utils/maven-shared-utils \ - org.eclipse.sisu.plexus \ org.eclipse.sisu.inject \ + org.eclipse.sisu.plexus \ plexus-containers/plexus-component-annotations \ plexus-i18n/plexus-i18n \ plexus/interpolation \ @@ -228,7 +222,6 @@ for module in \ surefire-grouper \ surefire-extensions-api \ surefire-extensions-spi \ - surefire-shared-utils \ maven-surefire-common \ surefire-report-parser \ maven-surefire-plugin \ @@ -240,8 +233,8 @@ for module in \ fi done for module in \ - common-junit3 \ common-java5 \ + common-junit3 \ common-junit4 \ common-junit48 \ surefire-junit3 \