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


Reply via email to