You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/08/30 06:03:49 UTC

svn commit: r438341 [1/5] - in /maven/plugins/trunk/maven-release-plugin/src: main/java/org/apache/maven/plugins/release/ main/java/org/apache/maven/plugins/release/config/ main/java/org/apache/maven/plugins/release/phase/ main/java/org/apache/maven/pl...

Author: brett
Date: Tue Aug 29 21:03:46 2006
New Revision: 438341

URL: http://svn.apache.org/viewvc?rev=438341&view=rev
Log:
[MRELEASE-130] refactor to use a generated release descriptor instead of the release configuration class
Submitted by: Jeremy Whitlock

Added:
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseDescriptorStore.java
      - copied, changed from r438319, maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStore.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseDescriptorStore.java
      - copied, changed from r438319, maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStore.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseDescriptorStoreException.java
      - copied, changed from r438319, maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStoreException.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseUtils.java   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/PropertiesReleaseDescriptorStoreTest.java
      - copied, changed from r438319, maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStoreTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/ReleaseDescriptorStoreStub.java
      - copied, changed from r438319, maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStoreStub.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/ReleaseDescriptorTest.java
      - copied, changed from r438319, maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/ReleaseConfigurationTest.java
Removed:
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStore.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfiguration.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStore.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStoreException.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStoreTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStoreStub.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/ReleaseConfigurationTest.java
Modified:
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManager.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractReleasePhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/EndReleasePhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/InputVariablesPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/MapVersionsPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ReleasePhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForDevelopmentPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/DefaultScmRepositoryConfigurator.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/ScmRepositoryConfigurator.java
    maven/plugins/trunk/maven-release-plugin/src/main/mdo/release-descriptor.mdo
    maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/CleanReleaseMojoTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/DefaultReleaseManagerTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PrepareReleaseMojoTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/AbstractReleaseTestCase.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/AbstractRewritingReleasePhaseTestCase.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhaseTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckPomPhaseTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/EndReleasePhaseTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/InputVariablesPhaseTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/MapVersionsPhaseTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/ReleasePhaseStub.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RewritePomsForDevelopmentPhaseTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RunGoalsPhaseTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhaseTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/ScmCommitPhaseTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/ScmTagPhaseTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/scm/DefaultScmRepositoryConfiguratorTest.java
    maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/DefaultReleaseManagerTest.xml

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java Tue Aug 29 21:03:46 2006
@@ -18,7 +18,7 @@
 
 import org.apache.maven.model.Profile;
 import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.util.StringUtils;
@@ -70,14 +70,14 @@
      * @required
      * @readonly
      */
-    private File basedir;
+    protected File basedir;
 
     /**
      * @parameter expression="${settings}"
      * @required
      * @readonly
      */
-    private Settings settings;
+    protected Settings settings;
 
     /**
      * @parameter expression="${project}"
@@ -105,17 +105,27 @@
      */
     private String pomFileName;
 
-    protected ReleaseConfiguration createReleaseConfiguration()
+    /**
+     * @parameter expression="${reactorProjects}"
+     * @required
+     * @readonly
+     */
+    protected List reactorProjects;
+
+    protected ReleaseDescriptor createReleaseDescriptor()
     {
-        ReleaseConfiguration config = new ReleaseConfiguration();
-        config.setInteractive( settings.isInteractiveMode() );
-        config.setPassword( password );
-        config.setReleaseLabel( tag );
-        config.setSettings( settings );
-        config.setTagBase( tagBase );
-        config.setUsername( username );
-        config.setWorkingDirectory( basedir );
-        config.setPomFileName( pomFileName );
+        ReleaseDescriptor descriptor = new ReleaseDescriptor();
+
+        descriptor.setInteractive( settings.isInteractiveMode() );
+
+        descriptor.setScmPassword( password );
+        descriptor.setScmReleaseLabel( tag );
+        descriptor.setScmTagBase( tagBase );
+        descriptor.setScmUsername( username );
+
+        descriptor.setWorkingDirectory( basedir.getAbsolutePath() );
+
+        descriptor.setPomFileName( pomFileName );
 
         List profiles = project.getActiveProfiles();
 
@@ -142,9 +152,9 @@
                 }
             }
         }
-        config.setAdditionalArguments( arguments );
+        descriptor.setAdditionalArguments( arguments );
 
-        return config;
+        return descriptor;
     }
 
     void setReleaseManager( ReleaseManager releaseManager )
@@ -155,5 +165,15 @@
     Settings getSettings()
     {
         return settings;
+    }
+
+    public void setBasedir( File basedir )
+    {
+        this.basedir = basedir;
+    }
+
+    public List getReactorProjects()
+    {
+        return reactorProjects;
     }
 }

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java Tue Aug 29 21:03:46 2006
@@ -18,9 +18,7 @@
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
-
-import java.util.List;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 
 /**
  * Clean up after a release preparation.
@@ -33,23 +31,11 @@
 public class CleanReleaseMojo
     extends AbstractReleaseMojo
 {
-    /**
-     * @parameter expression="${reactorProjects}"
-     * @required
-     * @readonly
-     */
-    private List reactorProjects;
-
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setReactorProjects( reactorProjects );
-        releaseManager.clean( releaseConfiguration );
-    }
-
-    List getReactorProjects()
-    {
-        return reactorProjects;
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setWorkingDirectory( basedir.getAbsolutePath() );
+        releaseManager.clean( releaseDescriptor, reactorProjects );
     }
 }

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java Tue Aug 29 21:03:46 2006
@@ -16,9 +16,9 @@
  * limitations under the License.
  */
 
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
-import org.apache.maven.plugins.release.config.ReleaseConfigurationStore;
-import org.apache.maven.plugins.release.config.ReleaseConfigurationStoreException;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.plugins.release.config.ReleaseDescriptorStore;
+import org.apache.maven.plugins.release.config.ReleaseDescriptorStoreException;
 import org.apache.maven.plugins.release.exec.MavenExecutor;
 import org.apache.maven.plugins.release.exec.MavenExecutorException;
 import org.apache.maven.plugins.release.phase.ReleasePhase;
@@ -32,6 +32,7 @@
 import org.apache.maven.scm.provider.ScmProvider;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
+import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
@@ -64,7 +65,7 @@
     /**
      * The configuration storage.
      */
-    private ReleaseConfigurationStore configStore;
+    private ReleaseDescriptorStore configStore;
 
     /**
      * Tool for configuring SCM repositories from release configuration.
@@ -76,30 +77,31 @@
      */
     private MavenExecutor mavenExecutor;
 
-    public void prepare( ReleaseConfiguration releaseConfiguration )
+    public void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        prepare( releaseConfiguration, true, false );
+        prepare( releaseDescriptor, settings, reactorProjects, true, false );
     }
 
