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 &#x2a;/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()
     {


Reply via email to