From 1424ed800d26c99d279f66d96de416ab61a9322d Mon Sep 17 00:00:00 2001 From: Slawomir Jaranowski Date: Sat, 26 Feb 2022 14:48:26 +0100 Subject: [PATCH] [MSHARED-1018] Allow for using the -ntp ,--no-transfer-progress flag in Maven invocations --- .../shared/invoker/DefaultInvocationRequest.java | 15 +++++++++++++++ .../maven/shared/invoker/InvocationRequest.java | 16 ++++++++++++++++ .../shared/invoker/MavenCommandLineBuilder.java | 5 +++++ src/site/apt/index.apt.vm | 4 ++++ .../invoker/MavenCommandLineBuilderTest.java | 7 +++++++ 5 files changed, 47 insertions(+) diff --git a/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java b/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java index 0f6d516..5f990fc 100644 --- a/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java +++ b/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java @@ -111,6 +111,8 @@ public class DefaultInvocationRequest private File mavenExecutable; + private boolean noTransferProgress; + /** *

getBaseDirectory.

* @@ -729,6 +731,19 @@ public InvocationRequest setQuiet( boolean quiet ) return this; } + @Override + public boolean isNoTransferProgress() + { + return noTransferProgress; + } + + @Override + public InvocationRequest setNoTransferProgress( boolean noTransferProgress ) + { + this.noTransferProgress = noTransferProgress; + return this; + } + /** * {@inheritDoc} */ diff --git a/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java b/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java index 6a12935..53ea260 100644 --- a/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java +++ b/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java @@ -319,6 +319,14 @@ public interface InvocationRequest */ boolean isQuiet(); + /** + * Get the value of the {@code no-transfer-progress} argument. + * + * @return {@code true} if the argument {@code no-transfer-progress} was specified, otherwise {@code false} + * @since 3.2.0 + */ + boolean isNoTransferProgress(); + // ---------------------------------------------------------------------- // Reactor Failure Mode // ---------------------------------------------------------------------- @@ -736,6 +744,14 @@ enum CheckSumPolicy */ InvocationRequest setQuiet( boolean quiet ); + /** + * Enable no transfer progress mode. Equivalent of {@code -ntp} or {@code --no-transfer-progress} + * @param noTransferProgress enable no transfer progress mode + * @return This invocation request. + * @since 3.2.0 + */ + InvocationRequest setNoTransferProgress( boolean noTransferProgress ); + /** * Get the current set builder strategy id equivalent of {@code --builder id}. Note. This is available since * Maven 3.2.1 diff --git a/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java b/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java index 69e4b13..ada410c 100644 --- a/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java +++ b/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java @@ -528,6 +528,11 @@ else if ( CheckSumPolicy.Warn.equals( checksumPolicy ) ) { cli.createArg().setValue( "-q" ); } + + if ( request.isNoTransferProgress() ) + { + cli.createArg().setValue( "-ntp" ); + } } /** diff --git a/src/site/apt/index.apt.vm b/src/site/apt/index.apt.vm index 5403602..2589c61 100644 --- a/src/site/apt/index.apt.vm +++ b/src/site/apt/index.apt.vm @@ -78,8 +78,12 @@ ${project.name} * Update-Snapshots Flag * Debug Flag (show debug-level output) + + * Quiet Flag (only show errors) * Show-Errors Flag (show exception stacktraces, but not full debug output) + + * No-Transfer-Progress Flag (Do not display transfer progress when downloading or uploading) * Inherit-Shell-Environment Flag (inherit envars from the shell used to start the current JVM) diff --git a/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java b/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java index eee14a9..a499551 100644 --- a/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java +++ b/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java @@ -485,6 +485,13 @@ public void testShouldUseDefaultOfFailFastWhenSpecifiedInRequest() assertArgumentsNotPresent( cli, banned ); } + @Test + public void testShouldSetNoTransferProgressFlagFromRequest() + { + mclb.setFlags( newRequest().setNoTransferProgress( true ), cli ); + assertArgumentsPresent( cli, Collections.singleton( "-ntp" )); + } + @Test public void testShouldSpecifyFileOptionUsingNonStandardPomFileLocation() throws Exception