-    public void prepare( ReleaseConfiguration releaseConfiguration, boolean resume, boolean dryRun )
+    public void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, boolean resume,
+                         boolean dryRun )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        ReleaseConfiguration config;
+        ReleaseDescriptor config;
         if ( resume )
         {
             try
             {
-                config = configStore.read( releaseConfiguration );
+                config = configStore.read( releaseDescriptor );
             }
-            catch ( ReleaseConfigurationStoreException e )
+            catch ( ReleaseDescriptorStoreException e )
             {
                 throw new ReleaseExecutionException( "Error reading stored configuration: " + e.getMessage(), e );
             }
         }
         else
         {
-            config = releaseConfiguration;
+            config = releaseDescriptor;
         }
 
         // Later, it would be a good idea to introduce a proper workflow tool so that the release can be made up of a
@@ -132,11 +134,11 @@
 
             if ( dryRun )
             {
-                phase.simulate( config );
+                phase.simulate( config, settings, reactorProjects );
             }
             else
             {
-                phase.execute( config );
+                phase.execute( config, settings, reactorProjects );
             }
 
             config.setCompletedPhase( name );
@@ -144,7 +146,7 @@
             {
                 configStore.write( config );
             }
-            catch ( ReleaseConfigurationStoreException e )
+            catch ( ReleaseDescriptorStoreException e )
             {
                 // TODO: rollback?
                 throw new ReleaseExecutionException( "Error writing release properties after completing phase", e );
@@ -152,18 +154,18 @@
         }
     }
 
-    public void perform( ReleaseConfiguration releaseConfiguration, File checkoutDirectory, String goals,
-                         boolean useReleaseProfile )
+    public void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+                         File checkoutDirectory, String goals, boolean useReleaseProfile )
         throws ReleaseExecutionException, ReleaseFailureException
     {
         getLogger().info( "Checking out the project to perform the release ..." );
 
-        ReleaseConfiguration config;
+        ReleaseDescriptor config;
         try
         {
-            config = configStore.read( releaseConfiguration );
+            config = configStore.read( releaseDescriptor );
         }
-        catch ( ReleaseConfigurationStoreException e )
+        catch ( ReleaseDescriptorStoreException e )
         {
             throw new ReleaseExecutionException( "Error reading stored configuration: " + e.getMessage(), e );
         }
@@ -175,7 +177,7 @@
                 "Cannot perform release - the preparation step was stopped mid-way. Please re-run release:prepare to continue, or perform the release from an SCM tag." );
         }
 
-        if ( config.getUrl() == null )
+        if ( config.getScmSourceUrl() == null )
         {
             throw new ReleaseFailureException( "No SCM URL was provided to perform the release from" );
         }
@@ -184,7 +186,7 @@
         ScmProvider provider;
         try
         {
-            repository = scmRepositoryConfigurator.getConfiguredRepository( config );
+            repository = scmRepositoryConfigurator.getConfiguredRepository( config, settings );
 
             provider = scmRepositoryConfigurator.getRepositoryProvider( repository );
         }
@@ -215,7 +217,7 @@
         CheckOutScmResult result;
         try
         {
-            result = provider.checkOut( repository, new ScmFileSet( checkoutDirectory ), config.getReleaseLabel() );
+            result = provider.checkOut( repository, new ScmFileSet( checkoutDirectory ), config.getScmReleaseLabel() );
         }
         catch ( ScmException e )
         {
@@ -250,14 +252,14 @@
             throw new ReleaseExecutionException( "Error executing Maven: " + e.getMessage(), e );
         }
 
-        clean( config );
+        clean( config, reactorProjects );
     }
 
-    public void clean( ReleaseConfiguration releaseConfiguration )
+    public void clean( ReleaseDescriptor releaseDescriptor, List reactorProjects )
     {
         getLogger().info( "Cleaning up after release..." );
 
-        configStore.delete( releaseConfiguration );
+        configStore.delete( releaseDescriptor );
 
         for ( Iterator i = phases.iterator(); i.hasNext(); )
         {
@@ -265,11 +267,11 @@
 
             ReleasePhase phase = (ReleasePhase) releasePhases.get( name );
 
-            phase.clean( releaseConfiguration );
+            phase.clean( reactorProjects );
         }
     }
 
-    void setConfigStore( ReleaseConfigurationStore configStore )
+    void setConfigStore( ReleaseDescriptorStore configStore )
     {
         this.configStore = configStore;
     }

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java Tue Aug 29 21:03:46 2006
@@ -18,7 +18,7 @@
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 
 import java.io.File;
 
@@ -71,10 +71,10 @@
         try
         {
             // Note that the working directory here is not the same as in the release configuration, so don't reuse that
-            ReleaseConfiguration releaseConfiguration = createReleaseConfiguration();
+            ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
             if ( connectionUrl != null )
             {
-                releaseConfiguration.setUrl( connectionUrl );
+                releaseDescriptor.setScmSourceUrl( connectionUrl );
             }
 
             if ( goals == null )
@@ -88,7 +88,8 @@
                 }
             }
 
