Author: brett
Date: Mon May  1 23:54:34 2006
New Revision: 398830

URL: http://svn.apache.org/viewcvs?rev=398830&view=rev
Log:
[MRELEASE-98] rationalise goal execution phases

Added:
    
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java
   (contents, props changed)
      - copied, changed from r398826, 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunTestsPhase.java
    
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunGoalsPhaseTest.java
   (contents, props changed)
      - copied, changed from r398826, 
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunTestsPhaseTest.java
Removed:
    
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunPreparationGoalsPhase.java
    
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunTestsPhase.java
    
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunTestsPhaseTest.java
Modified:
    
maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml

Copied: 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java
 (from r398826, 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunTestsPhase.java)
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java?p2=maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java&p1=maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunTestsPhase.java&r1=398826&r2=398830&rev=398830&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunTestsPhase.java
 (original)
+++ 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java
 Mon May  1 23:54:34 2006
@@ -21,13 +21,14 @@
 import org.apache.maven.plugins.release.exec.MavenExecutor;
 import org.apache.maven.plugins.release.exec.MavenExecutorException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.util.StringUtils;
 
 /**
  * Run the integration tests for the project to verify that it builds before 
committing.
  *
  * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
  */
-public class RunTestsPhase
+public class RunGoalsPhase
     extends AbstractLogEnabled
     implements ReleasePhase
 {
@@ -36,13 +37,21 @@
      */
     private MavenExecutor mavenExecutor;
 
+    /**
+     * The goals to run.
+     */
+    private String goals;
+
     public void execute( ReleaseConfiguration releaseConfiguration )
         throws ReleaseExecutionException
     {
         try
         {
-            mavenExecutor.executeGoals( 
releaseConfiguration.getWorkingDirectory(), "clean integration-test",
-                                        releaseConfiguration.isInteractive() );
+            if ( !StringUtils.isEmpty( goals ) )
+            {
+                mavenExecutor.executeGoals( 
releaseConfiguration.getWorkingDirectory(), goals,
+                                            
releaseConfiguration.isInteractive() );
+            }
         }
         catch ( MavenExecutorException e )
         {

Propchange: 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: 
maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml?rev=398830&r1=398829&r2=398830&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml
 (original)
+++ 
maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml
 Mon May  1 23:54:34 2006
@@ -137,17 +137,25 @@
     <component>
       <role>org.apache.maven.plugins.release.phase.ReleasePhase</role>
       <role-hint>run-tests</role-hint>
-      
<implementation>org.apache.maven.plugins.release.phase.RunTestsPhase</implementation>
+      
<implementation>org.apache.maven.plugins.release.phase.RunGoalsPhase</implementation>
       <requirements>
         <requirement>
           <role>org.apache.maven.plugins.release.exec.MavenExecutor</role>
         </requirement>
       </requirements>
+      <configuration>
+        <goals>clean integration-test</goals>
+      </configuration>
     </component>
     <component>
       <role>org.apache.maven.plugins.release.phase.ReleasePhase</role>
       <role-hint>run-preparation-goals</role-hint>
-      
<implementation>org.apache.maven.plugins.release.phase.RunPreparationGoalsPhase</implementation>
+      
<implementation>org.apache.maven.plugins.release.phase.RunGoalsPhase</implementation>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.plugins.release.exec.MavenExecutor</role>
+        </requirement>
+      </requirements>
     </component>
     <component>
       <role>org.apache.maven.plugins.release.phase.ReleasePhase</role>

Copied: 
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunGoalsPhaseTest.java
 (from r398826, 
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunTestsPhaseTest.java)
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunGoalsPhaseTest.java?p2=maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunGoalsPhaseTest.java&p1=maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunTestsPhaseTest.java&r1=398826&r2=398830&rev=398830&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunTestsPhaseTest.java
 (original)
+++ 
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunGoalsPhaseTest.java
 Mon May  1 23:54:34 2006
@@ -25,6 +25,7 @@
 import org.jmock.core.constraint.IsEqual;
 import org.jmock.core.constraint.IsSame;
 import org.jmock.core.matcher.InvokeOnceMatcher;
+import org.jmock.core.matcher.TestFailureMatcher;
 import org.jmock.core.stub.ThrowStub;
 
 import java.io.File;
@@ -34,17 +35,17 @@
  *
  * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
  */
-public class RunTestsPhaseTest
+public class RunGoalsPhaseTest
     extends PlexusTestCase
 {
-    private RunTestsPhase phase;
+    private RunGoalsPhase phase;
 
     protected void setUp()
         throws Exception
     {
         super.setUp();
 
-        phase = (RunTestsPhase) lookup( ReleasePhase.ROLE, "run-tests" );
+        phase = (RunGoalsPhase) lookup( ReleasePhase.ROLE, "run-tests" );
     }
 
     public void testExecute()
@@ -141,5 +142,27 @@
         {
             assertEquals( "Check cause", MavenExecutorException.class, 
e.getCause().getClass() );
         }
+    }
+
+    public void testPreparationGoals()
+        throws Exception
+    {
+        // this has no goals by default
+        phase = (RunGoalsPhase) lookup( ReleasePhase.ROLE, 
"run-preparation-goals" );
+
+        File testFile = getTestFile( "target/working-directory" );
+
+        ReleaseConfiguration config = new ReleaseConfiguration();
+        config.setWorkingDirectory( testFile );
+
+        Mock mock = new Mock( MavenExecutor.class );
+        mock.expects( new TestFailureMatcher( "Shouldn't invoke executeGoals" 
) ) .method( "executeGoals" );
+
+        phase.setMavenExecutor( (MavenExecutor) mock.proxy() );
+
+        phase.execute( config );
+
+        // just needs to survive the mock
+        assertTrue( true );
     }
 }

Propchange: 
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunGoalsPhaseTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunGoalsPhaseTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision


Reply via email to