You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by df...@apache.org on 2008/08/14 22:13:32 UTC
svn commit: r686017 - in /maven/shared/trunk/maven-invoker/src:
main/java/org/apache/maven/shared/invoker/
test/java/org/apache/maven/shared/invoker/
Author: dfabulich
Date: Thu Aug 14 13:13:32 2008
New Revision: 686017
URL: http://svn.apache.org/viewvc?rev=686017&view=rev
Log:
[MINVOKER-54] Invoker should provide support for activateReactor
Modified:
maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java
maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java
maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java
maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
Modified: maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java?rev=686017&r1=686016&r2=686017&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java (original)
+++ maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java Thu Aug 14 13:13:32 2008
@@ -83,10 +83,17 @@
private Map shellEnvironments;
private String mavenOpts;
+
+ private boolean activatedReactor;
+
+ private String[] activatedReactorIncludes, activatedReactorExcludes;
public InvocationRequest activateReactor( String[] includes, String[] excludes )
{
- throw new UnsupportedOperationException( "Not implemented yet." );
+ activatedReactor = true;
+ activatedReactorIncludes = includes;
+ activatedReactorExcludes = excludes;
+ return this;
}
public File getBaseDirectory()
@@ -361,5 +368,20 @@
this.mavenOpts = mavenOpts;
return this;
}
+
+ public boolean isActivatedReactor()
+ {
+ return activatedReactor;
+ }
+
+ public String[] getActivatedReactorIncludes()
+ {
+ return activatedReactorIncludes;
+ }
+
+ public String[] getActivatedReactorExcludes()
+ {
+ return activatedReactorExcludes;
+ }
}
Modified: maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java?rev=686017&r1=686016&r2=686017&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java (original)
+++ maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java Thu Aug 14 13:13:32 2008
@@ -67,6 +67,25 @@
boolean isRecursive();
/**
+ * Gets whether Maven should search subdirectories to build a dynamic reactor
+ * @return <code>true</code> if we should search subdirectories, <code>false</code> otherwise
+ */
+ public boolean isActivatedReactor();
+
+ /**
+ * Gets the list of subdirectory patterns to search
+ * @return list of subdirectory patterns to search, or <code>null</code> in which case defaults should be used
+ */
+ public String[] getActivatedReactorIncludes();
+
+ /**
+ * Gets the list of subdirectory patterns to exclude from search
+ * @return list of subdirectory patterns to exclude search, or <code>null</code> in which case nothing should be excluded
+ */
+ public String[] getActivatedReactorExcludes();
+
+
+ /**
* 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
@@ -320,6 +339,12 @@
*/
InvocationRequest setFailureBehavior( String failureBehavior );
+ /**
+ * Dynamically constructs a reactor using the subdirectories of the current directory
+ * @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
+ * @return This invocation request
+ */
InvocationRequest activateReactor( String[] includes, String[] excludes );
/**
Modified: maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java?rev=686017&r1=686016&r2=686017&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java (original)
+++ maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java Thu Aug 14 13:13:32 2008
@@ -382,7 +382,22 @@
}
}
- // TODO: Setup forced-reactor args, if supplied.
+ if ( request.isActivatedReactor() )
+ {
+ cli.createArgument().setValue( "-r" );
+ String[] includes = request.getActivatedReactorIncludes();
+ String[] excludes = request.getActivatedReactorExcludes();
+ if ( includes != null )
+ {
+ cli.createArgument().setValue( "-D" );
+ cli.createArgument().setValue( "maven.reactor.includes=" + StringUtils.join( includes, "," ) );
+ }
+ if ( excludes != null )
+ {
+ cli.createArgument().setValue( "-D" );
+ cli.createArgument().setValue( "maven.reactor.excludes=" + StringUtils.join( excludes, "," ) );
+ }
+ }
}
protected void setFlags( InvocationRequest request, Commandline cli )
Modified: maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java?rev=686017&r1=686016&r2=686017&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java (original)
+++ maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java Thu Aug 14 13:13:32 2008
@@ -429,6 +429,44 @@
assertArgumentsPresent( Collections.singleton( "-X" ), cli );
assertArgumentsNotPresent( Collections.singleton( "-e" ), cli );
}
+
+ public void testActivateReactor()
+ {
+ logTestStart();
+
+ TestCommandLineBuilder tcb = new TestCommandLineBuilder();
+ Commandline cli = new Commandline();
+
+ tcb.setReactorBehavior( newRequest().activateReactor( null, null ), cli );
+
+ assertArgumentsPresent( Collections.singleton( "-r" ), cli );
+
+
+ }
+
+ public void testActivateReactorIncludesExcludes()
+ {
+ logTestStart();
+
+ TestCommandLineBuilder tcb = new TestCommandLineBuilder();
+ Commandline cli = new Commandline();
+
+ String[] includes = new String[] {"foo", "bar"};
+ String[] excludes = new String[] {"baz", "quz"};
+
+ tcb.setReactorBehavior( newRequest().activateReactor( includes, excludes ), cli );
+
+ Set args = new HashSet();
+ args.add( "-r" );
+ args.add( "-D" );
+ args.add( "maven.reactor.includes=foo,bar" );
+ args.add( "maven.reactor.excludes=baz,quz" );
+
+ assertArgumentsPresent( args, cli );
+
+
+
+ }
public void testShouldSetStrictChecksumPolityFlagFromRequest()
{