-            releaseManager.perform( releaseConfiguration, workingDirectory, goals, useReleaseProfile );
+            releaseManager.perform( releaseDescriptor, settings, reactorProjects, workingDirectory, goals,
+                                    useReleaseProfile );
         }
         catch ( ReleaseExecutionException e )
         {

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java Tue Aug 29 21:03:46 2006
@@ -18,9 +18,7 @@
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
-
-import java.util.List;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 
 /**
  * Prepare for a release in SCM.
@@ -38,12 +36,6 @@
 public class PrepareReleaseMojo
     extends AbstractReleaseMojo
 {
-    /**
-     * @parameter expression="${reactorProjects}"
-     * @required
-     * @readonly
-     */
-    private List reactorProjects;
 
     /**
      * Resume a previous release attempt from the point that it was stopped.
@@ -91,29 +83,18 @@
      */
     private String preparationGoals;
 
-    /**
-     * Whether to generate the release descriptor as part of the preparation process.
-     *
-     * @parameter expression="${generateReleaseDescriptor}" default-value="true"
-     */
-    //TODO:JW add to the release configuration and follow through to the release manager where you can
-    // add a new phase to generate the release descriptor which can optionally send the release descriptor
-    // to continuum via a web service.
-    private boolean generateReleaseDescriptor;
-
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
-        ReleaseConfiguration config = createReleaseConfiguration();
+        ReleaseDescriptor config = createReleaseDescriptor();
         config.setAddSchema( addSchema );
         config.setGenerateReleasePoms( generateReleasePoms );
-        config.setReactorProjects( reactorProjects );
-        config.setUseEditMode( useEditMode );
+        config.setScmUseEditMode( useEditMode );
         config.setPreparationGoals( preparationGoals );
 
         try
         {
-            releaseManager.prepare( config, resume, dryRun );
+            releaseManager.prepare( config, settings, reactorProjects, resume, dryRun );
         }
         catch ( ReleaseExecutionException e )
         {

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManager.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManager.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManager.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/ReleaseManager.java Tue Aug 29 21:03:46 2006
@@ -16,9 +16,11 @@
  * limitations under the License.
  */
 
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.settings.Settings;
 
 import java.io.File;
+import java.util.List;
 
 /**
  * Release management classes.
@@ -35,43 +37,50 @@
     /**
      * Prepare a release.
      *
-     * @param releaseConfiguration the configuration to pass to the preparation steps
+     * @param releaseDescriptor the configuration to pass to the preparation steps
+     * @param settings          the settings.xml configuration
+     * @param reactorProjects   the reactor projects
      * @throws ReleaseExecutionException if there is a problem performing the release
      * @throws ReleaseFailureException   if there is a problem performing the release
      */
-    void prepare( ReleaseConfiguration releaseConfiguration )
+    void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException;
 
     /**
      * Prepare a release.
      *
-     * @param releaseConfiguration the configuration to pass to the preparation steps
-     * @param resume               resume a previous release, if the properties file exists
-     * @param dryRun               do not commit any changes to the file system or SCM
+     * @param releaseDescriptor the configuration to pass to the preparation steps
+     * @param settings          the settings.xml configuration
+     * @param reactorProjects   the reactor projects
+     * @param resume            resume a previous release, if the properties file exists
+     * @param dryRun            do not commit any changes to the file system or SCM
      * @throws ReleaseExecutionException if there is a problem performing the release
      * @throws ReleaseFailureException   if there is a problem performing the release
      */
-    void prepare( ReleaseConfiguration releaseConfiguration, boolean resume, boolean dryRun )
+    void prepare( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, boolean resume,
+                  boolean dryRun )
         throws ReleaseExecutionException, ReleaseFailureException;
 
     /**
      * Perform a release.
      *
-     * @param releaseConfiguration the configuration to use for release
-     * @param checkoutDirectory    the location to checkout to and build from
-     * @param goals                the goals to execute
-     * @param useReleaseProfile    whether to use the release profile from the super POM or not
+     * @param releaseDescriptor the configuration to use for release
+     * @param settings          the settings.xml configuration
+     * @param checkoutDirectory the location to checkout to and build from
+     * @param goals             the goals to execute
+     * @param useReleaseProfile whether to use the release profile from the super POM or not
      * @throws ReleaseExecutionException if there is a problem performing the release
      * @throws ReleaseFailureException   if there is a problem performing the release
      */
-    void perform( ReleaseConfiguration releaseConfiguration, File checkoutDirectory, String goals,
-                  boolean useReleaseProfile )
+    void perform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, File checkoutDirectory,
+                  String goals, boolean useReleaseProfile )
         throws ReleaseExecutionException, ReleaseFailureException;
 
     /**
      * Clean a release.
      *
-     * @param releaseConfiguration the configuration to use for release
+     * @param releaseDescriptor the configuration to use for release
+     * @param reactorProjects   the reactor projects
      */
-    void clean( ReleaseConfiguration releaseConfiguration );
+    void clean( ReleaseDescriptor releaseDescriptor, List reactorProjects );
 }

Copied: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseDescriptorStore.java (from r438319, maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStore.java)
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseDescriptorStore.java?p2=maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseDescriptorStore.java&p1=maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStore.java&r1=438319&r2=438341&rev=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStore.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseDescriptorStore.java Tue Aug 29 21:03:46 2006
@@ -36,24 +36,24 @@
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  */
-public class PropertiesReleaseConfigurationStore
+public class PropertiesReleaseDescriptorStore
     extends AbstractLogEnabled
-    implements ReleaseConfigurationStore
+    implements ReleaseDescriptorStore
 {
-    public ReleaseConfiguration read( ReleaseConfiguration mergeConfiguration )
-        throws ReleaseConfigurationStoreException
+    public ReleaseDescriptor read( ReleaseDescriptor mergeDescriptor )
+        throws ReleaseDescriptorStoreException
     {
-        return read( mergeConfiguration, getDefaultReleasePropertiesFile( mergeConfiguration ) );
+        return read( mergeDescriptor, getDefaultReleasePropertiesFile( mergeDescriptor ) );
     }
 
-    public ReleaseConfiguration read( File file )
-        throws ReleaseConfigurationStoreException
+    public ReleaseDescriptor read( File file )
+        throws ReleaseDescriptorStoreException
     {
         return read( null, file );
     }
 
-    public ReleaseConfiguration read( ReleaseConfiguration mergeConfiguration, File file )
-        throws ReleaseConfigurationStoreException
+    public ReleaseDescriptor read( ReleaseDescriptor mergeDescriptor, File file )
+        throws ReleaseDescriptorStoreException
     {
         Properties properties = new Properties();
 
@@ -70,7 +70,7 @@
         }
         catch ( IOException e )
         {
-            throw new ReleaseConfigurationStoreException(
+            throw new ReleaseDescriptorStoreException(
                 "Error reading properties file '" + file.getName() + "': " + e.getMessage(), e );
         }
         finally
@@ -78,18 +78,18 @@
             IOUtil.close( inStream );
         }
 
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setCompletedPhase( properties.getProperty( "completedPhase" ) );
-        releaseConfiguration.setUrl( properties.getProperty( "scm.url" ) );
-        releaseConfiguration.setUsername( properties.getProperty( "scm.username" ) );
-        releaseConfiguration.setPassword( properties.getProperty( "scm.password" ) );
-        releaseConfiguration.setPrivateKey( properties.getProperty( "scm.privateKey" ) );
-        releaseConfiguration.setPassphrase( properties.getProperty( "scm.passphrase" ) );
-        releaseConfiguration.setTagBase( properties.getProperty( "scm.tagBase" ) );
-        releaseConfiguration.setReleaseLabel( properties.getProperty( "scm.tag" ) );
-        releaseConfiguration.setAdditionalArguments( properties.getProperty( "exec.additionalArguments" ) );
-        releaseConfiguration.setPomFileName( properties.getProperty( "exec.pomFileName" ) );
-        releaseConfiguration.setPreparationGoals( properties.getProperty( "preparationGoals" ) );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setCompletedPhase( properties.getProperty( "completedPhase" ) );
+        releaseDescriptor.setScmSourceUrl( properties.getProperty( "scm.url" ) );
+        releaseDescriptor.setScmUsername( properties.getProperty( "scm.username" ) );
+        releaseDescriptor.setScmPassword( properties.getProperty( "scm.password" ) );
+        releaseDescriptor.setScmPrivateKey( properties.getProperty( "scm.privateKey" ) );
+        releaseDescriptor.setScmPrivateKeyPassPhrase( properties.getProperty( "scm.passphrase" ) );
+        releaseDescriptor.setScmTagBase( properties.getProperty( "scm.tagBase" ) );
+        releaseDescriptor.setScmReleaseLabel( properties.getProperty( "scm.tag" ) );
+        releaseDescriptor.setAdditionalArguments( properties.getProperty( "exec.additionalArguments" ) );
+        releaseDescriptor.setPomFileName( properties.getProperty( "exec.pomFileName" ) );
+        releaseDescriptor.setPreparationGoals( properties.getProperty( "preparationGoals" ) );
 
         // boolean properties are not written to the properties file because the value from the caller is always used
 
@@ -98,13 +98,13 @@
             String property = (String) i.next();
             if ( property.startsWith( "project.rel." ) )
             {
-                releaseConfiguration.mapReleaseVersion( property.substring( "project.rel.".length() ),
-                                                        properties.getProperty( property ) );
+                releaseDescriptor.mapReleaseVersion( property.substring( "project.rel.".length() ),
+                                                     properties.getProperty( property ) );
             }
             else if ( property.startsWith( "project.dev." ) )
             {
-                releaseConfiguration.mapDevelopmentVersion( property.substring( "project.dev.".length() ),
-                                                            properties.getProperty( property ) );
+                releaseDescriptor.mapDevelopmentVersion( property.substring( "project.dev.".length() ),
+                                                         properties.getProperty( property ) );
             }
             else if ( property.startsWith( "project.scm." ) )
             {
@@ -113,11 +113,11 @@
                 {
                     String key = property.substring( "project.scm.".length(), index );
 
-                    if ( !releaseConfiguration.getOriginalScmInfo().containsKey( key ) )
+                    if ( !releaseDescriptor.getOriginalScmInfo().containsKey( key ) )
                     {
                         if ( properties.getProperty( "project.scm." + key + ".empty" ) != null )
                         {
-                            releaseConfiguration.mapOriginalScmInfo( key, null );
+                            releaseDescriptor.mapOriginalScmInfo( key, null );
                         }
                         else
                         {
@@ -128,28 +128,28 @@
                             scm.setUrl( properties.getProperty( "project.scm." + key + ".url" ) );
                             scm.setTag( properties.getProperty( "project.scm." + key + ".tag" ) );
 
-                            releaseConfiguration.mapOriginalScmInfo( key, scm );
+                            releaseDescriptor.mapOriginalScmInfo( key, scm );
                         }
                     }
                 }
             }
         }
 
