[MSHARED-249] Add option for --resume-from
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1392618 13f79535-47bb-0310-9956-ffa450edef68
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 9fa70ab..b641623 100644
--- a/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java
+++ b/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java
@@ -98,6 +98,8 @@
private boolean alsoMakeDependents;
+ private String resumeFrom;
+
private boolean showVersion;
private String threads;
@@ -505,4 +507,21 @@
return this;
}
+ /**
+ * {@inheritDoc}
+ */
+ public String getResumeFrom()
+ {
+ return resumeFrom;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public InvocationRequest setResumeFrom( String resumeFrom )
+ {
+ this.resumeFrom = resumeFrom;
+ return this;
+ }
+
}
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 8a2d434..ac32634 100644
--- a/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java
+++ b/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java
@@ -110,6 +110,14 @@
boolean isAlsoMakeDependents();
/**
+ * Get the value of {@code resume-from}
+ *
+ * @return specified reactor project to resume from
+ * @since 2.0.12
+ */
+ String getResumeFrom();
+
+ /**
* Gets the debug mode of the Maven invocation. By default, Maven is executed in normal mode.
*
* @return <code>true</code> if Maven should be executed in debug mode, <code>false</code> if the normal mode
@@ -627,4 +635,15 @@
* @since 2.0.12
*/
InvocationRequest setAlsoMakeDependents( boolean alsoMakeDependents );
+
+ /**
+ * Resume reactor from specified project.
+ * Equivalent of {@code -rf} or {@code --resume-from}
+ *
+ * @param resumeFrom set the project to resume from
+ * @return This invocation request
+ * @since 2.0.12
+ */
+ InvocationRequest setResumeFrom( String resumeFrom );
+
}
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 b4be1c0..abf6482 100644
--- a/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java
+++ b/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java
@@ -443,6 +443,12 @@
}
}
+ if( StringUtils.isNotEmpty( request.getResumeFrom() ) )
+ {
+ cli.createArg().setValue( "-rf" );
+ cli.createArg().setValue( request.getResumeFrom() );
+ }
+
List<String> projectList = request.getProjects();
if ( projectList != null )
{
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 8438e4f..37b784f 100644
--- a/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
+++ b/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
@@ -525,6 +525,18 @@
assertArgumentsPresentInOrder( cli, "-pl", "proj1", "-am", "-amd" );
}
+ public void testShouldSetResumeFrom()
+ {
+ logTestStart();
+
+ TestCommandLineBuilder tcb = new TestCommandLineBuilder();
+ Commandline cli = new Commandline();
+
+ tcb.setReactorBehavior( newRequest().setResumeFrom( ":module3" ), cli );
+
+ assertArgumentsPresentInOrder( cli, "-rf", ":module3" );
+ }
+
public void testShouldSetStrictChecksumPolityFlagFromRequest()
{
logTestStart();