Author: brett
Date: Tue Sep  6 21:14:22 2005
New Revision: 279240

URL: http://svn.apache.org/viewcvs?rev=279240&view=rev
Log:
various release plugin fixes

Modified:
    
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
    
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
    
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectVersionResolver.java
    
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java

Modified: 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java?rev=279240&r1=279239&r2=279240&view=diff
==============================================================================
--- 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
 (original)
+++ 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
 Tue Sep  6 21:14:22 2005
@@ -171,22 +171,35 @@
         {
             checkForLocalModifications();
 
-            for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+            if ( !getReleaseProgress().verifyCheckpoint( 
ReleaseProgressTracker.CP_POM_TRANSFORMED_FOR_RELEASE ) )
             {
-                MavenProject project = (MavenProject) it.next();
+                for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+                {
+                    MavenProject project = (MavenProject) it.next();
 
-                getVersionResolver().resolveVersion( project );
+                    getVersionResolver().resolveVersion( project );
 
-                getScmRewriter().rewriteScmInfo( project, getTagLabel() );
-            }
+                    getScmRewriter().rewriteScmInfo( project, getTagLabel() );
+                }
 
-            for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
-            {
-                MavenProject project = (MavenProject) it.next();
+                for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+                {
+                    MavenProject project = (MavenProject) it.next();
 
-                checkForPresenceOfSnapshots( project );
+                    checkForPresenceOfSnapshots( project );
+
+                    transformPomToReleaseVersionPom( project );
+                }
+
+                try
+                {
+                    getReleaseProgress().checkpoint( basedir, 
ReleaseProgressTracker.CP_POM_TRANSFORMED_FOR_RELEASE );
+                }
+                catch ( IOException e )
+                {
+                    getLog().warn( "Error writing checkpoint.", e );
+                }
 
-                transformPomToReleaseVersionPom( project );
             }
 
             generateReleasePoms();
@@ -204,11 +217,24 @@
                 getScmRewriter().restoreScmInfo( project );
             }
 
-            for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+            if ( !getReleaseProgress().verifyCheckpoint( 
ReleaseProgressTracker.CP_POM_TRANSORMED_FOR_DEVELOPMENT ) )
             {
-                MavenProject project = (MavenProject) it.next();
+                for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+                {
+                    MavenProject project = (MavenProject) it.next();
+
+                    transformPomToSnapshotVersionPom( project );
+                }
 
-                transformPomToSnapshotVersionPom( project );
+                try
+                {
+                    getReleaseProgress().checkpoint( basedir,
+                                                     
ReleaseProgressTracker.CP_POM_TRANSORMED_FOR_DEVELOPMENT );
+                }
+                catch ( IOException e )
+                {
+                    getLog().warn( "Error writing checkpoint.", e );
+                }
             }
 
             removeReleasePoms();