-        if ( mergeConfiguration != null )
+        if ( mergeDescriptor != null )
         {
-            releaseConfiguration.merge( mergeConfiguration );
+            releaseDescriptor = ReleaseUtils.merge( releaseDescriptor, mergeDescriptor );
         }
 
-        return releaseConfiguration;
+        return releaseDescriptor;
     }
 
-    public void write( ReleaseConfiguration config )
-        throws ReleaseConfigurationStoreException
+    public void write( ReleaseDescriptor config )
+        throws ReleaseDescriptorStoreException
     {
         write( config, getDefaultReleasePropertiesFile( config ) );
     }
 
-    public void delete( ReleaseConfiguration config )
+    public void delete( ReleaseDescriptor config )
     {
         File file = getDefaultReleasePropertiesFile( config );
         if ( file.exists() )
@@ -158,35 +158,35 @@
         }
     }
 
-    public void write( ReleaseConfiguration config, File file )
-        throws ReleaseConfigurationStoreException
+    public void write( ReleaseDescriptor config, File file )
+        throws ReleaseDescriptorStoreException
     {
         Properties properties = new Properties();
         properties.setProperty( "completedPhase", config.getCompletedPhase() );
-        properties.setProperty( "scm.url", config.getUrl() );
-        if ( config.getUsername() != null )
+        properties.setProperty( "scm.url", config.getScmSourceUrl() );
+        if ( config.getScmUsername() != null )
         {
-            properties.setProperty( "scm.username", config.getUsername() );
+            properties.setProperty( "scm.username", config.getScmUsername() );
         }
-        if ( config.getPassword() != null )
+        if ( config.getScmPassword() != null )
         {
-            properties.setProperty( "scm.password", config.getPassword() );
+            properties.setProperty( "scm.password", config.getScmPassword() );
         }
-        if ( config.getPrivateKey() != null )
+        if ( config.getScmPrivateKey() != null )
         {
-            properties.setProperty( "scm.privateKey", config.getPrivateKey() );
+            properties.setProperty( "scm.privateKey", config.getScmPrivateKey() );
         }
-        if ( config.getPassphrase() != null )
+        if ( config.getScmPrivateKeyPassPhrase() != null )
         {
-            properties.setProperty( "scm.passphrase", config.getPassphrase() );
+            properties.setProperty( "scm.passphrase", config.getScmPrivateKeyPassPhrase() );
         }
-        if ( config.getTagBase() != null )
+        if ( config.getScmTagBase() != null )
         {
-            properties.setProperty( "scm.tagBase", config.getTagBase() );
+            properties.setProperty( "scm.tagBase", config.getScmTagBase() );
         }
-        if ( config.getReleaseLabel() != null )
+        if ( config.getScmReleaseLabel() != null )
         {
-            properties.setProperty( "scm.tag", config.getReleaseLabel() );
+            properties.setProperty( "scm.tag", config.getScmReleaseLabel() );
         }
         if ( config.getAdditionalArguments() != null )
         {
@@ -255,7 +255,7 @@
         }
         catch ( IOException e )
         {
-            throw new ReleaseConfigurationStoreException(
+            throw new ReleaseDescriptorStoreException(
                 "Error writing properties file '" + file.getName() + "': " + e.getMessage(), e );
         }
         finally
@@ -265,8 +265,8 @@
 
     }
 
-    private static File getDefaultReleasePropertiesFile( ReleaseConfiguration mergeConfiguration )
+    private static File getDefaultReleasePropertiesFile( ReleaseDescriptor mergeDescriptor )
     {
-        return new File( mergeConfiguration.getWorkingDirectory(), "release.properties" );
+        return new File( mergeDescriptor.getWorkingDirectory(), "release.properties" );
     }
 }

Copied: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseDescriptorStore.java (from r438319, maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStore.java)
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseDescriptorStore.java?p2=maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseDescriptorStore.java&p1=maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStore.java&r1=438319&r2=438341&rev=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStore.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseDescriptorStore.java Tue Aug 29 21:03:46 2006
@@ -21,35 +21,35 @@
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  */
-public interface ReleaseConfigurationStore
+public interface ReleaseDescriptorStore
 {
     /**
      * The Plexus role.
      */
-    String ROLE = ReleaseConfigurationStore.class.getName();
+    String ROLE = ReleaseDescriptorStore.class.getName();
 
     /**
      * Read a configuration.
      *
-     * @param mergeConfiguration configuration to merge with the loaded configuration. Some values are used as defaults,
-     *                           while others are used to override
+     * @param mergeDescriptor configuration to merge with the loaded configuration. Some values are used as defaults,
+     *                        while others are used to override
      * @return the configuration
      */
-    ReleaseConfiguration read( ReleaseConfiguration mergeConfiguration )
-        throws ReleaseConfigurationStoreException;
+    ReleaseDescriptor read( ReleaseDescriptor mergeDescriptor )
+        throws ReleaseDescriptorStoreException;
 
     /**
      * Save a configuration.
      *
      * @param config the configuration
      */
-    void write( ReleaseConfiguration config )
-        throws ReleaseConfigurationStoreException;
+    void write( ReleaseDescriptor config )
+        throws ReleaseDescriptorStoreException;
 
     /**
      * Remove a configuration.
      *
      * @param config the location of the configuration
      */
-    void delete( ReleaseConfiguration config );
+    void delete( ReleaseDescriptor config );
 }

