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 [2/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...

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhase.java Tue Aug 29 21:03:46 2006
@@ -18,13 +18,14 @@
 
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.model.Scm;
-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 )
     {
         // If SCM is null in original model, it is inherited, no mods needed
         if ( project.getScm() != null )
@@ -50,13 +50,13 @@
             Element scmRoot = rootElement.getChild( "scm", namespace );
             if ( scmRoot != null )
             {
-                releaseConfiguration.mapOriginalScmInfo( projectId, project.getScm() );
+                releaseDescriptor.mapOriginalScmInfo( projectId, project.getScm() );
 
-                translateScm( project, releaseConfiguration, scmRoot, namespace, scmRepository );
+                translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository );
             }
             else
             {
-                releaseConfiguration.mapOriginalScmInfo( projectId, null );
+                releaseDescriptor.mapOriginalScmInfo( projectId, null );
 
                 MavenProject parent = project.getParent();
                 if ( parent != null )
@@ -64,13 +64,13 @@
                     // If the SCM element is not present, only add it if the parent was not mapped (ie, it's external to
                     // the release process and so has not been modified, so the values will not be correct on the tag),
                     String parentId = ArtifactUtils.versionlessKey( parent.getGroupId(), parent.getArtifactId() );
-                    if ( !releaseConfiguration.getOriginalScmInfo().containsKey( parentId ) )
+                    if ( !releaseDescriptor.getOriginalScmInfo().containsKey( parentId ) )
                     {
                         // we need to add it, since it has changed from the inherited value
                         scmRoot = new Element( "scm" );
                         scmRoot.addContent( "\n  " );
 
-                        if ( translateScm( project, releaseConfiguration, scmRoot, namespace, scmRepository ) )
+                        if ( translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository ) )
                         {
                             rootElement.addContent( "\n  " ).addContent( scmRoot ).addContent( "\n" );
                         }
@@ -80,7 +80,7 @@
         }
     }
 
-    private boolean translateScm( MavenProject project, ReleaseConfiguration releaseConfiguration, Element scmRoot,
+    private boolean translateScm( MavenProject project, ReleaseDescriptor releaseDescriptor, Element scmRoot,
                                   Namespace namespace, ScmRepository scmRepository )
     {
         ScmTranslator translator = (ScmTranslator) scmTranslators.get( scmRepository.getProvider() );
@@ -88,8 +88,8 @@
         if ( translator != null )
         {
             Scm scm = project.getScm();
-            String tag = releaseConfiguration.getReleaseLabel();
-            String tagBase = releaseConfiguration.getTagBase();
+            String tag = releaseDescriptor.getScmReleaseLabel();
+            String tagBase = releaseDescriptor.getScmTagBase();
 
             // TODO: svn utils should take care of prepending this
             if ( tagBase != null )
@@ -119,7 +119,7 @@
             if ( scm.getUrl() != null )
             {
                 // use original tag base without protocol
-                String value = translator.translateTagUrl( scm.getUrl(), tag, releaseConfiguration.getTagBase() );
+                String value = translator.translateTagUrl( scm.getUrl(), tag, releaseDescriptor.getScmTagBase() );
                 if ( !value.equals( scm.getUrl() ) )
                 {
                     rewriteElement( "url", value, scmRoot, namespace );
@@ -144,13 +144,13 @@
         return result;
     }
 
-    protected Map getOriginalVersionMap( ReleaseConfiguration releaseConfiguration )
+    protected Map getOriginalVersionMap( ReleaseDescriptor releaseDescriptor, List reactorProjects )
     {
-        return releaseConfiguration.getOriginalVersions();
+        return releaseDescriptor.getOriginalVersions( reactorProjects );
     }
 
-    protected Map getNextVersionMap( ReleaseConfiguration releaseConfiguration )
+    protected Map getNextVersionMap( ReleaseDescriptor releaseDescriptor )
     {
-        return releaseConfiguration.getReleaseVersions();
+        return releaseDescriptor.getReleaseVersions();
     }
-}
+}
\ No newline at end of file

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java Tue Aug 29 21:03:46 2006
@@ -17,11 +17,15 @@
  */
 
 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.exec.MavenExecutor;
 import org.apache.maven.plugins.release.exec.MavenExecutorException;
+import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.util.StringUtils;
 
+import java.io.File;
+import java.util.List;
+
 /**
  * Run the integration tests for the project to verify that it builds before committing.
  *
@@ -35,19 +39,19 @@
      */
     private MavenExecutor mavenExecutor;
 
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException
     {
         try
         {
-            String goals = releaseConfiguration.getPreparationGoals();
+            String goals = releaseDescriptor.getPreparationGoals();
             if ( !StringUtils.isEmpty( goals ) )
             {
                 getLogger().info( "Executing preparation goals '" + goals + "'..." );
 
-                mavenExecutor.executeGoals( releaseConfiguration.getWorkingDirectory(), goals,
-                                            releaseConfiguration.isInteractive(),
-                                            releaseConfiguration.getAdditionalArguments() );
+                mavenExecutor.executeGoals( new File( releaseDescriptor.getWorkingDirectory() ), goals,
+                                            releaseDescriptor.isInteractive(),
+                                            releaseDescriptor.getAdditionalArguments() );
             }
         }
         catch ( MavenExecutorException e )
@@ -56,13 +60,13 @@
         }
     }
 
-    public void simulate( ReleaseConfiguration releaseConfiguration )
+    public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException
     {
         getLogger().info(
             "Executing preparation goals - since this is simulation mode it is running against the original project, not the rewritten ones" );
 
-        execute( releaseConfiguration );
+        execute( releaseDescriptor, settings, reactorProjects );
     }
 
     public void setMavenExecutor( MavenExecutor mavenExecutor )

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java Tue Aug 29 21:03:46 2006
@@ -18,7 +18,7 @@
 
 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;
@@ -30,7 +30,9 @@
 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 java.io.File;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -58,7 +60,7 @@
     private Set excludedFiles = new HashSet( Arrays.asList(
         new String[]{"pom.xml", "pom.xml.backup", "pom.xml.tag", "pom.xml.next", "release.properties"} ) );
 
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
         getLogger().info( "Verifying that there are no local modifications..." );
@@ -67,14 +69,14 @@
         ScmProvider provider;
         try
         {
-            repository = scmRepositoryConfigurator.getConfiguredRepository( releaseConfiguration );
+            repository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, settings );
 
             provider = scmRepositoryConfigurator.getRepositoryProvider( repository );
         }
         catch ( ScmRepositoryException e )
         {
-            throw new ReleaseScmRepositoryException( e.getMessage() + " for URL: " + releaseConfiguration.getUrl(),
-                                                     e.getValidationMessages() );
+            throw new ReleaseScmRepositoryException(
+                e.getMessage() + " for URL: " + releaseDescriptor.getScmSourceUrl(), e.getValidationMessages() );
         }
         catch ( NoSuchScmProviderException e )
         {
@@ -84,7 +86,8 @@
         StatusScmResult result;
         try
         {
-            result = provider.status( repository, new ScmFileSet( releaseConfiguration.getWorkingDirectory() ) );
+            result =
+                provider.status( repository, new ScmFileSet( new File( releaseDescriptor.getWorkingDirectory() ) ) );
         }
         catch ( ScmException e )
         {
@@ -131,10 +134,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/ScmCommitPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java Tue Aug 29 21:03:46 2006
@@ -18,7 +18,7 @@
 
 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;
@@ -30,6 +30,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 java.io.File;
 import java.text.MessageFormat;
@@ -56,10 +57,10 @@
      */
     private String messageFormat;
 
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        validateConfiguration( releaseConfiguration );
+        validateConfiguration( releaseDescriptor );
 
         getLogger().info( "Checking in modified POMs..." );
 
@@ -67,7 +68,7 @@
         ScmProvider provider;
         try
         {
-            repository = scmRepositoryConfigurator.getConfiguredRepository( releaseConfiguration );
+            repository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, settings );
 
             provider = scmRepositoryConfigurator.getRepositoryProvider( repository );
         }
@@ -80,14 +81,14 @@
             throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
         }
 