@@ -229,109 +255,106 @@
     private void transformPomToSnapshotVersionPom( MavenProject project )
         throws MojoExecutionException
     {
-        if ( !getReleaseProgress().verifyCheckpoint( 
ReleaseProgressTracker.CP_POM_TRANSORMED_FOR_DEVELOPMENT ) )
+        if ( isSnapshot( project.getVersion() ) )
         {
-            if ( isSnapshot( project.getVersion() ) )
-            {
-                throw new MojoExecutionException( "This project is a snapshot 
(" + project.getVersion() +
-                    "). It appears that the release version has not been 
committed." );
-            }
+            throw new MojoExecutionException( "This project is a snapshot (" + 
project.getVersion() +
+                "). It appears that the release version has not been 
committed." );
+        }
+
+        Model model = project.getOriginalModel();
 
-            Model model = project.getOriginalModel();
+        ProjectVersionResolver versionResolver = getVersionResolver();
 
-            ProjectVersionResolver versionResolver = getVersionResolver();
+        Parent parent = model.getParent();
 
-            Parent parent = model.getParent();
+        //Rewrite parent version
+        if ( parent != null )
+        {
+            String incrementedVersion = versionResolver.getResolvedVersion( 
parent.getGroupId(), parent
+                .getArtifactId() );
 
-            //Rewrite parent version
-            if ( parent != null )
+            if ( incrementedVersion != null )
             {
-                String incrementedVersion = 
versionResolver.getResolvedVersion( parent.getGroupId(), parent
-                    .getArtifactId() );
+                parent.setVersion( incrementedVersion );
+            }
+        }
+
+        //Rewrite dependencies section
+        List dependencies = model.getDependencies();
+
+        if ( dependencies != null )
+        {
+            for ( Iterator i = dependencies.iterator(); i.hasNext(); )
+            {
+                Dependency dep = (Dependency) i.next();
+
+                String version = versionResolver.getResolvedVersion( 
dep.getGroupId(), dep.getArtifactId() );
 
-                if ( incrementedVersion != null )
+                if ( version != null )
                 {
-                    parent.setVersion( incrementedVersion );
+                    dep.setVersion( version );
                 }
             }
+        }
+
+        //Rewrite plugins section
+        Build build = model.getBuild();
 
-            //Rewrite dependencies section
-            List dependencies = model.getDependencies();
+        if ( build != null )
+        {
+            List plugins = build.getPlugins();
 
-            if ( dependencies != null )
+            if ( plugins != null )
             {
-                for ( Iterator i = dependencies.iterator(); i.hasNext(); )
+                for ( Iterator i = plugins.iterator(); i.hasNext(); )
                 {
-                    Dependency dep = (Dependency) i.next();
+                    Plugin plugin = (Plugin) i.next();
 
-                    String version = versionResolver.getResolvedVersion( 
dep.getGroupId(), dep.getArtifactId() );
+                    String version = versionResolver.getResolvedVersion( 
plugin.getGroupId(), plugin
+                        .getArtifactId() );
 
                     if ( version != null )
                     {
-                        dep.setVersion( version );
+                        plugin.setVersion( version );
                     }
                 }
             }
 
-            //Rewrite plugins section
-            Build build = model.getBuild();
+            //Rewrite extensions section
+            List extensions = build.getExtensions();
 
-            if ( build != null )
+            for ( Iterator i = extensions.iterator(); i.hasNext(); )
             {
-                List plugins = build.getPlugins();
-
-                if ( plugins != null )
-                {
-                    for ( Iterator i = plugins.iterator(); i.hasNext(); )
-                    {
-                        Plugin plugin = (Plugin) i.next();
+                Extension ext = (Extension) i.next();
 
-                        String version = versionResolver.getResolvedVersion( 
plugin.getGroupId(), plugin
-                            .getArtifactId() );
+                String version = versionResolver.getResolvedVersion( 
ext.getGroupId(), ext.getArtifactId() );
 
-                        if ( version != null )
-                        {
-                            plugin.setVersion( version );
-                        }
-                    }
-                }
-
-                //Rewrite extensions section
-                List extensions = build.getExtensions();
-
-                for ( Iterator i = extensions.iterator(); i.hasNext(); )
+                if ( version != null )
                 {
-                    Extension ext = (Extension) i.next();
-
-                    String version = versionResolver.getResolvedVersion( 
ext.getGroupId(), ext.getArtifactId() );
-
-                    if ( version != null )
-                    {
-                        ext.setVersion( version );
-                    }
+                    ext.setVersion( version );
                 }
             }
+        }
 
-            Reporting reporting = model.getReporting();
+        Reporting reporting = model.getReporting();
 
-            if ( reporting != null )
-            {
-                //Rewrite reports section
-                List reports = reporting.getPlugins();
+        if ( reporting != null )
+        {
+            //Rewrite reports section
+            List reports = reporting.getPlugins();
 
-                if ( reports != null )
+            if ( reports != null )
+            {
+                for ( Iterator i = reports.iterator(); i.hasNext(); )
                 {
-                    for ( Iterator i = reports.iterator(); i.hasNext(); )
-                    {
-                        ReportPlugin plugin = (ReportPlugin) i.next();
+                    ReportPlugin plugin = (ReportPlugin) i.next();
 
-                        String version = versionResolver.getResolvedVersion( 
plugin.getGroupId(), plugin
-                            .getArtifactId() );
+                    String version = versionResolver.getResolvedVersion( 
plugin.getGroupId(), plugin
+                        .getArtifactId() );
 
-                        if ( version != null )
-                        {
-                            plugin.setVersion( version );
-                        }
+                    if ( version != null )
+                    {
+                        plugin.setVersion( version );
                     }
                 }
             }
@@ -353,15 +376,6 @@
             {
                 IOUtil.close( writer );
             }
-
-            try
-            {
-                getReleaseProgress().checkpoint( basedir, 
ReleaseProgressTracker.CP_POM_TRANSORMED_FOR_DEVELOPMENT );
-            }
-            catch ( IOException e )
-            {
-                getLog().warn( "Error writing checkpoint.", e );
-            }
         }
     }
 
@@ -370,49 +384,54 @@
     {
         if ( releaseProgress == null )
         {
-            if ( resume )
+            try
             {
-                try
-                {
-                    releaseProgress = ReleaseProgressTracker.load( basedir );
-
-                    releaseProgress.verifyResumeCapable();
-                }
-                catch ( IOException e )
-                {
-                    throw new MojoExecutionException(
-                        "Cannot read existing release progress file from 
directory: " + basedir + ". Cannot resume." );
-                }
+                releaseProgress = ReleaseProgressTracker.loadOrCreate( basedir 
);
             }
-            else
+            catch ( IOException e )
             {
-                try
-                {
-                    releaseProgress = ReleaseProgressTracker.loadOrCreate( 
basedir );
-                }
-                catch ( IOException e )
-                {
-                    getLog().warn( "Cannot read existing release progress file 
from directory: " + basedir +
-                        ". Creating new instance." );
-                }
+                getLog().warn( "Cannot read existing release progress file 
from directory: " + basedir + "." );
+                getLog().debug( "Cause", e );
 
-                releaseProgress.setResumeAtCheckpoint( resume );
+                releaseProgress = ReleaseProgressTracker.create();
+            }
+
+            if ( resume )
+            {
+                releaseProgress.setResumeAtCheckpoint( true );
+            }
 
+            if ( releaseProgress.getUsername() == null )
+            {
                 releaseProgress.setUsername( username );
+            }
 
-                if ( password != null )
-                {
-                    releaseProgress.setPassword( password );
-                }
+            if ( releaseProgress.getPassword() == null && password != null )
+            {
+                releaseProgress.setPassword( password );
+            }
 
+            if ( releaseProgress.getScmTag() == null )
+            {
                 releaseProgress.setScmTag( getTagLabel() );
+            }
 
+            if ( releaseProgress.getScmTagBase() == null )
+            {
                 releaseProgress.setScmTagBase( tagBase );
+            }
 
+            if ( releaseProgress.getScmUrl() == null )
+            {
                 releaseProgress.setScmUrl( urlScm );
             }
-        }
 
+            if ( releaseProgress.getUsername() == null || 
releaseProgress.getScmTag() == null ||
+                releaseProgress.getScmTagBase() == null || 
releaseProgress.getScmUrl() == null )
+            {
+                throw new MojoExecutionException( "Missing release preparation 
information." );
+            }
+        }
         return releaseProgress;
     }
 
@@ -514,286 +533,262 @@
     private void checkForPresenceOfSnapshots( MavenProject project )
         throws MojoExecutionException
     {
-        if ( !getReleaseProgress().verifyCheckpoint( 
ReleaseProgressTracker.CP_SNAPSHOTS_CHECKED ) )
-        {
-            getLog().info( "Checking lineage for snapshots ..." );
-
-            MavenProject currentProject = project;
+        getLog().info( "Checking lineage for snapshots ..." );
 
-            while ( currentProject.hasParent() )
-            {
-                MavenProject parentProject = currentProject.getParent();
+        MavenProject currentProject = project;
 
-                String parentVersion = 
getVersionResolver().getResolvedVersion( parentProject.getGroupId(),
-                                                                               
 parentProject.getArtifactId() );
+        while ( currentProject.hasParent() )
+        {
+            MavenProject parentProject = currentProject.getParent();
 
-                if ( isSnapshot( parentVersion ) )
-                {
-                    throw new MojoExecutionException( "Can't release project 
due to non released parent." );
-                }
+            String parentVersion = getVersionResolver().getResolvedVersion( 
parentProject.getGroupId(),
+                                                                            
parentProject.getArtifactId() );
 
-                currentProject = parentProject;
+            if ( isSnapshot( parentVersion ) )
+            {
+                throw new MojoExecutionException( "Can't release project due 
to non released parent." );
             }
 
-            getLog().info( "Checking dependencies for snapshots ..." );
+            currentProject = parentProject;
+        }
 
-            Set snapshotDependencies = new HashSet();
+        getLog().info( "Checking dependencies for snapshots ..." );
 
-            for ( Iterator i = project.getArtifacts().iterator(); i.hasNext(); 
)
-            {
-                Artifact artifact = (Artifact) i.next();
+        Set snapshotDependencies = new HashSet();
 
-                String artifactVersion = 
getVersionResolver().getResolvedVersion( artifact.getGroupId(),
-                                                                               
   artifact.getArtifactId() );
+        for ( Iterator i = project.getArtifacts().iterator(); i.hasNext(); )
+        {
+            Artifact artifact = (Artifact) i.next();
 
-                if ( artifactVersion == null )
-                {
-                    artifactVersion = artifact.getVersion();
-                }
+            String artifactVersion = getVersionResolver().getResolvedVersion( 
artifact.getGroupId(),
+                                                                              
artifact.getArtifactId() );
 
-                if ( isSnapshot( artifactVersion ) )
-                {
-                    snapshotDependencies.add( artifact );
-                }
+            if ( artifactVersion == null )
+            {
+                artifactVersion = artifact.getVersion();
             }
 
-            getLog().info( "Checking plugins for snapshots ..." );
-
-            for ( Iterator i = project.getPluginArtifacts().iterator(); 
i.hasNext(); )
+            if ( isSnapshot( artifactVersion ) )
             {
-                Artifact artifact = (Artifact) i.next();
+                snapshotDependencies.add( artifact );
+            }
+        }
 
-                String artifactVersion = 
getVersionResolver().getResolvedVersion( artifact.getGroupId(),
-                                                                               
   artifact.getArtifactId() );
+        getLog().info( "Checking plugins for snapshots ..." );
 
-                if ( artifactVersion == null )
-                {
-                    artifactVersion = artifact.getVersion();
-                }
+        for ( Iterator i = project.getPluginArtifacts().iterator(); 
i.hasNext(); )
+        {
+            Artifact artifact = (Artifact) i.next();
 
-                if ( isSnapshot( artifactVersion ) )
-                {
-                    snapshotDependencies.add( artifact );
-                }
+            String artifactVersion = getVersionResolver().getResolvedVersion( 
artifact.getGroupId(),
+                                                                              
artifact.getArtifactId() );
+
+            if ( artifactVersion == null )
+            {
+                artifactVersion = artifact.getVersion();
             }
 
-            if ( !snapshotDependencies.isEmpty() )
+            if ( isSnapshot( artifactVersion ) )
             {
-                List snapshotsList = new ArrayList( snapshotDependencies );
+                snapshotDependencies.add( artifact );
+            }
+        }
 
-                Collections.sort( snapshotsList );
+        if ( !snapshotDependencies.isEmpty() )
+        {
+            List snapshotsList = new ArrayList( snapshotDependencies );
 
-                StringBuffer message = new StringBuffer();
+            Collections.sort( snapshotsList );
 
-                for ( Iterator i = snapshotsList.iterator(); i.hasNext(); )
-                {
-                    Artifact artifact = (Artifact) i.next();
+            StringBuffer message = new StringBuffer();
 
-                    message.append( "    " );
+            for ( Iterator i = snapshotsList.iterator(); i.hasNext(); )
+            {
+                Artifact artifact = (Artifact) i.next();
 
-                    message.append( artifact.getId() );
+                message.append( "    " );
 
-                    message.append( "\n" );
-                }
+                message.append( artifact.getId() );
 
-                throw new MojoExecutionException(
-                    "Can't release project due to non released dependencies 
:\n" + message.toString() );
+                message.append( "\n" );
             }
 
-            try
-            {
-                getReleaseProgress().checkpoint( basedir, 
ReleaseProgressTracker.CP_SNAPSHOTS_CHECKED );
-            }
-            catch ( IOException e )
-            {
-                getLog().warn( "Error writing checkpoint.", e );
-            }
+            throw new MojoExecutionException(
+                "Can't release project due to non released dependencies :\n" + 
message.toString() );
         }
     }
 
     private void transformPomToReleaseVersionPom( MavenProject project )
         throws MojoExecutionException
     {
-        if ( !getReleaseProgress().verifyCheckpoint( 
ReleaseProgressTracker.CP_POM_TRANSFORMED_FOR_RELEASE ) )
+        if ( !isSnapshot( project.getVersion() ) )
         {
-            if ( !isSnapshot( project.getVersion() ) )
+            throw new MojoExecutionException( "The project " + 
project.getGroupId() + ":" + project.getArtifactId() +
+                " isn't a snapshot (" + project.getVersion() + ")." );
+        }
+
+        Model model = project.getOriginalModel();
+
+        //Rewrite parent version
+        if ( model.getParent() != null )
+        {
+            Artifact parentArtifact = project.getParentArtifact();
+
+            if ( isSnapshot( parentArtifact.getBaseVersion() ) )
             {
-                throw new MojoExecutionException( "The project " + 
project.getGroupId() + ":" +
-                    project.getArtifactId() + " isn't a snapshot (" + 
project.getVersion() + ")." );
+                String version = resolveVersion( parentArtifact, "parent", 
project );
+
+                model.getParent().setVersion( version );
             }
+        }
 
-            Model model = project.getOriginalModel();
+        //Rewrite dependencies section
+        List dependencies = model.getDependencies();
 
-            //Rewrite parent version
-            if ( model.getParent() != null )
+        if ( dependencies != null )
+        {
+            for ( Iterator i = dependencies.iterator(); i.hasNext(); )
             {
-                Artifact parentArtifact = project.getParentArtifact();
+                Dependency dep = (Dependency) i.next();
 
-                if ( isSnapshot( parentArtifact.getBaseVersion() ) )
+                // Avoid in dep mgmt
+                if ( dep.getVersion() != null )
                 {
-                    String version = resolveVersion( parentArtifact, "parent", 
project );
+                    String resolvedVersion = 
getVersionResolver().getResolvedVersion( dep.getGroupId(),
+                                                                               
       dep.getArtifactId() );
 
-                    model.getParent().setVersion( version );
+                    if ( resolvedVersion != null )
+                    {
+                        dep.setVersion( resolvedVersion );
+                    }
                 }
             }
+        }
 
-            //Rewrite dependencies section
-            List dependencies = model.getDependencies();
+        DependencyManagement dependencyManagement = 
model.getDependencyManagement();
+        dependencies = dependencyManagement != null ? 
dependencyManagement.getDependencies() : null;
 
-            if ( dependencies != null )
+        if ( dependencies != null )
+        {
+            for ( Iterator i = dependencies.iterator(); i.hasNext(); )
             {
-                for ( Iterator i = dependencies.iterator(); i.hasNext(); )
+                Dependency dep = (Dependency) i.next();
+
+                if ( dep.getVersion() != null )
                 {
-                    Dependency dep = (Dependency) i.next();
+                    String resolvedVersion = 
getVersionResolver().getResolvedVersion( dep.getGroupId(),
+                                                                               
       dep.getArtifactId() );
 
-                    // Avoid in dep mgmt
-                    if ( dep.getVersion() != null )
+                    if ( resolvedVersion != null )
                     {
-                        String resolvedVersion = 
getVersionResolver().getResolvedVersion( dep.getGroupId(),
-                                                                               
           dep.getArtifactId() );
-
-                        if ( resolvedVersion != null )
-                        {
-                            dep.setVersion( resolvedVersion );
-                        }
+                        dep.setVersion( resolvedVersion );
                     }
                 }
             }
+        }
 
-            DependencyManagement dependencyManagement = 
model.getDependencyManagement();
-            dependencies = dependencyManagement != null ? 
dependencyManagement.getDependencies() : null;
+        Build build = model.getBuild();
 
-            if ( dependencies != null )
+        if ( build != null )
+        {
+            //Rewrite plugins section
+            List plugins = build.getPlugins();
+
+            if ( plugins != null )
             {
-                for ( Iterator i = dependencies.iterator(); i.hasNext(); )
+                for ( Iterator i = plugins.iterator(); i.hasNext(); )
                 {
-                    Dependency dep = (Dependency) i.next();
+                    Plugin plugin = (Plugin) i.next();
 
-                    if ( dep.getVersion() != null )
+                    // Avoid in plugin mgmt
+                    if ( plugin.getVersion() != null )
                     {
-                        String resolvedVersion = 
getVersionResolver().getResolvedVersion( dep.getGroupId(),
-                                                                               
           dep.getArtifactId() );
+                        String resolvedVersion = 
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
+                                                                               
           plugin.getArtifactId() );
 
                         if ( resolvedVersion != null )
                         {
-                            dep.setVersion( resolvedVersion );
+                            plugin.setVersion( resolvedVersion );
                         }
                     }
                 }
             }
 
-            Build build = model.getBuild();
+            PluginManagement pluginManagement = build.getPluginManagement();
+            plugins = pluginManagement != null ? pluginManagement.getPlugins() 
: null;
 
-            if ( build != null )
+            if ( plugins != null )
             {
-                //Rewrite plugins section
-                List plugins = build.getPlugins();
-
-                if ( plugins != null )
+                for ( Iterator i = plugins.iterator(); i.hasNext(); )
                 {
-                    for ( Iterator i = plugins.iterator(); i.hasNext(); )
-                    {
-                        Plugin plugin = (Plugin) i.next();
+                    Plugin plugin = (Plugin) i.next();
 
-                        // Avoid in plugin mgmt
-                        if ( plugin.getVersion() != null )
-                        {
-                            String resolvedVersion = 
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
-                                                                               
               plugin.getArtifactId() );
-
-                            if ( resolvedVersion != null )
-                            {
-                                plugin.setVersion( resolvedVersion );
-                            }
-                        }
-                    }
-                }
-
-                PluginManagement pluginManagement = 
build.getPluginManagement();
-                plugins = pluginManagement != null ? 
pluginManagement.getPlugins() : null;
-
-                if ( plugins != null )
-                {
-                    for ( Iterator i = plugins.iterator(); i.hasNext(); )
+                    if ( plugin.getVersion() != null )
                     {
-                        Plugin plugin = (Plugin) i.next();
+                        String resolvedVersion = 
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
+                                                                               
           plugin.getArtifactId() );
 
-                        if ( plugin.getVersion() != null )
+                        if ( resolvedVersion != null )
                         {
-                            String resolvedVersion = 
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
-                                                                               
               plugin.getArtifactId() );
-
-                            if ( resolvedVersion != null )
-                            {
-                                plugin.setVersion( resolvedVersion );
-                            }
+                            plugin.setVersion( resolvedVersion );
                         }
                     }
                 }
+            }
 
-                //Rewrite extensions section
-                List extensions = build.getExtensions();
+            //Rewrite extensions section
+            List extensions = build.getExtensions();
 
-                for ( Iterator i = extensions.iterator(); i.hasNext(); )
-                {
-                    Extension ext = (Extension) i.next();
+            for ( Iterator i = extensions.iterator(); i.hasNext(); )
+            {
+                Extension ext = (Extension) i.next();
 
-                    String resolvedVersion = 
getVersionResolver().getResolvedVersion( ext.getGroupId(),
-                                                                               
       ext.getArtifactId() );
+                String resolvedVersion = 
getVersionResolver().getResolvedVersion( ext.getGroupId(),
+                                                                               
   ext.getArtifactId() );
 
-                    if ( resolvedVersion != null )
-                    {
-                        ext.setVersion( resolvedVersion );
-                    }
+                if ( resolvedVersion != null )
+                {
+                    ext.setVersion( resolvedVersion );
                 }
             }
+        }
 
-            Reporting reporting = model.getReporting();
+        Reporting reporting = model.getReporting();
 
-            if ( reporting != null )
-            {
-                //Rewrite reports section
-                List reports = reporting.getPlugins();
+        if ( reporting != null )
+        {
+            //Rewrite reports section
+            List reports = reporting.getPlugins();
 
-                for ( Iterator i = reports.iterator(); i.hasNext(); )
-                {
-                    ReportPlugin plugin = (ReportPlugin) i.next();
+            for ( Iterator i = reports.iterator(); i.hasNext(); )
+            {
+                ReportPlugin plugin = (ReportPlugin) i.next();
 
-                    String resolvedVersion = 
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
-                                                                               
       plugin.getArtifactId() );
+                String resolvedVersion = 
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
+                                                                               
   plugin.getArtifactId() );
 
-                    if ( resolvedVersion != null )
-                    {
-                        plugin.setVersion( resolvedVersion );
-                    }
+                if ( resolvedVersion != null )
+                {
+                    plugin.setVersion( resolvedVersion );
                 }
             }
+        }
 
-            Writer writer = null;
+        Writer writer = null;
 
-            try
-            {
-                writer = new FileWriter( project.getFile() );
-
-                project.writeOriginalModel( writer );
-            }
-            catch ( IOException e )
-            {
-                throw new MojoExecutionException( "Cannot write released 
version of pom to: " + project.getFile(), e );
-            }
-            finally
-            {
-                IOUtil.close( writer );
-            }
+        try
+        {
+            writer = new FileWriter( project.getFile() );
 
-            try
-            {
-                getReleaseProgress().checkpoint( basedir, 
ReleaseProgressTracker.CP_POM_TRANSFORMED_FOR_RELEASE );
-            }
-            catch ( IOException e )
-            {
-                getLog().warn( "Error writing checkpoint.", e );
-            }
+            project.writeOriginalModel( writer );
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( "Cannot write released version 
of pom to: " + project.getFile(), e );
+        }
+        finally
+        {
+            IOUtil.close( writer );
         }
     }
 
@@ -1004,7 +999,7 @@
     {
         if ( !getReleaseProgress().verifyCheckpoint( 
ReleaseProgressTracker.CP_CHECKED_IN_RELEASE_VERSION ) )
         {
-            checkIn( "**/pom.xml,**/release-pom.xml", "[maven-release-plugin] 
prepare release" );
+            checkIn( "**/pom.xml,**/release-pom.xml", "[maven-release-plugin] 
prepare release " + getTagLabel() );
 
             try
             {
@@ -1149,6 +1144,16 @@
             {
                 throw new MojoExecutionException( "An error is occurred in the 
tag process.", e );
             }
+        }
+
+        if ( userTag == null )
+        {
+            userTag = releaseProgress.getScmTag();
+        }
+
+        if ( userTag == null )
+        {
+            throw new MojoExecutionException( "A tag must be specified" );
         }
 
         return userTag;

Modified: 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java?rev=279240&r1=279239&r2=279240&view=diff
==============================================================================
--- 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
 (original)
+++ 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
 Tue Sep  6 21:14:22 2005
@@ -21,6 +21,7 @@
 import org.apache.maven.model.Scm;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.StringUtils;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -41,31 +42,32 @@
                 " already has it's original SCM info cached. Each project 
should only be resolved once." );
         }
 
-        Model model = project.getModel();
-
-        Scm scm = model.getScm();
-
-        if ( scm == null )
+        if ( project.getScm() == null )
         {
             throw new MojoExecutionException(
                 "Project: " + projectId + " does not have a SCM section! 
Cannot proceed with release." );
         }
 
-        String tag = model.getScm().getTag();
+        Model model = project.getOriginalModel();
 
-        String connection = model.getScm().getConnection();
+        Scm scm = model.getScm();
+        // If SCM is null in original model, it is inherited, no mods needed
+        if ( scm != null )
+        {
+            String tag = scm.getTag();
 
-        String developerConnection = model.getScm().getDeveloperConnection();
+            String connection = scm.getConnection();
 
-        ScmInfo info = new ScmInfo( tag, connection, developerConnection );
+            String developerConnection = scm.getDeveloperConnection();
 
-        originalScmInformation.put( projectId, info );
+            String url = scm.getUrl();
 
-        scm.setTag( tagLabel );
+            ScmInfo info = new ScmInfo( tag, connection, developerConnection, 
url );
 
-        scm.setConnection( rewriteScmConnection( connection, tagLabel ) );
+            originalScmInformation.put( projectId, info );
 
-        scm.setDeveloperConnection( rewriteScmConnection( developerConnection, 
tagLabel ) );
+            rewriteScmConnection( scm, tagLabel );
+        }
     }
 
     public void restoreScmInfo( MavenProject project )
@@ -83,25 +85,40 @@
         original.modify( project );
     }
 
-    // TODO: Add other SCM types for rewriting...
-    private String rewriteScmConnection( String scmConnection, String tag )
+    // TODO: Add other SCM types for rewriting, and allow other layouts
+    private void rewriteScmConnection( Scm scm, String tag )
     {
-        if ( scmConnection != null )
+        if ( scm != null )
         {
-            if ( scmConnection.startsWith( "svn" ) )
+            String scmConnection = scm.getConnection();
+            if ( scmConnection != null && scmConnection.startsWith( "scm:svn" 
) )
             {
-                if ( scmConnection.endsWith( "trunk/" ) )
-                {
-                    scmConnection = scmConnection.substring( 0, 
scmConnection.length() - "trunk/".length() );
-                }
-                if ( scmConnection.endsWith( "branches/" ) )
+                scm.setConnection( convertSvnConnectionString( scmConnection, 
tag ) );
+                scm.setDeveloperConnection( convertSvnConnectionString( 
scm.getDeveloperConnection(), tag ) );
+                scm.setUrl( convertSvnConnectionString( scm.getUrl(), tag ) );
+            }
+        }
+    }
+
+    private String convertSvnConnectionString( String scmConnection, String 
tag )
+    {
+        if ( scmConnection.indexOf( "/trunk" ) >= 0 )
+        {
+            scmConnection = StringUtils.replace( scmConnection, "/trunk", 
"/tags/" + tag );
+        }
+        else
+        {
+            int begin = scmConnection.indexOf( "/branches/" );
+            if ( begin >= 0 )
+            {
+                int end = scmConnection.indexOf( '/', begin + 
"/branches/".length() );
+                scmConnection = scmConnection.substring( 0, begin ) + "/tags/" 
+ tag;
+                if ( end >= 0 && end < scmConnection.length() - 1 )
                 {
-                    scmConnection = scmConnection.substring( 0, 
scmConnection.length() - "branches/".length() );
+                    scmConnection += scmConnection.substring( end );
                 }
-                scmConnection += "tags/" + tag;
             }
         }
-
         return scmConnection;
     }
 
@@ -113,24 +130,30 @@
 
         private String developerConnection;
 
-        ScmInfo( String tag, String connection, String developerConnection )
+        private String url;
+
+        ScmInfo( String tag, String connection, String developerConnection, 
String url )
         {
             this.tag = tag;
             this.connection = connection;
             this.developerConnection = developerConnection;
+            this.url = url;
         }
 
         void modify( MavenProject project )
         {
-            Model model = project.getModel();
+            Model model = project.getOriginalModel();
 
-            if ( model.getScm() != null )
+            Scm scm = model.getScm();
+            if ( scm != null )
             {
-                model.getScm().setTag( tag );
+                scm.setTag( tag );
+
+                scm.setConnection( connection );
 
-                model.getScm().setConnection( connection );
+                scm.setDeveloperConnection( developerConnection );
 
-                model.getScm().setDeveloperConnection( developerConnection );
+                scm.setUrl( url );
             }
         }
     }

Modified: 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectVersionResolver.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectVersionResolver.java?rev=279240&r1=279239&r2=279240&view=diff
==============================================================================
--- 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectVersionResolver.java
 (original)
+++ 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectVersionResolver.java
 Tue Sep  6 21:14:22 2005
@@ -128,7 +128,7 @@
                     projectVersion = inputVersion;
                 }
 
-                project.setVersion( projectVersion );
+                project.getOriginalModel().setVersion( projectVersion );
 
                 resolvedVersions.put( projectId, projectVersion );
             }

Modified: 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java?rev=279240&r1=279239&r2=279240&view=diff
==============================================================================
--- 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java
 (original)
+++ 
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java
 Tue Sep  6 21:14:22 2005
@@ -1,6 +1,5 @@
 package org.apache.maven.plugins.release.helpers;
 
-import org.apache.maven.plugin.MojoExecutionException;
 import org.codehaus.plexus.util.IOUtil;
 
 import java.io.File;
@@ -32,8 +31,6 @@
 
     public static final String CP_LOCAL_MODIFICATIONS_CHECKED = 
"local-modifications-checked";
 
-    public static final String CP_SNAPSHOTS_CHECKED = "snapshots-checked";
-
     public static final String CP_POM_TRANSFORMED_FOR_RELEASE = 
"transformed-pom-for-release";
 
     public static final String CP_GENERATED_RELEASE_POM = 
"generated-release-pom";
@@ -54,14 +51,15 @@
 
     private boolean resumeAtCheckpoint = false;
 
-    private ReleaseProgressTracker()
+    private ReleaseProgressTracker( Properties properties )
     {
+        this.releaseProperties = properties;
     }
 
     public static ReleaseProgressTracker loadOrCreate( String basedir )
         throws IOException
     {
-        ReleaseProgressTracker tracker = null;
+        ReleaseProgressTracker tracker;
 
         if ( new File( basedir, RELEASE_PROPERTIES ).exists() )
         {
@@ -69,37 +67,39 @@
         }
         else
         {
-            tracker = new ReleaseProgressTracker();
+            tracker = create();
         }
 
         return tracker;
     }
 
+    public static ReleaseProgressTracker create()
+    {
+        return new ReleaseProgressTracker( new Properties() );
+    }
+
     public static ReleaseProgressTracker load( String basedir )
         throws IOException
     {
         File releasePropertiesFile = new File( basedir, RELEASE_PROPERTIES );
 
-        ReleaseProgressTracker tracker = new ReleaseProgressTracker();
-
         InputStream inStream = null;
 
+        Properties rp;
         try
         {
             inStream = new FileInputStream( releasePropertiesFile );
 
-            Properties rp = new Properties();
+            rp = new Properties();
 
             rp.load( inStream );
-
-            tracker.releaseProperties = rp;
         }
         finally
         {
             IOUtil.close( inStream );
         }
 
-        return tracker;
+        return new ReleaseProgressTracker( rp );
     }
 
     public static String getReleaseProgressFilename()
@@ -107,101 +107,56 @@
         return RELEASE_PROPERTIES;
     }
 
-    private void checkInitialized()
-    {
-        if ( releaseProperties == null )
-        {
-            releaseProperties = new Properties();
-        }
-    }
-
-    private void checkLoaded()
-    {
-        if ( releaseProperties == null )
-        {
-            throw new IllegalStateException( "You must load this instance 
before reading from it." );
-        }
-    }
-
     public void setUsername( String username )
     {
-        checkInitialized();
-
         releaseProperties.setProperty( USERNAME, username );
     }
 
     public String getUsername()
     {
-        checkLoaded();
-
         return releaseProperties.getProperty( USERNAME );
     }
 
     public void setScmTag( String scmTag )
     {
-        checkInitialized();
-
         releaseProperties.setProperty( SCM_TAG, scmTag );
     }
 
     public String getScmTag()
     {
-        checkLoaded();
-
         return releaseProperties.getProperty( SCM_TAG );
     }
 
     public void setScmUrl( String scmUrl )
     {
-        checkInitialized();
-
         releaseProperties.setProperty( SCM_URL, scmUrl );
     }
 
     public String getScmUrl()
     {
-        checkLoaded();
-
         return releaseProperties.getProperty( SCM_URL );
     }
 
     public void setScmTagBase( String tagBase )
     {
-        checkInitialized();
-
         releaseProperties.setProperty( SCM_TAG_BASE, tagBase );
     }
 
     public String getScmTagBase()
     {
-        checkLoaded();
-
         return releaseProperties.getProperty( SCM_TAG_BASE );
     }
 
     public void setPassword( String password )
     {
-        checkInitialized();
-
         releaseProperties.setProperty( SCM_PASSWORD, password );
     }
 
     public String getPassword()
     {
-        checkInitialized();
-
         return releaseProperties.getProperty( SCM_PASSWORD );
     }
 
-    public void verifyResumeCapable()
-        throws MojoExecutionException
-    {
-        if ( getUsername() == null || getScmTag() == null || getScmTagBase() 
== null || getScmUrl() == null )
-        {
-            throw new MojoExecutionException( "Missing release preparation 
information. Failed to resume" );
-        }
-    }
-
     public void checkpoint( String basedir, String pointName )
         throws IOException
     {
@@ -225,15 +180,11 @@
 
     private void setCheckpoint( String pointName )
     {
-        checkInitialized();
-
         releaseProperties.setProperty( CHECKPOINT_PREFIX + pointName, "OK" );
     }
 
     public boolean verifyCheckpoint( String pointName )
     {
-        checkLoaded();
-
         return resumeAtCheckpoint && "OK".equals( 
releaseProperties.getProperty( CHECKPOINT_PREFIX + pointName ) );
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to