Copied: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseDescriptorStoreException.java (from r438319, maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStoreException.java)
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseDescriptorStoreException.java?p2=maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseDescriptorStoreException.java&p1=maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStoreException.java&r1=438319&r2=438341&rev=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStoreException.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseDescriptorStoreException.java Tue Aug 29 21:03:46 2006
@@ -21,10 +21,10 @@
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  */
-public class ReleaseConfigurationStoreException
+public class ReleaseDescriptorStoreException
     extends Exception
 {
-    public ReleaseConfigurationStoreException( String message, Throwable t )
+    public ReleaseDescriptorStoreException( String message, Throwable t )
     {
         super( message, t );
     }

Added: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseUtils.java?rev=438341&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseUtils.java (added)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseUtils.java Tue Aug 29 21:03:46 2006
@@ -0,0 +1,81 @@
+package org.apache.maven.plugins.release.config;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+/**
+ * Class providing utility methods used during the release process
+ *
+ * @author <a href="mailto:jwhitlock@apache.org">Jeremy Whitlock</a>
+ */
+public class ReleaseUtils
+{
+    private ReleaseUtils()
+    {
+        // nothing to see here
+    }
+
+    /**
+     * Merge two descriptors together. All SCM settings are overridden by the merge descriptor, as is the
+     * <code>workingDirectory</code> field. The <code>completedPhase</code> field is used as
+     * a default from the merge descriptor, but not overridden if it exists.
+     *
+     * @param mergeInto  the descriptor to be merged into
+     * @param toBeMerged the descriptor to merge into mergeInto
+     * @return ReleaseDescriptor the merged descriptor
+     */
+    public static ReleaseDescriptor merge( ReleaseDescriptor mergeInto, ReleaseDescriptor toBeMerged )
+    {
+        // Overridden if configured from the caller
+        mergeInto.setScmSourceUrl( mergeOverride( mergeInto.getScmSourceUrl(), toBeMerged.getScmSourceUrl() ) );
+        mergeInto.setScmReleaseLabel(
+            mergeOverride( mergeInto.getScmReleaseLabel(), toBeMerged.getScmReleaseLabel() ) );
+        mergeInto.setScmTagBase( mergeOverride( mergeInto.getScmTagBase(), toBeMerged.getScmTagBase() ) );
+        mergeInto.setScmUsername( mergeOverride( mergeInto.getScmUsername(), toBeMerged.getScmUsername() ) );
+        mergeInto.setScmPassword( mergeOverride( mergeInto.getScmPassword(), toBeMerged.getScmPassword() ) );
+        mergeInto.setScmPrivateKey( mergeOverride( mergeInto.getScmPrivateKey(), toBeMerged.getScmPrivateKey() ) );
+        mergeInto.setScmPrivateKeyPassPhrase(
+            mergeOverride( mergeInto.getScmPrivateKeyPassPhrase(), toBeMerged.getScmPrivateKeyPassPhrase() ) );
+        mergeInto.setAdditionalArguments(
+            mergeOverride( mergeInto.getAdditionalArguments(), toBeMerged.getAdditionalArguments() ) );
+        mergeInto.setPreparationGoals(
+            mergeOverride( mergeInto.getPreparationGoals(), toBeMerged.getPreparationGoals() ) );
+        mergeInto.setPomFileName( mergeOverride( mergeInto.getPomFileName(), toBeMerged.getPomFileName() ) );
+        mergeInto.setScmUseEditMode( toBeMerged.isScmUseEditMode() );
+        mergeInto.setAddSchema( toBeMerged.isAddSchema() );
+        mergeInto.setGenerateReleasePoms( toBeMerged.isGenerateReleasePoms() );
+        mergeInto.setInteractive( toBeMerged.isInteractive() );
+
+        // These must be overridden, as they are not stored
+        mergeInto.setWorkingDirectory(
+            mergeOverride( mergeInto.getWorkingDirectory(), toBeMerged.getWorkingDirectory() ) );
+
+        // Not overridden - not configured from caller
+        mergeInto.setCompletedPhase( mergeDefault( mergeInto.getCompletedPhase(), toBeMerged.getCompletedPhase() ) );
+
+        return mergeInto;
+    }
+
+    private static String mergeOverride( String thisValue, String mergeValue )
+    {
+        return mergeValue != null ? mergeValue : thisValue;
+    }
+
+    private static String mergeDefault( String thisValue, String mergeValue )
+    {
+        return thisValue != null ? thisValue : mergeValue;
+    }
+}

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

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractReleasePhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractReleasePhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractReleasePhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractReleasePhase.java Tue Aug 29 21:03:46 2006
@@ -16,9 +16,10 @@
  * limitations under the License.
  */
 
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
+import java.util.List;
+
 /**
  * Base class for all phases.
  *
@@ -28,7 +29,7 @@
     extends AbstractLogEnabled
     implements ReleasePhase
 {
-    public void clean( ReleaseConfiguration config )
+    public void clean( List reactorProjects )
     {
         // nothing to do by default
     }

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java Tue Aug 29 21:03:46 2006
@@ -23,7 +23,7 @@
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.plugins.release.ReleaseExecutionException;
 import org.apache.maven.plugins.release.ReleaseFailureException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 import org.apache.maven.plugins.release.scm.ReleaseScmCommandException;
 import org.apache.maven.plugins.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.plugins.release.scm.ScmRepositoryConfigurator;
@@ -35,6 +35,7 @@
 import org.apache.maven.scm.provider.ScmProvider;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
+import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
@@ -84,26 +85,28 @@
      */
     private String pomSuffix;
 
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        transform( releaseConfiguration, false );
+        transform( releaseDescriptor, settings, reactorProjects, false );
     }
 
-    private void transform( ReleaseConfiguration releaseConfiguration, boolean simulate )
+    private void transform( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+                            boolean simulate )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        for ( Iterator it = releaseConfiguration.getReactorProjects().iterator(); it.hasNext(); )
+        for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
         {
             MavenProject project = (MavenProject) it.next();
 
             getLogger().info( "Transforming '" + project.getName() + "'..." );
 
-            transformProject( project, releaseConfiguration, simulate );
+            transformProject( project, releaseDescriptor, settings, reactorProjects, simulate );
         }
     }
 
-    private void transformProject( MavenProject project, ReleaseConfiguration releaseConfiguration, boolean simulate )
+    private void transformProject( MavenProject project, ReleaseDescriptor releaseDescriptor, Settings settings,
+                                   List reactorProjects, boolean simulate )
         throws ReleaseExecutionException, ReleaseFailureException
     {
         Document document;
@@ -149,7 +152,7 @@
         ScmProvider provider;
         try
         {
-            scmRepository = scmRepositoryConfigurator.getConfiguredRepository( releaseConfiguration );
+            scmRepository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, settings );
 
             provider = scmRepositoryConfigurator.getRepositoryProvider( scmRepository );
         }
