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