-        Collection pomFiles = createPomFiles( releaseConfiguration.getReactorProjects() );
+        Collection pomFiles = createPomFiles( reactorProjects );
         File[] files = (File[]) pomFiles.toArray( new File[pomFiles.size()] );
 
         CheckInScmResult result;
         try
         {
-            ScmFileSet fileSet = new ScmFileSet( releaseConfiguration.getWorkingDirectory(), files );
-            result = provider.checkIn( repository, fileSet, null, createMessage( releaseConfiguration ) );
+            ScmFileSet fileSet = new ScmFileSet( new File( releaseDescriptor.getWorkingDirectory() ), files );
+            result = provider.checkIn( repository, fileSet, null, createMessage( releaseDescriptor ) );
         }
         catch ( ScmException e )
         {
@@ -99,28 +100,28 @@
         }
     }
 
-    public void simulate( ReleaseConfiguration releaseConfiguration )
+    public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        validateConfiguration( releaseConfiguration );
+        validateConfiguration( releaseDescriptor );
 
-        Collection pomFiles = createPomFiles( releaseConfiguration.getReactorProjects() );
+        Collection pomFiles = createPomFiles( reactorProjects );
         getLogger().info( "Full run would be checking in " + pomFiles.size() + " files with message: '" +
-            createMessage( releaseConfiguration ) + "'" );
+            createMessage( releaseDescriptor ) + "'" );
     }
 
-    private static void validateConfiguration( ReleaseConfiguration releaseConfiguration )
+    private static void validateConfiguration( ReleaseDescriptor releaseDescriptor )
         throws ReleaseFailureException
     {
-        if ( releaseConfiguration.getReleaseLabel() == null )
+        if ( releaseDescriptor.getScmReleaseLabel() == null )
         {
             throw new ReleaseFailureException( "A release label is required for committing" );
         }
     }
 
-    private String createMessage( ReleaseConfiguration releaseConfiguration )
+    private String createMessage( ReleaseDescriptor releaseDescriptor )
     {
-        return MessageFormat.format( messageFormat, new Object[]{releaseConfiguration.getReleaseLabel()} );
+        return MessageFormat.format( messageFormat, new Object[]{releaseDescriptor.getScmReleaseLabel()} );
     }
 
     private static Collection createPomFiles( List reactorProjects )

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java Tue Aug 29 21:03:46 2006
@@ -18,7 +18,7 @@
 
 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;
@@ -29,6 +29,10 @@
 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 java.io.File;
+import java.util.List;
 
 /**
  * Tag the SCM repository after committing the release.
@@ -43,18 +47,18 @@
      */
     private ScmRepositoryConfigurator scmRepositoryConfigurator;
 
-    public void execute( ReleaseConfiguration releaseConfiguration )
+    public void execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        validateConfiguration( releaseConfiguration );
+        validateConfiguration( releaseDescriptor );
 
-        getLogger().info( "Tagging release with the label " + releaseConfiguration.getReleaseLabel() + "..." );
+        getLogger().info( "Tagging release with the label " + releaseDescriptor.getScmReleaseLabel() + "..." );
 
         ScmRepository repository;
         ScmProvider provider;
         try
         {
-            repository = scmRepositoryConfigurator.getConfiguredRepository( releaseConfiguration );
+            repository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, settings );
 
             provider = scmRepositoryConfigurator.getRepositoryProvider( repository );
         }
@@ -71,8 +75,8 @@
         try
         {
             // TODO: want includes/excludes?
-            ScmFileSet fileSet = new ScmFileSet( releaseConfiguration.getWorkingDirectory() );
-            result = provider.tag( repository, fileSet, releaseConfiguration.getReleaseLabel() );
+            ScmFileSet fileSet = new ScmFileSet( new File( releaseDescriptor.getWorkingDirectory() ) );
+            result = provider.tag( repository, fileSet, releaseDescriptor.getScmReleaseLabel() );
         }
         catch ( ScmException e )
         {
@@ -85,19 +89,19 @@
         }
     }
 
-    public void simulate( ReleaseConfiguration releaseConfiguration )
+    public void simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        validateConfiguration( releaseConfiguration );
+        validateConfiguration( releaseDescriptor );
 
-        getLogger().info( "Full run would be tagging " + releaseConfiguration.getWorkingDirectory() + " with label: '" +
-            releaseConfiguration.getReleaseLabel() + "'" );
+        getLogger().info( "Full run would be tagging " + releaseDescriptor.getWorkingDirectory() + " with label: '" +
+            releaseDescriptor.getScmReleaseLabel() + "'" );
     }
 