@@ -162,17 +165,17 @@
             throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
         }
 
-        transformDocument( project, document.getRootElement(), releaseConfiguration, scmRepository );
+        transformDocument( project, document.getRootElement(), releaseDescriptor, reactorProjects, scmRepository );
 
         if ( simulate )
         {
             File outputFile =
                 new File( project.getFile().getParentFile(), project.getFile().getName() + "." + pomSuffix );
-            writePom( outputFile, document, releaseConfiguration, project.getModelVersion(), intro, outtro );
+            writePom( outputFile, document, releaseDescriptor, project.getModelVersion(), intro, outtro );
         }
         else
         {
-            writePom( project.getFile(), document, releaseConfiguration, project.getModelVersion(), intro, outtro,
+            writePom( project.getFile(), document, releaseDescriptor, project.getModelVersion(), intro, outtro,
                       scmRepository, provider );
         }
     }
@@ -186,13 +189,13 @@
         }
     }
 
-    private void transformDocument( MavenProject project, Element rootElement,
-                                    ReleaseConfiguration releaseConfiguration, ScmRepository scmRepository )
+    private void transformDocument( MavenProject project, Element rootElement, ReleaseDescriptor releaseDescriptor,
+                                    List reactorProjects, ScmRepository scmRepository )
         throws ReleaseExecutionException, ReleaseFailureException
     {
         Namespace namespace = rootElement.getNamespace();
-        Map mappedVersions = getNextVersionMap( releaseConfiguration );
-        Map originalVersions = getOriginalVersionMap( releaseConfiguration );
+        Map mappedVersions = getNextVersionMap( releaseDescriptor );
+        Map originalVersions = getOriginalVersionMap( releaseDescriptor, reactorProjects );
 
         String parentVersion = rewriteParent( project, rootElement, namespace, mappedVersions, originalVersions );
 
@@ -242,7 +245,7 @@
             }
         }
 
-        transformScm( project, rootElement, namespace, releaseConfiguration, projectId, scmRepository );
+        transformScm( project, rootElement, namespace, releaseDescriptor, projectId, scmRepository );
     }
 
     private void rewriteVersion( Element rootElement, Namespace namespace, Map mappedVersions, String projectId,
@@ -437,17 +440,16 @@
         }
     }
 
-    private void writePom( File pomFile, Document document, ReleaseConfiguration releaseConfiguration,
-                           String modelVersion, String intro, String outtro, ScmRepository repository,
-                           ScmProvider provider )
+    private void writePom( File pomFile, Document document, ReleaseDescriptor releaseDescriptor, String modelVersion,
+                           String intro, String outtro, ScmRepository repository, ScmProvider provider )
         throws ReleaseExecutionException, ReleaseScmCommandException
     {
         try
         {
-            if ( releaseConfiguration.isUseEditMode() || provider.requiresEditMode() )
+            if ( releaseDescriptor.isScmUseEditMode() || provider.requiresEditMode() )
             {
-                EditScmResult result =
-                    provider.edit( repository, new ScmFileSet( releaseConfiguration.getWorkingDirectory(), pomFile ) );
+                EditScmResult result = provider.edit( repository, new ScmFileSet(
+                    new File( releaseDescriptor.getWorkingDirectory() ), pomFile ) );
 
                 if ( !result.isSuccess() )
                 {
@@ -460,16 +462,16 @@
             throw new ReleaseExecutionException( "An error occurred enabling edit mode: " + e.getMessage(), e );
         }
 
-        writePom( pomFile, document, releaseConfiguration, modelVersion, intro, outtro );
+        writePom( pomFile, document, releaseDescriptor, modelVersion, intro, outtro );
     }
 
-    private void writePom( File pomFile, Document document, ReleaseConfiguration releaseConfiguration,
-                           String modelVersion, String intro, String outtro )
+    private void writePom( File pomFile, Document document, ReleaseDescriptor releaseDescriptor, String modelVersion,
+                           String intro, String outtro )
         throws ReleaseExecutionException
     {
         Element rootElement = document.getRootElement();
 
-        if ( releaseConfiguration.isAddSchema() )
+        if ( releaseDescriptor.isAddSchema() )
         {
             Namespace pomNamespace = Namespace.getNamespace( "", "http://maven.apache.org/POM/" + modelVersion );
             rootElement.setNamespace( pomNamespace );
@@ -523,19 +525,19 @@
         }
     }
 
-    public void simulate( ReleaseConfiguration releaseConfiguration )
+    public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        transform( releaseConfiguration, true );
+        transform( releaseDescriptor, settings, reactorProjects, true );
     }
 
-    public void clean( ReleaseConfiguration config )
+    public void clean( List reactorProjects )
     {
-        super.clean( config );
+        super.clean( reactorProjects );
 
-        if ( config.getReactorProjects() != null )
+        if ( reactorProjects != null )
         {
-            for ( Iterator i = config.getReactorProjects().iterator(); i.hasNext(); )
+            for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
             {
                 MavenProject project = (MavenProject) i.next();
 
@@ -549,12 +551,12 @@
         }
     }
 
-    protected abstract Map getOriginalVersionMap( ReleaseConfiguration releaseConfiguration );
+    protected abstract Map getOriginalVersionMap( ReleaseDescriptor releaseDescriptor, List reactorProjects );
 
-    protected abstract Map getNextVersionMap( ReleaseConfiguration releaseConfiguration );
+    protected abstract Map getNextVersionMap( ReleaseDescriptor releaseDescriptor );
 
     protected abstract void transformScm( MavenProject project, Element rootElement, Namespace namespace,
-                                          ReleaseConfiguration releaseConfiguration, String projectId,
+                                          ReleaseDescriptor releaseDescriptor, String projectId,
                                           ScmRepository scmRepository )
         throws ReleaseExecutionException;
 

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java Tue Aug 29 21:03:46 2006
@@ -20,8 +20,9 @@
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.plugins.release.ReleaseExecutionException;
 import org.apache.maven.plugins.release.ReleaseFailureException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 
@@ -49,23 +50,22 @@
      */
     private Prompter prompter;
 
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
         getLogger().info( "Checking dependencies and plugins for snapshots ..." );
 
-        List reactorProjects = releaseConfiguration.getReactorProjects();
-        Map originalVersions = releaseConfiguration.getOriginalVersions();
+        Map originalVersions = releaseDescriptor.getOriginalVersions( reactorProjects );
 
         for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
         {
             MavenProject project = (MavenProject) i.next();
 
-            checkProject( project, originalVersions, releaseConfiguration );
+            checkProject( project, originalVersions, releaseDescriptor );
         }
     }
 
-    private void checkProject( MavenProject project, Map originalVersions, ReleaseConfiguration releaseConfiguration )
+    private void checkProject( MavenProject project, Map originalVersions, ReleaseDescriptor releaseDescriptor )
         throws ReleaseFailureException, ReleaseExecutionException
     {
         Set snapshotDependencies = new HashSet();
@@ -101,7 +101,7 @@
                 {
                     // It's a snapshot of the release plugin. Maybe just testing - ask
                     // By default, we fail as for any ohter plugin
-                    if ( releaseConfiguration.isInteractive() )
+                    if ( releaseDescriptor.isInteractive() )
                     {
                         try
                         {
@@ -183,11 +183,11 @@
             !artifact.getBaseVersion().equals( originalVersions.get( versionlessArtifactKey ) );
     }
 
-    public void simulate( ReleaseConfiguration releaseConfiguration )
+    public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
         // It makes no modifications, so simulate is the same as execute
-        execute( releaseConfiguration );
+        execute( releaseDescriptor, settings, reactorProjects );
     }
 
     public void setPrompter( Prompter prompter )

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java Tue Aug 29 21:03:46 2006
@@ -19,12 +19,13 @@
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.plugins.release.ReleaseExecutionException;
 import org.apache.maven.plugins.release.ReleaseFailureException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 import org.apache.maven.plugins.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.plugins.release.scm.ScmRepositoryConfigurator;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.manager.NoSuchScmProviderException;
 import org.apache.maven.scm.repository.ScmRepositoryException;
+import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.util.Iterator;
@@ -43,26 +44,26 @@
      */
     private ScmRepositoryConfigurator scmRepositoryConfigurator;
 
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
         // Currently, we don't deal with multiple SCM locations in a multiproject
-        if ( StringUtils.isEmpty( releaseConfiguration.getUrl() ) )
+        if ( StringUtils.isEmpty( releaseDescriptor.getScmSourceUrl() ) )
         {
-            MavenProject rootProject = (MavenProject) releaseConfiguration.getReactorProjects().get( 0 );
+            MavenProject rootProject = (MavenProject) reactorProjects.get( 0 );
             if ( rootProject != null && rootProject.getScm() != null )
             {
                 if ( rootProject.getScm().getDeveloperConnection() != null )
                 {
-                    releaseConfiguration.setUrl( rootProject.getScm().getDeveloperConnection() );
+                    releaseDescriptor.setScmSourceUrl( rootProject.getScm().getDeveloperConnection() );
                 }
                 else if ( rootProject.getScm().getConnection() != null )
                 {
-                    releaseConfiguration.setUrl( rootProject.getScm().getConnection() );
+                    releaseDescriptor.setScmSourceUrl( rootProject.getScm().getConnection() );
                 }
             }
 
-            if ( StringUtils.isEmpty( releaseConfiguration.getUrl() ) )
+            if ( StringUtils.isEmpty( releaseDescriptor.getScmSourceUrl() ) )
             {
                 throw new ReleaseFailureException(
                     "Missing required setting: scm connection or developerConnection must be specified." );
@@ -70,7 +71,7 @@
 
             try
             {
-                scmRepositoryConfigurator.getConfiguredRepository( releaseConfiguration );
+                scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, settings );
             }
             catch ( ScmRepositoryException e )
             {
@@ -83,7 +84,6 @@
             }
         }
 
-        List reactorProjects = releaseConfiguration.getReactorProjects();
         for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
         {
             MavenProject project = (MavenProject) it.next();
@@ -98,10 +98,10 @@
         }
     }
 
-    public void simulate( ReleaseConfiguration releaseConfiguration )
+    public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
         // It makes no modifications, so simulate is the same as execute
-        execute( releaseConfiguration );
+        execute( releaseDescriptor, settings, reactorProjects );
     }
 }

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/EndReleasePhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/EndReleasePhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/EndReleasePhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/EndReleasePhase.java Tue Aug 29 21:03:46 2006
@@ -18,7 +18,10 @@
 
 import org.apache.maven.plugins.release.ReleaseExecutionException;
 import org.apache.maven.plugins.release.ReleaseFailureException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.settings.Settings;
