diff --git a/takari-plugin-testing-its/pom.xml b/takari-plugin-testing-its/pom.xml index 288a555..af1f059 100644 --- a/takari-plugin-testing-its/pom.xml +++ b/takari-plugin-testing-its/pom.xml @@ -143,7 +143,7 @@ org.apache.maven apache-maven - 4.0.0-rc-3 + 4.0.0-rc-4-SNAPSHOT bin tar.gz diff --git a/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/IntegrationTest.java b/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/IntegrationTest.java index ba6a017..2d810c0 100644 --- a/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/IntegrationTest.java +++ b/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/IntegrationTest.java @@ -25,8 +25,6 @@ *
  • The test project is not able to resolve test harness from the reactor, hence the outer build * must run at least install phase.
  • * - * - * TODO: DOES NOT WORK WITH MAVEN 4! */ @RunWith(Parameterized.class) public class IntegrationTest { @@ -37,6 +35,7 @@ public static List versions() { parameters.add(new Object[] {"3.6.3"}); parameters.add(new Object[] {"3.8.8"}); parameters.add(new Object[] {"3.9.9"}); + parameters.add(new Object[] {"4.0.0-rc-4-SNAPSHOT"}); return parameters; } diff --git a/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/JUnit5IntegrationTests.java b/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/JUnit5IntegrationTests.java index c0ce745..f78156b 100644 --- a/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/JUnit5IntegrationTests.java +++ b/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/JUnit5IntegrationTests.java @@ -17,7 +17,7 @@ "target/maven-installation/apache-maven-3.6.3", "target/maven-installation/apache-maven-3.8.8", "target/maven-installation/apache-maven-3.9.9", - "target/maven-installation/apache-maven-4.0.0-rc-3" + "target/maven-installation/apache-maven-4.0.0-rc-4-SNAPSHOT" }) public class JUnit5IntegrationTests { diff --git a/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/JUnit5UnitTests.java b/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/JUnit5UnitTests.java index a91244a..f784776 100644 --- a/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/JUnit5UnitTests.java +++ b/takari-plugin-testing-its/src/test/java/io/takari/maven/testing/test/JUnit5UnitTests.java @@ -27,8 +27,6 @@ *
  • The test project is not able to resolve test harness from the reactor, hence the outer build * must run at least install phase.
  • * - * - * TODO: DOES NOT WORK WITH MAVEN 4! */ class JUnit5UnitTests { @@ -88,7 +86,7 @@ void testUnitTestHarnessHonoursUserSettings(MavenRuntime maven, String version) static final class MavenVersionsSource implements ArgumentsProvider { private List getMavenVersions() { - return Arrays.asList("3.6.3", "3.8.8", "3.9.9"); + return Arrays.asList("3.6.3", "3.8.8", "3.9.9", "4.0.0-rc-4-SNAPSHOT"); } @Override diff --git a/takari-plugin-testing-its/src/test/projects/guicescopes/pom.xml b/takari-plugin-testing-its/src/test/projects/guicescopes/pom.xml index 1bb18d9..3705277 100644 --- a/takari-plugin-testing-its/src/test/projects/guicescopes/pom.xml +++ b/takari-plugin-testing-its/src/test/projects/guicescopes/pom.xml @@ -43,6 +43,12 @@ ${mavenPluginPluginVersion} provided + + javax.inject + javax.inject + 1 + provided + diff --git a/takari-plugin-testing/src/main/java/io/takari/maven/testing/Maven30xRuntime.java b/takari-plugin-testing/src/main/java/io/takari/maven/testing/Maven30xRuntime.java index 712560b..4d225df 100644 --- a/takari-plugin-testing/src/main/java/io/takari/maven/testing/Maven30xRuntime.java +++ b/takari-plugin-testing/src/main/java/io/takari/maven/testing/Maven30xRuntime.java @@ -334,6 +334,7 @@ protected MavenExecutionRequest newExecutionRequest() throws Exception { systemProperties.putAll(System.getProperties()); // TODO not thread safe systemProperties.setProperty("maven.version", mavenVersion); systemProperties.setProperty("maven.build.version", mavenVersion); + System.getenv().forEach((k, v) -> systemProperties.setProperty("env." + k, v)); // request with initial configuration MavenExecutionRequest request = new DefaultMavenExecutionRequest(); diff --git a/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/MavenInstallationUtils.java b/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/MavenInstallationUtils.java index 3f29eb7..e136907 100644 --- a/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/MavenInstallationUtils.java +++ b/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/MavenInstallationUtils.java @@ -9,10 +9,10 @@ import java.io.BufferedInputStream; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; +import java.nio.file.Files; import java.util.Properties; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -89,7 +89,7 @@ public void addLoadFile(File file) { } } else { try (InputStream is = new BufferedInputStream( - new FileInputStream(new File(file, MAVEN_CORE_POMPROPERTIES)))) { + Files.newInputStream(new File(file, MAVEN_CORE_POMPROPERTIES).toPath()))) { version = getMavenVersion(is); } } @@ -112,7 +112,7 @@ public void addLoadURL(URL url) {} properties.setProperty(SYSPROP_MAVEN_MAIN_CLASS, MAVEN4_MAIN_CLASS); // must for maven4, ignored by maven3 properties.setProperty(SYSPROP_MAVEN_HOME, mavenHome.getCanonicalPath()); ConfigurationParser configParser = new ConfigurationParser(configHandler, properties); - try (InputStream is = new BufferedInputStream(new FileInputStream(classworldsConf))) { + try (InputStream is = new BufferedInputStream(Files.newInputStream(classworldsConf.toPath()))) { configParser.parse(is); } } catch (IOException | ClassWorldException | ConfigurationException e) { diff --git a/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/MavenRuntime.java b/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/MavenRuntime.java index e952241..2a4f9df 100644 --- a/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/MavenRuntime.java +++ b/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/MavenRuntime.java @@ -124,7 +124,7 @@ public MavenRuntime build() throws Exception { public static class ForkedMavenRuntimeBuilder extends MavenRuntimeBuilder { - private Map environment; + private Map environment = new HashMap<>(System.getenv()); private final List jvmArgs = new ArrayList<>(); ForkedMavenRuntimeBuilder(File mavenHome, File classworldsConf) { diff --git a/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/junit/MavenInstallationsTestExtension.java b/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/junit/MavenInstallationsTestExtension.java index 4da0628..c10c133 100644 --- a/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/junit/MavenInstallationsTestExtension.java +++ b/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/junit/MavenInstallationsTestExtension.java @@ -41,7 +41,7 @@ public boolean supportsTestTemplate(ExtensionContext context) { public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { String displayName = context.getDisplayName(); String[] installations = context.getTestClass() - .orElseThrow() + .orElseThrow(IllegalStateException::new) .getAnnotation(MavenInstallations.class) .value(); return Arrays.stream(installations) diff --git a/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/junit/MavenVersionsTestExtension.java b/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/junit/MavenVersionsTestExtension.java index 3c06219..6a123a7 100644 --- a/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/junit/MavenVersionsTestExtension.java +++ b/takari-plugin-testing/src/main/java/io/takari/maven/testing/executor/junit/MavenVersionsTestExtension.java @@ -45,7 +45,7 @@ public boolean supportsTestTemplate(ExtensionContext context) { public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { String displayName = context.getDisplayName(); String[] versions = context.getTestClass() - .orElseThrow() + .orElseThrow(IllegalStateException::new) .getAnnotation(MavenVersions.class) .value(); List contexts = new ArrayList<>();