-    private static void validateConfiguration( ReleaseConfiguration releaseConfiguration )
+    private static void validateConfiguration( ReleaseDescriptor releaseDescriptor )
         throws ReleaseFailureException
     {
-        if ( releaseConfiguration.getReleaseLabel() == null )
+        if ( releaseDescriptor.getScmReleaseLabel() == null )
         {
             throw new ReleaseFailureException( "A release label is required for committing" );
         }

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/DefaultScmRepositoryConfigurator.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/DefaultScmRepositoryConfigurator.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/DefaultScmRepositoryConfigurator.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/DefaultScmRepositoryConfigurator.java Tue Aug 29 21:03:46 2006
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 import org.apache.maven.scm.manager.NoSuchScmProviderException;
 import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.ScmProvider;
@@ -44,14 +44,14 @@
      */
     private ScmManager scmManager;
 
-    public ScmRepository getConfiguredRepository( ReleaseConfiguration releaseConfiguration )
+    public ScmRepository getConfiguredRepository( ReleaseDescriptor releaseDescriptor, Settings settings )
         throws ScmRepositoryException, NoSuchScmProviderException
     {
-        String username = releaseConfiguration.getUsername();
-        String password = releaseConfiguration.getPassword();
-        String url = releaseConfiguration.getUrl();
-        String privateKey = releaseConfiguration.getPrivateKey();
-        String passphrase = releaseConfiguration.getPassphrase();
+        String username = releaseDescriptor.getScmUsername();
+        String password = releaseDescriptor.getScmPassword();
+        String url = releaseDescriptor.getScmSourceUrl();
+        String privateKey = releaseDescriptor.getScmPrivateKey();
+        String passphrase = releaseDescriptor.getScmPrivateKeyPassPhrase();
 
         ScmRepository repository = scmManager.makeScmRepository( url );
 
@@ -70,7 +70,6 @@
                 host += ":" + port;
             }
 
-            Settings settings = releaseConfiguration.getSettings();
             if ( settings != null )
             {
                 // TODO: this is a bit dodgy - id is not host, but since we don't have a <host> field we make an assumption
@@ -128,7 +127,7 @@
         {
             SvnScmProviderRepository svnRepo = (SvnScmProviderRepository) repository.getProviderRepository();
 
-            String tagBase = releaseConfiguration.getTagBase();
+            String tagBase = releaseDescriptor.getScmTagBase();
             if ( !StringUtils.isEmpty( tagBase ) )
             {
                 svnRepo.setTagBase( tagBase );

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/ScmRepositoryConfigurator.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/ScmRepositoryConfigurator.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/ScmRepositoryConfigurator.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/ScmRepositoryConfigurator.java Tue Aug 29 21:03:46 2006
@@ -16,11 +16,12 @@
  * limitations under the License.
  */
 
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 import org.apache.maven.scm.manager.NoSuchScmProviderException;
 import org.apache.maven.scm.provider.ScmProvider;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
+import org.apache.maven.settings.Settings;
 
 /**
  * Configure an SCM repository using release configuration.
@@ -37,12 +38,13 @@
     /**
      * Construct a configured SCM repository from a release configuration.
      *
-     * @param releaseConfiguration the configuration to insert into the repository
+     * @param releaseDescriptor the configuration to insert into the repository
+     * @param settings          the settings.xml configuraiton
      * @return the repository created
      * @throws ScmRepositoryException     if it is not possible to create a suitable SCM repository
      * @throws NoSuchScmProviderException if the requested SCM provider is not available
      */
-    ScmRepository getConfiguredRepository( ReleaseConfiguration releaseConfiguration )
+    ScmRepository getConfiguredRepository( ReleaseDescriptor releaseDescriptor, Settings settings )
         throws ScmRepositoryException, NoSuchScmProviderException;
 
     /**

Modified: maven/plugins/trunk/maven-release-plugin/src/main/mdo/release-descriptor.mdo
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/mdo/release-descriptor.mdo?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/mdo/release-descriptor.mdo (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/mdo/release-descriptor.mdo Tue Aug 29 21:03:46 2006
@@ -11,36 +11,35 @@
   <defaults>
     <default>
       <key>package</key>
-      <value>org.apache.maven.plugins.release.model</value>
+      <value>org.apache.maven.plugins.release.config</value>
     </default>
   </defaults>
   <classes>
     <class rootElement="true">
-      <name>Release</name>
+      <name>ReleaseDescriptor</name>
       <version>1.0.0+</version>
       <fields>
-        <field>
-          <name>id</name>
-          <version>1.0.0</version>
-          <type>int</type>
-          <identifier>true</identifier>
-          <description>
-            The id of this release to
-          </description>
-        </field>
+        <!-- Descriptive Information -->
         <field>
           <name>name</name>
           <version>1.0.0</version>
           <type>String</type>
+          <description>
+            The name of this release configuration
+          </description>
         </field>
         <field>
           <name>description</name>
           <version>1.0.0</version>
           <type>String</type>
+          <description>
+            The description of this release configuration
+          </description>
         </field>
+        <!-- Settings needs to be resolved -->
         <!-- SCM Information -->
         <field>
-          <name>scmSource</name>
+          <name>scmSourceUrl</name>
           <version>1.0.0</version>
           <type>String</type>
           <description>
@@ -49,16 +48,16 @@
           </description>
         </field>
         <field>
-          <name>scmTargetBase</name>
+          <name>scmTagBase</name>
           <version>1.0.0</version>
           <type>String</type>
           <description>
-            scm tag base: where you are going to put your tagged sources
-            Example https\://svn.apache.org/repos/asf/maven/plugins/tags
+            Where you are going to put your tagged sources
+            Example https://svn.apache.org/repos/asf/maven/plugins/tags
           </description>
         </field>
         <field>
-          <name>targetIdentifier</name>
+          <name>scmReleaseLabel</name>
           <version>1.0.0</version>
           <type>String</type>
           <description>
@@ -66,6 +65,152 @@
             Example: maven-release-plugin-2.0
           </description>
         </field>
+        <field>
+          <name>scmUsername</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>
+            The user name to interact with the scm
+          </description>
+        </field>
+        <field>
+          <name>scmPassword</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>
+            The password for the user interacting with the scm
+          </description>
+        </field>
+        <field>
+          <name>scmPrivateKey</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>
+            Private key for an SSH based SCM repository.
+          </description>
+        </field>
+        <field>
+          <name>scmPrivateKeyPassPhrase</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>
+            Pass phrase for the private key.
+          </description>
+        </field>
+        <field>
+          <name>scmUseEditMode</name>
+          <version>1.0.0</version>
+          <type>boolean</type>
+          <description>
+            Whether to use edit mode when making SCM modifications. This setting is disregarded
+            if the SCM does not support edit mode, or if edit mode is compulsory for the given SCM.
+          </description>
+        </field>
+        <!-- Maven Information -->
+        <field>
+          <name>releaseVersions</name>
+          <version>1.0.0</version>
+          <type>Map</type>
+          <association stash.keyType="String">
+            <type>String</type>
+            <multiplicity>*</multiplicity>
+          </association>
+          <description>
+            A map of projects to versions to use when releasing the given projects.
+          </description>
+        </field>
+        <field>
+          <name>developmentVersions</name>
+          <version>1.0.0</version>
+          <type>Map</type>
+          <association stash.keyType="String">
+            <type>String</type>
+            <multiplicity>*</multiplicity>
+          </association>
+          <description>
+            A map of projects to versions to use when moving the given projects back into devlopment after release.
+          </description>
+        </field>
+        <field>
+          <name>originalScmInfo</name>
+          <version>1.0.0</version>
+          <type>Map</type>
+          <association stash.keyType="String">
+            <type>String</type>
+            <multiplicity>*</multiplicity>
+          </association>
+          <description>
+            A map of projects to original SCM information.
+          </description>
+        </field>
+        <field>
+          <name>workingDirectory</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>
+            The directory where the release is performed.
+          </description>
+        </field>
+        <field>
+          <name>completedPhase</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>
+            The last completed phase.
+          </description>
+        </field>
+        <field>
+          <name>addSchema</name>
+          <version>1.0.0</version>
+          <type>boolean</type>
+          <description>
+            <![CDATA[Whether to add the model schema to the top of the rewritten POM if it wasn't there already.
+            If <code>false</code> then the root element will remain untouched.]]>
+          </description>
+        </field>
+        <field>
+          <name>generateReleasePoms</name>
+          <version>1.0.0</version>
+          <type>boolean</type>
+          <description>
+            Whether to generate release POMs.
+          </description>
+        </field>
+        <field>
+          <name>interactive</name>
+          <version>1.0.0</version>
+          <type>boolean</type>
+          <defaultValue>true</defaultValue>
+          <description>
+            Whether the release process is interactive and the release manager should be prompted to
+            confirm values, or whether the defaults are used regardless.
+          </description>
+        </field>
+        <field>
+          <name>additionalArguments</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>
+            Additional arguments to pass to any executed Maven process.
+          </description>
+        </field>
+        <field>
+          <name>pomFileName</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>
+            The file name of the POM to pass to any executed Maven process.
+          </description>
+        </field>
+        <field>
+          <name>preparationGoals</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>
+            The goals to execute in preparation for the release.
+          </description>
+        </field>
+
         <!-- Announcement Information
 
         Announcement related info, this can be a second part of the process.
@@ -77,6 +222,286 @@
 
         -->
       </fields>
+
+      <!-- Code Segments -->
+      <codeSegments>
+        <codeSegment>
+          <version>1.0.0</version>
+          <code><![CDATA[
+    /**
+     * Map a given project to a specified version from when it is released.
+     *
+     * @param projectId   the project's group and artifact ID
+     * @param nextVersion the version to map to
+     */
+    public void mapReleaseVersion( String projectId, String nextVersion )
+    {
+        if (releaseVersions == null) {
+            releaseVersions = new java.util.HashMap();
+        } else {
+            assert !releaseVersions.containsKey( projectId );
+        }
+
+        releaseVersions.put( projectId, nextVersion );
+    }
+
+    /**
+     * Map a given project to a specified version from when it is incremented and placed back into development.
+     *
+     * @param projectId   the project's group and artifact ID
+     * @param nextVersion the version to map to
+     */
+    public void mapDevelopmentVersion( String projectId, String nextVersion )
+    {
+        if (developmentVersions == null) {
+            developmentVersions = new java.util.HashMap();
+        } else {
+            assert !developmentVersions.containsKey( projectId );
+        }
+
+        developmentVersions.put( projectId, nextVersion );
+    }
+
+    /**
+     * Map a given project to a specified set of SCM information.
+     *
+     * @param projectId the project's group and artifact ID
+     * @param scm       the original SCM information to store
+     */
+    public void mapOriginalScmInfo( String projectId, org.apache.maven.model.Scm scm )
+    {
+        if (originalScmInfo == null) {
+            originalScmInfo = new java.util.HashMap();
+        } else {
+            assert !originalScmInfo.containsKey( projectId );
+        }
+
+        originalScmInfo.put( projectId, scm );
+    }
+
+    /**
+     * A map of projects to original versions before any transformation.
+     */
+    private Map originalVersions;
+
+    /**
+     * Retrieve the original version map, before transformation, keyed by project's versionless identifier.
+     *
+     * @param reactorProjects The reactor projects.
+     *
+     * @return the map of project IDs to versions.
+     */
+    public synchronized Map getOriginalVersions(List reactorProjects)
+    {
+        if ( originalVersions == null )
+        {
+            originalVersions = new HashMap();
+            for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
+            {
+                org.apache.maven.project.MavenProject project = (org.apache.maven.project.MavenProject) i.next();
+                originalVersions.put( org.apache.maven.artifact.ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() ),
+                                      project.getVersion() );
+            }
+        }
+        return originalVersions;
+    }
+
+    public boolean equals( Object obj )
+    {
+        if ( this == obj )
+        {
+            return true;
+        }
+        if ( obj == null || getClass() != obj.getClass() )
+        {
+            return false;
+        }
+
+        ReleaseDescriptor that = (ReleaseDescriptor) obj;
+
+        if ( addSchema != that.addSchema )
+        {
+            return false;
+        }
+        if ( generateReleasePoms != that.generateReleasePoms )
+        {
+            return false;
+        }
+        if ( interactive != that.interactive )
+        {
+            return false;
+        }
+        if ( scmUseEditMode != that.scmUseEditMode )
+        {
+            return false;
+        }
+        if ( completedPhase != null ? !completedPhase.equals( that.completedPhase ) : that.completedPhase != null )
+        {
+            return false;
+        }
+        if ( ( developmentVersions == null || ( developmentVersions != null && developmentVersions.size() == 0) ) &&
+            ( that.developmentVersions == null || ( that.developmentVersions != null && that.developmentVersions.size() == 0) ) ) {
+            // Do nothing.  This is a Modello workaround
+        } else {
+            if ( developmentVersions != null ? !developmentVersions.equals( that.developmentVersions )
+                : that.developmentVersions != null )
+            {
+                return false;
+            }
+        }
+        if ( ( originalScmInfo == null || (originalScmInfo != null && originalScmInfo.size() == 0 ) ) &&
+            ( that.originalScmInfo == null || ( that.originalScmInfo != null && that.originalScmInfo.size() == 0 ) ) ) {
+            // Do nothing.  This is a Modello workaround
+        } else {
+            if ( originalScmInfo != null ? !compareScmCollections( that.originalScmInfo ) : that.originalScmInfo != null )
+            {
+                return false;
+            }
+        }
+        if ( ( releaseVersions == null || ( releaseVersions != null && releaseVersions.size() == 0 ) ) &&
+            ( that.releaseVersions == null || ( that.releaseVersions != null && that.releaseVersions.size() == 0 ) ) ) {
+            // Do nothing.  This is a Modello workaround
+        } else {
+            if ( releaseVersions != null ? !releaseVersions.equals( that.releaseVersions ) : that.releaseVersions != null )
+            {
+                return false;
+            }
+        }
+        if ( additionalArguments != null ? !additionalArguments.equals( that.additionalArguments )
+            : that.additionalArguments != null )
+        {
+            return false;
+        }
+        if ( preparationGoals != null ? !preparationGoals.equals( that.preparationGoals )
+            : that.preparationGoals != null )
+        {
+            return false;
+        }
+        if ( pomFileName != null ? !pomFileName.equals( that.pomFileName ) : that.pomFileName != null )
+        {
+            return false;
+        }
+        if ( scmPrivateKeyPassPhrase != null ? !scmPrivateKeyPassPhrase.equals( that.scmPrivateKeyPassPhrase ) : that.scmPrivateKeyPassPhrase != null )
+        {
+            return false;
+        }
+        if ( scmPassword != null ? !scmPassword.equals( that.scmPassword ) : that.scmPassword != null )
+        {
+            return false;
+        }
+        if ( scmPrivateKey != null ? !scmPrivateKey.equals( that.scmPrivateKey ) : that.scmPrivateKey != null )
+        {
+            return false;
+        }
+        if ( scmReleaseLabel != null ? !scmReleaseLabel.equals( that.scmReleaseLabel ) : that.scmReleaseLabel != null )
+        {
+            return false;
+        }
+        if ( scmTagBase != null ? !scmTagBase.equals( that.scmTagBase ) : that.scmTagBase != null )
+        {
+            return false;
+        }
+        if ( scmSourceUrl != null ? !scmSourceUrl.equals( that.scmSourceUrl ) : that.scmSourceUrl != null )
+        {
+            return false;
+        }
+        if ( scmUsername != null ? !scmUsername.equals( that.scmUsername ) : that.scmUsername != null )
+        {
+            return false;
+        }
+        if ( workingDirectory != null ? !workingDirectory.equals( that.workingDirectory ) : that.workingDirectory != null )
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    private boolean compareScmCollections( Map that )
+    {
+        // Must manually compare as Scm doesn't have an equals method
+        if (that == null && originalScmInfo == null) {
+            return true;
+        }
+
+        if ( ( that == null && originalScmInfo != null ) || ( that != null && originalScmInfo == null ) ) {
+            return false;
+        }
+
+        if ( that.size() != originalScmInfo.size() )
+        {
+            return false;
+        }
+
+        for ( Iterator i = originalScmInfo.entrySet().iterator(); i.hasNext(); )
+        {
+            Map.Entry entry = (Map.Entry) i.next();
+
+            org.apache.maven.model.Scm thatScm = (org.apache.maven.model.Scm) that.get( entry.getKey() );
+
+            org.apache.maven.model.Scm thisScm = (org.apache.maven.model.Scm) entry.getValue();
+            if ( thatScm == null && thisScm == null )
+            {
+                return true;
+            }
+            else if ( thatScm == null )
+            {
+                return false;
+            }
+            else if ( thisScm == null )
+            {
+                return true;
+            }
+
+            if ( thisScm.getConnection() != null ? !thisScm.getConnection().equals( thatScm.getConnection() )
+                : thatScm.getConnection() != null )
+            {
+                return false;
+            }
+            if ( thisScm.getDeveloperConnection() != null ? !thisScm.getDeveloperConnection().equals(
+                thatScm.getDeveloperConnection() ) : thatScm.getDeveloperConnection() != null )
+            {
+                return false;
+            }
+            if ( thisScm.getUrl() != null ? !thisScm.getUrl().equals( thatScm.getUrl() ) : thatScm.getUrl() != null )
+            {
+                return false;
+            }
+            if ( thisScm.getTag() != null ? !thisScm.getTag().equals( thatScm.getTag() ) : thatScm.getTag() != null )
+            {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    public int hashCode()
+    {
+        int result = completedPhase != null ? completedPhase.hashCode() : 0;
+        result = 29 * result + ( scmReleaseLabel != null ? scmReleaseLabel.hashCode() : 0 );
+        result = 29 * result + ( additionalArguments != null ? additionalArguments.hashCode() : 0 );
+        result = 29 * result + ( preparationGoals != null ? preparationGoals.hashCode() : 0 );
+        result = 29 * result + ( pomFileName != null ? pomFileName.hashCode() : 0 );
+        result = 29 * result + ( scmTagBase != null ? scmTagBase.hashCode() : 0 );
+        result = 29 * result + ( scmUsername != null ? scmUsername.hashCode() : 0 );
+        result = 29 * result + ( scmPassword != null ? scmPassword.hashCode() : 0 );
+        result = 29 * result + ( scmSourceUrl != null ? scmSourceUrl.hashCode() : 0 );
+        result = 29 * result + ( scmPrivateKey != null ? scmPrivateKey.hashCode() : 0 );
+        result = 29 * result + ( scmPrivateKeyPassPhrase != null ? scmPrivateKeyPassPhrase.hashCode() : 0 );
+        result = 29 * result + ( workingDirectory != null ? workingDirectory.hashCode() : 0 );
+        result = 29 * result + ( scmUseEditMode ? 1 : 0 );
+        result = 29 * result + ( addSchema ? 1 : 0 );
+        result = 29 * result + ( generateReleasePoms ? 1 : 0 );
+        result = 29 * result + ( interactive ? 1 : 0 );
+        result = 29 * result + ( releaseVersions != null ? releaseVersions.hashCode() : 0 );
+        result = 29 * result + ( developmentVersions != null ? developmentVersions.hashCode() : 0 );
+        result = 29 * result + ( originalScmInfo != null ? originalScmInfo.hashCode() : 0 );
+        return result;
+    }
+]]></code>
+        </codeSegment>
+      </codeSegments>
     </class>
   </classes>
 </model>

Modified: maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml Tue Aug 29 21:03:46 2006
@@ -26,7 +26,7 @@
           <field-name>releasePhases</field-name>
         </requirement>
         <requirement>
-          <role>org.apache.maven.plugins.release.config.ReleaseConfigurationStore</role>
+          <role>org.apache.maven.plugins.release.config.ReleaseDescriptorStore</role>
           <role-hint>properties</role-hint>
           <field-name>configStore</field-name>
         </requirement>
@@ -214,9 +214,9 @@
       </requirements>
     </component>
     <component>
-      <role>org.apache.maven.plugins.release.config.ReleaseConfigurationStore</role>
+      <role>org.apache.maven.plugins.release.config.ReleaseDescriptorStore</role>
       <role-hint>properties</role-hint>
-      <implementation>org.apache.maven.plugins.release.config.PropertiesReleaseConfigurationStore</implementation>
+      <implementation>org.apache.maven.plugins.release.config.PropertiesReleaseDescriptorStore</implementation>
     </component>
     <component>
       <role>org.apache.maven.plugins.release.scm.ScmRepositoryConfigurator</role>

Modified: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/CleanReleaseMojoTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/CleanReleaseMojoTest.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/CleanReleaseMojoTest.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/CleanReleaseMojoTest.java Tue Aug 29 21:03:46 2006
@@ -19,11 +19,13 @@
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
 import org.jmock.Mock;
 import org.jmock.core.constraint.IsEqual;
 import org.jmock.core.matcher.InvokeOnceMatcher;
 
+import java.io.File;
+
 /**
  * Test release:clean.
  *
@@ -34,22 +36,28 @@
 {
     protected CleanReleaseMojo mojo;
 
+    private File workingDirectory;
+
     protected void setUp()
         throws Exception
     {
         super.setUp();
 
-        mojo = (CleanReleaseMojo) lookupMojo( "clean", getTestFile( "target/test-classes/mojos/clean/clean.xml" ) );
+        File testFile = getTestFile( "target/test-classes/mojos/clean/clean.xml" );
+        mojo = (CleanReleaseMojo) lookupMojo( "clean", testFile );
+        workingDirectory = testFile.getParentFile();
+        mojo.setBasedir( workingDirectory );
     }
 
     public void testClean()
         throws MojoFailureException, MojoExecutionException
     {
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setReactorProjects( mojo.getReactorProjects() );
+        ReleaseDescriptor descriptor = new ReleaseDescriptor();
+        descriptor.setWorkingDirectory( workingDirectory.getAbsolutePath() );
 
         Mock mock = new Mock( ReleaseManager.class );
-        mock.expects( new InvokeOnceMatcher() ).method( "clean" ).with( new IsEqual( releaseConfiguration ) );
+        mock.expects( new InvokeOnceMatcher() ).method( "clean" ).with( new IsEqual( descriptor ),
+                                                                        new IsEqual( mojo.getReactorProjects() ) );
         mojo.setReleaseManager( (ReleaseManager) mock.proxy() );
 
         mojo.execute();

Modified: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/DefaultReleaseManagerTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/DefaultReleaseManagerTest.java?rev=438341&r1=438340&r2=438341&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/DefaultReleaseManagerTest.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/DefaultReleaseManagerTest.java Tue Aug 29 21:03:46 2006
@@ -16,10 +16,10 @@
  * 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.ReleaseConfigurationStoreStub;
+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.config.ReleaseDescriptorStoreStub;
 import org.apache.maven.plugins.release.exec.MavenExecutor;
 import org.apache.maven.plugins.release.exec.MavenExecutorException;
 import org.apache.maven.plugins.release.phase.IsScmFileSetEquals;
@@ -62,7 +62,7 @@
 public class DefaultReleaseManagerTest
     extends PlexusTestCase
 {
-    private ReleaseConfigurationStoreStub configStore;
+    private ReleaseDescriptorStoreStub configStore;
 
 
     protected void setUp()
@@ -70,7 +70,7 @@
     {
         super.setUp();
 
-        configStore = (ReleaseConfigurationStoreStub) lookup( ReleaseConfigurationStore.ROLE, "stub" );
+        configStore = (ReleaseDescriptorStoreStub) lookup( ReleaseDescriptorStore.ROLE, "stub" );
     }
 
     public void testPrepareNoCompletedPhase()
@@ -78,10 +78,10 @@
     {
         ReleaseManager releaseManager = (ReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = configStore.getReleaseConfiguration();
-        releaseConfiguration.setCompletedPhase( null );
+        ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
+        releaseDescriptor.setCompletedPhase( null );
 
-        releaseManager.prepare( new ReleaseConfiguration() );
+        releaseManager.prepare( new ReleaseDescriptor(), null, null );
 
         Map phases = container.lookupMap( ReleasePhase.ROLE );
 
@@ -101,10 +101,10 @@
     {
         ReleaseManager releaseManager = (ReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = configStore.getReleaseConfiguration();
-        releaseConfiguration.setCompletedPhase( "step1" );
+        ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
+        releaseDescriptor.setCompletedPhase( "step1" );
 
-        releaseManager.prepare( new ReleaseConfiguration() );
+        releaseManager.prepare( new ReleaseDescriptor(), null, null );
 
         Map phases = container.lookupMap( ReleasePhase.ROLE );
 
@@ -124,10 +124,10 @@
     {
         ReleaseManager releaseManager = (ReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = configStore.getReleaseConfiguration();
-        releaseConfiguration.setCompletedPhase( "step1" );
+        ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
+        releaseDescriptor.setCompletedPhase( "step1" );
 
-        releaseManager.prepare( new ReleaseConfiguration(), false, false );
+        releaseManager.prepare( new ReleaseDescriptor(), null, null, false, false );
 
         Map phases = container.lookupMap( ReleasePhase.ROLE );
 
@@ -147,10 +147,10 @@
     {
         ReleaseManager releaseManager = (ReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = configStore.getReleaseConfiguration();
-        releaseConfiguration.setCompletedPhase( "step3" );
+        ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
+        releaseDescriptor.setCompletedPhase( "step3" );
 
-        releaseManager.prepare( new ReleaseConfiguration() );
+        releaseManager.prepare( new ReleaseDescriptor(), null, null );
 
         Map phases = container.lookupMap( ReleasePhase.ROLE );
 
@@ -170,10 +170,10 @@
     {
         ReleaseManager releaseManager = (ReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = configStore.getReleaseConfiguration();
-        releaseConfiguration.setCompletedPhase( "foo" );
+        ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
+        releaseDescriptor.setCompletedPhase( "foo" );
 
-        releaseManager.prepare( new ReleaseConfiguration() );
+        releaseManager.prepare( new ReleaseDescriptor(), null, null );
 
         Map phases = container.lookupMap( ReleasePhase.ROLE );
 
@@ -193,10 +193,10 @@
     {
         ReleaseManager releaseManager = (ReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = configStore.getReleaseConfiguration();
-        releaseConfiguration.setCompletedPhase( null );
+        ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
+        releaseDescriptor.setCompletedPhase( null );
 
-        releaseManager.prepare( new ReleaseConfiguration(), true, true );
+        releaseManager.prepare( new ReleaseDescriptor(), null, null, true, true );
 
         Map phases = container.lookupMap( ReleasePhase.ROLE );
 
@@ -216,10 +216,10 @@
     {
         ReleaseManager releaseManager = (ReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = configStore.getReleaseConfiguration();
-        releaseConfiguration.setCompletedPhase( "step1" );
+        ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
+        releaseDescriptor.setCompletedPhase( "step1" );
 
-        releaseManager.prepare( new ReleaseConfiguration(), true, true );
+        releaseManager.prepare( new ReleaseDescriptor(), null, null, true, true );
 
         Map phases = container.lookupMap( ReleasePhase.ROLE );
 
@@ -239,10 +239,10 @@
     {
         ReleaseManager releaseManager = (ReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = configStore.getReleaseConfiguration();
-        releaseConfiguration.setCompletedPhase( "step3" );
+        ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
+        releaseDescriptor.setCompletedPhase( "step3" );
 
-        releaseManager.prepare( new ReleaseConfiguration(), true, true );
+        releaseManager.prepare( new ReleaseDescriptor(), null, null, true, true );
 
         Map phases = container.lookupMap( ReleasePhase.ROLE );
 
@@ -262,10 +262,10 @@
     {
         ReleaseManager releaseManager = (ReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = configStore.getReleaseConfiguration();
-        releaseConfiguration.setCompletedPhase( "foo" );
+        ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
+        releaseDescriptor.setCompletedPhase( "foo" );
 
-        releaseManager.prepare( new ReleaseConfiguration(), true, true );
+        releaseManager.prepare( new ReleaseDescriptor(), null, null, true, true );
 
         Map phases = container.lookupMap( ReleasePhase.ROLE );
 
@@ -287,7 +287,7 @@
 
         try
         {
-            releaseManager.prepare( new ReleaseConfiguration() );
+            releaseManager.prepare( new ReleaseDescriptor(), null, null );
             fail( "Should have failed to find a phase" );
         }
         catch ( ReleaseExecutionException e )
@@ -299,74 +299,74 @@
     public void testReleaseConfigurationStoreReadFailure()
         throws Exception
     {
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
-        releaseConfiguration.setWorkingDirectory( getTestFile( "target/working-directory" ) );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
+        releaseDescriptor.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
 
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        Mock configStoreMock = new Mock( ReleaseConfigurationStore.class );
+        Mock configStoreMock = new Mock( ReleaseDescriptorStore.class );
         configStoreMock.expects( new InvokeOnceMatcher() ).method( "read" ).with(
-            new IsSame( releaseConfiguration ) ).will(
-            new ThrowStub( new ReleaseConfigurationStoreException( "message", new IOException( "ioExceptionMsg" ) ) ) );
+            new IsSame( releaseDescriptor ) ).will(
+            new ThrowStub( new ReleaseDescriptorStoreException( "message", new IOException( "ioExceptionMsg" ) ) ) );
 
-        releaseManager.setConfigStore( (ReleaseConfigurationStore) configStoreMock.proxy() );
+        releaseManager.setConfigStore( (ReleaseDescriptorStore) configStoreMock.proxy() );
 
         try
         {
-            releaseManager.prepare( releaseConfiguration );
+            releaseManager.prepare( releaseDescriptor, null, null );
             fail( "Should have failed to read configuration" );
         }
         catch ( ReleaseExecutionException e )
         {
             // good
-            assertEquals( "check cause", ReleaseConfigurationStoreException.class, e.getCause().getClass() );
+            assertEquals( "check cause", ReleaseDescriptorStoreException.class, e.getCause().getClass() );
         }
     }
 
     public void testReleaseConfigurationStoreWriteFailure()
         throws Exception
     {
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
-        releaseConfiguration.setWorkingDirectory( getTestFile( "target/working-directory" ) );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
+        releaseDescriptor.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
 
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        Mock configStoreMock = new Mock( ReleaseConfigurationStore.class );
+        Mock configStoreMock = new Mock( ReleaseDescriptorStore.class );
         configStoreMock.expects( new InvokeOnceMatcher() ).method( "write" ).with(
-            new IsSame( releaseConfiguration ) ).will(
-            new ThrowStub( new ReleaseConfigurationStoreException( "message", new IOException( "ioExceptionMsg" ) ) ) );
+            new IsSame( releaseDescriptor ) ).will(
+            new ThrowStub( new ReleaseDescriptorStoreException( "message", new IOException( "ioExceptionMsg" ) ) ) );
 
-        releaseManager.setConfigStore( (ReleaseConfigurationStore) configStoreMock.proxy() );
+        releaseManager.setConfigStore( (ReleaseDescriptorStore) configStoreMock.proxy() );
 
         try
         {
-            releaseManager.prepare( releaseConfiguration, false, false );
+            releaseManager.prepare( releaseDescriptor, null, null, false, false );
             fail( "Should have failed to read configuration" );
         }
         catch ( ReleaseExecutionException e )
         {
             // good
-            assertEquals( "check cause", ReleaseConfigurationStoreException.class, e.getCause().getClass() );
+            assertEquals( "check cause", ReleaseDescriptorStoreException.class, e.getCause().getClass() );
         }
     }
 
     public void testReleaseConfigurationStoreClean()
         throws Exception
     {
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
-        releaseConfiguration.setWorkingDirectory( getTestFile( "target/working-directory" ) );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
+        releaseDescriptor.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
 
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        Mock configStoreMock = new Mock( ReleaseConfigurationStore.class );
+        Mock configStoreMock = new Mock( ReleaseDescriptorStore.class );
         configStoreMock.expects( new InvokeOnceMatcher() ).method( "delete" );
 
-        releaseManager.setConfigStore( (ReleaseConfigurationStore) configStoreMock.proxy() );
+        releaseManager.setConfigStore( (ReleaseDescriptorStore) configStoreMock.proxy() );
 
-        releaseManager.clean( releaseConfiguration );
+        releaseManager.clean( releaseDescriptor, null );
 
         Map phases = container.lookupMap( ReleasePhase.ROLE );
 
@@ -385,8 +385,8 @@
     {
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
         File checkoutDirectory = getTestFile( "target/checkout-directory" );
 
         Mock mock = new Mock( MavenExecutor.class );
@@ -404,7 +404,7 @@
         ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
         stub.setScmProvider( (ScmProvider) scmProviderMock.proxy() );
 
-        releaseManager.perform( releaseConfiguration, checkoutDirectory, "goal1 goal2", true );
+        releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", true );
 
         assertTrue( true );
     }
@@ -414,8 +414,8 @@
     {
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
         File checkoutDirectory = getTestFile( "target/checkout-directory" );
 
         Mock mock = new Mock( MavenExecutor.class );
@@ -433,7 +433,7 @@
         ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
         stub.setScmProvider( (ScmProvider) scmProviderMock.proxy() );
 
-        releaseManager.perform( releaseConfiguration, checkoutDirectory, "goal1 goal2", false );
+        releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", false );
 
         assertTrue( true );
     }
@@ -443,9 +443,9 @@
     {
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
-        releaseConfiguration.setAdditionalArguments( "-Dmaven.test.skip=true" );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
+        releaseDescriptor.setAdditionalArguments( "-Dmaven.test.skip=true" );
         File checkoutDirectory = getTestFile( "target/checkout-directory" );
 
         Mock mock = new Mock( MavenExecutor.class );
@@ -463,7 +463,7 @@
         ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
         stub.setScmProvider( (ScmProvider) scmProviderMock.proxy() );
 
-        releaseManager.perform( releaseConfiguration, checkoutDirectory, "goal1 goal2", true );
+        releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", true );
 
         assertTrue( true );
     }
@@ -473,9 +473,9 @@
     {
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
-        releaseConfiguration.setAdditionalArguments( "-Dmaven.test.skip=true" );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
+        releaseDescriptor.setAdditionalArguments( "-Dmaven.test.skip=true" );
         File checkoutDirectory = getTestFile( "target/checkout-directory" );
 
         Mock mock = new Mock( MavenExecutor.class );
@@ -493,7 +493,7 @@
         ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
         stub.setScmProvider( (ScmProvider) scmProviderMock.proxy() );
 
-        releaseManager.perform( releaseConfiguration, checkoutDirectory, "goal1 goal2", false );
+        releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", false );
 
         assertTrue( true );
     }
@@ -503,8 +503,8 @@
     {
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
         File checkoutDirectory = getTestFile( "target/checkout-directory" );
 
         Mock mock = new Mock( MavenExecutor.class );
@@ -522,11 +522,11 @@
         ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
         stub.setScmProvider( (ScmProvider) scmProviderMock.proxy() );
 
-        ReleaseConfigurationStoreStub configStore = new ReleaseConfigurationStoreStub();
+        ReleaseDescriptorStoreStub configStore = new ReleaseDescriptorStoreStub();
         configStore.getReleaseConfiguration().setCompletedPhase( "end-release" );
         releaseManager.setConfigStore( configStore );
 
-        releaseManager.perform( releaseConfiguration, checkoutDirectory, "goal1 goal2", true );
+        releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", true );
 
         assertTrue( true );
     }
@@ -534,47 +534,47 @@
     public void testReleaseConfigurationStoreReadFailureOnPerform()
         throws Exception
     {
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
-        releaseConfiguration.setWorkingDirectory( getTestFile( "target/working-directory" ) );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
+        releaseDescriptor.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
 
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        Mock configStoreMock = new Mock( ReleaseConfigurationStore.class );
+        Mock configStoreMock = new Mock( ReleaseDescriptorStore.class );
         configStoreMock.expects( new InvokeOnceMatcher() ).method( "read" ).with(
-            new IsSame( releaseConfiguration ) ).will(
-            new ThrowStub( new ReleaseConfigurationStoreException( "message", new IOException( "ioExceptionMsg" ) ) ) );
+            new IsSame( releaseDescriptor ) ).will(
+            new ThrowStub( new ReleaseDescriptorStoreException( "message", new IOException( "ioExceptionMsg" ) ) ) );
 
-        releaseManager.setConfigStore( (ReleaseConfigurationStore) configStoreMock.proxy() );
+        releaseManager.setConfigStore( (ReleaseDescriptorStore) configStoreMock.proxy() );
 
         try
         {
-            releaseManager.perform( releaseConfiguration, null, null, false );
+            releaseManager.perform( releaseDescriptor, null, null, null, null, false );
             fail( "Should have failed to read configuration" );
         }
         catch ( ReleaseExecutionException e )
         {
             // good
-            assertEquals( "check cause", ReleaseConfigurationStoreException.class, e.getCause().getClass() );
+            assertEquals( "check cause", ReleaseDescriptorStoreException.class, e.getCause().getClass() );
         }
     }
 
     public void testReleasePerformWithIncompletePrepare()
         throws Exception
     {
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
-        releaseConfiguration.setWorkingDirectory( getTestFile( "target/working-directory" ) );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
+        releaseDescriptor.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
 
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfigurationStoreStub configStore = new ReleaseConfigurationStoreStub();
+        ReleaseDescriptorStoreStub configStore = new ReleaseDescriptorStoreStub();
         configStore.getReleaseConfiguration().setCompletedPhase( "scm-tag" );
         releaseManager.setConfigStore( configStore );
 
         try
         {
-            releaseManager.perform( releaseConfiguration, null, null, false );
+            releaseManager.perform( releaseDescriptor, null, null, null, null, false );
             fail( "Should have failed to perform" );
         }
         catch ( ReleaseFailureException e )
@@ -587,14 +587,14 @@
     public void testNoScmUrlPerform()
         throws Exception
     {
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setWorkingDirectory( getTestFile( "target/test/checkout" ) );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
 
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
         try
         {
-            releaseManager.perform( releaseConfiguration, null, null, false );
+            releaseManager.perform( releaseDescriptor, null, null, null, null, false );
 
             fail( "perform should have failed" );
         }
@@ -607,9 +607,9 @@
     public void testNoSuchScmProviderExceptionThrown()
         throws Exception
     {
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
-        releaseConfiguration.setWorkingDirectory( getTestFile( "target/test/checkout" ) );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
+        releaseDescriptor.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
 
         Mock scmManagerMock = new Mock( ScmManager.class );
         scmManagerMock.expects( new InvokeOnceMatcher() ).method( "makeScmRepository" ).with(
@@ -624,7 +624,7 @@
 
         try
         {
-            releaseManager.perform( releaseConfiguration, null, null, false );
+            releaseManager.perform( releaseDescriptor, null, null, null, null, false );
 
             fail( "commit should have failed" );
         }
@@ -637,9 +637,9 @@
     public void testScmRepositoryExceptionThrown()
         throws Exception
     {
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
-        releaseConfiguration.setWorkingDirectory( getTestFile( "target/test/checkout" ) );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
+        releaseDescriptor.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
 
         Mock scmManagerMock = new Mock( ScmManager.class );
         scmManagerMock.expects( new InvokeOnceMatcher() ).method( "makeScmRepository" ).with(
@@ -654,7 +654,7 @@
 
         try
         {
-            releaseManager.perform( releaseConfiguration, null, null, false );
+            releaseManager.perform( releaseDescriptor, null, null, null, null, false );
 
             fail( "commit should have failed" );
         }
@@ -669,8 +669,8 @@
     {
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
         File checkoutDirectory = getTestFile( "target/checkout-directory" );
 
         Mock scmProviderMock = new Mock( ScmProvider.class );
@@ -682,7 +682,7 @@
 
         try
         {
-            releaseManager.perform( releaseConfiguration, checkoutDirectory, "goals", true );
+            releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goals", true );
 
             fail( "commit should have failed" );
         }
@@ -697,18 +697,19 @@
     {
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
         File checkoutDirectory = getTestFile( "target/checkout-directory" );
 
         ScmManager scmManager = (ScmManager) lookup( ScmManager.ROLE );
-        ScmProviderStub providerStub = (ScmProviderStub) scmManager.getProviderByUrl( releaseConfiguration.getUrl() );
+        ScmProviderStub providerStub =
+            (ScmProviderStub) scmManager.getProviderByUrl( releaseDescriptor.getScmSourceUrl() );
 
         providerStub.setCheckOutScmResult( new CheckOutScmResult( "", "", "", false ) );
 
         try
         {
-            releaseManager.perform( releaseConfiguration, checkoutDirectory, "goals", true );
+            releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goals", true );
 
             fail( "commit should have failed" );
         }
@@ -723,8 +724,8 @@
     {
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
-        releaseConfiguration.setUrl( "scm-url" );
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
         File checkoutDirectory = getTestFile( "target/checkout-directory" );
 
         Mock mock = new Mock( MavenExecutor.class );
@@ -745,7 +746,7 @@
 
         try
         {
-            releaseManager.perform( releaseConfiguration, checkoutDirectory, "goal1 goal2", true );
+            releaseManager.perform( releaseDescriptor, null, null, checkoutDirectory, "goal1 goal2", true );
 
             fail( "Expected exception" );
         }