+
+import java.util.List;
 
 /**
  * Finalise release preparation so it can be flagged complete..
@@ -29,13 +32,13 @@
     extends AbstractReleasePhase
 {
 
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
         getLogger().info( "Release preparation complete." );
     }
 
-    public void simulate( ReleaseConfiguration releaseConfiguration )
+    public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
         getLogger().info( "Release preparation simulation complete." );

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java Tue Aug 29 21:03:46 2006
@@ -17,7 +17,10 @@
  */
 
 import org.apache.maven.plugins.release.ReleaseExecutionException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.settings.Settings;
+
+import java.util.List;
 
 /**
  * Generate release POMs.
@@ -27,10 +30,10 @@
 public class GenerateReleasePomsPhase
     extends AbstractReleasePhase
 {
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException
     {
-        if ( releaseConfiguration.isGenerateReleasePoms() )
+        if ( releaseDescriptor.isGenerateReleasePoms() )
         {
             getLogger().info( "Generating release POMs..." );
 
@@ -366,7 +369,7 @@
     }
 */
 
-    public void simulate( ReleaseConfiguration releaseConfiguration )
+    public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
     {
         // TODO [!]: implement
 

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/InputVariablesPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/InputVariablesPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/InputVariablesPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/InputVariablesPhase.java Tue Aug 29 21:03:46 2006
@@ -18,11 +18,14 @@
 
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.plugins.release.ReleaseExecutionException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 
+import java.util.List;
+
 /**
  * Input any variables that were not yet configured.
  *
@@ -41,26 +44,26 @@
         this.prompter = prompter;
     }
 
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException
     {
         // get the root project
-        MavenProject project = (MavenProject) releaseConfiguration.getReactorProjects().get( 0 );
+        MavenProject project = (MavenProject) reactorProjects.get( 0 );
 
-        String tag = releaseConfiguration.getReleaseLabel();
+        String tag = releaseDescriptor.getScmReleaseLabel();
 
         if ( tag == null )
         {
             // Must get default version from mapped versions, as the project will be the incorrect snapshot
             String key = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
-            String releaseVersion = (String) releaseConfiguration.getReleaseVersions().get( key );
+            String releaseVersion = (String) releaseDescriptor.getReleaseVersions().get( key );
             if ( releaseVersion == null )
             {
                 throw new ReleaseExecutionException( "Project tag cannot be selected if version is not yet mapped" );
             }
 
             String defaultTag = project.getArtifactId() + "-" + releaseVersion;
-            if ( releaseConfiguration.isInteractive() )
+            if ( releaseDescriptor.isInteractive() )
             {
                 try
                 {
@@ -77,15 +80,15 @@
             {
                 tag = defaultTag;
             }
-            releaseConfiguration.setReleaseLabel( tag );
+            releaseDescriptor.setScmReleaseLabel( tag );
         }
     }
 
-    public void simulate( ReleaseConfiguration releaseConfiguration )
+    public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException
     {
         // It makes no modifications, so simulate is the same as execute
-        execute( releaseConfiguration );
+        execute( releaseDescriptor, settings, reactorProjects );
     }
 
 }

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/MapVersionsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/MapVersionsPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/MapVersionsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/MapVersionsPhase.java Tue Aug 29 21:03:46 2006
@@ -18,15 +18,17 @@
 
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.plugins.release.ReleaseExecutionException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 import org.apache.maven.plugins.release.versions.DefaultVersionInfo;
 import org.apache.maven.plugins.release.versions.VersionInfo;
 import org.apache.maven.plugins.release.versions.VersionParseException;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 
 import java.util.Iterator;
+import java.util.List;
 
 /**
  * Map projects to their new versions after release / into the next development cycle.
@@ -51,10 +53,10 @@
         this.prompter = prompter;
     }
 
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException
     {
-        for ( Iterator i = releaseConfiguration.getReactorProjects().iterator(); i.hasNext(); )
+        for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
         {
             MavenProject project = (MavenProject) i.next();
 
@@ -68,7 +70,7 @@
             catch ( VersionParseException e )
             {
                 String msg = "Error parsing version, cannot determine next version: " + e.getMessage();
-                if ( releaseConfiguration.isInteractive() )
+                if ( releaseDescriptor.isInteractive() )
                 {
                     getLogger().warn( msg );
                     getLogger().debug( e.getMessage(), e );
@@ -90,13 +92,13 @@
                         nextVersion = version.getNextVersion().getSnapshotVersionString();
                     }
 
-                    if ( releaseConfiguration.isInteractive() )
+                    if ( releaseDescriptor.isInteractive() )
                     {
                         nextVersion = prompter.prompt( "What is the new development version for \"" +
                             project.getName() + "\"? (" + projectId + ")", nextVersion );
                     }
 
-                    releaseConfiguration.mapDevelopmentVersion( projectId, nextVersion );
+                    releaseDescriptor.mapDevelopmentVersion( projectId, nextVersion );
                 }
                 else
                 {
@@ -106,14 +108,14 @@
                         nextVersion = version.getReleaseVersionString();
                     }
 
-                    if ( releaseConfiguration.isInteractive() )
+                    if ( releaseDescriptor.isInteractive() )
                     {
                         nextVersion = prompter.prompt(
                             "What is the release version for \"" + project.getName() + "\"? (" + projectId + ")",
                             nextVersion );
                     }
 
-                    releaseConfiguration.mapReleaseVersion( projectId, nextVersion );
+                    releaseDescriptor.mapReleaseVersion( projectId, nextVersion );
                 }
             }
             catch ( PrompterException e )
@@ -123,11 +125,11 @@
         }
     }
 
-    public void simulate( ReleaseConfiguration releaseConfiguration )
+    public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException
     {
         // It makes no modifications, so simulate is the same as execute
-        execute( releaseConfiguration );
+        execute( releaseDescriptor, settings, reactorProjects );
     }
 
 }

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ReleasePhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ReleasePhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ReleasePhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ReleasePhase.java Tue Aug 29 21:03:46 2006
@@ -18,7 +18,10 @@
 
 import org.apache.maven.plugins.release.ReleaseExecutionException;
 import org.apache.maven.plugins.release.ReleaseFailureException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.settings.Settings;
+
+import java.util.List;
 
 /**
  * A phase in the release cycle.
@@ -35,27 +38,31 @@
     /**
      * Execute the phase.
      *
-     * @param releaseConfiguration the configuration to use
+     * @param releaseDescriptor the configuration to use
+     * @param settings          the settings.xml configuration
+     * @param reactorProjects   the reactor projects
      * @throws ReleaseExecutionException an exception during the execution of the phase
      * @throws ReleaseFailureException   a failure during the execution of the phase
      */
-    void execute( ReleaseConfiguration releaseConfiguration )
+    void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException;
 
     /**
      * Simulate the phase, but don't make any changes to the project.
      *
-     * @param releaseConfiguration the configuration to use
+     * @param releaseDescriptor the configuration to use
+     * @param settings          the settings.xml configuration
+     * @param reactorProjects   the reactor projects
      * @throws ReleaseExecutionException an exception during the execution of the phase
      * @throws ReleaseFailureException   a failure during the execution of the phase
      */
-    void simulate( ReleaseConfiguration releaseConfiguration )
+    void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException;
 
     /**
      * Clean up after a phase if it leaves any additional files in the checkout.
      *
-     * @param config the configuration to use
+     * @param reactorProjects the reactor projects
      */
-    void clean( ReleaseConfiguration config );
+    void clean( List reactorProjects );
 }

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java Tue Aug 29 21:03:46 2006
@@ -17,7 +17,10 @@
  */
 
 import org.apache.maven.plugins.release.ReleaseExecutionException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.settings.Settings;
