You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ca...@apache.org on 2006/09/15 04:16:04 UTC
svn commit: r446463 [1/2] - in /maven/plugins/trunk/maven-release-plugin: ./
src/main/java/org/apache/maven/plugins/release/
src/main/java/org/apache/maven/plugins/release/exec/
src/main/java/org/apache/maven/plugins/release/phase/ src/main/mdo/ src/ma...
Author: carlos
Date: Thu Sep 14 19:16:03 2006
New Revision: 446463
URL: http://svn.apache.org/viewvc?view=rev&rev=446463
Log:
[CONTINUUM-727] Merged rev# 440002-443305 from https://svn.apache.org/repos/asf/maven/continuum/branches/release-integration/maven/maven-release-plugin
Added:
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManagerListener.java
- copied unchanged from r443305, maven/continuum/branches/release-integration/maven/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManagerListener.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseResult.java
- copied unchanged from r443305, maven/continuum/branches/release-integration/maven/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseResult.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/MavenExecutorResult.java
- copied unchanged from r443305, maven/continuum/branches/release-integration/maven/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/MavenExecutorResult.java
Modified:
maven/plugins/trunk/maven-release-plugin/pom.xml
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManager.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/ForkedMavenExecutor.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/MavenExecutor.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractReleasePhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/EndReleasePhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/InputVariablesPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/MapVersionsPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ReleasePhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForDevelopmentPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/mdo/release-descriptor.mdo
maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/DefaultReleaseManagerTest.java
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/exec/ForkedMavenExecutorTest.java
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/ReleasePhaseStub.java
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunGoalsPhaseTest.java
maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/DefaultReleaseManagerTest.xml
Modified: maven/plugins/trunk/maven-release-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/pom.xml?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-release-plugin/pom.xml Thu Sep 14 19:16:03 2006
@@ -234,7 +234,9 @@
<executions>
<execution>
<goals>
+ <goal>xpp3-reader</goal>
<goal>java</goal>
+ <goal>xpp3-writer</goal>
</goals>
</execution>
</executions>
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java Thu Sep 14 19:16:03 2006
@@ -39,6 +39,7 @@
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -55,7 +56,10 @@
/**
* The phases of release to run, and in what order.
*/
- private List phases;
+ private List preparePhases;
+
+ //todo implement
+ private List performPhases;
/**
* The available phases.
@@ -77,16 +81,63 @@
*/
private MavenExecutor mavenExecutor;
+ private final int phaseSkip = 0, phaseStart = 1, phaseEnd = 2, goalStart = 11, goalEnd = 12, error = 99;
+
public void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
- prepare( releaseDescriptor, settings, reactorProjects, true, false );
+ prepare( releaseDescriptor, settings, reactorProjects, true, false, null );
}
public void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, boolean resume,
boolean dryRun )
throws ReleaseExecutionException, ReleaseFailureException
{
+ prepare( releaseDescriptor, settings, reactorProjects, resume, dryRun, null );
+ }
+
+ public ReleaseResult prepareWithResult( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, boolean resume,
+ boolean dryRun, ReleaseManagerListener listener )
+ {
+ ReleaseResult result = new ReleaseResult();
+
+ result.setStartTime( System.currentTimeMillis() );
+
+ try
+ {
+ prepare( releaseDescriptor, settings, reactorProjects, resume, dryRun, listener, result );
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+ }
+ catch ( ReleaseExecutionException e )
+ {
+ captureException( result, listener, e );
+ }
+ catch ( ReleaseFailureException e )
+ {
+ captureException( result, listener, e );
+ }
+ finally
+ {
+ result.setEndTime( System.currentTimeMillis() );
+ }
+
+ return result;
+ }
+
+ public void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, boolean resume,
+ boolean dryRun, ReleaseManagerListener listener )
+ throws ReleaseExecutionException, ReleaseFailureException
+ {
+ prepare( releaseDescriptor, settings, reactorProjects, resume, dryRun, listener, null );
+ }
+
+ private void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, boolean resume,
+ boolean dryRun, ReleaseManagerListener listener, ReleaseResult result )
+ throws ReleaseExecutionException, ReleaseFailureException
+ {
+ updateListener( listener, "prepare", goalStart );
+
ReleaseDescriptor config;
if ( resume )
{
@@ -108,22 +159,27 @@
// more flexible set of steps.
String completedPhase = config.getCompletedPhase();
- int index = phases.indexOf( completedPhase );
+ int index = preparePhases.indexOf( completedPhase );
+
+ for ( int idx = 0; idx <= index; idx++ )
+ {
+ updateListener( listener, preparePhases.get( idx ).toString(), phaseSkip );
+ }
- if ( index == phases.size() - 1 )
+ if ( index == preparePhases.size() - 1 )
{
- getLogger().info(
- "Release preparation already completed. You can now continue with release:perform, or start again using the -Dresume=false flag" );
+ logInfo( result, "Release preparation already completed. You can now continue with release:perform, " +
+ "or start again using the -Dresume=false flag" );
}
else if ( index >= 0 )
{
- getLogger().info( "Resuming release from phase '" + phases.get( index + 1 ) + "'" );
+ logInfo( result, "Resuming release from phase '" + preparePhases.get( index + 1 ) + "'" );
}
// start from next phase
- for ( int i = index + 1; i < phases.size(); i++ )
+ for ( int i = index + 1; i < preparePhases.size(); i++ )
{
- String name = (String) phases.get( i );
+ String name = (String) preparePhases.get( i );
ReleasePhase phase = (ReleasePhase) releasePhases.get( name );
@@ -132,13 +188,26 @@
throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" );
}
- if ( dryRun )
- {
- phase.simulate( config, settings, reactorProjects );
- }
- else
+ updateListener( listener, name, phaseStart );
+
+ ReleaseResult phaseResult = null;
+ try
{
- phase.execute( config, settings, reactorProjects );
+ if ( dryRun )
+ {
+ phaseResult = phase.simulate( config, settings, reactorProjects );
+ }
+ else
+ {
+ phaseResult = phase.execute( config, settings, reactorProjects );
+ }
+ }
+ finally
+ {
+ if ( result != null && phaseResult != null )
+ {
+ result.getOutputBuffer().append( phaseResult.getOutput() );
+ }
}
config.setCompletedPhase( name );
@@ -151,14 +220,70 @@
// TODO: rollback?
throw new ReleaseExecutionException( "Error writing release properties after completing phase", e );
}
+
+ updateListener( listener, name, phaseEnd );
}
+
+ updateListener( listener, "prepare", goalEnd );
}
public void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
File checkoutDirectory, String goals, boolean useReleaseProfile )
throws ReleaseExecutionException, ReleaseFailureException
{
- getLogger().info( "Checking out the project to perform the release ..." );
+ perform( releaseDescriptor, settings, reactorProjects, checkoutDirectory, goals, useReleaseProfile, null );
+ }
+
+ public void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+ File checkoutDirectory, String goals, boolean useReleaseProfile,
+ ReleaseManagerListener listener )
+ throws ReleaseExecutionException, ReleaseFailureException
+ {
+ perform( releaseDescriptor, settings, reactorProjects, checkoutDirectory, goals,
+ useReleaseProfile, listener, new ReleaseResult() );
+ }
+
+ public ReleaseResult performWithResult( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+ File checkoutDirectory, String goals, boolean useReleaseProfile,
+ ReleaseManagerListener listener )
+ {
+ ReleaseResult result = new ReleaseResult();
+
+ try
+ {
+ result.setStartTime( System.currentTimeMillis() );
+
+ perform( releaseDescriptor, settings, reactorProjects, checkoutDirectory, goals,
+ useReleaseProfile, listener, result );
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+ }
+ catch ( ReleaseExecutionException e )
+ {
+ captureException( result, listener, e );
+ }
+ catch ( ReleaseFailureException e )
+ {
+ captureException( result, listener, e );
+ }
+ finally
+ {
+ result.setEndTime( System.currentTimeMillis() );
+ }
+
+ return result;
+ }
+
+ private void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+ File checkoutDirectory, String goals, boolean useReleaseProfile,
+ ReleaseManagerListener listener, ReleaseResult result )
+ throws ReleaseExecutionException, ReleaseFailureException
+ {
+ updateListener( listener, "perform", goalStart );
+
+ logInfo( result, "Checking out the project to perform the release ..." );
+
+ updateListener( listener, "verify-release-configuration", phaseStart );
ReleaseDescriptor config;
try
@@ -167,21 +292,37 @@
}
catch ( ReleaseDescriptorStoreException e )
{
+ updateListener( listener, e.getMessage(), error );
+
throw new ReleaseExecutionException( "Error reading stored configuration: " + e.getMessage(), e );
}
+ updateListener( listener, "verify-release-configuration", phaseEnd );
+ updateListener( listener, "verify-completed-prepare-phases", phaseStart );
+
// if we stopped mid-way through preparation - don't perform
if ( config.getCompletedPhase() != null && !"end-release".equals( config.getCompletedPhase() ) )
{
- throw new ReleaseFailureException(
- "Cannot perform release - the preparation step was stopped mid-way. Please re-run release:prepare to continue, or perform the release from an SCM tag." );
+ String message = "Cannot perform release - the preparation step was stopped mid-way. Please re-run " +
+ "release:prepare to continue, or perform the release from an SCM tag.";
+
+ updateListener( listener, message, error );
+
+ throw new ReleaseFailureException( message );
}
if ( config.getScmSourceUrl() == null )
{
- throw new ReleaseFailureException( "No SCM URL was provided to perform the release from" );
+ String message = "No SCM URL was provided to perform the release from";
+
+ updateListener( listener, message, error );
+
+ throw new ReleaseFailureException( message );
}
+ updateListener( listener, "verify-completed-prepare-phases", phaseEnd );
+ updateListener( listener, "configure-repositories", phaseStart );
+
ScmRepository repository;
ScmProvider provider;
try
@@ -192,15 +333,22 @@
}
catch ( ScmRepositoryException e )
{
+ updateListener( listener, e.getMessage(), error );
+
throw new ReleaseScmRepositoryException( e.getMessage(), e.getValidationMessages() );
}
catch ( NoSuchScmProviderException e )
{
+ updateListener( listener, e.getMessage(), error );
+
throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
}
// TODO: sanity check that it is not . or .. or lower
+ updateListener( listener, "configure-repositories", phaseEnd );
+ updateListener( listener, "checkout-project-from-scm", phaseStart );
+
if ( checkoutDirectory.exists() )
{
try
@@ -209,25 +357,34 @@
}
catch ( IOException e )
{
+ updateListener( listener, e.getMessage(), error );
+
throw new ReleaseExecutionException( "Unable to remove old checkout directory: " + e.getMessage(), e );
}
}
checkoutDirectory.mkdirs();
- CheckOutScmResult result;
+ CheckOutScmResult scmResult;
try
{
- result = provider.checkOut( repository, new ScmFileSet( checkoutDirectory ), config.getScmReleaseLabel() );
+ scmResult = provider.checkOut( repository, new ScmFileSet( checkoutDirectory ), config.getScmReleaseLabel() );
}
catch ( ScmException e )
{
+ updateListener( listener, e.getMessage(), error );
+
throw new ReleaseExecutionException( "An error is occurred in the checkout process: " + e.getMessage(), e );
}
- if ( !result.isSuccess() )
+ if ( !scmResult.isSuccess() )
{
- throw new ReleaseScmCommandException( "Unable to checkout from SCM", result );
+ updateListener( listener, scmResult.getProviderMessage(), error );
+
+ throw new ReleaseScmCommandException( "Unable to checkout from SCM", scmResult );
}
+ updateListener( listener, "checkout-project-from-scm", phaseEnd );
+ updateListener( listener, "build-project", phaseStart );
+
String additionalArguments = config.getAdditionalArguments();
if ( useReleaseProfile )
@@ -245,14 +402,22 @@
try
{
mavenExecutor.executeGoals( checkoutDirectory, goals, config.isInteractive(), additionalArguments,
- config.getPomFileName() );
+ config.getPomFileName(), result );
}
catch ( MavenExecutorException e )
{
+ updateListener( listener, e.getMessage(), error );
+
throw new ReleaseExecutionException( "Error executing Maven: " + e.getMessage(), e );
}
+ updateListener( listener, "build-project", phaseEnd );
+
+ updateListener( listener, "cleanup", phaseStart );
clean( config, reactorProjects );
+ updateListener( listener, "cleanup", phaseEnd );
+
+ updateListener( listener, "perform", goalEnd );
}
public void clean( ReleaseDescriptor releaseDescriptor, List reactorProjects )
@@ -261,7 +426,7 @@
configStore.delete( releaseDescriptor );
- for ( Iterator i = phases.iterator(); i.hasNext(); )
+ for ( Iterator i = preparePhases.iterator(); i.hasNext(); )
{
String name = (String) i.next();
@@ -279,5 +444,67 @@
void setMavenExecutor( MavenExecutor mavenExecutor )
{
this.mavenExecutor = mavenExecutor;
+ }
+
+ void updateListener( ReleaseManagerListener listener, String name, int state )
+ {
+ if ( listener != null )
+ {
+ switch( state )
+ {
+ case goalStart:
+ listener.goalStart( name, getGoalPhases( name ) );
+ break;
+ case goalEnd:
+ listener.goalEnd();
+ break;
+ case phaseSkip:
+ listener.phaseSkip( name );
+ break;
+ case phaseStart:
+ listener.phaseStart( name );
+ break;
+ case phaseEnd:
+ listener.phaseEnd();
+ break;
+ default:
+ listener.error( name );
+ }
+ }
+ }
+
+ private List getGoalPhases( String name )
+ {
+ List phases = new ArrayList();
+
+ if ( "prepare".equals( name ) )
+ {
+ phases.addAll( this.preparePhases );
+ }
+ else if ( "perform".equals( name ) )
+ {
+ phases.addAll( this.performPhases );
+ }
+
+ return phases;
+ }
+
+ private void logInfo( ReleaseResult result, String message )
+ {
+ if ( result != null )
+ {
+ result.appendInfo( message );
+ }
+
+ getLogger().info( message );
+ }
+
+ private void captureException( ReleaseResult result, ReleaseManagerListener listener, Exception e )
+ {
+ updateListener( listener, e.getMessage(), error );
+
+ result.appendError( e );
+
+ result.setResultCode( ReleaseResult.ERROR );
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManager.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManager.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManager.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManager.java Thu Sep 14 19:16:03 2006
@@ -58,7 +58,7 @@
* @throws ReleaseFailureException if there is a problem performing the release
*/
void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, boolean resume,
- boolean dryRun )
+ boolean dryRun )
throws ReleaseExecutionException, ReleaseFailureException;
/**
@@ -72,8 +72,8 @@
* @throws ReleaseExecutionException if there is a problem performing the release
* @throws ReleaseFailureException if there is a problem performing the release
*/
- void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, File checkoutDirectory,
- String goals, boolean useReleaseProfile )
+ void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+ File checkoutDirectory, String goals, boolean useReleaseProfile )
throws ReleaseExecutionException, ReleaseFailureException;
/**
@@ -83,4 +83,20 @@
* @param reactorProjects the reactor projects
*/
void clean( ReleaseDescriptor releaseDescriptor, List reactorProjects );
+
+ void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, boolean resume,
+ boolean dryRun, ReleaseManagerListener listener )
+ throws ReleaseExecutionException, ReleaseFailureException;
+
+ ReleaseResult prepareWithResult( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, boolean resume,
+ boolean dryRun, ReleaseManagerListener listener );
+
+ void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+ File checkoutDirectory, String goals, boolean useReleaseProfile,
+ ReleaseManagerListener listener )
+ throws ReleaseExecutionException, ReleaseFailureException;
+
+ ReleaseResult performWithResult( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+ File checkoutDirectory, String goals, boolean useReleaseProfile,
+ ReleaseManagerListener listener );
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/ForkedMavenExecutor.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/ForkedMavenExecutor.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/ForkedMavenExecutor.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/ForkedMavenExecutor.java Thu Sep 14 19:16:03 2006
@@ -22,6 +22,7 @@
import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
import org.codehaus.plexus.util.cli.StreamConsumer;
+import org.apache.maven.plugins.release.ReleaseResult;
import java.io.File;
@@ -42,8 +43,8 @@
/**
* @noinspection UseOfSystemOutOrSystemErr
*/
- public void executeGoals( File workingDirectory, String goals, boolean interactive, String additionalArguments,
- String pomFileName )
+ public void executeGoals( File workingDirectory, String goals, boolean interactive,
+ String additionalArguments, String pomFileName, ReleaseResult relResult )
throws MavenExecutorException
{
Commandline cl = commandLineFactory.createCommandLine( "mvn" );
@@ -86,6 +87,7 @@
try
{
+ relResult.appendInfo( "Executing: " + cl.toString() );
getLogger().info( "Executing: " + cl.toString() );
int result = CommandLineUtils.executeCommandLine( cl, stdOut, stdErr );
@@ -100,12 +102,17 @@
{
throw new MavenExecutorException( "Can't run goal " + goals, stdOut.toString(), stdErr.toString(), e );
}
+ finally
+ {
+ relResult.appendOutput( stdOut.toString() );
+ }
}
- public void executeGoals( File workingDirectory, String goals, boolean interactive, String arguments )
+ public void executeGoals( File workingDirectory, String goals, boolean interactive,
+ String arguments, ReleaseResult result )
throws MavenExecutorException
{
- executeGoals( workingDirectory, goals, interactive, arguments, null );
+ executeGoals( workingDirectory, goals, interactive, arguments, null, result );
}
public void setCommandLineFactory( CommandLineFactory commandLineFactory )
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/MavenExecutor.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/MavenExecutor.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/MavenExecutor.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/MavenExecutor.java Thu Sep 14 19:16:03 2006
@@ -16,6 +16,8 @@
* limitations under the License.
*/
+import org.apache.maven.plugins.release.ReleaseResult;
+
import java.io.File;
/**
@@ -40,8 +42,8 @@
* @param pomFileName the file name of the POM to execute on
* @throws MavenExecutorException if an error occurred executing Maven
*/
- void executeGoals( File workingDirectory, String goals, boolean interactive, String additionalArguments,
- String pomFileName )
+ void executeGoals( File workingDirectory, String goals, boolean interactive,
+ String additionalArguments, String pomFileName, ReleaseResult result )
throws MavenExecutorException;
/**
@@ -53,6 +55,7 @@
* @param additionalArguments additional arguments to pass to the Maven command
* @throws MavenExecutorException if an error occurred executing Maven
*/
- void executeGoals( File workingDirectory, String goals, boolean interactive, String additionalArguments )
+ void executeGoals( File workingDirectory, String goals, boolean interactive,
+ String additionalArguments, ReleaseResult result )
throws MavenExecutorException;
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractReleasePhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractReleasePhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractReleasePhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractReleasePhase.java Thu Sep 14 19:16:03 2006
@@ -17,6 +17,7 @@
*/
import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.apache.maven.plugins.release.ReleaseResult;
import java.util.List;
@@ -29,8 +30,37 @@
extends AbstractLogEnabled
implements ReleasePhase
{
- public void clean( List reactorProjects )
+ public ReleaseResult clean( List reactorProjects )
{
// nothing to do by default
+
+ return getReleaseResultSuccess();
+ }
+
+ protected void logInfo( ReleaseResult result, String message )
+ {
+ result.appendInfo( message );
+ getLogger().info( message );
+ }
+
+ protected void logWarn( ReleaseResult result, String message )
+ {
+ result.appendWarn( message );
+ getLogger().warn( message );
+ }
+
+ protected void logDebug( ReleaseResult result, String message, Exception e )
+ {
+ result.appendDebug( message, e );
+ getLogger().debug( message, e );
+ }
+
+ protected ReleaseResult getReleaseResultSuccess()
+ {
+ ReleaseResult result = new ReleaseResult();
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java Thu Sep 14 19:16:03 2006
@@ -23,6 +23,7 @@
import org.apache.maven.model.ReportPlugin;
import org.apache.maven.plugins.release.ReleaseExecutionException;
import org.apache.maven.plugins.release.ReleaseFailureException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.plugins.release.scm.ReleaseScmCommandException;
import org.apache.maven.plugins.release.scm.ReleaseScmRepositoryException;
@@ -85,28 +86,34 @@
*/
private String pomSuffix;
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
- transform( releaseDescriptor, settings, reactorProjects, false );
+ ReleaseResult result = new ReleaseResult();
+
+ transform( releaseDescriptor, settings, reactorProjects, false, result );
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
private void transform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
- boolean simulate )
+ boolean simulate, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
{
MavenProject project = (MavenProject) it.next();
- getLogger().info( "Transforming '" + project.getName() + "'..." );
+ logInfo( result, "Transforming '" + project.getName() + "'..." );
- transformProject( project, releaseDescriptor, settings, reactorProjects, simulate );
+ transformProject( project, releaseDescriptor, settings, reactorProjects, simulate, result );
}
}
private void transformProject( MavenProject project, ReleaseDescriptor releaseDescriptor, Settings settings,
- List reactorProjects, boolean simulate )
+ List reactorProjects, boolean simulate, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
Document document;
@@ -165,7 +172,8 @@
throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
}
- transformDocument( project, document.getRootElement(), releaseDescriptor, reactorProjects, scmRepository );
+ transformDocument( project, document.getRootElement(), releaseDescriptor,
+ reactorProjects, scmRepository, result );
if ( simulate )
{
@@ -190,7 +198,7 @@
}
private void transformDocument( MavenProject project, Element rootElement, ReleaseDescriptor releaseDescriptor,
- List reactorProjects, ScmRepository scmRepository )
+ List reactorProjects, ScmRepository scmRepository, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
Namespace namespace = rootElement.getNamespace();
@@ -203,7 +211,8 @@
rewriteVersion( rootElement, namespace, mappedVersions, projectId, project, parentVersion );
- rewriteDependencies( project.getDependencies(), rootElement, mappedVersions, originalVersions, projectId );
+ rewriteDependencies( project.getDependencies(), rootElement, mappedVersions, originalVersions,
+ projectId, result );
if ( project.getDependencyManagement() != null )
{
@@ -211,7 +220,7 @@
if ( dependencyRoot != null )
{
rewriteDependencies( project.getDependencyManagement().getDependencies(), dependencyRoot,
- mappedVersions, originalVersions, projectId );
+ mappedVersions, originalVersions, projectId, result );
}
}
@@ -220,18 +229,19 @@
Element buildRoot = rootElement.getChild( "build", namespace );
if ( buildRoot != null )
{
- rewritePlugins( project.getBuildPlugins(), buildRoot, mappedVersions, originalVersions, projectId );
+ rewritePlugins( project.getBuildPlugins(), buildRoot, mappedVersions,
+ originalVersions, projectId, result );
if ( project.getPluginManagement() != null )
{
Element pluginsRoot = buildRoot.getChild( "pluginManagement", namespace );
if ( pluginsRoot != null )
{
rewritePlugins( project.getPluginManagement().getPlugins(), pluginsRoot, mappedVersions,
- originalVersions, projectId );
+ originalVersions, projectId, result );
}
}
rewriteExtensions( project.getBuildExtensions(), buildRoot, mappedVersions, originalVersions,
- projectId );
+ projectId, result );
}
}
@@ -241,11 +251,11 @@
if ( pluginsRoot != null )
{
rewriteReportPlugins( project.getReportPlugins(), pluginsRoot, mappedVersions, originalVersions,
- projectId );
+ projectId, result );
}
}
- transformScm( project, rootElement, namespace, releaseDescriptor, projectId, scmRepository );
+ transformScm( project, rootElement, namespace, releaseDescriptor, projectId, scmRepository, result );
}
private void rewriteVersion( Element rootElement, Namespace namespace, Map mappedVersions, String projectId,
@@ -307,7 +317,7 @@
}
private void rewriteDependencies( List dependencies, Element dependencyRoot, Map mappedVersions,
- Map originalVersions, String projectId )
+ Map originalVersions, String projectId, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
if ( dependencies != null )
@@ -317,13 +327,13 @@
Dependency dep = (Dependency) i.next();
updateDomVersion( dep.getGroupId(), dep.getArtifactId(), mappedVersions, dep.getVersion(),
- originalVersions, "dependencies", "dependency", dependencyRoot, projectId );
+ originalVersions, "dependencies", "dependency", dependencyRoot, projectId, result );
}
}
}
private void rewritePlugins( List plugins, Element pluginRoot, Map mappedVersions, Map originalVersions,
- String projectId )
+ String projectId, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
if ( plugins != null )
@@ -336,14 +346,14 @@
if ( plugin.getVersion() != null )
{
updateDomVersion( plugin.getGroupId(), plugin.getArtifactId(), mappedVersions, plugin.getVersion(),
- originalVersions, "plugins", "plugin", pluginRoot, projectId );
+ originalVersions, "plugins", "plugin", pluginRoot, projectId, result );
}
}
}
}
private void rewriteExtensions( List extensions, Element extensionRoot, Map mappedVersions, Map originalVersions,
- String projectId )
+ String projectId, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
if ( extensions != null )
@@ -354,13 +364,13 @@
updateDomVersion( extension.getGroupId(), extension.getArtifactId(), mappedVersions,
extension.getVersion(), originalVersions, "extensions", "extension", extensionRoot,
- projectId );
+ projectId, result );
}
}
}
private void rewriteReportPlugins( List plugins, Element pluginRoot, Map mappedVersions, Map originalVersions,
- String projectId )
+ String projectId, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
if ( plugins != null )
@@ -373,7 +383,7 @@
if ( plugin.getVersion() != null )
{
updateDomVersion( plugin.getGroupId(), plugin.getArtifactId(), mappedVersions, plugin.getVersion(),
- originalVersions, "plugins", "plugin", pluginRoot, projectId );
+ originalVersions, "plugins", "plugin", pluginRoot, projectId, result );
}
}
}
@@ -381,7 +391,7 @@
private void updateDomVersion( String groupId, String artifactId, Map mappedVersions, String version,
Map originalVersions, String groupTagName, String tagName, Element dependencyRoot,
- String projectId )
+ String projectId, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
String key = ArtifactUtils.versionlessKey( groupId, artifactId );
@@ -392,7 +402,7 @@
{
if ( mappedVersion != null )
{
- getLogger().debug( "Updating " + artifactId + " to " + mappedVersion );
+ logInfo( result, "Updating " + artifactId + " to " + mappedVersion );
try
{
@@ -525,14 +535,22 @@
}
}
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
- transform( releaseDescriptor, settings, reactorProjects, true );
+ ReleaseResult result = new ReleaseResult();
+
+ transform( releaseDescriptor, settings, reactorProjects, true, result );
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
- public void clean( List reactorProjects )
+ public ReleaseResult clean( List reactorProjects )
{
+ ReleaseResult result = new ReleaseResult();
+
super.clean( reactorProjects );
if ( reactorProjects != null )
@@ -549,6 +567,10 @@
}
}
}
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
protected abstract Map getOriginalVersionMap( ReleaseDescriptor releaseDescriptor, List reactorProjects );
@@ -557,7 +579,7 @@
protected abstract void transformScm( MavenProject project, Element rootElement, Namespace namespace,
ReleaseDescriptor releaseDescriptor, String projectId,
- ScmRepository scmRepository )
+ ScmRepository scmRepository, ReleaseResult result )
throws ReleaseExecutionException;
protected Element rewriteElement( String name, String value, Element root, Namespace namespace )
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java Thu Sep 14 19:16:03 2006
@@ -20,6 +20,7 @@
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.plugins.release.ReleaseExecutionException;
import org.apache.maven.plugins.release.ReleaseFailureException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.project.MavenProject;
import org.apache.maven.settings.Settings;
@@ -50,10 +51,12 @@
*/
private Prompter prompter;
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
- getLogger().info( "Checking dependencies and plugins for snapshots ..." );
+ ReleaseResult result = new ReleaseResult();
+
+ logInfo( result, "Checking dependencies and plugins for snapshots ..." );
Map originalVersions = releaseDescriptor.getOriginalVersions( reactorProjects );
@@ -63,6 +66,10 @@
checkProject( project, originalVersions, releaseDescriptor );
}
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
private void checkProject( MavenProject project, Map originalVersions, ReleaseDescriptor releaseDescriptor )
@@ -183,11 +190,11 @@
!artifact.getBaseVersion().equals( originalVersions.get( versionlessArtifactKey ) );
}
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
// It makes no modifications, so simulate is the same as execute
- execute( releaseDescriptor, settings, reactorProjects );
+ return execute( releaseDescriptor, settings, reactorProjects );
}
public void setPrompter( Prompter prompter )
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java Thu Sep 14 19:16:03 2006
@@ -19,6 +19,7 @@
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.plugins.release.ReleaseExecutionException;
import org.apache.maven.plugins.release.ReleaseFailureException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.plugins.release.scm.ReleaseScmRepositoryException;
import org.apache.maven.plugins.release.scm.ScmRepositoryConfigurator;
@@ -44,9 +45,11 @@
*/
private ScmRepositoryConfigurator scmRepositoryConfigurator;
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
+ ReleaseResult result = new ReleaseResult();
+
// Currently, we don't deal with multiple SCM locations in a multiproject
if ( StringUtils.isEmpty( releaseDescriptor.getScmSourceUrl() ) )
{
@@ -96,12 +99,16 @@
"The project " + projectId + " isn't a snapshot (" + project.getVersion() + ")." );
}
}
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
// It makes no modifications, so simulate is the same as execute
- execute( releaseDescriptor, settings, reactorProjects );
+ return execute( releaseDescriptor, settings, reactorProjects );
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/EndReleasePhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/EndReleasePhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/EndReleasePhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/EndReleasePhase.java Thu Sep 14 19:16:03 2006
@@ -18,6 +18,7 @@
import org.apache.maven.plugins.release.ReleaseExecutionException;
import org.apache.maven.plugins.release.ReleaseFailureException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.settings.Settings;
@@ -32,15 +33,27 @@
extends AbstractReleasePhase
{
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
- getLogger().info( "Release preparation complete." );
+ ReleaseResult result = new ReleaseResult();
+
+ logInfo( result, "Release preparation complete." );
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
- getLogger().info( "Release preparation simulation complete." );
+ ReleaseResult result = new ReleaseResult();
+
+ logInfo( result, "Release preparation simulation complete." );
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java Thu Sep 14 19:16:03 2006
@@ -17,6 +17,7 @@
*/
import org.apache.maven.plugins.release.ReleaseExecutionException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.settings.Settings;
@@ -30,15 +31,21 @@
public class GenerateReleasePomsPhase
extends AbstractReleasePhase
{
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException
{
+ ReleaseResult result = new ReleaseResult();
+
if ( releaseDescriptor.isGenerateReleasePoms() )
{
- getLogger().info( "Generating release POMs..." );
+ logInfo( result, "Generating release POMs..." );
generateReleasePoms();
}
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
private void generateReleasePoms()
@@ -369,9 +376,13 @@
}
*/
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
{
// TODO [!]: implement
+ ReleaseResult result = new ReleaseResult();
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+ return result;
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/InputVariablesPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/InputVariablesPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/InputVariablesPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/InputVariablesPhase.java Thu Sep 14 19:16:03 2006
@@ -18,6 +18,7 @@
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.plugins.release.ReleaseExecutionException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.project.MavenProject;
import org.apache.maven.settings.Settings;
@@ -44,9 +45,11 @@
this.prompter = prompter;
}
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException
{
+ ReleaseResult result = new ReleaseResult();
+
// get the root project
MavenProject project = (MavenProject) reactorProjects.get( 0 );
@@ -82,13 +85,23 @@
}
releaseDescriptor.setScmReleaseLabel( tag );
}
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException
{
+ ReleaseResult result = new ReleaseResult();
+
// It makes no modifications, so simulate is the same as execute
execute( releaseDescriptor, settings, reactorProjects );
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/MapVersionsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/MapVersionsPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/MapVersionsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/MapVersionsPhase.java Thu Sep 14 19:16:03 2006
@@ -18,6 +18,7 @@
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.plugins.release.ReleaseExecutionException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.plugins.release.versions.DefaultVersionInfo;
import org.apache.maven.plugins.release.versions.VersionInfo;
@@ -29,6 +30,7 @@
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
/**
* Map projects to their new versions after release / into the next development cycle.
@@ -53,9 +55,11 @@
this.prompter = prompter;
}
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException
{
+ ReleaseResult result = new ReleaseResult();
+
for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
{
MavenProject project = (MavenProject) i.next();
@@ -72,8 +76,8 @@
String msg = "Error parsing version, cannot determine next version: " + e.getMessage();
if ( releaseDescriptor.isInteractive() )
{
- getLogger().warn( msg );
- getLogger().debug( e.getMessage(), e );
+ logWarn( result, msg );
+ logDebug( result, e.getMessage(), e );
}
else
{
@@ -97,6 +101,14 @@
nextVersion = prompter.prompt( "What is the new development version for \"" +
project.getName() + "\"? (" + projectId + ")", nextVersion );
}
+ else
+ {
+ Map devVersions = releaseDescriptor.getDevelopmentVersions();
+ if ( devVersions.containsKey( projectId ) )
+ {
+ nextVersion = devVersions.remove( projectId ).toString();
+ }
+ }
releaseDescriptor.mapDevelopmentVersion( projectId, nextVersion );
}
@@ -114,6 +126,14 @@
"What is the release version for \"" + project.getName() + "\"? (" + projectId + ")",
nextVersion );
}
+ else
+ {
+ Map relVersions = releaseDescriptor.getReleaseVersions();
+ if ( relVersions.containsKey( projectId ) )
+ {
+ nextVersion = relVersions.remove( projectId ).toString();
+ }
+ }
releaseDescriptor.mapReleaseVersion( projectId, nextVersion );
}
@@ -123,13 +143,23 @@
throw new ReleaseExecutionException( "Error reading version from input handler: " + e.getMessage(), e );
}
}
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException
{
+ ReleaseResult result = new ReleaseResult();
+
// It makes no modifications, so simulate is the same as execute
execute( releaseDescriptor, settings, reactorProjects );
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ReleasePhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ReleasePhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ReleasePhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ReleasePhase.java Thu Sep 14 19:16:03 2006
@@ -18,6 +18,7 @@
import org.apache.maven.plugins.release.ReleaseExecutionException;
import org.apache.maven.plugins.release.ReleaseFailureException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.settings.Settings;
@@ -44,7 +45,7 @@
* @throws ReleaseExecutionException an exception during the execution of the phase
* @throws ReleaseFailureException a failure during the execution of the phase
*/
- void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException;
/**
@@ -56,7 +57,7 @@
* @throws ReleaseExecutionException an exception during the execution of the phase
* @throws ReleaseFailureException a failure during the execution of the phase
*/
- void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException;
/**
@@ -64,5 +65,5 @@
*
* @param reactorProjects the reactor projects
*/
- void clean( List reactorProjects );
+ ReleaseResult clean( List reactorProjects );
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java Thu Sep 14 19:16:03 2006
@@ -17,6 +17,7 @@
*/
import org.apache.maven.plugins.release.ReleaseExecutionException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.settings.Settings;
@@ -30,11 +31,13 @@
public class RemoveReleasePomsPhase
extends AbstractReleasePhase
{
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException
{
+ ReleaseResult result = new ReleaseResult();
+
// TODO [!]: implement
- getLogger().info( "Removing release POMs..." );
+ logInfo( result, "Removing release POMs..." );
/*
File currentReleasePomFile = null;
@@ -80,10 +83,20 @@
}
*/
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
{
+ ReleaseResult result = new ReleaseResult();
+
// TODO [!]: implement
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForDevelopmentPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForDevelopmentPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForDevelopmentPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForDevelopmentPhase.java Thu Sep 14 19:16:03 2006
@@ -18,6 +18,7 @@
import org.apache.maven.model.Scm;
import org.apache.maven.plugins.release.ReleaseExecutionException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.plugins.release.scm.ScmTranslator;
import org.apache.maven.project.MavenProject;
@@ -42,7 +43,8 @@
private Map scmTranslators;
protected void transformScm( MavenProject project, Element rootElement, Namespace namespace,
- ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository )
+ ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository,
+ ReleaseResult result )
throws ReleaseExecutionException
{
// If SCM is null in original model, it is inherited, no mods needed
@@ -79,7 +81,9 @@
}
else
{
- getLogger().debug( "No SCM translator found - skipping rewrite" );
+ String message = "No SCM translator found - skipping rewrite";
+ result.appendDebug( message );
+ getLogger().debug( message );
}
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhase.java Thu Sep 14 19:16:03 2006
@@ -20,6 +20,7 @@
import org.apache.maven.model.Scm;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.plugins.release.scm.ScmTranslator;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.project.MavenProject;
import org.apache.maven.scm.repository.ScmRepository;
import org.jdom.Element;
@@ -42,7 +43,8 @@
private Map scmTranslators;
protected void transformScm( MavenProject project, Element rootElement, Namespace namespace,
- ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository )
+ ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository,
+ ReleaseResult result )
{
// If SCM is null in original model, it is inherited, no mods needed
if ( project.getScm() != null )
@@ -52,7 +54,7 @@
{
releaseDescriptor.mapOriginalScmInfo( projectId, project.getScm() );
- translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository );
+ translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository, result );
}
else
{
@@ -70,7 +72,7 @@
scmRoot = new Element( "scm" );
scmRoot.addContent( "\n " );
- if ( translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository ) )
+ if ( translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository, result ) )
{
rootElement.addContent( "\n " ).addContent( scmRoot ).addContent( "\n" );
}
@@ -81,7 +83,7 @@
}
private boolean translateScm( MavenProject project, ReleaseDescriptor releaseDescriptor, Element scmRoot,
- Namespace namespace, ScmRepository scmRepository )
+ Namespace namespace, ScmRepository scmRepository, ReleaseResult relResult )
{
ScmTranslator translator = (ScmTranslator) scmTranslators.get( scmRepository.getProvider() );
boolean result = false;
@@ -139,7 +141,11 @@
}
else
{
- getLogger().debug( "No SCM translator found - skipping rewrite" );
+ String message = "No SCM translator found - skipping rewrite";
+
+ relResult.appendDebug( message );
+
+ getLogger().debug( message );
}
return result;
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java Thu Sep 14 19:16:03 2006
@@ -17,6 +17,7 @@
*/
import org.apache.maven.plugins.release.ReleaseExecutionException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.plugins.release.exec.MavenExecutor;
import org.apache.maven.plugins.release.exec.MavenExecutorException;
@@ -39,34 +40,44 @@
*/
private MavenExecutor mavenExecutor;
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException
{
+ ReleaseResult result = new ReleaseResult();
+
try
{
String goals = releaseDescriptor.getPreparationGoals();
if ( !StringUtils.isEmpty( goals ) )
{
- getLogger().info( "Executing preparation goals '" + goals + "'..." );
+ logInfo( result, "Executing preparation goals '" + goals + "'..." );
mavenExecutor.executeGoals( new File( releaseDescriptor.getWorkingDirectory() ), goals,
releaseDescriptor.isInteractive(),
- releaseDescriptor.getAdditionalArguments() );
+ releaseDescriptor.getAdditionalArguments(), result );
}
}
catch ( MavenExecutorException e )
{
throw new ReleaseExecutionException( e.getMessage(), e );
}
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException
{
- getLogger().info(
- "Executing preparation goals - since this is simulation mode it is running against the original project, not the rewritten ones" );
+ ReleaseResult result = new ReleaseResult();
+
+ logInfo( result, "Executing preparation goals - since this is simulation mode it is running against the " +
+ "original project, not the rewritten ones" );
execute( releaseDescriptor, settings, reactorProjects );
+
+ return result;
}
public void setMavenExecutor( MavenExecutor mavenExecutor )
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java Thu Sep 14 19:16:03 2006
@@ -18,6 +18,7 @@
import org.apache.maven.plugins.release.ReleaseExecutionException;
import org.apache.maven.plugins.release.ReleaseFailureException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.plugins.release.scm.ReleaseScmCommandException;
import org.apache.maven.plugins.release.scm.ReleaseScmRepositoryException;
@@ -60,10 +61,12 @@
private Set excludedFiles = new HashSet( Arrays.asList(
new String[]{"pom.xml", "pom.xml.backup", "pom.xml.tag", "pom.xml.next", "release.properties"} ) );
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
- getLogger().info( "Verifying that there are no local modifications..." );
+ ReleaseResult relResult = new ReleaseResult();
+
+ logInfo( relResult, "Verifying that there are no local modifications..." );
ScmRepository repository;
ScmProvider provider;
@@ -132,12 +135,16 @@
throw new ReleaseFailureException(
"Cannot prepare the release because you have local modifications : \n" + message );
}
+
+ relResult.setResultCode( ReleaseResult.SUCCESS );
+
+ return relResult;
}
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
// It makes no modifications, so simulate is the same as execute
- execute( releaseDescriptor, settings, reactorProjects );
+ return execute( releaseDescriptor, settings, reactorProjects );
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java Thu Sep 14 19:16:03 2006
@@ -18,6 +18,7 @@
import org.apache.maven.plugins.release.ReleaseExecutionException;
import org.apache.maven.plugins.release.ReleaseFailureException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.plugins.release.scm.ReleaseScmCommandException;
import org.apache.maven.plugins.release.scm.ReleaseScmRepositoryException;
@@ -57,9 +58,11 @@
*/
private String messageFormat;
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
+ ReleaseResult relResult = new ReleaseResult();
+
validateConfiguration( releaseDescriptor );
getLogger().info( "Checking in modified POMs..." );
@@ -98,16 +101,26 @@
{
throw new ReleaseScmCommandException( "Unable to commit files", result );
}
+
+ relResult.setResultCode( ReleaseResult.SUCCESS );
+
+ return relResult;
}
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
+ ReleaseResult result = new ReleaseResult();
+
validateConfiguration( releaseDescriptor );
Collection pomFiles = createPomFiles( reactorProjects );
- getLogger().info( "Full run would be checking in " + pomFiles.size() + " files with message: '" +
+ logInfo( result, "Full run would be checking in " + pomFiles.size() + " files with message: '" +
createMessage( releaseDescriptor ) + "'" );
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
private static void validateConfiguration( ReleaseDescriptor releaseDescriptor )
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java Thu Sep 14 19:16:03 2006
@@ -18,6 +18,7 @@
import org.apache.maven.plugins.release.ReleaseExecutionException;
import org.apache.maven.plugins.release.ReleaseFailureException;
+import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.plugins.release.scm.ReleaseScmCommandException;
import org.apache.maven.plugins.release.scm.ReleaseScmRepositoryException;
@@ -47,12 +48,14 @@
*/
private ScmRepositoryConfigurator scmRepositoryConfigurator;
- public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
+ ReleaseResult relResult = new ReleaseResult();
+
validateConfiguration( releaseDescriptor );
- getLogger().info( "Tagging release with the label " + releaseDescriptor.getScmReleaseLabel() + "..." );
+ logInfo( relResult, "Tagging release with the label " + releaseDescriptor.getScmReleaseLabel() + "..." );
ScmRepository repository;
ScmProvider provider;
@@ -87,15 +90,25 @@
{
throw new ReleaseScmCommandException( "Unable to tag SCM", result );
}
+
+ relResult.setResultCode( ReleaseResult.SUCCESS );
+
+ return relResult;
}
- public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
+ ReleaseResult result = new ReleaseResult();
+
validateConfiguration( releaseDescriptor );
- getLogger().info( "Full run would be tagging " + releaseDescriptor.getWorkingDirectory() + " with label: '" +
+ logInfo( result, "Full run would be tagging " + releaseDescriptor.getWorkingDirectory() + " with label: '" +
releaseDescriptor.getScmReleaseLabel() + "'" );
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
}
private static void validateConfiguration( ReleaseDescriptor releaseDescriptor )
Modified: maven/plugins/trunk/maven-release-plugin/src/main/mdo/release-descriptor.mdo
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/mdo/release-descriptor.mdo?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/mdo/release-descriptor.mdo (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/mdo/release-descriptor.mdo Thu Sep 14 19:16:03 2006
@@ -1,6 +1,6 @@
<model>
<id>release-descriptor</id>
- <name>Release Descriptor</name>
+ <name>ReleaseDescriptor</name>
<description>
A release descriptor contains everything that is needed to perform a
release. A release descriptor can be used by third party systems like
Modified: maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- 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 Thu Sep 14 19:16:03 2006
@@ -38,7 +38,7 @@
</requirement>
</requirements>
<configuration>
- <phases>
+ <preparePhases>
<phase>check-poms</phase>
<phase>scm-check-modifications</phase>
<phase>check-dependency-snapshots</phase>
@@ -54,7 +54,15 @@
<phase>remove-release-poms</phase>
<phase>scm-commit-development</phase>
<phase>end-release</phase>
- </phases>
+ </preparePhases>
+ <performPhases>
+ <phase>verify-release-configuration</phase>
+ <phase>verify-completed-prepare-phases</phase>
+ <phase>configure-repositories</phase>
+ <phase>checkout-project-from-scm</phase>
+ <phase>build-project</phase>
+ <phase>cleanup</phase>
+ </performPhases>
</configuration>
</component>
<component>
Modified: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/DefaultReleaseManagerTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/DefaultReleaseManagerTest.java?view=diff&rev=446463&r1=446462&r2=446463
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/DefaultReleaseManagerTest.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/DefaultReleaseManagerTest.java Thu Sep 14 19:16:03 2006
@@ -391,7 +391,7 @@
Mock mock = new Mock( MavenExecutor.class );
Constraint[] constraints = new Constraint[]{new IsSame( checkoutDirectory ), new IsEqual( "goal1 goal2" ),
- new IsEqual( Boolean.TRUE ), new IsEqual( "-DperformRelease=true" ), new IsNull()};
+ new IsEqual( Boolean.TRUE ), new IsEqual( "-DperformRelease=true" ), new IsNull(), new IsAnything() };
mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints );
releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );
@@ -420,7 +420,7 @@
Mock mock = new Mock( MavenExecutor.class );
Constraint[] constraints = new Constraint[]{new IsSame( checkoutDirectory ), new IsEqual( "goal1 goal2" ),
- new IsEqual( Boolean.TRUE ), new IsNull(), new IsNull()};
+ new IsEqual( Boolean.TRUE ), new IsNull(), new IsNull(), new IsAnything() };
mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints );
releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );
@@ -450,7 +450,8 @@
Mock mock = new Mock( MavenExecutor.class );
Constraint[] constraints = new Constraint[]{new IsSame( checkoutDirectory ), new IsEqual( "goal1 goal2" ),
- new IsEqual( Boolean.TRUE ), new IsEqual( "-Dmaven.test.skip=true -DperformRelease=true" ), new IsNull()};
+ new IsEqual( Boolean.TRUE ), new IsEqual( "-Dmaven.test.skip=true -DperformRelease=true" ), new IsNull(),
+ new IsAnything() };
mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints );
releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );
@@ -480,7 +481,7 @@
Mock mock = new Mock( MavenExecutor.class );
Constraint[] constraints = new Constraint[]{new IsSame( checkoutDirectory ), new IsEqual( "goal1 goal2" ),
- new IsEqual( Boolean.TRUE ), new IsEqual( "-Dmaven.test.skip=true" ), new IsNull()};
+ new IsEqual( Boolean.TRUE ), new IsEqual( "-Dmaven.test.skip=true" ), new IsNull(), new IsAnything() };
mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints );
releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );
@@ -509,7 +510,7 @@
Mock mock = new Mock( MavenExecutor.class );
Constraint[] constraints = new Constraint[]{new IsSame( checkoutDirectory ), new IsEqual( "goal1 goal2" ),
- new IsEqual( Boolean.TRUE ), new IsEqual( "-DperformRelease=true" ), new IsNull()};
+ new IsEqual( Boolean.TRUE ), new IsEqual( "-DperformRelease=true" ), new IsNull(), new IsAnything() };
mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints );
releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );
@@ -730,7 +731,7 @@
Mock mock = new Mock( MavenExecutor.class );
Constraint[] constraints = new Constraint[]{new IsSame( checkoutDirectory ), new IsEqual( "goal1 goal2" ),
- new IsEqual( Boolean.TRUE ), new IsEqual( "-DperformRelease=true" ), new IsNull()};
+ new IsEqual( Boolean.TRUE ), new IsEqual( "-DperformRelease=true" ), new IsNull(), new IsAnything() };
mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints ).will(
new ThrowStub( new MavenExecutorException( "...", 1, "stdOut", "stdErr" ) ) );
releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );