From 7aae9528d45e45602cf27122c07a065d47a8418d Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Mon, 8 Feb 2021 13:49:24 +0000 Subject: [PATCH 7/7] Accomodate API change in surefire 3.0.0~M4 --- .../META-INF/MANIFEST.MF | 1 + .../pom.xml | 5 +++++ .../surefire/osgibooter/OsgiSurefireBooter.java | 17 +++++++++++++---- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF index 9ad1c2e..4ad1fe9 100644 --- a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF +++ b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF @@ -8,6 +8,7 @@ Bundle-ClassPath: ., jars/surefire-booter-2.22.2.jar, jars/surefire-api-2.22.2.jar, jars/surefire-logger-api-2.22.2.jar, + jars/surefire-extensions-api-2.22.2.jar, jars/maven-surefire-common-2.22.2.jar Bundle-Name: Tycho Surefire OSGi Booter Eclipse Application Bundle-ManifestVersion: 2 diff --git a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml index 1ab4254..8255509 100644 --- a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml +++ b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml @@ -57,6 +57,11 @@ surefire-api ${surefire-version} + + org.apache.maven.surefire + surefire-extensions-api + ${surefire-version} + org.apache.maven.surefire surefire-logger-api diff --git a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/src/main/java/org/eclipse/tycho/surefire/osgibooter/OsgiSurefireBooter.java b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/src/main/java/org/eclipse/tycho/surefire/osgibooter/OsgiSurefireBooter.java index 3680799..165c9a3 100644 --- a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/src/main/java/org/eclipse/tycho/surefire/osgibooter/OsgiSurefireBooter.java +++ b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/src/main/java/org/eclipse/tycho/surefire/osgibooter/OsgiSurefireBooter.java @@ -28,6 +28,9 @@ import java.util.Properties; import java.util.Set; import org.apache.maven.plugin.surefire.StartupReportConfiguration; +import org.apache.maven.plugin.surefire.extensions.SurefireConsoleOutputReporter; +import org.apache.maven.plugin.surefire.extensions.SurefireStatelessReporter; +import org.apache.maven.plugin.surefire.extensions.SurefireStatelessTestsetInfoReporter; import org.apache.maven.plugin.surefire.log.api.PrintStreamLogger; import org.apache.maven.plugin.surefire.report.ConsoleReporter; import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; @@ -93,7 +96,7 @@ public class OsgiSurefireBooter { ClasspathConfiguration classPathConfig = new ClasspathConfiguration(false, false); StartupConfiguration startupConfiguration = new StartupConfiguration(provider, classPathConfig, - new ClassLoaderConfiguration(useSystemClassloader, useManifestOnlyJar), forkRequested, inForkedVM); + new ClassLoaderConfiguration(useSystemClassloader, useManifestOnlyJar), forkRequested, inForkedVM, null); // TODO dir scanning with no includes done here (done in TestMojo already) // but without dirScannerParams we get an NPE accessing runOrder DirectoryScannerParameters dirScannerParams = new DirectoryScannerParameters(testClassesDir, @@ -106,11 +109,17 @@ public class OsgiSurefireBooter { new RunOrderParameters(runOrder, null), failIfNoTests, reporterConfig, null, testRequest, extractProviderProperties(testProps), null, false, Collections. emptyList(), skipAfterFailureCount, Shutdown.DEFAULT, 30); + + SurefireStatelessReporter xmlReporter = new SurefireStatelessReporter(disableXmlReport, "3.0" ); + xmlReporter.setDisable(disableXmlReport); + SurefireConsoleOutputReporter outReporter = new SurefireConsoleOutputReporter(); + SurefireStatelessTestsetInfoReporter testsetReporter = new SurefireStatelessTestsetInfoReporter(); + StartupReportConfiguration startupReportConfig = new StartupReportConfiguration(useFile, printSummary, - ConsoleReporter.PLAIN, redirectTestOutputToFile, disableXmlReport, reportsDir, trimStackTrace, null, - new File(reportsDir, "TESTHASH"), false, rerunFailingTestsCount, XSD, null, false); + ConsoleReporter.PLAIN, redirectTestOutputToFile, reportsDir, trimStackTrace, null, + new File(reportsDir, "TESTHASH"), false, rerunFailingTestsCount, XSD, null, false, xmlReporter, outReporter, testsetReporter); ReporterFactory reporterFactory = new DefaultReporterFactory(startupReportConfig, - new PrintStreamLogger(startupReportConfig.getOriginalSystemOut())); + new PrintStreamLogger(System.out)); // API indicates we should use testClassLoader below but surefire also tries // to load surefire classes using this classloader RunResult result = ProviderFactory.invokeProvider(null, createCombinedClassLoader(testPlugin), reporterFactory, -- 2.28.0