+
+import java.util.List;
 
 /**
  * Remove release POMs.
@@ -27,7 +30,7 @@
 public class RemoveReleasePomsPhase
     extends AbstractReleasePhase
 {
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException
     {
         // TODO [!]: implement
@@ -79,9 +82,8 @@
 */
     }
 
-    public void simulate( ReleaseConfiguration releaseConfiguration )
+    public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
     {
         // TODO [!]: implement
-
     }
-}
+}
\ No newline at end of file

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForDevelopmentPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForDevelopmentPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForDevelopmentPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForDevelopmentPhase.java Tue Aug 29 21:03:46 2006
@@ -18,13 +18,14 @@
 
 import org.apache.maven.model.Scm;
 import org.apache.maven.plugins.release.ReleaseExecutionException;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 import org.apache.maven.plugins.release.scm.ScmTranslator;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.jdom.Element;
 import org.jdom.Namespace;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -41,8 +42,7 @@
     private Map scmTranslators;
 
     protected void transformScm( MavenProject project, Element rootElement, Namespace namespace,
-                                 ReleaseConfiguration releaseConfiguration, String projectId,
-                                 ScmRepository scmRepository )
+                                 ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository )
         throws ReleaseExecutionException
     {
         // If SCM is null in original model, it is inherited, no mods needed
@@ -51,7 +51,7 @@
             Element scmRoot = rootElement.getChild( "scm", namespace );
             if ( scmRoot != null )
             {
-                Map originalScmInfo = releaseConfiguration.getOriginalScmInfo();
+                Map originalScmInfo = releaseDescriptor.getOriginalScmInfo();
                 // check containsKey, not == null, as we store null as a value
                 if ( !originalScmInfo.containsKey( projectId ) )
                 {
@@ -85,13 +85,13 @@
         }
     }
 
-    protected Map getOriginalVersionMap( ReleaseConfiguration releaseConfiguration )
+    protected Map getOriginalVersionMap( ReleaseDescriptor releaseDescriptor, List reactorProjects )
     {
-        return releaseConfiguration.getReleaseVersions();
+        return releaseDescriptor.getReleaseVersions();
     }
 
-    protected Map getNextVersionMap( ReleaseConfiguration releaseConfiguration )
+    protected Map getNextVersionMap( ReleaseDescriptor releaseDescriptor )
     {
-        return releaseConfiguration.getDevelopmentVersions();
+        return releaseDescriptor.getDevelopmentVersions();
     }
 }