Author: rfscholte Date: Sat Mar 3 20:20:02 2012 New Revision: 1296689 URL: http://svn.apache.org/viewvc?rev=1296689&view=rev Log: Create ReleaseRequests for ReleaseManager to support MRELEASE-736: add dryRun for release:perform
Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/AbstractReleaseRequest.java maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseBranchRequest.java maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseCleanRequest.java maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePerformRequest.java maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePrepareRequest.java maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseRollbackRequest.java maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseUpdateVersionsRequest.java 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 Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/AbstractReleaseRequest.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/AbstractReleaseRequest.java?rev=1296689&view=auto ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/AbstractReleaseRequest.java (added) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/AbstractReleaseRequest.java Sat Mar 3 20:20:02 2012 @@ -0,0 +1,87 @@ +package org.apache.maven.shared.release; + +/* + * 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 java.util.List; + +import org.apache.maven.project.MavenProject; +import org.apache.maven.shared.release.config.ReleaseDescriptor; + +/** + * + * @author Robert Scholte + * @since 2.3 + */ +public abstract class AbstractReleaseRequest +{ + private ReleaseDescriptor releaseDescriptor; + + private List<MavenProject> reactorProjects; + + private ReleaseManagerListener releaseManagerListener; + + /** + * @return the releaseDescriptor + */ + public ReleaseDescriptor getReleaseDescriptor() + { + return releaseDescriptor; + } + + /** + * @param releaseDescriptor the releaseDescriptor to set + */ + public void setReleaseDescriptor( ReleaseDescriptor releaseDescriptor ) + { + this.releaseDescriptor = releaseDescriptor; + } + + /** + * @return the reactorProjects + */ + public List<MavenProject> getReactorProjects() + { + return reactorProjects; + } + + /** + * @param reactorProjects the reactorProjects to set + */ + public void setReactorProjects( List<MavenProject> reactorProjects ) + { + this.reactorProjects = reactorProjects; + } + + /** + * @return the releaseManagerListener + */ + public ReleaseManagerListener getReleaseManagerListener() + { + return releaseManagerListener; + } + + /** + * @param releaseManagerListener the releaseManagerListener to set + */ + public void setReleaseManagerListener( ReleaseManagerListener releaseManagerListener ) + { + this.releaseManagerListener = releaseManagerListener; + } +} \ No newline at end of file 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?rev=1296689&r1=1296688&r2=1296689&view=diff ============================================================================== --- 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 Sat Mar 3 20:20:02 2012 @@ -27,6 +27,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.commons.lang.BooleanUtils; import org.apache.maven.project.MavenProject; import org.apache.maven.settings.Settings; import org.apache.maven.shared.release.config.ReleaseDescriptor; @@ -90,6 +91,7 @@ public class DefaultReleaseManager private static final int PHASE_SKIP = 0, PHASE_START = 1, PHASE_END = 2, GOAL_START = 11, GOAL_END = 12, ERROR = 99; + /** {@inheritDoc} */ public void prepare( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException @@ -97,6 +99,7 @@ public class DefaultReleaseManager prepare( releaseDescriptor, releaseEnvironment, reactorProjects, true, false, null ); } + /** {@inheritDoc} */ public void prepare( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, boolean resume, boolean dryRun ) throws ReleaseExecutionException, ReleaseFailureException @@ -134,6 +137,7 @@ public class DefaultReleaseManager return result; } + /** {@inheritDoc} */ public void prepare( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, boolean resume, boolean dryRun, ReleaseManagerListener listener ) @@ -141,22 +145,43 @@ public class DefaultReleaseManager { prepare( releaseDescriptor, releaseEnvironment, reactorProjects, resume, dryRun, listener, null ); } + + /** {@inheritDoc} */ + public void prepare( ReleasePrepareRequest prepareRequest ) + throws ReleaseExecutionException, ReleaseFailureException + { + prepare( prepareRequest, new ReleaseResult() ); + } private void prepare( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, boolean resume, boolean dryRun, ReleaseManagerListener listener, ReleaseResult result ) throws ReleaseExecutionException, ReleaseFailureException { - updateListener( listener, "prepare", GOAL_START ); + ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest(); + prepareRequest.setReleaseDescriptor( releaseDescriptor ); + prepareRequest.setReleaseEnvironment( releaseEnvironment ); + prepareRequest.setReactorProjects( reactorProjects ); + prepareRequest.setResume( resume ); + prepareRequest.setDryRun( dryRun ); + prepareRequest.setReleaseManagerListener( listener ); + + prepare( prepareRequest, result ); + } + + private void prepare( ReleasePrepareRequest prepareRequest, ReleaseResult result ) + throws ReleaseExecutionException, ReleaseFailureException + { + updateListener( prepareRequest.getReleaseManagerListener(), "prepare", GOAL_START ); ReleaseDescriptor config; - if ( resume ) + if ( BooleanUtils.isNotFalse( prepareRequest.getResume() ) ) { - config = loadReleaseDescriptor( releaseDescriptor, listener ); + config = loadReleaseDescriptor( prepareRequest.getReleaseDescriptor(), prepareRequest.getReleaseManagerListener() ); } else { - config = releaseDescriptor; + config = prepareRequest.getReleaseDescriptor(); } // Later, it would be a good idea to introduce a proper workflow tool so that the release can be made up of a @@ -167,7 +192,7 @@ public class DefaultReleaseManager for ( int idx = 0; idx <= index; idx++ ) { - updateListener( listener, preparePhases.get( idx ), PHASE_SKIP ); + updateListener( prepareRequest.getReleaseManagerListener(), preparePhases.get( idx ), PHASE_SKIP ); } if ( index == preparePhases.size() - 1 ) @@ -192,18 +217,22 @@ public class DefaultReleaseManager throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" ); } - updateListener( listener, name, PHASE_START ); + updateListener( prepareRequest.getReleaseManagerListener(), name, PHASE_START ); ReleaseResult phaseResult = null; try { - if ( dryRun ) + if ( BooleanUtils.isTrue( prepareRequest.getDryRun() ) ) { - phaseResult = phase.simulate( config, releaseEnvironment, reactorProjects ); + phaseResult = phase.simulate( config, + prepareRequest.getReleaseEnvironment(), + prepareRequest.getReactorProjects()); } else { - phaseResult = phase.execute( config, releaseEnvironment, reactorProjects ); + phaseResult = phase.execute( config, + prepareRequest.getReleaseEnvironment(), + prepareRequest.getReactorProjects()); } } finally @@ -225,12 +254,13 @@ public class DefaultReleaseManager throw new ReleaseExecutionException( "Error writing release properties after completing phase", e ); } - updateListener( listener, name, PHASE_END ); + updateListener( prepareRequest.getReleaseManagerListener(), name, PHASE_END ); } - updateListener( listener, "prepare", GOAL_END ); + updateListener( prepareRequest.getReleaseManagerListener(), "prepare", GOAL_END ); } + /** {@inheritDoc} */ public void rollback( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException @@ -238,13 +268,20 @@ public class DefaultReleaseManager rollback( releaseDescriptor, releaseEnvironment, reactorProjects, null ); } + /** {@inheritDoc} */ public void rollback( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, ReleaseManagerListener listener ) throws ReleaseExecutionException, ReleaseFailureException { - updateListener( listener, "rollback", GOAL_START ); + } + + /** {@inheritDoc} */ + public void rollback( ReleaseRollbackRequest rollbackRequest ) + throws ReleaseExecutionException, ReleaseFailureException + { + updateListener( rollbackRequest.getReleaseManagerListener(), "rollback", GOAL_START ); - releaseDescriptor = loadReleaseDescriptor( releaseDescriptor, null ); + ReleaseDescriptor releaseDescriptor = loadReleaseDescriptor( rollbackRequest.getReleaseDescriptor(), null ); for ( String name : rollbackPhases ) { @@ -255,16 +292,21 @@ public class DefaultReleaseManager throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" ); } - updateListener( listener, name, PHASE_START ); - phase.execute( releaseDescriptor, releaseEnvironment, reactorProjects ); - updateListener( listener, name, PHASE_END ); + updateListener( rollbackRequest.getReleaseManagerListener(), name, PHASE_START ); + phase.execute( releaseDescriptor, + rollbackRequest.getReleaseEnvironment(), + rollbackRequest.getReactorProjects() ); + updateListener( rollbackRequest.getReleaseManagerListener(), name, PHASE_END ); } //call release:clean so that resume will not be possible anymore after a rollback - clean( releaseDescriptor, listener, reactorProjects ); - updateListener( listener, "prepare", GOAL_END ); + clean( releaseDescriptor, + rollbackRequest.getReleaseManagerListener(), + rollbackRequest.getReactorProjects() ); + updateListener( rollbackRequest.getReleaseManagerListener(), "rollback", GOAL_END ); } + /** {@inheritDoc} */ public void perform( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException @@ -272,6 +314,7 @@ public class DefaultReleaseManager perform( releaseDescriptor, releaseEnvironment, reactorProjects, null, true ); } + /** {@inheritDoc} */ public void perform( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, boolean clean ) throws ReleaseExecutionException, ReleaseFailureException @@ -279,6 +322,7 @@ public class DefaultReleaseManager perform( releaseDescriptor, releaseEnvironment, reactorProjects, null, clean ); } + /** {@inheritDoc} */ public void perform( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, ReleaseManagerListener listener ) throws ReleaseExecutionException, ReleaseFailureException @@ -322,17 +366,36 @@ public class DefaultReleaseManager return result; } + /** {@inheritDoc} */ + public void perform( ReleasePerformRequest performRequest ) + throws ReleaseExecutionException, ReleaseFailureException + { + perform( performRequest, new ReleaseResult() ); + } + private void perform( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, ReleaseManagerListener listener, ReleaseResult result, boolean clean ) throws ReleaseExecutionException, ReleaseFailureException { - updateListener( listener, "perform", GOAL_START ); - - releaseDescriptor = loadReleaseDescriptor( releaseDescriptor, listener ); + ReleasePerformRequest performRequest = new ReleasePerformRequest(); + performRequest.setReleaseDescriptor( releaseDescriptor ); + performRequest.setReleaseEnvironment( releaseEnvironment ); + performRequest.setReactorProjects( reactorProjects ); + performRequest.setReleaseManagerListener( listener ); + performRequest.setClean( clean ); - ReleaseResult phaseResult = null; + perform( performRequest, result ); + } + + private void perform( ReleasePerformRequest performRequest, ReleaseResult result ) + throws ReleaseExecutionException, ReleaseFailureException + { + updateListener( performRequest.getReleaseManagerListener(), "perform", GOAL_START ); + ReleaseDescriptor releaseDescriptor = loadReleaseDescriptor( performRequest.getReleaseDescriptor(), + performRequest.getReleaseManagerListener() ); + for ( String name : performPhases ) { ReleasePhase phase = releasePhases.get( name ); @@ -342,21 +405,45 @@ public class DefaultReleaseManager throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" ); } - updateListener( listener, name, PHASE_START ); - phaseResult = phase.execute( releaseDescriptor, releaseEnvironment, reactorProjects ); - result.getOutputBuffer().append( phaseResult.getOutput() ); - updateListener( listener, name, PHASE_END ); + updateListener( performRequest.getReleaseManagerListener(), name, PHASE_START ); + + ReleaseResult phaseResult = null; + try + { + if( BooleanUtils.isTrue( performRequest.getDryRun() ) ) + { + phaseResult = phase.simulate( releaseDescriptor, + performRequest.getReleaseEnvironment(), + performRequest.getReactorProjects() ); + } + else + { + phaseResult = phase.execute( releaseDescriptor, + performRequest.getReleaseEnvironment(), + performRequest.getReactorProjects() ); + } + } + finally + { + if ( result != null && phaseResult != null ) + { + result.getOutputBuffer().append( phaseResult.getOutput() ); + } + } + + updateListener( performRequest.getReleaseManagerListener(), name, PHASE_END ); } - - if ( clean ) + + if ( BooleanUtils.isTrue( performRequest.getClean() ) ) { // call release:clean so that resume will not be possible anymore after a perform - clean( releaseDescriptor, listener, reactorProjects ); + clean( releaseDescriptor, performRequest.getReleaseManagerListener(), performRequest.getReactorProjects() ); } - updateListener( listener, "perform", GOAL_END ); + updateListener( performRequest.getReleaseManagerListener(), "perform", GOAL_END ); } + /** {@inheritDoc} */ public void branch( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, boolean dryRun ) throws ReleaseExecutionException, ReleaseFailureException @@ -364,13 +451,31 @@ public class DefaultReleaseManager branch( releaseDescriptor, releaseEnvironment, reactorProjects, dryRun, null ); } + /** {@inheritDoc} */ public void branch( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, boolean dryRun, ReleaseManagerListener listener ) throws ReleaseExecutionException, ReleaseFailureException { - updateListener( listener, "branch", GOAL_START ); + ReleaseBranchRequest branchRequest = new ReleaseBranchRequest(); + branchRequest.setReleaseDescriptor( releaseDescriptor ); + branchRequest.setReleaseEnvironment( releaseEnvironment ); + branchRequest.setReactorProjects( reactorProjects ); + branchRequest.setDryRun( dryRun ); + branchRequest.setReleaseManagerListener( listener ); + + branch( branchRequest ); + } + + /** {@inheritDoc} */ + public void branch( ReleaseBranchRequest branchRequest ) + throws ReleaseExecutionException, ReleaseFailureException + { + ReleaseDescriptor releaseDescriptor = loadReleaseDescriptor( branchRequest.getReleaseDescriptor(), + branchRequest.getReleaseManagerListener() ); - releaseDescriptor = loadReleaseDescriptor( releaseDescriptor, listener ); + updateListener( branchRequest.getReleaseManagerListener(), "branch", GOAL_START ); + + boolean dryRun = BooleanUtils.isTrue( branchRequest.getDryRun() ); for ( String name : branchPhases ) { @@ -381,35 +486,51 @@ public class DefaultReleaseManager throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" ); } - updateListener( listener, name, PHASE_START ); + updateListener( branchRequest.getReleaseManagerListener(), name, PHASE_START ); + if ( dryRun ) { - phase.simulate( releaseDescriptor, releaseEnvironment, reactorProjects ); + phase.simulate( releaseDescriptor, + branchRequest.getReleaseEnvironment(), + branchRequest.getReactorProjects() ); } - else + else // getDryRun is null or FALSE { - phase.execute( releaseDescriptor, releaseEnvironment, reactorProjects ); + phase.execute( releaseDescriptor, + branchRequest.getReleaseEnvironment(), + branchRequest.getReactorProjects() ); } - updateListener( listener, name, PHASE_END ); + updateListener( branchRequest.getReleaseManagerListener(), name, PHASE_END ); } if ( !dryRun ) { - clean( releaseDescriptor, listener, reactorProjects ); + clean( releaseDescriptor, + branchRequest.getReleaseManagerListener(), + branchRequest.getReactorProjects() ); } - updateListener( listener, "branch", GOAL_END ); + updateListener( branchRequest.getReleaseManagerListener(), "branch", GOAL_END ); } public void updateVersions( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException { - ReleaseManagerListener listener = null; + ReleaseUpdateVersionsRequest updateVersionsRequest = new ReleaseUpdateVersionsRequest(); + updateVersionsRequest.setReleaseDescriptor( releaseDescriptor ); + updateVersionsRequest.setReleaseEnvironment( releaseEnvironment ); + updateVersionsRequest.setReactorProjects( reactorProjects ); - updateListener( listener, "updateVersions", GOAL_START ); + } + + /** {@inheritDoc} */ + public void updateVersions( ReleaseUpdateVersionsRequest updateVersionsRequest ) + throws ReleaseExecutionException, ReleaseFailureException + { + updateListener( updateVersionsRequest.getReleaseManagerListener(), "updateVersions", GOAL_START ); - releaseDescriptor = loadReleaseDescriptor( releaseDescriptor, listener ); + ReleaseDescriptor releaseDescriptor = loadReleaseDescriptor( updateVersionsRequest.getReleaseDescriptor(), updateVersionsRequest.getReleaseManagerListener() ); for ( String name : updateVersionsPhases ) { @@ -420,14 +541,16 @@ public class DefaultReleaseManager throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" ); } - updateListener( listener, name, PHASE_START ); - phase.execute( releaseDescriptor, releaseEnvironment, reactorProjects ); - updateListener( listener, name, PHASE_END ); + updateListener( updateVersionsRequest.getReleaseManagerListener(), name, PHASE_START ); + phase.execute( releaseDescriptor, + updateVersionsRequest.getReleaseEnvironment(), + updateVersionsRequest.getReactorProjects() ); + updateListener( updateVersionsRequest.getReleaseManagerListener(), name, PHASE_END ); } - clean( releaseDescriptor, listener, reactorProjects ); + clean( releaseDescriptor, updateVersionsRequest.getReleaseManagerListener(), updateVersionsRequest.getReactorProjects() ); - updateListener( listener, "updateVersions", GOAL_END ); + updateListener( updateVersionsRequest.getReleaseManagerListener(), "updateVersions", GOAL_END ); } /** @@ -471,14 +594,26 @@ public class DefaultReleaseManager } } + /** {@inheritDoc} */ public void clean( ReleaseDescriptor releaseDescriptor, ReleaseManagerListener listener, List<MavenProject> reactorProjects ) { - updateListener( listener, "cleanup", PHASE_START ); + ReleaseCleanRequest cleanRequest = new ReleaseCleanRequest(); + cleanRequest.setReleaseDescriptor( releaseDescriptor ); + cleanRequest.setReleaseManagerListener( listener ); + cleanRequest.setReactorProjects( reactorProjects ); + + clean( cleanRequest ); + } + + /** {@inheritDoc} */ + public void clean( ReleaseCleanRequest cleanRequest ) + { + updateListener( cleanRequest.getReleaseManagerListener(), "cleanup", PHASE_START ); getLogger().info( "Cleaning up after release..." ); - configStore.delete( releaseDescriptor ); + configStore.delete( cleanRequest.getReleaseDescriptor() ); Set<String> phases = new LinkedHashSet<String>( preparePhases ); phases.addAll( branchPhases ); @@ -486,10 +621,10 @@ public class DefaultReleaseManager { ReleasePhase phase = releasePhases.get( name ); - phase.clean( reactorProjects ); + phase.clean( cleanRequest.getReactorProjects() ); } - updateListener( listener, "cleanup", PHASE_END ); + updateListener( cleanRequest.getReleaseManagerListener(), "cleanup", PHASE_END ); } void setConfigStore( ReleaseDescriptorStore configStore ) @@ -571,6 +706,7 @@ public class DefaultReleaseManager result.setResultCode( ReleaseResult.ERROR ); } + /** {@inheritDoc} */ public void branch( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects, boolean dryRun ) throws ReleaseExecutionException, ReleaseFailureException @@ -578,6 +714,7 @@ public class DefaultReleaseManager branch( releaseDescriptor, new DefaultReleaseEnvironment().setSettings( settings ), reactorProjects, dryRun ); } + /** {@inheritDoc} */ public void branch( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects, boolean dryRun, ReleaseManagerListener listener ) throws ReleaseExecutionException, ReleaseFailureException @@ -586,12 +723,14 @@ public class DefaultReleaseManager listener ); } + /** {@inheritDoc} */ public void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException { perform( releaseDescriptor, new DefaultReleaseEnvironment().setSettings( settings ), reactorProjects ); } + /** {@inheritDoc} */ public void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects, ReleaseManagerListener listener ) throws ReleaseExecutionException, ReleaseFailureException @@ -599,6 +738,7 @@ public class DefaultReleaseManager perform( releaseDescriptor, new DefaultReleaseEnvironment().setSettings( settings ), reactorProjects, listener ); } + /** {@inheritDoc} */ public void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects, boolean clean ) throws ReleaseExecutionException, ReleaseFailureException @@ -613,12 +753,14 @@ public class DefaultReleaseManager reactorProjects, listener ); } + /** {@inheritDoc} */ public void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException { prepare( releaseDescriptor, new DefaultReleaseEnvironment().setSettings( settings ), reactorProjects ); } + /** {@inheritDoc} */ public void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects, boolean resume, boolean dryRun ) throws ReleaseExecutionException, ReleaseFailureException @@ -627,6 +769,7 @@ public class DefaultReleaseManager dryRun ); } + /** {@inheritDoc} */ public void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects, boolean resume, boolean dryRun, ReleaseManagerListener listener ) throws ReleaseExecutionException, ReleaseFailureException @@ -643,6 +786,7 @@ public class DefaultReleaseManager reactorProjects, resume, dryRun, listener ); } + /** {@inheritDoc} */ public void rollback( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects, ReleaseManagerListener listener ) throws ReleaseExecutionException, ReleaseFailureException @@ -650,9 +794,10 @@ public class DefaultReleaseManager rollback( releaseDescriptor, new DefaultReleaseEnvironment().setSettings( settings ), reactorProjects, listener ); } + /** {@inheritDoc} */ public void rollback( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException { rollback( releaseDescriptor, new DefaultReleaseEnvironment().setSettings( settings ), reactorProjects, null ); } -} +} \ No newline at end of file Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseBranchRequest.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseBranchRequest.java?rev=1296689&view=auto ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseBranchRequest.java (added) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseBranchRequest.java Sat Mar 3 20:20:02 2012 @@ -0,0 +1,67 @@ +package org.apache.maven.shared.release; + +/* + * 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.env.ReleaseEnvironment; + +/** + * + * @author Robert Scholte + * @since 2.3 + */ +public class ReleaseBranchRequest extends AbstractReleaseRequest +{ + // using Boolean to detect if has been set explicitly + private Boolean dryRun; + + private ReleaseEnvironment releaseEnvironment; + + /** + * @return the dryRun + */ + public Boolean getDryRun() + { + return dryRun; + } + + /** + * @param dryRun the dryRun to set + */ + public void setDryRun( Boolean dryRun ) + { + this.dryRun = dryRun; + } + + /** + * @return the releaseEnvironment + */ + public ReleaseEnvironment getReleaseEnvironment() + { + return releaseEnvironment; + } + + /** + * @param releaseEnvironment the releaseEnvironment to set + */ + public void setReleaseEnvironment( ReleaseEnvironment releaseEnvironment ) + { + this.releaseEnvironment = releaseEnvironment; + } +} \ No newline at end of file Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseCleanRequest.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseCleanRequest.java?rev=1296689&view=auto ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseCleanRequest.java (added) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseCleanRequest.java Sat Mar 3 20:20:02 2012 @@ -0,0 +1,29 @@ +package org.apache.maven.shared.release; + +/* + * 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. + */ + +/** + * + * @author Robert Scholte + * @since 2.3 + */ +public class ReleaseCleanRequest extends AbstractReleaseRequest +{ +} \ No newline at end of file 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?rev=1296689&r1=1296688&r2=1296689&view=diff ============================================================================== --- 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 Sat Mar 3 20:20:02 2012 @@ -96,6 +96,16 @@ public interface ReleaseManager void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects, boolean resume, boolean dryRun ) throws ReleaseExecutionException, ReleaseFailureException; + + /** + * Prepare a release. + * + * @param prepareRequest all prepare arguments + * @throws ReleaseExecutionException if there is a problem performing the release + * @throws ReleaseFailureException if there is a problem performing the release + * @since 2.3 + */ + void prepare( ReleasePrepareRequest prepareRequest ) throws ReleaseExecutionException, ReleaseFailureException; /** * Prepare a release. @@ -209,7 +219,7 @@ public interface ReleaseManager List<MavenProject> reactorProjects, ReleaseManagerListener listener ); /** - * Perform a release, and optionnaly cleanup. + * Perform a release, and optionally cleanup. * * @param releaseDescriptor the configuration to use for release * @param releaseEnvironment settings, maven-home, java-home, etc. to use during release. @@ -221,9 +231,20 @@ public interface ReleaseManager void perform( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, boolean clean ) throws ReleaseExecutionException, ReleaseFailureException; + + /** + * Perform a release + * + * @param performRequest all perform arguments + * @throws ReleaseExecutionException if there is a problem performing the release + * @throws ReleaseFailureException if there is a problem performing the release + * @since 2.3 + */ + void perform( ReleasePerformRequest performRequest ) + throws ReleaseExecutionException, ReleaseFailureException; /** - * Perform a release, and optionnaly cleanup. + * Perform a release, and optionally cleanup. * * @param releaseDescriptor the configuration to use for release * @param settings the settings.xml configuration @@ -245,6 +266,14 @@ public interface ReleaseManager * @param reactorProjects the reactor projects */ void clean( ReleaseDescriptor releaseDescriptor, ReleaseManagerListener listener, List<MavenProject> reactorProjects ); + + /** + * Clean a release. + * + * @param cleanRequest all clean arguments + * @since 2.3 + */ + void clean( ReleaseCleanRequest cleanRequest ); /** * Rollback changes made by the previous release @@ -302,7 +331,18 @@ public interface ReleaseManager void rollback( ReleaseDescriptor releaseDescriptor, Settings settings, List<MavenProject> reactorProjects, ReleaseManagerListener listener ) throws ReleaseExecutionException, ReleaseFailureException; - + + /** + * Rollback changes made by the previous release + * + * @param rollbackRequest all rollback arguments + * @throws ReleaseExecutionException if there is a problem during release rollback + * @throws ReleaseFailureException if there is a problem during release rollback + * @since 2.3 + */ + void rollback( ReleaseRollbackRequest rollbackRequest ) + throws ReleaseExecutionException, ReleaseFailureException; + /** * Branch a project * @@ -310,8 +350,8 @@ public interface ReleaseManager * @param releaseEnvironment settings, maven-home, java-home, etc. to use during release. * @param reactorProjects the reactor projects * @param dryRun do not commit any changes to the file system or SCM - * @throws ReleaseExecutionException if there is a problem during release rollback - * @throws ReleaseFailureException if there is a problem during release rollback + * @throws ReleaseExecutionException if there is a problem during release branch + * @throws ReleaseFailureException if there is a problem during release branch */ void branch( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, boolean dryRun ) @@ -324,8 +364,8 @@ public interface ReleaseManager * @param settings the settings.xml configuration * @param reactorProjects the reactor projects * @param dryRun do not commit any changes to the file system or SCM - * @throws ReleaseExecutionException if there is a problem during release rollback - * @throws ReleaseFailureException if there is a problem during release rollback + * @throws ReleaseExecutionException if there is a problem during release branch + * @throws ReleaseFailureException if there is a problem during release branch * * @deprecated Use {@link ReleaseManager#branch(ReleaseDescriptor, ReleaseEnvironment, List, boolean)} instead. */ @@ -341,8 +381,8 @@ public interface ReleaseManager * @param reactorProjects the reactor projects * @param dryRun do not commit any changes to the file system or SCM * @param listener the listener - * @throws ReleaseExecutionException if there is a problem during release rollback - * @throws ReleaseFailureException if there is a problem during release rollback + * @throws ReleaseExecutionException if there is a problem during release branch + * @throws ReleaseFailureException if there is a problem during release branch */ void branch( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects, boolean dryRun, ReleaseManagerListener listener ) @@ -356,8 +396,8 @@ public interface ReleaseManager * @param reactorProjects the reactor projects * @param dryRun do not commit any changes to the file system or SCM * @param listener the listener - * @throws ReleaseExecutionException if there is a problem during release rollback - * @throws ReleaseFailureException if there is a problem during release rollback + * @throws ReleaseExecutionException if there is a problem during release branch + * @throws ReleaseFailureException if there is a problem during release branch * * @deprecated Use {@link ReleaseManager#branch(ReleaseDescriptor, ReleaseEnvironment, List, boolean, ReleaseManagerListener)} instead. */ @@ -366,16 +406,36 @@ public interface ReleaseManager throws ReleaseExecutionException, ReleaseFailureException; /** + * Branch a project + * + * @param branchRequest all branch arguments + * @throws ReleaseExecutionException if there is a problem during release branch + * @throws ReleaseFailureException if there is a problem during release branch + * @since 2.3 + */ + void branch( ReleaseBranchRequest branchRequest ) throws ReleaseExecutionException, ReleaseFailureException; + + /** * Update version numbers for a project * * @param releaseDescriptor the configuration to use for release * @param releaseEnvironment settings, maven-home, java-home, etc. to use during release. * @param reactorProjects the reactor projects - * @throws ReleaseExecutionException if there is a problem during release rollback - * @throws ReleaseFailureException if there is a problem during release rollback + * @throws ReleaseExecutionException if there is a problem during update versions + * @throws ReleaseFailureException if there is a problem during update versions */ void updateVersions( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects ) throws ReleaseExecutionException, ReleaseFailureException; + /** + * Update version numbers for a project + * + * @param updateVersionsRequest all update versions arguments + * @throws ReleaseExecutionException if there is a problem during update versions + * @throws ReleaseFailureException if there is a problem during update versions + * @since 2.3 + */ + void updateVersions( ReleaseUpdateVersionsRequest updateVersionsRequest ) + throws ReleaseExecutionException, ReleaseFailureException; } Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePerformRequest.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePerformRequest.java?rev=1296689&view=auto ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePerformRequest.java (added) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePerformRequest.java Sat Mar 3 20:20:02 2012 @@ -0,0 +1,86 @@ +package org.apache.maven.shared.release; + +/* + * 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.env.ReleaseEnvironment; + +/** + * + * @author Robert Scholte + * @since 2.3 + */ +public class ReleasePerformRequest extends AbstractReleaseRequest +{ + // using Boolean to detect if has been set explicitly + private Boolean dryRun; + + // using Boolean to detect if has been set explicitly + private Boolean clean; + + private ReleaseEnvironment releaseEnvironment; + + /** + * @return the dryRun + */ + public Boolean getDryRun() + { + return dryRun; + } + + /** + * @param dryRun the dryRun to set + */ + public void setDryRun( Boolean dryRun ) + { + this.dryRun = dryRun; + } + + /** + * @return the clean + */ + public Boolean getClean() + { + return clean; + } + + /** + * @param clean the clean to set + */ + public void setClean( Boolean clean ) + { + this.clean = clean; + } + + /** + * @return the releaseEnvironment + */ + public ReleaseEnvironment getReleaseEnvironment() + { + return releaseEnvironment; + } + + /** + * @param releaseEnvironment the releaseEnvironment to set + */ + public void setReleaseEnvironment( ReleaseEnvironment releaseEnvironment ) + { + this.releaseEnvironment = releaseEnvironment; + } +} \ No newline at end of file Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePrepareRequest.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePrepareRequest.java?rev=1296689&view=auto ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePrepareRequest.java (added) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePrepareRequest.java Sat Mar 3 20:20:02 2012 @@ -0,0 +1,86 @@ +package org.apache.maven.shared.release; + +/* + * 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.env.ReleaseEnvironment; + +/** + * + * @author Robert Scholte + * @since 2.3 + */ +public class ReleasePrepareRequest extends AbstractReleaseRequest +{ + // using Boolean to detect if has been set explicitly + private Boolean dryRun; + + // using Boolean to detect if has been set explicitly + private Boolean resume; + + private ReleaseEnvironment releaseEnvironment; + + /** + * @return the dryRun + */ + public Boolean getDryRun() + { + return dryRun; + } + + /** + * @param dryRun the dryRun to set + */ + public void setDryRun( Boolean dryRun ) + { + this.dryRun = dryRun; + } + + /** + * @return the resume + */ + public Boolean getResume() + { + return resume; + } + + /** + * @param resume the resume to set + */ + public void setResume( Boolean resume ) + { + this.resume = resume; + } + + /** + * @return the releaseEnvironment + */ + public ReleaseEnvironment getReleaseEnvironment() + { + return releaseEnvironment; + } + + /** + * @param releaseEnvironment the releaseEnvironment to set + */ + public void setReleaseEnvironment( ReleaseEnvironment releaseEnvironment ) + { + this.releaseEnvironment = releaseEnvironment; + } +} \ No newline at end of file Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseRollbackRequest.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseRollbackRequest.java?rev=1296689&view=auto ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseRollbackRequest.java (added) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseRollbackRequest.java Sat Mar 3 20:20:02 2012 @@ -0,0 +1,48 @@ +package org.apache.maven.shared.release; + +/* + * 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.env.ReleaseEnvironment; + +/** + * + * @author Robert Scholte + * @since 2.3 + */ +public class ReleaseRollbackRequest extends AbstractReleaseRequest +{ + private ReleaseEnvironment releaseEnvironment; + + /** + * @return the releaseEnvironment + */ + public ReleaseEnvironment getReleaseEnvironment() + { + return releaseEnvironment; + } + + /** + * @param releaseEnvironment the releaseEnvironment to set + */ + public void setReleaseEnvironment( ReleaseEnvironment releaseEnvironment ) + { + this.releaseEnvironment = releaseEnvironment; + } +} \ No newline at end of file Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseUpdateVersionsRequest.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseUpdateVersionsRequest.java?rev=1296689&view=auto ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseUpdateVersionsRequest.java (added) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseUpdateVersionsRequest.java Sat Mar 3 20:20:02 2012 @@ -0,0 +1,48 @@ +package org.apache.maven.shared.release; + +/* + * 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.env.ReleaseEnvironment; + +/** + * + * @author Robert Scholte + * @since 2.3 + */ +public class ReleaseUpdateVersionsRequest extends AbstractReleaseRequest +{ + private ReleaseEnvironment releaseEnvironment; + + /** + * @return the releaseEnvironment + */ + public ReleaseEnvironment getReleaseEnvironment() + { + return releaseEnvironment; + } + + /** + * @param releaseEnvironment the releaseEnvironment to set + */ + public void setReleaseEnvironment( ReleaseEnvironment releaseEnvironment ) + { + this.releaseEnvironment = releaseEnvironment; + } +} \ No newline at end of file