From c51623023949d84f77377e417837ab87bce49e97 Mon Sep 17 00:00:00 2001 From: Matous Jobanek Date: Fri, 21 Jul 2017 14:57:32 +0200 Subject: [PATCH] SHRINKRES-277 Upgraded to maven-invoker 3.0.0 --- .../pom/equipped/ConfigurationStage.java | 42 +++++--- maven/impl-maven-embedded/pom.xml | 1 - .../pom/equipped/ConfigurationStageImpl.java | 23 +++-- .../embedded/ConfigurationStageTestCase.java | 99 ++++++++++--------- pom.xml | 2 +- 5 files changed, 97 insertions(+), 70 deletions(-) diff --git a/maven/api-maven-embedded/src/main/java/org/jboss/shrinkwrap/resolver/api/maven/embedded/pom/equipped/ConfigurationStage.java b/maven/api-maven-embedded/src/main/java/org/jboss/shrinkwrap/resolver/api/maven/embedded/pom/equipped/ConfigurationStage.java index 83f778183..a6203be0e 100644 --- a/maven/api-maven-embedded/src/main/java/org/jboss/shrinkwrap/resolver/api/maven/embedded/pom/equipped/ConfigurationStage.java +++ b/maven/api-maven-embedded/src/main/java/org/jboss/shrinkwrap/resolver/api/maven/embedded/pom/equipped/ConfigurationStage.java @@ -21,6 +21,7 @@ import java.io.InputStream; import java.util.List; import java.util.Properties; +import org.apache.maven.shared.invoker.InvocationRequest; import org.apache.maven.shared.invoker.InvokerLogger; import org.jboss.shrinkwrap.resolver.api.maven.embedded.BuildStage; import org.jboss.shrinkwrap.resolver.api.maven.embedded.BuiltProject; @@ -33,12 +34,13 @@ public interface ConfigurationStage { /** - * Sets the interaction mode of the Maven invocation. Inverse equivalent of -B and --batch-mode + * Sets the interaction mode of the Maven invocation. Equivalent of {@code -B} and {@code --batch-mode} * - * @param interactive true if Maven should be executed in interactive mode, false if the batch mode is used. + * @param batchMode true if Maven should be executed in non-interactive mode, false if the + * interactive modes is used. * @return Modified instance of EmbeddedMaven */ - DIST_OR_CONFIG setInteractive(boolean interactive); + DIST_OR_CONFIG setBatchMode(boolean batchMode); /** * Sets the network mode of the Maven invocation. Equivalent of -o and --offline @@ -73,21 +75,23 @@ public interface ConfigurationStageNote. This is available since Maven + * 3.2.1 * - * @param includes a list of filename patterns to include, or null, in which case the default is */pom.xml - * @param excludes a list of filename patterns to exclude, or null, in which case nothing is excluded + * @param id The builder id. * @return Modified instance of EmbeddedMaven */ - DIST_OR_CONFIG activateReactor(String[] includes, String[] excludes); + DIST_OR_CONFIG setBuilder(String id); /** * Sets the path to the base directory of the local repository to use for the Maven invocation. @@ -220,12 +224,24 @@ public interface ConfigurationStageImplementation for running Maven builds and retrieving information and archives from the built project - 2.2 1.0.0.Alpha8 2.7.0 3.0.0 diff --git a/maven/impl-maven-embedded/src/main/java/org/jboss/shrinkwrap/resolver/impl/maven/embedded/pom/equipped/ConfigurationStageImpl.java b/maven/impl-maven-embedded/src/main/java/org/jboss/shrinkwrap/resolver/impl/maven/embedded/pom/equipped/ConfigurationStageImpl.java index bbac830da..fd3d4b380 100644 --- a/maven/impl-maven-embedded/src/main/java/org/jboss/shrinkwrap/resolver/impl/maven/embedded/pom/equipped/ConfigurationStageImpl.java +++ b/maven/impl-maven-embedded/src/main/java/org/jboss/shrinkwrap/resolver/impl/maven/embedded/pom/equipped/ConfigurationStageImpl.java @@ -11,6 +11,9 @@ import org.jboss.shrinkwrap.resolver.api.maven.embedded.pom.equipped.ConfigurationStage; import org.jboss.shrinkwrap.resolver.impl.maven.embedded.BuildStageImpl; +import static org.apache.maven.shared.invoker.InvocationRequest.CheckSumPolicy; +import static org.apache.maven.shared.invoker.InvocationRequest.ReactorFailureBehavior; + /** * @author Matous Jobanek */ @@ -21,8 +24,8 @@ public abstract class ConfigurationStageImpl extends private boolean skipTests = true; @Override - public ConfigurationDistributionStage setInteractive(boolean interactive) { - getInvocationRequest().setInteractive(interactive); + public ConfigurationDistributionStage setBatchMode(boolean batchMode) { + getInvocationRequest().setBatchMode(batchMode); return this; } @@ -51,14 +54,14 @@ public ConfigurationDistributionStage setUpdateSnapshots(boolean updateSnapshots } @Override - public ConfigurationDistributionStage setFailureBehavior(String failureBehavior) { - getInvocationRequest().setFailureBehavior(failureBehavior); + public ConfigurationDistributionStage setReactorFailureBehavior(ReactorFailureBehavior reactorFailureBehavior) { + getInvocationRequest().setReactorFailureBehavior(reactorFailureBehavior); return this; } @Override - public ConfigurationDistributionStage activateReactor(String[] includes, String[] excludes) { - getInvocationRequest().activateReactor(includes, excludes); + public ConfigurationDistributionStage setBuilder(String id) { + getInvocationRequest().setBuilder(id); return this; } @@ -163,7 +166,13 @@ public ConfigurationDistributionStage setToolchainsFile(File toolchainsFile) { } @Override - public ConfigurationDistributionStage setGlobalChecksumPolicy(String globalChecksumPolicy) { + public ConfigurationDistributionStage setGlobalToolchainsFile(File toolchains) { + getInvocationRequest().setGlobalToolchainsFile(toolchains); + return this; + } + + @Override + public ConfigurationDistributionStage setGlobalChecksumPolicy(CheckSumPolicy globalChecksumPolicy) { getInvocationRequest().setGlobalChecksumPolicy(globalChecksumPolicy); return this; } diff --git a/maven/impl-maven-embedded/src/test/java/org/jboss/shrinkwrap/resolver/impl/maven/embedded/ConfigurationStageTestCase.java b/maven/impl-maven-embedded/src/test/java/org/jboss/shrinkwrap/resolver/impl/maven/embedded/ConfigurationStageTestCase.java index 050c5bc2c..cd67fe26a 100644 --- a/maven/impl-maven-embedded/src/test/java/org/jboss/shrinkwrap/resolver/impl/maven/embedded/ConfigurationStageTestCase.java +++ b/maven/impl-maven-embedded/src/test/java/org/jboss/shrinkwrap/resolver/impl/maven/embedded/ConfigurationStageTestCase.java @@ -3,23 +3,21 @@ import java.io.ByteArrayInputStream; import java.io.File; import java.io.InputStream; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Properties; - import org.apache.maven.shared.invoker.InvocationRequest; import org.apache.maven.shared.invoker.Invoker; import org.apache.maven.shared.invoker.InvokerLogger; -import org.jboss.shrinkwrap.resolver.api.maven.embedded.pom.equipped.ConfigurationStage; +import org.assertj.core.api.JUnitSoftAssertions; import org.jboss.shrinkwrap.resolver.api.maven.embedded.EmbeddedMaven; +import org.jboss.shrinkwrap.resolver.api.maven.embedded.pom.equipped.ConfigurationStage; import org.jboss.shrinkwrap.resolver.impl.maven.embedded.pom.equipped.ConfigurationStageImpl; import org.junit.Assert; +import org.junit.Rule; import org.junit.Test; import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.pathToJarSamplePom; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; /** * @author Matous Jobanek @@ -37,8 +35,8 @@ public class ConfigurationStageTestCase { put("shellEnvName1", "shellEnvValue1"); put("shellEnvName2", "shellEnvValue2"); }}; - String failureBehavior = "failureBehavior"; - String globalChecksumPolicy = "globalChecksumPolicy"; + InvocationRequest.ReactorFailureBehavior failureBehavior = InvocationRequest.ReactorFailureBehavior.FailNever; + InvocationRequest.CheckSumPolicy globalChecksumPolicy = InvocationRequest.CheckSumPolicy.Warn; InputStream inputStream = new ByteArrayInputStream(new byte[] {}); File globalSettingFile = new File("globalSettingFile"); File javaHome = new File("javaHome"); @@ -49,10 +47,15 @@ public class ConfigurationStageTestCase { String[] projects = new String[] { "project1", "project2" }; String resumeFrom = "resumeFrom"; String threads = "8.0C"; + String builderId = "builderId"; File toolChainsFile = new File("toolChainsFile"); + File globalToolChainsFile = new File("globalToolChainsFile"); File userSettingFile = new File("userSettingFile"); File workingDirectory = new File("workingDirectory"); + @Rule + public final JUnitSoftAssertions softly = new JUnitSoftAssertions(); + @Test public void runTest() { ConfigurationStageImpl configurationStageImpl = getConfigurationStageImpl(); @@ -61,46 +64,45 @@ public void runTest() { InvocationRequest invocationRequest = configurationStageImpl.getInvocationRequest(); properties.put("skipTests", "true"); - assertEquals(properties, invocationRequest.getProperties()); - assertEquals(Arrays.asList(profiles), invocationRequest.getProfiles()); - assertEquals(excludes, invocationRequest.getActivatedReactorExcludes()); - assertEquals(includes, invocationRequest.getActivatedReactorIncludes()); - assertEquals(failureBehavior, invocationRequest.getFailureBehavior()); - assertEquals(globalChecksumPolicy, invocationRequest.getGlobalChecksumPolicy()); - assertEquals(globalSettingFile, invocationRequest.getGlobalSettingsFile()); - assertEquals(Arrays.asList(goals), invocationRequest.getGoals()); - assertEquals(inputStream, invocationRequest.getInputStream(null)); - assertEquals(javaHome, invocationRequest.getJavaHome()); - assertEquals(localRepositoryDirectory, invocationRequest.getLocalRepositoryDirectory(null)); - assertEquals(mavenOpts, invocationRequest.getMavenOpts()); + softly.assertThat(invocationRequest.getProperties()).isEqualTo(properties); + softly.assertThat(invocationRequest.getProfiles()).containsExactly(profiles); + softly.assertThat(invocationRequest.getReactorFailureBehavior()).isEqualTo(failureBehavior); + softly.assertThat(invocationRequest.getGlobalChecksumPolicy()).isEqualTo(globalChecksumPolicy); + softly.assertThat(invocationRequest.getGlobalSettingsFile()).isEqualTo(globalSettingFile); + softly.assertThat(invocationRequest.getGoals()).containsExactly(goals); + softly.assertThat(invocationRequest.getInputStream(null)).isEqualTo(inputStream); + softly.assertThat(invocationRequest.getJavaHome()).isEqualTo(javaHome); + softly.assertThat(invocationRequest.getLocalRepositoryDirectory(null)).isEqualTo(localRepositoryDirectory); + softly.assertThat(invocationRequest.getMavenOpts()).isEqualTo(mavenOpts); File jarSamplePom = new File(pathToJarSamplePom); - assertEquals(jarSamplePom.getAbsoluteFile(), invocationRequest.getPomFile()); - assertEquals(Arrays.asList(profiles), invocationRequest.getProfiles()); - assertEquals(Arrays.asList(projects), invocationRequest.getProjects()); - assertEquals(resumeFrom, invocationRequest.getResumeFrom()); - assertEquals(shellEnvironments, invocationRequest.getShellEnvironments()); - assertEquals(threads, invocationRequest.getThreads()); - assertEquals(toolChainsFile, invocationRequest.getToolchainsFile()); - assertEquals(userSettingFile, invocationRequest.getUserSettingsFile()); - assertEquals(true, invocationRequest.isActivatedReactor()); - assertEquals(true, invocationRequest.isAlsoMake()); - assertEquals(true, invocationRequest.isAlsoMakeDependents()); - assertEquals(true, invocationRequest.isDebug()); - assertEquals(true, invocationRequest.isInteractive()); - assertEquals(true, invocationRequest.isNonPluginUpdates()); - assertEquals(true, invocationRequest.isOffline()); - assertEquals(true, invocationRequest.isRecursive()); - assertEquals(true, invocationRequest.isShellEnvironmentInherited()); - assertEquals(true, invocationRequest.isShowErrors()); - assertEquals(true, invocationRequest.isShowVersion()); - assertEquals(true, invocationRequest.isUpdateSnapshots()); + softly.assertThat(invocationRequest.getPomFile()).isEqualTo(jarSamplePom.getAbsoluteFile()); + softly.assertThat(invocationRequest.getProfiles()).containsExactly(profiles); + softly.assertThat(invocationRequest.getProjects()).containsExactly(projects); + softly.assertThat(invocationRequest.getResumeFrom()).isEqualTo(resumeFrom); + softly.assertThat(invocationRequest.getShellEnvironments()).isEqualTo(shellEnvironments); + softly.assertThat(invocationRequest.getThreads()).isEqualTo(threads); + softly.assertThat(invocationRequest.getToolchainsFile()).isEqualTo(toolChainsFile); + softly.assertThat(invocationRequest.getGlobalToolchainsFile()).isEqualTo(globalToolChainsFile); + softly.assertThat(invocationRequest.getUserSettingsFile()).isEqualTo(userSettingFile); + softly.assertThat(invocationRequest.getBuilder()).isEqualTo(builderId); + softly.assertThat(invocationRequest.isAlsoMake()).isTrue(); + softly.assertThat(invocationRequest.isAlsoMakeDependents()).isTrue(); + softly.assertThat(invocationRequest.isDebug()).isTrue(); + softly.assertThat(invocationRequest.isBatchMode()).isTrue(); + softly.assertThat(invocationRequest.isNonPluginUpdates()).isTrue(); + softly.assertThat(invocationRequest.isOffline()).isTrue(); + softly.assertThat(invocationRequest.isRecursive()).isTrue(); + softly.assertThat(invocationRequest.isShellEnvironmentInherited()).isTrue(); + softly.assertThat(invocationRequest.isShowErrors()).isTrue(); + softly.assertThat(invocationRequest.isShowVersion()).isTrue(); + softly.assertThat(invocationRequest.isUpdateSnapshots()).isTrue(); // invoker validation Invoker invoker = configurationStageImpl.getInvoker(); - assertEquals(invokerLogger, invoker.getLogger()); - assertEquals(localRepositoryDirectory, invoker.getLocalRepositoryDirectory()); - assertEquals(workingDirectory, invoker.getWorkingDirectory()); + softly.assertThat(invoker.getLogger()).isEqualTo(invokerLogger); + softly.assertThat(invoker.getLocalRepositoryDirectory()).isEqualTo(localRepositoryDirectory); + softly.assertThat(invoker.getWorkingDirectory()).isEqualTo(workingDirectory); boolean hasFailed = false; try { @@ -112,8 +114,8 @@ public void runTest() { Assert.fail("Maven build execution should fail as the local repository location is NOT a directory"); } - assertNotNull(invoker.getMavenHome()); - assertEquals("apache-maven-3.3.9", invoker.getMavenHome().getName()); + softly.assertThat(invoker.getMavenHome()).isNotNull(); + softly.assertThat(invoker.getMavenHome().getName()).isEqualTo("apache-maven-3.3.9"); } private ConfigurationStageImpl getConfigurationStageImpl() { @@ -121,7 +123,6 @@ private ConfigurationStageImpl getConfigurationStageImpl() { EmbeddedMaven.forProject(pathToJarSamplePom) .useMaven3Version("3.3.9") .setGoals(goals) - .activateReactor(includes, excludes) .addProperty("propertyKey1", properties.getProperty("propertyKey1")) .addProperty("propertyKey2", properties.getProperty("propertyKey2")) .addShellEnvironment("shellEnvName1", shellEnvironments.get("shellEnvName1")) @@ -129,11 +130,11 @@ private ConfigurationStageImpl getConfigurationStageImpl() { .setAlsoMake(true) .setAlsoMakeDependents(true) .setDebug(true) - .setFailureBehavior(failureBehavior) + .setReactorFailureBehavior(failureBehavior) .setGlobalChecksumPolicy(globalChecksumPolicy) .setInputStream(inputStream) .setGlobalSettingsFile(globalSettingFile) - .setInteractive(true) + .setBatchMode(true) .setJavaHome(javaHome) .setLocalRepositoryDirectory(localRepositoryDirectory) .setLogger(invokerLogger) @@ -149,10 +150,12 @@ private ConfigurationStageImpl getConfigurationStageImpl() { .setShowVersion(true) .setThreads(threads) .setToolchainsFile(toolChainsFile) + .setGlobalToolchainsFile(globalToolChainsFile) .setUpdateSnapshots(true) .setRecursive(true) .setUserSettingsFile(userSettingFile) - .setWorkingDirectory(workingDirectory); + .setWorkingDirectory(workingDirectory) + .setBuilder(builderId); return (ConfigurationStageImpl) configurationStage; } diff --git a/pom.xml b/pom.xml index 75db82b50..2755e9b6e 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ 1.2.6 2.7 3.3 - 2.2 + 3.0.0 4.12