You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ev...@apache.org on 2007/05/01 22:56:17 UTC
svn commit: r534241 - in /maven/release/trunk:
maven-release-manager/src/main/java/org/apache/maven/shared/release/
maven-release-manager/src/main/java/org/apache/maven/shared/release/config/
maven-release-manager/src/main/java/org/apache/maven/shared/...
Author: evenisse
Date: Tue May 1 13:56:16 2007
New Revision: 534241
URL: http://svn.apache.org/viewvc?view=rev&rev=534241
Log:
Implements the perform process with phases
Added:
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java (with props)
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckCompletedPreparePhasesPhase.java (with props)
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java (with props)
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java (with props)
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhase.java
- copied, changed from r533989, maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunGoalsPhase.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.java (with props)
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java
- copied, changed from r533989, maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunGoalsPhaseTest.java
maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.xml (with props)
maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.xml
- copied unchanged from r533989, maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunGoalsPhaseTest.xml
Removed:
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunGoalsPhase.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunGoalsPhaseTest.java
maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunGoalsPhaseTest.xml
Modified:
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseManager.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePhase.java
maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo
maven/release/trunk/maven-release-manager/src/main/resources/META-INF/plexus/components.xml
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/DefaultReleaseManagerTest.xml
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
maven/release/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/CleanReleaseMojoTest.java
maven/release/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java Tue May 1 13:56:16 2007
@@ -19,30 +19,16 @@
* under the License.
*/
-import org.apache.maven.scm.ScmException;
-import org.apache.maven.scm.ScmFileSet;
-import org.apache.maven.scm.ScmTag;
-import org.apache.maven.scm.command.checkout.CheckOutScmResult;
-import org.apache.maven.scm.manager.NoSuchScmProviderException;
-import org.apache.maven.scm.provider.ScmProvider;
-import org.apache.maven.scm.repository.ScmRepository;
-import org.apache.maven.scm.repository.ScmRepositoryException;
import org.apache.maven.settings.Settings;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
import org.apache.maven.shared.release.config.ReleaseDescriptorStore;
import org.apache.maven.shared.release.config.ReleaseDescriptorStoreException;
-import org.apache.maven.shared.release.exec.MavenExecutor;
-import org.apache.maven.shared.release.exec.MavenExecutorException;
import org.apache.maven.shared.release.phase.ReleasePhase;
-import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
-import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
import java.io.File;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -63,7 +49,9 @@
*/
private List preparePhases;
- //todo implement
+ /**
+ * The phases of release to run to perform.
+ */
private List performPhases;
/**
@@ -86,11 +74,6 @@
*/
private ScmRepositoryConfigurator scmRepositoryConfigurator;
- /**
- * Tool to execute Maven.
- */
- private MavenExecutor mavenExecutor;
-
private static final int PHASE_SKIP = 0, PHASE_START = 1, PHASE_END = 2, GOAL_START = 11, GOAL_END = 12, ERROR = 99;
public void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
@@ -262,29 +245,25 @@
}
//call release:clean so that resume will not be possible anymore after a rollback
- clean( releaseDescriptor, reactorProjects );
+ clean( releaseDescriptor, listener, reactorProjects );
updateListener( listener, "prepare", GOAL_END );
}
- public void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
- File checkoutDirectory, String goals, boolean useReleaseProfile )
+ public void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
- perform( releaseDescriptor, settings, reactorProjects, checkoutDirectory, goals, useReleaseProfile, null );
+ perform( releaseDescriptor, settings, reactorProjects, 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() );
+ perform( releaseDescriptor, settings, reactorProjects, listener, new ReleaseResult() );
}
public ReleaseResult performWithResult( ReleaseDescriptor releaseDescriptor, Settings settings,
- List reactorProjects, File checkoutDirectory, String goals,
- boolean useReleaseProfile, ReleaseManagerListener listener )
+ List reactorProjects, ReleaseManagerListener listener )
{
ReleaseResult result = new ReleaseResult();
@@ -292,8 +271,7 @@
{
result.setStartTime( System.currentTimeMillis() );
- perform( releaseDescriptor, settings, reactorProjects, checkoutDirectory, goals, useReleaseProfile,
- listener, result );
+ perform( releaseDescriptor, settings, reactorProjects, listener, result );
result.setResultCode( ReleaseResult.SUCCESS );
}
@@ -314,138 +292,31 @@
}
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", GOAL_START );
- logInfo( result, "Checking out the project to perform the release ..." );
-
- ReleaseDescriptor config = loadReleaseDescriptor( releaseDescriptor, listener );
-
- updateListener( listener, "verify-completed-prepare-phases", PHASE_START );
-
- // if we stopped mid-way through preparation - don't perform
- if ( config.getCompletedPhase() != null && !"end-release".equals( config.getCompletedPhase() ) )
- {
- 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 );
+ releaseDescriptor = loadReleaseDescriptor( releaseDescriptor, listener );
- throw new ReleaseFailureException( message );
- }
-
- if ( config.getScmSourceUrl() == null )
- {
- 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", PHASE_END );
-
- updateListener( listener, "configure-repositories", PHASE_START );
-
- ScmRepository repository;
- ScmProvider provider;
- try
+ for ( Iterator phases = performPhases.iterator(); phases.hasNext(); )
{
- repository = scmRepositoryConfigurator.getConfiguredRepository( config, settings );
-
- provider = scmRepositoryConfigurator.getRepositoryProvider( repository );
- }
- 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", PHASE_END );
- updateListener( listener, "checkout-project-from-scm", PHASE_START );
-
- if ( checkoutDirectory.exists() )
- {
- try
- {
- FileUtils.deleteDirectory( checkoutDirectory );
- }
- catch ( IOException e )
- {
- updateListener( listener, e.getMessage(), ERROR );
-
- throw new ReleaseExecutionException( "Unable to remove old checkout directory: " + e.getMessage(), e );
- }
- }
- checkoutDirectory.mkdirs();
-
- CheckOutScmResult scmResult;
- try
- {
- scmResult = provider.checkOut( repository, new ScmFileSet( checkoutDirectory ),
- new ScmTag( 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 ( !scmResult.isSuccess() )
- {
- updateListener( listener, scmResult.getProviderMessage(), ERROR );
-
- throw new ReleaseScmCommandException( "Unable to checkout from SCM", scmResult );
- }
-
- updateListener( listener, "checkout-project-from-scm", PHASE_END );
- updateListener( listener, "build-project", PHASE_START );
+ String name = (String) phases.next();
- String additionalArguments = config.getAdditionalArguments();
+ ReleasePhase phase = (ReleasePhase) releasePhases.get( name );
- if ( useReleaseProfile )
- {
- if ( !StringUtils.isEmpty( additionalArguments ) )
- {
- additionalArguments = additionalArguments + " -DperformRelease=true";
- }
- else
+ if ( phase == null )
{
- additionalArguments = "-DperformRelease=true";
+ throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" );
}
- }
-
- try
- {
- File workingDirectory =
- determineWorkingDirectory( checkoutDirectory, scmResult.getRelativePathProjectDirectory() );
- mavenExecutor.executeGoals( workingDirectory, goals, config.isInteractive(), additionalArguments,
- config.getPomFileName(), result );
- }
- catch ( MavenExecutorException e )
- {
- updateListener( listener, e.getMessage(), ERROR );
- throw new ReleaseExecutionException( "Error executing Maven: " + e.getMessage(), e );
+ updateListener( listener, name, PHASE_START );
+ phase.execute( releaseDescriptor, settings, reactorProjects );
+ updateListener( listener, name, PHASE_END );
}
- updateListener( listener, "build-project", PHASE_END );
-
- updateListener( listener, "cleanup", PHASE_START );
- clean( config, reactorProjects );
- updateListener( listener, "cleanup", PHASE_END );
+ //call release:clean so that resume will not be possible anymore after a perform
+ clean( releaseDescriptor, listener, reactorProjects );
updateListener( listener, "perform", GOAL_END );
}
@@ -491,8 +362,10 @@
}
}
- public void clean( ReleaseDescriptor releaseDescriptor, List reactorProjects )
+ public void clean( ReleaseDescriptor releaseDescriptor, ReleaseManagerListener listener, List reactorProjects )
{
+ updateListener( listener, "cleanup", PHASE_START );
+
getLogger().info( "Cleaning up after release..." );
configStore.delete( releaseDescriptor );
@@ -505,16 +378,13 @@
phase.clean( reactorProjects );
}
+
+ updateListener( listener, "cleanup", PHASE_END );
}
void setConfigStore( ReleaseDescriptorStore configStore )
{
this.configStore = configStore;
- }
-
- void setMavenExecutor( MavenExecutor mavenExecutor )
- {
- this.mavenExecutor = mavenExecutor;
}
void updateListener( ReleaseManagerListener listener, String name, int state )
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseManager.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseManager.java?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseManager.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseManager.java Tue May 1 13:56:16 2007
@@ -22,7 +22,6 @@
import org.apache.maven.settings.Settings;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
-import java.io.File;
import java.util.List;
/**
@@ -70,14 +69,10 @@
* @param releaseDescriptor the configuration to use for release
* @param settings the settings.xml configuration
* @param reactorProjects the reactor projects
- * @param checkoutDirectory the location to checkout to and build from
- * @param goals the goals to execute
- * @param useReleaseProfile whether to use the release profile from the super POM or not
* @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 )
throws ReleaseExecutionException, ReleaseFailureException;
/**
@@ -86,7 +81,7 @@
* @param releaseDescriptor the configuration to use for release
* @param reactorProjects the reactor projects
*/
- void clean( ReleaseDescriptor releaseDescriptor, List reactorProjects );
+ void clean( ReleaseDescriptor releaseDescriptor, ReleaseManagerListener listener, List reactorProjects );
/**
* Rollback changes made by the previous release
@@ -111,11 +106,10 @@
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 )
+ void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+ ReleaseManagerListener listener )
throws ReleaseExecutionException, ReleaseFailureException;
ReleaseResult performWithResult( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
- File checkoutDirectory, String goals, boolean useReleaseProfile,
ReleaseManagerListener listener );
}
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java Tue May 1 13:56:16 2007
@@ -44,7 +44,8 @@
{
// Overridden if configured from the caller
mergeInto.setScmSourceUrl( mergeOverride( mergeInto.getScmSourceUrl(), toBeMerged.getScmSourceUrl() ) );
- mergeInto.setScmCommentPrefix( mergeOverride( mergeInto.getScmCommentPrefix(), toBeMerged.getScmCommentPrefix()));
+ mergeInto.setScmCommentPrefix(
+ mergeOverride( mergeInto.getScmCommentPrefix(), toBeMerged.getScmCommentPrefix() ) );
mergeInto.setScmReleaseLabel(
mergeOverride( mergeInto.getScmReleaseLabel(), toBeMerged.getScmReleaseLabel() ) );
mergeInto.setScmTagBase( mergeOverride( mergeInto.getScmTagBase(), toBeMerged.getScmTagBase() ) );
@@ -59,19 +60,23 @@
mergeOverride( mergeInto.getAdditionalArguments(), toBeMerged.getAdditionalArguments() ) );
mergeInto.setPreparationGoals(
mergeOverride( mergeInto.getPreparationGoals(), toBeMerged.getPreparationGoals() ) );
+ mergeInto.setPerformGoals( mergeOverride( mergeInto.getPerformGoals(), toBeMerged.getPerformGoals() ) );
mergeInto.setPomFileName( mergeOverride( mergeInto.getPomFileName(), toBeMerged.getPomFileName() ) );
mergeInto.setScmUseEditMode( toBeMerged.isScmUseEditMode() );
mergeInto.setAddSchema( toBeMerged.isAddSchema() );
mergeInto.setGenerateReleasePoms( toBeMerged.isGenerateReleasePoms() );
mergeInto.setInteractive( toBeMerged.isInteractive() );
- mergeInto.setUpdateDependencies( toBeMerged.isUpdateDependencies());
- mergeInto.setCommitByProject( toBeMerged.isCommitByProject());
+ mergeInto.setUpdateDependencies( toBeMerged.isUpdateDependencies() );
+ mergeInto.setCommitByProject( toBeMerged.isCommitByProject() );
+ mergeInto.setUseReleaseProfile( toBeMerged.isUseReleaseProfile() );
mergeInto.setAutoVersionSubmodules( toBeMerged.isAutoVersionSubmodules() );
// These must be overridden, as they are not stored
mergeInto.setWorkingDirectory(
mergeOverride( mergeInto.getWorkingDirectory(), toBeMerged.getWorkingDirectory() ) );
+ mergeInto.setCheckoutDirectory(
+ mergeOverride( mergeInto.getCheckoutDirectory(), toBeMerged.getCheckoutDirectory() ) );
// Not overridden - not configured from caller
mergeInto.setCompletedPhase( mergeDefault( mergeInto.getCompletedPhase(), toBeMerged.getCompletedPhase() ) );
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePhase.java?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePhase.java Tue May 1 13:56:16 2007
@@ -52,6 +52,12 @@
getLogger().warn( message );
}
+ protected void logError( ReleaseResult result, String message )
+ {
+ result.appendWarn( message );
+ getLogger().error( message );
+ }
+
protected void logDebug( ReleaseResult result, String message, Exception e )
{
result.appendDebug( message, e );
Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java?view=auto&rev=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java (added)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java Tue May 1 13:56:16 2007
@@ -0,0 +1,79 @@
+package org.apache.maven.shared.release.phase;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.shared.release.ReleaseExecutionException;
+import org.apache.maven.shared.release.ReleaseResult;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.exec.MavenExecutor;
+import org.apache.maven.shared.release.exec.MavenExecutorException;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.io.File;
+
+/**
+ * Run the integration tests for the project to verify that it builds before committing.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public abstract class AbstractRunGoalsPhase
+ extends AbstractReleasePhase
+{
+ /**
+ * Component to assist in executing Maven.
+ *
+ * @plexus.requirement
+ */
+ private MavenExecutor mavenExecutor;
+
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, File workingDirectory,
+ String additionalArguments )
+ throws ReleaseExecutionException
+ {
+ ReleaseResult result = new ReleaseResult();
+
+ try
+ {
+ String goals = getGoals( releaseDescriptor );
+ if ( !StringUtils.isEmpty( goals ) )
+ {
+ logInfo( result, "Executing goals '" + goals + "'..." );
+
+ mavenExecutor.executeGoals( workingDirectory, goals, releaseDescriptor.isInteractive(),
+ additionalArguments, result );
+ }
+ }
+ catch ( MavenExecutorException e )
+ {
+ throw new ReleaseExecutionException( e.getMessage(), e );
+ }
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
+ }
+
+ public void setMavenExecutor( MavenExecutor mavenExecutor )
+ {
+ this.mavenExecutor = mavenExecutor;
+ }
+
+ protected abstract String getGoals( ReleaseDescriptor releaseDescriptor );
+}
Propchange: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckCompletedPreparePhasesPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckCompletedPreparePhasesPhase.java?view=auto&rev=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckCompletedPreparePhasesPhase.java (added)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckCompletedPreparePhasesPhase.java Tue May 1 13:56:16 2007
@@ -0,0 +1,78 @@
+package org.apache.maven.shared.release.phase;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.settings.Settings;
+import org.apache.maven.shared.release.ReleaseExecutionException;
+import org.apache.maven.shared.release.ReleaseFailureException;
+import org.apache.maven.shared.release.ReleaseResult;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ * @plexus.component role="org.apache.maven.shared.release.phase.ReleasePhase" role-hint="verify-completed-prepare-phases"
+ */
+public class CheckCompletedPreparePhasesPhase
+ extends AbstractReleasePhase
+{
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ throws ReleaseExecutionException, ReleaseFailureException
+ {
+ ReleaseResult result = new ReleaseResult();
+
+ // if we stopped mid-way through preparation - don't perform
+ if ( releaseDescriptor.getCompletedPhase() != null &&
+ !"end-release".equals( releaseDescriptor.getCompletedPhase() ) )
+ {
+ 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.";
+
+ result.setResultCode( ReleaseResult.ERROR );
+
+ logError( result, message );
+
+ throw new ReleaseFailureException( message );
+ }
+
+ if ( releaseDescriptor.getScmSourceUrl() == null )
+ {
+ String message = "No SCM URL was provided to perform the release from";
+
+ result.setResultCode( ReleaseResult.ERROR );
+
+ logError( result, message );
+
+ throw new ReleaseFailureException( message );
+ }
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
+ }
+
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ throws ReleaseExecutionException, ReleaseFailureException
+ {
+ return execute( releaseDescriptor, settings, reactorProjects );
+ }
+}
Propchange: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckCompletedPreparePhasesPhase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckCompletedPreparePhasesPhase.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java?view=auto&rev=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java (added)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java Tue May 1 13:56:16 2007
@@ -0,0 +1,154 @@
+package org.apache.maven.shared.release.phase;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmTag;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.manager.NoSuchScmProviderException;
+import org.apache.maven.scm.provider.ScmProvider;
+import org.apache.maven.scm.repository.ScmRepository;
+import org.apache.maven.scm.repository.ScmRepositoryException;
+import org.apache.maven.settings.Settings;
+import org.apache.maven.shared.release.ReleaseExecutionException;
+import org.apache.maven.shared.release.ReleaseFailureException;
+import org.apache.maven.shared.release.ReleaseResult;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
+import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
+import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
+import org.apache.maven.shared.release.util.ReleaseUtil;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ * @plexus.component role="org.apache.maven.shared.release.phase.ReleasePhase" role-hint="checkout-project-from-scm"
+ */
+public class CheckoutProjectFromScm
+ extends AbstractReleasePhase
+{
+ /**
+ * Tool that gets a configured SCM repository from release configuration.
+ *
+ * @plexus.requirement
+ */
+ private ScmRepositoryConfigurator scmRepositoryConfigurator;
+
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ throws ReleaseExecutionException, ReleaseFailureException
+ {
+ ReleaseResult result = new ReleaseResult();
+
+ logInfo( result, "Checking out the project to perform the release ..." );
+
+ ScmRepository repository;
+ ScmProvider provider;
+
+ try
+ {
+ repository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, settings );
+
+ provider = scmRepositoryConfigurator.getRepositoryProvider( repository );
+ }
+ catch ( ScmRepositoryException e )
+ {
+ result.setResultCode( ReleaseResult.ERROR );
+ logError( result, e.getMessage() );
+
+ throw new ReleaseScmRepositoryException( e.getMessage(), e.getValidationMessages() );
+ }
+ catch ( NoSuchScmProviderException e )
+ {
+ result.setResultCode( ReleaseResult.ERROR );
+ logError( result, e.getMessage() );
+
+ throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
+ }
+
+ // TODO: sanity check that it is not . or .. or lower
+ File checkoutDirectory;
+ if ( StringUtils.isEmpty( releaseDescriptor.getCheckoutDirectory() ) )
+ {
+ checkoutDirectory =
+ new File( ReleaseUtil.getRootProject( reactorProjects ).getFile().getParentFile(), "target/checkout" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+ }
+ else
+ {
+ checkoutDirectory = new File( releaseDescriptor.getCheckoutDirectory() );
+ }
+
+ if ( checkoutDirectory.exists() )
+ {
+ try
+ {
+ FileUtils.deleteDirectory( checkoutDirectory );
+ }
+ catch ( IOException e )
+ {
+ result.setResultCode( ReleaseResult.ERROR );
+ logError( result, e.getMessage() );
+
+ throw new ReleaseExecutionException( "Unable to remove old checkout directory: " + e.getMessage(), e );
+ }
+ }
+
+ checkoutDirectory.mkdirs();
+
+ CheckOutScmResult scmResult;
+
+ try
+ {
+ scmResult = provider.checkOut( repository, new ScmFileSet( checkoutDirectory ),
+ new ScmTag( releaseDescriptor.getScmReleaseLabel() ) );
+ }
+ catch ( ScmException e )
+ {
+ result.setResultCode( ReleaseResult.ERROR );
+ logError( result, e.getMessage() );
+
+ throw new ReleaseExecutionException( "An error is occurred in the checkout process: " + e.getMessage(), e );
+ }
+ if ( !scmResult.isSuccess() )
+ {
+ result.setResultCode( ReleaseResult.ERROR );
+ logError( result, scmResult.getProviderMessage() );
+
+ throw new ReleaseScmCommandException( "Unable to checkout from SCM", scmResult );
+ }
+
+ result.setResultCode( ReleaseResult.SUCCESS );
+
+ return result;
+ }
+
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ throws ReleaseExecutionException, ReleaseFailureException
+ {
+ return simulate( releaseDescriptor, settings, reactorProjects );
+ }
+}
Propchange: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java?view=auto&rev=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java (added)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java Tue May 1 13:56:16 2007
@@ -0,0 +1,76 @@
+package org.apache.maven.shared.release.phase;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.settings.Settings;
+import org.apache.maven.shared.release.ReleaseExecutionException;
+import org.apache.maven.shared.release.ReleaseResult;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Run the integration tests for the project to verify that it builds before committing.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @plexus.component role="org.apache.maven.shared.release.phase.ReleasePhase" role-hint="run-perform-goals"
+ */
+public class RunPerformGoalsPhase
+ extends AbstractRunGoalsPhase
+{
+ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ throws ReleaseExecutionException
+ {
+ String additionalArguments = releaseDescriptor.getAdditionalArguments();
+
+ if ( releaseDescriptor.isUseReleaseProfile() )
+ {
+ if ( !StringUtils.isEmpty( additionalArguments ) )
+ {
+ additionalArguments = additionalArguments + " -DperformRelease=true";
+ }
+ else
+ {
+ additionalArguments = "-DperformRelease=true";
+ }
+ }
+
+ return execute( releaseDescriptor, new File( releaseDescriptor.getCheckoutDirectory() ), additionalArguments );
+ }
+
+ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+ throws ReleaseExecutionException
+ {
+ ReleaseResult result = new ReleaseResult();
+
+ logInfo( result, "Executing perform goals" );
+
+ execute( releaseDescriptor, settings, reactorProjects );
+
+ return result;
+ }
+
+ protected String getGoals( ReleaseDescriptor releaseDescriptor )
+ {
+ return releaseDescriptor.getPerformGoals();
+ }
+}
Propchange: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhase.java (from r533989, maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunGoalsPhase.java)
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhase.java?view=diff&rev=534241&p1=maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunGoalsPhase.java&r1=533989&p2=maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhase.java&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunGoalsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhase.java Tue May 1 13:56:16 2007
@@ -23,9 +23,6 @@
import org.apache.maven.shared.release.ReleaseExecutionException;
import org.apache.maven.shared.release.ReleaseResult;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
-import org.apache.maven.shared.release.exec.MavenExecutor;
-import org.apache.maven.shared.release.exec.MavenExecutorException;
-import org.codehaus.plexus.util.StringUtils;
import java.io.File;
import java.util.List;
@@ -36,41 +33,14 @@
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
* @plexus.component role="org.apache.maven.shared.release.phase.ReleasePhase" role-hint="run-preparation-goals"
*/
-public class RunGoalsPhase
- extends AbstractReleasePhase
+public class RunPrepareGoalsPhase
+ extends AbstractRunGoalsPhase
{
- /**
- * Component to assist in executing Maven.
- *
- * @plexus.requirement
- */
- private MavenExecutor mavenExecutor;
-
public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException
{
- ReleaseResult result = new ReleaseResult();
-
- try
- {
- String goals = releaseDescriptor.getPreparationGoals();
- if ( !StringUtils.isEmpty( goals ) )
- {
- logInfo( result, "Executing preparation goals '" + goals + "'..." );
-
- mavenExecutor.executeGoals( new File( releaseDescriptor.getWorkingDirectory() ), goals,
- releaseDescriptor.isInteractive(),
- releaseDescriptor.getAdditionalArguments(), result );
- }
- }
- catch ( MavenExecutorException e )
- {
- throw new ReleaseExecutionException( e.getMessage(), e );
- }
-
- result.setResultCode( ReleaseResult.SUCCESS );
-
- return result;
+ return execute( releaseDescriptor, new File( releaseDescriptor.getWorkingDirectory() ),
+ releaseDescriptor.getAdditionalArguments() );
}
public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
@@ -86,8 +56,8 @@
return result;
}
- public void setMavenExecutor( MavenExecutor mavenExecutor )
+ protected String getGoals( ReleaseDescriptor releaseDescriptor )
{
- this.mavenExecutor = mavenExecutor;
+ return releaseDescriptor.getPreparationGoals();
}
}
Modified: maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo (original)
+++ maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo Tue May 1 13:56:16 2007
@@ -182,6 +182,15 @@
</description>
</field>
<field>
+ <name>useReleaseProfile</name>
+ <version>1.0.0</version>
+ <type>boolean</type>
+ <defaultValue>true</defaultValue>
+ <description>
+ Whether to use the release profile that adds sources and javadocs to the released artifact, if appropriate.
+ </description>
+ </field>
+ <field>
<name>originalScmInfo</name>
<version>1.0.0</version>
<type>Map</type>
@@ -202,6 +211,14 @@
</description>
</field>
<field>
+ <name>checkoutDirectory</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <description>
+ The directory where the tag will be checked out.
+ </description>
+ </field>
+ <field>
<name>completedPhase</name>
<version>1.0.0</version>
<type>String</type>
@@ -266,6 +283,14 @@
<type>String</type>
<description>
The goals to execute in preparation for the release.
+ </description>
+ </field>
+ <field>
+ <name>performGoals</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <description>
+ The goals to execute in perform phase for the release.
</description>
</field>
<field>
Modified: maven/release/trunk/maven-release-manager/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/release/trunk/maven-release-manager/src/main/resources/META-INF/plexus/components.xml Tue May 1 13:56:16 2007
@@ -37,9 +37,6 @@
<requirement>
<role>org.apache.maven.shared.release.scm.ScmRepositoryConfigurator</role>
</requirement>
- <requirement>
- <role>org.apache.maven.shared.release.exec.MavenExecutor</role>
- </requirement>
</requirements>
<configuration>
<preparePhases>
@@ -62,10 +59,8 @@
</preparePhases>
<performPhases>
<phase>verify-completed-prepare-phases</phase>
- <phase>configure-repositories</phase>
<phase>checkout-project-from-scm</phase>
- <phase>build-project</phase>
- <phase>cleanup</phase>
+ <phase>run-perform-goals</phase>
</performPhases>
<rollbackPhases>
<phase>restore-backup-poms</phase>
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java Tue May 1 13:56:16 2007
@@ -34,10 +34,10 @@
import org.apache.maven.shared.release.config.ReleaseDescriptorStoreException;
import org.apache.maven.shared.release.config.ReleaseDescriptorStoreStub;
import org.apache.maven.shared.release.exec.MavenExecutor;
-import org.apache.maven.shared.release.exec.MavenExecutorException;
import org.apache.maven.shared.release.phase.IsScmFileSetEquals;
import org.apache.maven.shared.release.phase.ReleasePhase;
import org.apache.maven.shared.release.phase.ReleasePhaseStub;
+import org.apache.maven.shared.release.phase.RunPerformGoalsPhase;
import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
@@ -372,7 +372,7 @@
releaseManager.setConfigStore( (ReleaseDescriptorStore) configStoreMock.proxy() );
- releaseManager.clean( releaseDescriptor, null );
+ releaseManager.clean( releaseDescriptor, null, null );
Map phases = container.lookupMap( ReleasePhase.ROLE );
@@ -394,12 +394,14 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setScmSourceUrl( "scm-url" );
File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
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 IsAnything()};
mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints );
- releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );
+ RunPerformGoalsPhase phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
+ phase.setMavenExecutor( (MavenExecutor) mock.proxy() );
Mock scmProviderMock = new Mock( ScmProvider.class );
constraints = new Constraint[]{new IsAnything(), new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ),
@@ -410,7 +412,7 @@
ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
stub.setScmProvider( (ScmProvider) scmProviderMock.proxy() );
- releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", true );
+ releaseManager.perform( releaseDescriptor, null, null );
assertTrue( true );
}
@@ -423,12 +425,14 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setScmSourceUrl( "scm-url" );
File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
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 IsAnything()};
mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints );
- releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );
+ RunPerformGoalsPhase phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
+ phase.setMavenExecutor( (MavenExecutor) mock.proxy() );
Mock scmProviderMock = new Mock( ScmProvider.class );
constraints = new Constraint[]{new IsAnything(), new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ),
@@ -439,7 +443,9 @@
ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
stub.setScmProvider( (ScmProvider) scmProviderMock.proxy() );
- releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", false );
+ releaseDescriptor.setUseReleaseProfile( false );
+
+ releaseManager.perform( releaseDescriptor, null, null );
assertTrue( true );
}
@@ -453,13 +459,15 @@
releaseDescriptor.setScmSourceUrl( "scm-url" );
releaseDescriptor.setAdditionalArguments( "-Dmaven.test.skip=true" );
File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
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 IsAnything()};
mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints );
- releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );
+ RunPerformGoalsPhase phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
+ phase.setMavenExecutor( (MavenExecutor) mock.proxy() );
Mock scmProviderMock = new Mock( ScmProvider.class );
constraints = new Constraint[]{new IsAnything(), new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ),
@@ -470,7 +478,7 @@
ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
stub.setScmProvider( (ScmProvider) scmProviderMock.proxy() );
- releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", true );
+ releaseManager.perform( releaseDescriptor, null, null );
assertTrue( true );
}
@@ -484,12 +492,14 @@
releaseDescriptor.setScmSourceUrl( "scm-url" );
releaseDescriptor.setAdditionalArguments( "-Dmaven.test.skip=true" );
File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
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 IsAnything()};
mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints );
- releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );
+ RunPerformGoalsPhase phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
+ phase.setMavenExecutor( (MavenExecutor) mock.proxy() );
Mock scmProviderMock = new Mock( ScmProvider.class );
constraints = new Constraint[]{new IsAnything(), new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ),
@@ -500,7 +510,9 @@
ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
stub.setScmProvider( (ScmProvider) scmProviderMock.proxy() );
- releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", false );
+ releaseDescriptor.setUseReleaseProfile( false );
+
+ releaseManager.perform( releaseDescriptor, null, null );
assertTrue( true );
}
@@ -513,12 +525,14 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setScmSourceUrl( "scm-url" );
File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
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 IsAnything()};
mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints );
- releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );
+ RunPerformGoalsPhase phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
+ phase.setMavenExecutor( (MavenExecutor) mock.proxy() );
Mock scmProviderMock = new Mock( ScmProvider.class );
constraints = new Constraint[]{new IsAnything(), new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ),
@@ -533,7 +547,7 @@
configStore.getReleaseConfiguration().setCompletedPhase( "end-release" );
releaseManager.setConfigStore( configStore );
- releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", true );
+ releaseManager.perform( releaseDescriptor, null, null );
assertTrue( true );
}
@@ -556,7 +570,9 @@
try
{
- releaseManager.perform( releaseDescriptor, null, null, null, null, false );
+ releaseDescriptor.setUseReleaseProfile( false );
+
+ releaseManager.perform( releaseDescriptor, null, null );
fail( "Should have failed to read configuration" );
}
catch ( ReleaseExecutionException e )
@@ -576,12 +592,14 @@
DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
ReleaseDescriptorStoreStub configStore = new ReleaseDescriptorStoreStub();
- configStore.getReleaseConfiguration().setCompletedPhase( "scm-tag" );
+ releaseDescriptor.setCompletedPhase( "scm-tag" );
releaseManager.setConfigStore( configStore );
try
{
- releaseManager.perform( releaseDescriptor, null, null, null, null, false );
+ releaseDescriptor.setUseReleaseProfile( false );
+
+ releaseManager.perform( releaseDescriptor, null, null );
fail( "Should have failed to perform" );
}
catch ( ReleaseFailureException e )
@@ -601,7 +619,9 @@
try
{
- releaseManager.perform( releaseDescriptor, null, null, null, null, false );
+ releaseDescriptor.setUseReleaseProfile( false );
+
+ releaseManager.perform( releaseDescriptor, null, null );
fail( "perform should have failed" );
}
@@ -631,7 +651,9 @@
try
{
- releaseManager.perform( releaseDescriptor, null, null, null, null, false );
+ releaseDescriptor.setUseReleaseProfile( false );
+
+ releaseManager.perform( releaseDescriptor, null, null );
fail( "commit should have failed" );
}
@@ -661,7 +683,9 @@
try
{
- releaseManager.perform( releaseDescriptor, null, null, null, null, false );
+ releaseDescriptor.setUseReleaseProfile( false );
+
+ releaseManager.perform( releaseDescriptor, null, null );
fail( "commit should have failed" );
}
@@ -679,6 +703,7 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setScmSourceUrl( "scm-url" );
File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
Mock scmProviderMock = new Mock( ScmProvider.class );
scmProviderMock.expects( new InvokeOnceMatcher() ).method( "checkOut" ).will(
@@ -689,7 +714,7 @@
try
{
- releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goals", true );
+ releaseManager.perform( releaseDescriptor, null, null );
fail( "commit should have failed" );
}
@@ -707,6 +732,7 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setScmSourceUrl( "scm-url" );
File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
ScmManager scmManager = (ScmManager) lookup( ScmManager.ROLE );
ScmProviderStub providerStub =
@@ -716,7 +742,7 @@
try
{
- releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goals", true );
+ releaseManager.perform( releaseDescriptor, null, null );
fail( "commit should have failed" );
}
@@ -726,48 +752,11 @@
}
}
- public void testReleasePerformExecutionException()
- throws Exception
- {
- DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
-
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- File checkoutDirectory = getTestFile( "target/checkout-directory" );
-
- 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 IsAnything()};
- mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints ).will(
- new ThrowStub( new MavenExecutorException( "...", 1, "stdOut", "stdErr" ) ) );
- releaseManager.setMavenExecutor( (MavenExecutor) mock.proxy() );
-
- Mock scmProviderMock = new Mock( ScmProvider.class );
- constraints = new Constraint[]{new IsAnything(), new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ),
- new IsInstanceOf( ScmTag.class )};
- scmProviderMock.expects( new InvokeOnceMatcher() ).method( "checkOut" ).with( constraints ).will(
- new ReturnStub( new CheckOutScmResult( "...", Collections.EMPTY_LIST ) ) );
-
- ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
- stub.setScmProvider( (ScmProvider) scmProviderMock.proxy() );
-
- try
- {
- releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", true );
-
- fail( "Expected exception" );
- }
- catch ( ReleaseExecutionException e )
- {
- assertEquals( "Check cause", MavenExecutorException.class, e.getCause().getClass() );
- }
- }
-
public void testDetermineWorkingDirectory()
throws Exception
{
DefaultReleaseManager defaultReleaseManager = new DefaultReleaseManager();
-
+
File checkoutDir = getTestFile( "target/checkout" );
FileUtils.forceDelete( checkoutDir );
checkoutDir.mkdirs();
@@ -782,9 +771,9 @@
// checkout dir and relative path project dir
assertEquals( projectDir, defaultReleaseManager.determineWorkingDirectory( checkoutDir, "my/project" ) );
assertEquals( projectDir, defaultReleaseManager.determineWorkingDirectory( checkoutDir, "my/project/" ) );
- assertEquals( projectDir, defaultReleaseManager.determineWorkingDirectory( checkoutDir, "my"
- + File.separator + "project" ) );
+ assertEquals( projectDir, defaultReleaseManager.determineWorkingDirectory( checkoutDir, "my" + File.separator +
+ "project" ) );
- FileUtils.forceDelete( checkoutDir);
+ FileUtils.forceDelete( checkoutDir );
}
}
Added: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.java?view=auto&rev=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.java (added)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.java Tue May 1 13:56:16 2007
@@ -0,0 +1,65 @@
+package org.apache.maven.shared.release.phase;
+
+import org.apache.maven.settings.Settings;
+import org.apache.maven.shared.release.ReleaseExecutionException;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.exec.MavenExecutor;
+import org.apache.maven.shared.release.exec.MavenExecutorException;
+import org.codehaus.plexus.PlexusTestCase;
+import org.jmock.Mock;
+import org.jmock.core.Constraint;
+import org.jmock.core.constraint.IsAnything;
+import org.jmock.core.constraint.IsEqual;
+import org.jmock.core.matcher.InvokeOnceMatcher;
+import org.jmock.core.stub.ThrowStub;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class RunPerformGoalsPhaseTest
+ extends PlexusTestCase
+{
+ private RunPerformGoalsPhase phase;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
+ }
+
+ public void testExecuteException()
+ throws Exception
+ {
+ File testFile = getTestFile( "target/checkout-directory" );
+
+ ReleaseDescriptor config = new ReleaseDescriptor();
+ config.setPerformGoals( "goal1 goal2" );
+ config.setCheckoutDirectory( testFile.getAbsolutePath() );
+
+ Mock mock = new Mock( MavenExecutor.class );
+ Constraint[] constraints = new Constraint[]{new IsEqual( testFile ), new IsEqual( "goal1 goal2" ),
+ new IsEqual( Boolean.TRUE ), new IsEqual( "-DperformRelease=true" ), new IsAnything()};
+ mock.expects( new InvokeOnceMatcher() ).method( "executeGoals" ).with( constraints ).will(
+ new ThrowStub( new MavenExecutorException( "...", new Exception() ) ) );
+
+ phase.setMavenExecutor( (MavenExecutor) mock.proxy() );
+
+ try
+ {
+ phase.execute( config, (Settings) null, (List) null );
+
+ fail( "Should have thrown an exception" );
+ }
+ catch ( ReleaseExecutionException e )
+ {
+ assertEquals( "Check cause", MavenExecutorException.class, e.getCause().getClass() );
+ }
+ }
+
+}
Propchange: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java (from r533989, maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunGoalsPhaseTest.java)
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java?view=diff&rev=534241&p1=maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunGoalsPhaseTest.java&r1=533989&p2=maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunGoalsPhaseTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java Tue May 1 13:56:16 2007
@@ -19,6 +19,7 @@
* under the License.
*/
+import org.apache.maven.settings.Settings;
import org.apache.maven.shared.release.ReleaseExecutionException;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
import org.apache.maven.shared.release.exec.MavenExecutor;
@@ -34,23 +35,24 @@
import org.jmock.core.stub.ThrowStub;
import java.io.File;
+import java.util.List;
/**
* Test the simple test running phase.
*
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
*/
-public class RunGoalsPhaseTest
+public class RunPrepareGoalsPhaseTest
extends PlexusTestCase
{
- private RunGoalsPhase phase;
+ private RunPrepareGoalsPhase phase;
protected void setUp()
throws Exception
{
super.setUp();
- phase = (RunGoalsPhase) lookup( ReleasePhase.ROLE, "run-preparation-goals" );
+ phase = (RunPrepareGoalsPhase) lookup( ReleasePhase.ROLE, "run-preparation-goals" );
}
public void testExecute()
@@ -70,7 +72,7 @@
phase.setMavenExecutor( (MavenExecutor) mock.proxy() );
- phase.execute( config, null, null );
+ phase.execute( config, (Settings) null, (List) null );
// just needs to survive the mock
assertTrue( true );
@@ -116,7 +118,7 @@
try
{
- phase.execute( config, null, null );
+ phase.execute( config, (Settings) null, (List) null );
fail( "Should have thrown an exception" );
}
@@ -168,7 +170,7 @@
phase.setMavenExecutor( (MavenExecutor) mock.proxy() );
- phase.execute( config, null, null );
+ phase.execute( config, (Settings) null, (List) null );
// just needs to survive the mock
assertTrue( true );
Modified: maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/DefaultReleaseManagerTest.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/DefaultReleaseManagerTest.xml?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/DefaultReleaseManagerTest.xml (original)
+++ maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/DefaultReleaseManagerTest.xml Tue May 1 13:56:16 2007
@@ -36,9 +36,6 @@
<requirement>
<role>org.apache.maven.shared.release.scm.ScmRepositoryConfigurator</role>
</requirement>
- <requirement>
- <role>org.apache.maven.shared.release.exec.MavenExecutor</role>
- </requirement>
</requirements>
<configuration>
<preparePhases>
@@ -46,6 +43,11 @@
<phase>step2</phase>
<phase>step3</phase>
</preparePhases>
+ <performPhases>
+ <phase>verify-completed-prepare-phases</phase>
+ <phase>checkout-project-from-scm</phase>
+ <phase>run-perform-goals</phase>
+ </performPhases>
</configuration>
</component>
<component>
Added: maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.xml?view=auto&rev=534241
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.xml Tue May 1 13:56:16 2007
@@ -0,0 +1,32 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<component-set>
+ <components>
+ <!-- Turn off info messages -->
+ <component>
+ <role>org.codehaus.plexus.logging.LoggerManager</role>
+ <implementation>org.codehaus.plexus.logging.console.ConsoleLoggerManager</implementation>
+ <lifecycle-handler>basic</lifecycle-handler>
+ <configuration>
+ <threshold>ERROR</threshold>
+ </configuration>
+ </component>
+ </components>
+</component-set>
Propchange: maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java Tue May 1 13:56:16 2007
@@ -39,6 +39,6 @@
{
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setWorkingDirectory( basedir.getAbsolutePath() );
- releaseManager.clean( releaseDescriptor, reactorProjects );
+ releaseManager.clean( releaseDescriptor, null, reactorProjects );
}
}
Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java Tue May 1 13:56:16 2007
@@ -82,6 +82,9 @@
releaseDescriptor.setScmSourceUrl( connectionUrl );
}
+ releaseDescriptor.setCheckoutDirectory( workingDirectory.getAbsolutePath() );
+ releaseDescriptor.setUseReleaseProfile( useReleaseProfile );
+
if ( goals == null )
{
// set default
@@ -92,9 +95,9 @@
goals += " site-deploy";
}
}
+ releaseDescriptor.setPerformGoals( goals );
- releaseManager.perform( releaseDescriptor, settings, reactorProjects, workingDirectory, goals,
- useReleaseProfile );
+ releaseManager.perform( releaseDescriptor, settings, reactorProjects );
}
catch ( ReleaseExecutionException e )
{
Modified: maven/release/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/CleanReleaseMojoTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/CleanReleaseMojoTest.java?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/CleanReleaseMojoTest.java (original)
+++ maven/release/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/CleanReleaseMojoTest.java Tue May 1 13:56:16 2007
@@ -45,6 +45,7 @@
import org.apache.maven.shared.release.config.ReleaseDescriptor;
import org.jmock.Mock;
import org.jmock.core.constraint.IsEqual;
+import org.jmock.core.constraint.IsNull;
import org.jmock.core.matcher.InvokeOnceMatcher;
import java.io.File;
@@ -79,7 +80,7 @@
descriptor.setWorkingDirectory( workingDirectory.getAbsolutePath() );
Mock mock = new Mock( ReleaseManager.class );
- mock.expects( new InvokeOnceMatcher() ).method( "clean" ).with( new IsEqual( descriptor ),
+ mock.expects( new InvokeOnceMatcher() ).method( "clean" ).with( new IsEqual( descriptor ), new IsNull(),
new IsEqual( mojo.getReactorProjects() ) );
mojo.setReleaseManager( (ReleaseManager) mock.proxy() );
Modified: maven/release/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java?view=diff&rev=534241&r1=534240&r2=534241
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java (original)
+++ maven/release/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java Tue May 1 13:56:16 2007
@@ -77,12 +77,14 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setWorkingDirectory( workingDirectory.getAbsolutePath() );
+ File checkoutDirectory = getTestFile( "target/checkout" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+ releaseDescriptor.setPerformGoals( "deploy site-deploy" );
Settings settings = mojo.getSettings();
Mock mock = new Mock( ReleaseManager.class );
- Constraint[] constraints = new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ),
- new IsNull(), new IsEqual( new File( getBasedir(), "target/checkout" ) ),
- new IsEqual( "deploy site-deploy" ), new IsEqual( Boolean.TRUE )};
+ Constraint[] constraints =
+ new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ), new IsNull()};
mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints );
mojo.setReleaseManager( (ReleaseManager) mock.proxy() );
@@ -101,12 +103,14 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setWorkingDirectory( workingDirectory.getAbsolutePath() );
+ File checkoutDirectory = getTestFile( "target/checkout" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+ releaseDescriptor.setPerformGoals( "deploy" );
Settings settings = mojo.getSettings();
Mock mock = new Mock( ReleaseManager.class );
- Constraint[] constraints = new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ),
- new IsNull(), new IsEqual( new File( getBasedir(), "target/checkout" ) ), new IsEqual( "deploy" ),
- new IsEqual( Boolean.TRUE )};
+ Constraint[] constraints =
+ new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ), new IsNull()};
mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints );
mojo.setReleaseManager( (ReleaseManager) mock.proxy() );
@@ -136,12 +140,14 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setWorkingDirectory( workingDirectory.getAbsolutePath() );
+ File checkoutDirectory = getTestFile( "target/checkout" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+ releaseDescriptor.setPerformGoals( "deploy site-deploy" );
Settings settings = mojo.getSettings();
Mock mock = new Mock( ReleaseManager.class );
- Constraint[] constraints = new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ),
- new IsNull(), new IsEqual( new File( getBasedir(), "target/checkout" ) ),
- new IsEqual( "deploy site-deploy" ), new IsEqual( Boolean.TRUE )};
+ Constraint[] constraints =
+ new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ), new IsNull()};
mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints ).will(
new ThrowStub( new ReleaseExecutionException( "..." ) ) );
mojo.setReleaseManager( (ReleaseManager) mock.proxy() );
@@ -165,12 +171,14 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setWorkingDirectory( workingDirectory.getAbsolutePath() );
+ File checkoutDirectory = getTestFile( "target/checkout" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+ releaseDescriptor.setPerformGoals( "deploy site-deploy" );
Settings settings = mojo.getSettings();
Mock mock = new Mock( ReleaseManager.class );
- Constraint[] constraints = new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ),
- new IsNull(), new IsEqual( new File( getBasedir(), "target/checkout" ) ),
- new IsEqual( "deploy site-deploy" ), new IsEqual( Boolean.TRUE )};
+ Constraint[] constraints =
+ new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ), new IsNull()};
mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints ).will(
new ThrowStub( new ReleaseFailureException( "..." ) ) );
mojo.setReleaseManager( (ReleaseManager) mock.proxy() );
@@ -194,13 +202,15 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setWorkingDirectory( workingDirectory.getAbsolutePath() );
+ File checkoutDirectory = getTestFile( "target/checkout" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+ releaseDescriptor.setPerformGoals( "deploy site-deploy" );
Settings settings = mojo.getSettings();
releaseDescriptor.setScmSourceUrl( "scm-url" );
Mock mock = new Mock( ReleaseManager.class );
- Constraint[] constraints = new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ),
- new IsNull(), new IsEqual( new File( getBasedir(), "target/checkout" ) ),
- new IsEqual( "deploy site-deploy" ), new IsEqual( Boolean.TRUE )};
+ Constraint[] constraints =
+ new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ), new IsNull()};
mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints );
mojo.setReleaseManager( (ReleaseManager) mock.proxy() );
@@ -216,6 +226,9 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setWorkingDirectory( workingDirectory.getAbsolutePath() );
+ File checkoutDirectory = getTestFile( "target/checkout" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+ releaseDescriptor.setPerformGoals( "deploy site-deploy" );
Settings settings = mojo.getSettings();
releaseDescriptor.setAdditionalArguments( "-P prof1,2prof" );
@@ -227,9 +240,8 @@
project.setActiveProfiles( Arrays.asList( new Profile[]{profile1, profile2} ) );
Mock mock = new Mock( ReleaseManager.class );
- Constraint[] constraints = new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ),
- new IsNull(), new IsEqual( new File( getBasedir(), "target/checkout" ) ),
- new IsEqual( "deploy site-deploy" ), new IsEqual( Boolean.TRUE )};
+ Constraint[] constraints =
+ new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ), new IsNull()};
mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints );
mojo.setReleaseManager( (ReleaseManager) mock.proxy() );
@@ -245,6 +257,9 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setWorkingDirectory( workingDirectory.getAbsolutePath() );
+ File checkoutDirectory = getTestFile( "target/checkout" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+ releaseDescriptor.setPerformGoals( "deploy site-deploy" );
Settings settings = mojo.getSettings();
releaseDescriptor.setAdditionalArguments( "-Dmaven.test.skip=true -P prof1,2prof" );
@@ -256,9 +271,8 @@
project.setActiveProfiles( Arrays.asList( new Profile[]{profile1, profile2} ) );
Mock mock = new Mock( ReleaseManager.class );
- Constraint[] constraints = new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ),
- new IsNull(), new IsEqual( new File( getBasedir(), "target/checkout" ) ),
- new IsEqual( "deploy site-deploy" ), new IsEqual( Boolean.TRUE )};
+ Constraint[] constraints =
+ new Constraint[]{new IsEqual( releaseDescriptor ), new IsEqual( settings ), new IsNull()};
mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints );
mojo.setReleaseManager( (ReleaseManager) mock.proxy() );