You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2018/04/08 09:59:15 UTC

[maven-release] branch mavenproject2model created (now 1168890)

This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a change to branch mavenproject2model
in repository https://gitbox.apache.org/repos/asf/maven-release.git.


      at 1168890  ResourceGenerator.clean will use releaseDescriptor to get pom files of reactor

This branch includes the following new commits:

     new 150570a  Phase 1
     new caf9c1b  Store reactor pom locations in ReleaseDescriptor
     new 1168890  ResourceGenerator.clean will use releaseDescriptor to get pom files of reactor

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


-- 
To stop receiving notification emails like this one, please contact
rfscholte@apache.org.

[maven-release] 01/03: Phase 1

Posted by rf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch mavenproject2model
in repository https://gitbox.apache.org/repos/asf/maven-release.git

commit 150570ac347bc2e24cab1887090ccffd5e113ee2
Author: rfscholte <rf...@apache.org>
AuthorDate: Sat Mar 24 20:17:06 2018 +0100

    Phase 1
---
 .../release/phase/AbstractRewritePomsPhase.java    | 64 +++++++++++-----------
 .../release/phase/AbstractRunGoalsPhase.java       | 22 --------
 .../shared/release/phase/MapVersionsPhase.java     | 52 ++++++++++--------
 .../shared/release/phase/RunPerformGoalsPhase.java |  6 +-
 .../maven/shared/release/phase/ScmBranchPhase.java |  4 +-
 .../maven/shared/release/phase/ScmTagPhase.java    |  4 +-
 .../shared/release/transform/ModelETLRequest.java  | 13 ++---
 .../release/transform/jdom/JDomModelETL.java       | 11 ++--
 .../transform/jdom/JDomModelETLFactory.java        |  2 +-
 .../maven/shared/release/util/ReleaseUtil.java     |  3 +-
 10 files changed, 82 insertions(+), 99 deletions(-)

diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
index 6b1dfc2..8acbda8 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Properties;
 
 import org.apache.maven.artifact.Artifact;
@@ -32,6 +33,7 @@ import org.apache.maven.model.Build;
 import org.apache.maven.model.BuildBase;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.ModelBase;
+import org.apache.maven.model.Parent;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.Profile;
 import org.apache.maven.project.MavenProject;
@@ -183,7 +185,7 @@ public abstract class AbstractRewritePomsPhase
 
         ModelETLRequest request = new ModelETLRequest();
         request.setLineSeparator( ls );
-        request.setProject( project );
+        request.setModelVersion( project.getModelVersion() );
         request.setReleaseDescriptor( releaseDescriptor );
 
         ModelETL etl = modelETLFactories.get( modelETL ).newInstance( request );
@@ -234,42 +236,42 @@ public abstract class AbstractRewritePomsPhase
                                     boolean simulate )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        Model model = project.getModel();
+        Model modelSource = project.getModel();
 
         Properties properties = modelTarget.getProperties();
 
-        String parentVersion = rewriteParent( project, modelTarget, releaseDescriptor, simulate );
+        rewriteParent( modelSource, modelTarget, releaseDescriptor, simulate );
 
-        String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
+        String projectId = ArtifactUtils.versionlessKey( modelSource.getGroupId(), modelSource.getArtifactId() );
 
-        rewriteVersion( modelTarget, releaseDescriptor, projectId, project, parentVersion );
+        rewriteVersion( modelTarget, releaseDescriptor, projectId, modelSource );
 
         Build buildTarget = modelTarget.getBuild();
         if ( buildTarget != null )
         {
             // profile.build.extensions doesn't exist, so only rewrite project.build.extensions
             rewriteArtifactVersions( toMavenCoordinates( buildTarget.getExtensions() ), 
-                                     model, properties, result, releaseDescriptor, simulate );
+                                     modelSource, properties, result, releaseDescriptor, simulate );
 
             rewriteArtifactVersions( toMavenCoordinates( buildTarget.getPlugins() ), 
-                                     model, properties, result, releaseDescriptor, simulate );
+                                     modelSource, properties, result, releaseDescriptor, simulate );
 
             for ( Plugin plugin : buildTarget.getPlugins() )
             {
                 rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ),
-                                         model, properties,
+                                         modelSource, properties,
                                          result, releaseDescriptor, simulate );
             }
 
             if ( buildTarget.getPluginManagement() != null )
             {
-                rewriteArtifactVersions( toMavenCoordinates( buildTarget.getPluginManagement().getPlugins() ), model,
-                                         properties, result, releaseDescriptor, simulate );
+                rewriteArtifactVersions( toMavenCoordinates( buildTarget.getPluginManagement().getPlugins() ),
+                                         modelSource, properties, result, releaseDescriptor, simulate );
 
                 for ( Plugin plugin : buildTarget.getPluginManagement().getPlugins() )
                 {
-                    rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ), model, properties, result,
-                                             releaseDescriptor, simulate );
+                    rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ), modelSource, properties,
+                                             result, releaseDescriptor, simulate );
                 }
             }
         }
@@ -279,24 +281,24 @@ public abstract class AbstractRewritePomsPhase
             BuildBase profileBuild = profile.getBuild();
             if ( profileBuild != null )
             {
-                rewriteArtifactVersions( toMavenCoordinates( profileBuild.getPlugins() ), model, properties, result,
-                                         releaseDescriptor, simulate );
+                rewriteArtifactVersions( toMavenCoordinates( profileBuild.getPlugins() ), modelSource, properties,
+                                         result, releaseDescriptor, simulate );
 
                 for ( Plugin plugin : profileBuild.getPlugins() )
                 {
-                    rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ), model, properties, result,
-                                             releaseDescriptor, simulate );
+                    rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ), modelSource, properties,
+                                             result, releaseDescriptor, simulate );
                 }
 
                 if ( profileBuild.getPluginManagement() != null )
                 {
                     rewriteArtifactVersions( toMavenCoordinates( profileBuild.getPluginManagement().getPlugins() ),
-                                             model, properties, result, releaseDescriptor, simulate );
+                                             modelSource, properties, result, releaseDescriptor, simulate );
 
                     for ( Plugin plugin : profileBuild.getPluginManagement().getPlugins() )
                     {
-                        rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ), model, properties,
-                                                 result, releaseDescriptor, simulate );
+                        rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ), modelSource,
+                                                 properties, result, releaseDescriptor, simulate );
                     }
                 }
             }
@@ -308,19 +310,19 @@ public abstract class AbstractRewritePomsPhase
 
         for ( ModelBase modelBase : modelBases )
         {
-            rewriteArtifactVersions( toMavenCoordinates( modelBase.getDependencies() ), model, properties, result,
+            rewriteArtifactVersions( toMavenCoordinates( modelBase.getDependencies() ), modelSource, properties, result,
                                      releaseDescriptor, simulate );
 
             if ( modelBase.getDependencyManagement() != null )
             {
                 rewriteArtifactVersions( toMavenCoordinates( modelBase.getDependencyManagement().getDependencies() ),
-                                         model, properties, result, releaseDescriptor, simulate );
+                                         modelSource, properties, result, releaseDescriptor, simulate );
             }
 
             if ( modelBase.getReporting() != null )
             {
-                rewriteArtifactVersions( toMavenCoordinates( modelBase.getReporting().getPlugins() ), model, properties,
-                                         result, releaseDescriptor, simulate );
+                rewriteArtifactVersions( toMavenCoordinates( modelBase.getReporting().getPlugins() ), modelSource,
+                                         properties, result, releaseDescriptor, simulate );
             }
         }
 
@@ -328,26 +330,27 @@ public abstract class AbstractRewritePomsPhase
     }
 
     private void rewriteVersion( Model modelTarget, ReleaseDescriptor releaseDescriptor, String projectId,
-                                 MavenProject project, String parentVersion )
+                                 Model modelSource )
         throws ReleaseFailureException
     {
         String version = getNextVersion( releaseDescriptor, projectId );
         if ( version == null )
         {
-            throw new ReleaseFailureException( "Version for '" + project.getName() + "' was not mapped" );
+            String name = Objects.toString( modelSource.getName(), modelSource.getArtifactId() );
+            throw new ReleaseFailureException( "Version for '" + name + "' was not mapped" );
         }
 
         modelTarget.setVersion( version );
     }
 
-    private String rewriteParent( MavenProject project, Model targetModel, 
-                                  ReleaseDescriptor releaseDescriptor, boolean simulate )
+    private void rewriteParent( Model sourceModel, Model targetModel, ReleaseDescriptor releaseDescriptor,
+                                boolean simulate )
         throws ReleaseFailureException
     {
         String parentVersion = null;
-        if ( project.hasParent() )
+        if ( sourceModel.getParent() != null )
         {
-            MavenProject parent = project.getParent();
+            Parent parent = sourceModel.getParent();
             String key = ArtifactUtils.versionlessKey( parent.getGroupId(), parent.getArtifactId() );
             parentVersion = getNextVersion( releaseDescriptor, key );
             if ( parentVersion == null )
@@ -360,7 +363,7 @@ public abstract class AbstractRewritePomsPhase
                 String original = getOriginalVersion( releaseDescriptor, key, simulate );
                 if ( parent.getVersion().equals( original ) )
                 {
-                    throw new ReleaseFailureException( "Version for parent '" + parent.getName() + "' was not mapped" );
+                    throw new ReleaseFailureException( "Version for parent '" + key + "' was not mapped" );
                 }
             }
             else
@@ -368,7 +371,6 @@ public abstract class AbstractRewritePomsPhase
                 targetModel.getParent().setVersion( parentVersion );
             }
         }
-        return parentVersion;
     }
 
     private void rewriteArtifactVersions( Collection<MavenCoordinate> elements, Model projectModel,
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
index 214f86b..8e65f21 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
@@ -96,26 +96,4 @@ public abstract class AbstractRunGoalsPhase
     }
 
     protected abstract String getGoals( ReleaseDescriptor releaseDescriptor );
-
-    /**
-     * Determines the path of the working directory. By default, this is the
-     * checkout directory. For some SCMs, the project root directory is not the
-     * checkout directory itself, but a SCM-specific subdirectory.
-     *
-     * @param checkoutDirectory            The checkout directory as java.io.File
-     * @param relativePathProjectDirectory The relative path of the project directory within the checkout
-     *                                     directory or ""
-     * @return The working directory
-     */
-    protected File determineWorkingDirectory( File checkoutDirectory, String relativePathProjectDirectory )
-    {
-        File workingDirectory = checkoutDirectory;
-
-        if ( StringUtils.isNotEmpty( relativePathProjectDirectory ) )
-        {
-            workingDirectory = new File( checkoutDirectory, relativePathProjectDirectory );
-        }
-
-        return workingDirectory;
-    }
 }
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java
index 5d1372f..7e81ada 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java
@@ -23,9 +23,11 @@ import java.text.MessageFormat;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Objects;
 import java.util.ResourceBundle;
 
 import org.apache.maven.artifact.ArtifactUtils;
+import org.apache.maven.model.Model;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseResult;
@@ -107,16 +109,13 @@ public class MapVersionsPhase
 
         resourceBundle = getResourceBundle( releaseEnvironment.getLocale() );
 
-        MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects );
+        final Model rootModel = ReleaseUtil.getRootProject( reactorProjects ).getModel();
 
-        if ( releaseDescriptor.isAutoVersionSubmodules() && ArtifactUtils.isSnapshot( rootProject.getVersion() ) )
+        if ( releaseDescriptor.isAutoVersionSubmodules() && ArtifactUtils.isSnapshot( rootModel.getVersion() ) )
         {
-            // get the root project
-            MavenProject project = rootProject;
+            String projectId = ArtifactUtils.versionlessKey( rootModel.getGroupId(), rootModel.getArtifactId() );
 
-            String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
-
-            String nextVersion = resolveNextVersion( project, projectId, releaseDescriptor, result );
+            String nextVersion = resolveNextVersion( rootModel, projectId, releaseDescriptor, result );
 
             if ( !convertToSnapshot )
             {
@@ -133,19 +132,20 @@ public class MapVersionsPhase
 
             for ( MavenProject subProject : reactorProjects )
             {
-                String subProjectId =
-                    ArtifactUtils.versionlessKey( subProject.getGroupId(), subProject.getArtifactId() );
+                Model subModel = subProject.getModel();
+                
+                String subProjectId = ArtifactUtils.versionlessKey( subModel.getGroupId(), subModel.getArtifactId() );
 
                 if ( convertToSnapshot )
                 {
                     String v;
-                    if ( ArtifactUtils.isSnapshot( subProject.getVersion() ) )
+                    if ( ArtifactUtils.isSnapshot( subModel.getVersion() ) )
                     {
                         v = nextVersion;
                     }
                     else
                     {
-                        v = subProject.getVersion();
+                        v = subModel.getVersion();
                     }
 
                     if ( releaseDescriptor.isBranchCreation() && convertToBranch )
@@ -167,9 +167,11 @@ public class MapVersionsPhase
         {
             for ( MavenProject project : reactorProjects )
             {
-                String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
+                Model model = project.getModel();
+                
+                String projectId = ArtifactUtils.versionlessKey( model.getGroupId(), model.getArtifactId() );
 
-                String nextVersion = resolveNextVersion( project, projectId, releaseDescriptor, result );
+                String nextVersion = resolveNextVersion( model, projectId, releaseDescriptor, result );
 
                 if ( !convertToSnapshot )
                 {
@@ -191,7 +193,7 @@ public class MapVersionsPhase
         return result;
     }
 
-    private String resolveNextVersion( MavenProject project,
+    private String resolveNextVersion( Model model,
                                    String projectId,
                                    ReleaseDescriptor releaseDescriptor,
                                    ReleaseResult result )
@@ -202,10 +204,10 @@ public class MapVersionsPhase
         {
             // no branch modification
             if ( !( releaseDescriptor.isUpdateBranchVersions()
-                            && ( ArtifactUtils.isSnapshot( project.getVersion() )
+                            && ( ArtifactUtils.isSnapshot( model.getVersion() )
                                             || releaseDescriptor.isUpdateVersionsToSnapshot() ) ) )
             {
-                return project.getVersion();
+                return model.getVersion();
             }
 
             defaultVersion = getReleaseVersion( projectId, releaseDescriptor );
@@ -217,10 +219,10 @@ public class MapVersionsPhase
         else if ( releaseDescriptor.isBranchCreation() )
         {
             // no working copy modification
-            if ( !( ArtifactUtils.isSnapshot( project.getVersion() )
+            if ( !( ArtifactUtils.isSnapshot( model.getVersion() )
                           && releaseDescriptor.isUpdateWorkingCopyVersions() ) )
             {
-                return project.getVersion();
+                return model.getVersion();
             }
 
             defaultVersion = getDevelopmentVersion( projectId, releaseDescriptor );
@@ -230,7 +232,7 @@ public class MapVersionsPhase
             // no working copy modification
             if ( !( releaseDescriptor.isUpdateWorkingCopyVersions() ) )
             {
-                return project.getVersion();
+                return model.getVersion();
             }
 
             defaultVersion = getDevelopmentVersion( projectId, releaseDescriptor );
@@ -254,7 +256,7 @@ public class MapVersionsPhase
                     // unspecified and unmapped version, so use project version
                     if ( baseVersion == null )
                     {
-                        baseVersion = project.getVersion();
+                        baseVersion = model.getVersion();
                     }
 
                     try
@@ -290,11 +292,15 @@ public class MapVersionsPhase
                     {
                         messageKey = getMapversionPromptKey( releaseDescriptor );
                     }
-                    String message =
-                        MessageFormat.format( resourceBundle.getString( messageKey ), project.getName(), projectId );
+                    
+                    // As defined in MavenProject.getName();
+                    String name = Objects.toString( model.getName(), model.getArtifactId() );
+                    
+                    String message = MessageFormat.format( resourceBundle.getString( messageKey ), name, projectId );
+                    
                     nextVersion = prompter.prompt( message, suggestedVersion );
 
-                  //@todo validate next version, maybe with DefaultArtifactVersion
+                    //@todo validate next version, maybe with DefaultArtifactVersion
                 }
                 else if ( defaultVersion == null )
                 {
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java
index 9801c12..e694880 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java
@@ -45,11 +45,11 @@ public class RunPerformGoalsPhase
                                   List<MavenProject> reactorProjects )
         throws ReleaseExecutionException
     {
-        return runLogic( releaseDescriptor, releaseEnvironment, reactorProjects, false );
+        return runLogic( releaseDescriptor, releaseEnvironment, false );
     }
 
     private ReleaseResult runLogic( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment,
-                                  List<MavenProject> reactorProjects, boolean simulate )
+                                  boolean simulate )
         throws ReleaseExecutionException
     {
         String additionalArguments = releaseDescriptor.getAdditionalArguments();
@@ -142,7 +142,7 @@ public class RunPerformGoalsPhase
                                    List<MavenProject> reactorProjects )
         throws ReleaseExecutionException
     {
-        return runLogic( releaseDescriptor, releaseEnvironment, reactorProjects, true );
+        return runLogic( releaseDescriptor, releaseEnvironment, true );
     }
 
     @Override
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java
index 218a529..a660333 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java
@@ -68,7 +68,7 @@ public class ScmBranchPhase
         validateConfiguration( releaseDescriptor );
 
         ReleaseDescriptor basedirAlignedReleaseDescriptor =
-            ReleaseUtil.createBasedirAlignedReleaseDescriptor( releaseDescriptor, reactorProjects );
+            ReleaseUtil.createBasedirAlignedReleaseDescriptor( releaseDescriptor );
 
         logInfo( relResult, "Branching release with the label " + basedirAlignedReleaseDescriptor.getScmReleaseLabel()
             + "..." );
@@ -133,7 +133,7 @@ public class ScmBranchPhase
 
         validateConfiguration( releaseDescriptor );
         ReleaseDescriptor basedirAlignedReleaseDescriptor =
-            ReleaseUtil.createBasedirAlignedReleaseDescriptor( releaseDescriptor, reactorProjects );
+            ReleaseUtil.createBasedirAlignedReleaseDescriptor( releaseDescriptor );
 
         logInfo( result, "Full run would be branching " + basedirAlignedReleaseDescriptor.getWorkingDirectory() );
         if ( releaseDescriptor.getScmBranchBase() != null )
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java
index 8a62f55..b406c5e 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java
@@ -84,7 +84,7 @@ public class ScmTagPhase
         logInfo( relResult, "Tagging release with the label " + releaseDescriptor.getScmReleaseLabel() + "..." );
 
         ReleaseDescriptor basedirAlignedReleaseDescriptor =
-            ReleaseUtil.createBasedirAlignedReleaseDescriptor( releaseDescriptor, reactorProjects );
+            ReleaseUtil.createBasedirAlignedReleaseDescriptor( releaseDescriptor );
 
         ScmRepository repository;
         ScmProvider provider;
@@ -153,7 +153,7 @@ public class ScmTagPhase
         validateConfiguration( releaseDescriptor );
 
         ReleaseDescriptor basedirAlignedReleaseDescriptor =
-            ReleaseUtil.createBasedirAlignedReleaseDescriptor( releaseDescriptor, reactorProjects );
+            ReleaseUtil.createBasedirAlignedReleaseDescriptor( releaseDescriptor );
 
         if ( releaseDescriptor.isRemoteTagging() )
         {
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/ModelETLRequest.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/ModelETLRequest.java
index 22ec8b6..c9ce306 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/ModelETLRequest.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/ModelETLRequest.java
@@ -19,7 +19,6 @@ package org.apache.maven.shared.release.transform;
  * under the License.
  */
 
-import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 
 /**
@@ -31,7 +30,7 @@ public class ModelETLRequest
 {
     private String lineSeparator;
 
-    private MavenProject project;
+    private String modelVersion;
 
     private ReleaseDescriptor releaseDescriptor;
 
@@ -45,14 +44,14 @@ public class ModelETLRequest
         this.lineSeparator = lineSeparator;
     }
 
-    public MavenProject getProject()
+    public String getModelVersion()
     {
-        return project;
+        return modelVersion;
     }
-
-    public void setProject( MavenProject project )
+    
+    public void setModelVersion( String modelVersion )
     {
-        this.project = project;
+        this.modelVersion = modelVersion;
     }
 
     public ReleaseDescriptor getReleaseDescriptor()
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelETL.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelETL.java
index 9aef4cf..64ee205 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelETL.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelETL.java
@@ -29,7 +29,6 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.maven.model.Model;
-import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.transform.ModelETL;
@@ -57,7 +56,7 @@ public class JDomModelETL implements ModelETL
 {
     private ReleaseDescriptor releaseDescriptor;
 
-    private MavenProject project;
+    private String modelVersion;
 
     private Document document;
 
@@ -76,11 +75,11 @@ public class JDomModelETL implements ModelETL
         this.releaseDescriptor = releaseDescriptor;
     }
 
-    public void setProject( MavenProject project )
+    public void setModelVersion( String modelVersion )
     {
-        this.project = project;
+        this.modelVersion = modelVersion;
     }
-
+    
     @Override
     public void extract( File pomFile ) throws ReleaseExecutionException
     {
@@ -156,7 +155,7 @@ public class JDomModelETL implements ModelETL
     @Override
     public void load( File targetFile ) throws ReleaseExecutionException
     {
-        writePom( targetFile, document, releaseDescriptor, project.getModelVersion(), intro, outtro );
+        writePom( targetFile, document, releaseDescriptor, modelVersion, intro, outtro );
     }
 
     @Override
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelETLFactory.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelETLFactory.java
index 88078e0..33d40ac 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelETLFactory.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom/JDomModelETLFactory.java
@@ -38,7 +38,7 @@ public class JDomModelETLFactory implements ModelETLFactory
         JDomModelETL result = new JDomModelETL();
 
         result.setLs( request.getLineSeparator() );
-        result.setProject( request.getProject() );
+        result.setModelVersion( request.getModelVersion() );
         result.setReleaseDescriptor( request.getReleaseDescriptor() );
 
         return result;
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
index 7b64f20..beeab5c 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
@@ -163,8 +163,7 @@ public class ReleaseUtil
         return norm;
     }
 
-    public static ReleaseDescriptor createBasedirAlignedReleaseDescriptor( ReleaseDescriptor releaseDescriptor,
-                                                                           List<MavenProject> reactorProjects )
+    public static ReleaseDescriptor createBasedirAlignedReleaseDescriptor( ReleaseDescriptor releaseDescriptor )
         throws ReleaseExecutionException
     {
         int parentLevels = Paths.get( releaseDescriptor.getPomFileName() ).getNameCount() - 1;

-- 
To stop receiving notification emails like this one, please contact
rfscholte@apache.org.

[maven-release] 03/03: ResourceGenerator.clean will use releaseDescriptor to get pom files of reactor

Posted by rf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch mavenproject2model
in repository https://gitbox.apache.org/repos/asf/maven-release.git

commit 1168890783b84cbeaae3a3d3a9c8e6c48d025fc0
Author: rfscholte <rf...@apache.org>
AuthorDate: Sat Apr 7 20:22:47 2018 +0200

    ResourceGenerator.clean will use releaseDescriptor to get pom files of reactor
---
 .../shared/release/phase/ResourceGenerator.java     |  3 ++-
 .../maven/shared/release/DefaultReleaseManager.java |  6 +++---
 .../release/phase/AbstractBackupPomsPhase.java      | 20 ++++----------------
 .../release/phase/AbstractRewritePomsPhase.java     |  2 +-
 .../shared/release/phase/CreateBackupPomsPhase.java | 21 ++++++++++++++-------
 .../release/phase/GenerateReleasePomsPhase.java     |  2 +-
 .../release/phase/RestoreBackupPomsPhase.java       | 10 +++++++---
 .../maven/shared/release/util/ReleaseUtil.java      |  6 ++++++
 .../release/phase/AbstractBackupPomsPhaseTest.java  | 21 +++++++++++++++++++++
 .../AbstractRewritingReleasePhaseTestCase.java      | 10 +++++++++-
 .../release/phase/CreateBackupPomsPhaseTest.java    | 19 ++++++++++++-------
 .../shared/release/phase/ReleasePhaseStub.java      |  2 +-
 .../release/phase/RestoreBackupPomsPhaseTest.java   |  4 ++--
 .../phase/RewritePomsForBranchPhaseTest.java        |  9 ++++++---
 .../phase/RewritePomsForDevelopmentPhaseTest.java   | 13 +++++++++----
 .../phase/RewritePomsForReleasePhaseTest.java       |  9 ++++++---
 16 files changed, 104 insertions(+), 53 deletions(-)

diff --git a/maven-release-api/src/main/java/org/apache/maven/shared/release/phase/ResourceGenerator.java b/maven-release-api/src/main/java/org/apache/maven/shared/release/phase/ResourceGenerator.java
index 8f85e3e..4618aed 100644
--- a/maven-release-api/src/main/java/org/apache/maven/shared/release/phase/ResourceGenerator.java
+++ b/maven-release-api/src/main/java/org/apache/maven/shared/release/phase/ResourceGenerator.java
@@ -23,6 +23,7 @@ import java.util.List;
 
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.release.ReleaseResult;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
 
 /**
  * Additional interface for ReleasePhase if the phase generates resources, which should be cleaned up afterwards.
@@ -38,5 +39,5 @@ public interface ResourceGenerator
      * @param reactorProjects the reactor projects
      * @return the release result
      */
-    ReleaseResult clean( List<MavenProject> reactorProjects );
+    ReleaseResult clean( ReleaseDescriptor releaseDescriptor, List<MavenProject> reactorProjects );
 }
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java
index 2eb77d6..10db03e 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java
@@ -529,8 +529,6 @@ public class DefaultReleaseManager
         ReleaseDescriptor releaseDescriptor =
             ReleaseUtils.buildReleaseDescriptor( cleanRequest.getReleaseDescriptorBuilder() );
 
-        configStore.delete( releaseDescriptor );
-
         Strategy releaseStrategy = getStrategy( releaseDescriptor.getReleaseStrategyId() );
 
         Set<String> phases = new LinkedHashSet<>();
@@ -543,10 +541,12 @@ public class DefaultReleaseManager
             
             if ( phase instanceof ResourceGenerator )
             {
-                ( (ResourceGenerator) phase ).clean( cleanRequest.getReactorProjects() );
+                ( (ResourceGenerator) phase ).clean( releaseDescriptor, cleanRequest.getReactorProjects() );
             }
         }
 
+        configStore.delete( releaseDescriptor );
+
         updateListener( cleanRequest.getReleaseManagerListener(), "cleanup", PHASE_END );
     }
 
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java
index b2a7e8e..65a63ab 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java
@@ -19,9 +19,6 @@ package org.apache.maven.shared.release.phase;
  * under the License.
  */
 
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.release.util.ReleaseUtil;
-
 import java.io.File;
 
 /**
@@ -32,23 +29,14 @@ public abstract class AbstractBackupPomsPhase
 {
     private final String backupSuffix = ".releaseBackup";
 
-    protected File getPomBackup( MavenProject project )
+    protected File getPomBackup( String pomLocation )
     {
-        File pomFile = ReleaseUtil.getStandardPom( project );
-
-        if ( pomFile != null )
-        {
-            return new File( pomFile.getAbsolutePath() + backupSuffix );
-        }
-        else
-        {
-            return null;
-        }
+            return new File( pomLocation + backupSuffix );
     }
 
-    protected void deletePomBackup( MavenProject project )
+    protected void deletePomBackup( String pomLocation )
     {
-        File pomBackup = getPomBackup( project );
+        File pomBackup = getPomBackup( pomLocation );
 
         if ( pomBackup != null && pomBackup.exists() )
         {
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
index 8acbda8..e60d1c7 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
@@ -138,7 +138,7 @@ public abstract class AbstractRewritePomsPhase
     }
 
     @Override
-    public ReleaseResult clean( List<MavenProject> reactorProjects )
+    public ReleaseResult clean( ReleaseDescriptor releaseDescriptor, List<MavenProject> reactorProjects )
     {
         ReleaseResult result = new ReleaseResult();
 
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java
index bf07fd6..1b22db1 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java
@@ -22,6 +22,7 @@ package org.apache.maven.shared.release.phase;
 import java.io.IOException;
 import java.util.List;
 
+import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
@@ -47,11 +48,11 @@ public class CreateBackupPomsPhase
         ReleaseResult result = new ReleaseResult();
 
         // remove previous backups, if any
-        clean( reactorProjects );
+        clean( releaseDescriptor, reactorProjects );
 
         for ( MavenProject project : reactorProjects )
         {
-            createPomBackup( project );
+            createPomBackup( releaseDescriptor, project );
         }
 
         result.setResultCode( ReleaseResult.SUCCESS );
@@ -60,13 +61,15 @@ public class CreateBackupPomsPhase
     }
 
     @Override
-    public ReleaseResult clean( List<MavenProject> reactorProjects )
+    public ReleaseResult clean( ReleaseDescriptor releaseDescriptor, List<MavenProject> reactorProjects )
     {
         ReleaseResult result = new ReleaseResult();
 
         for ( MavenProject project : reactorProjects )
         {
-            deletePomBackup( project );
+            String versionlessKey = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
+
+            deletePomBackup( releaseDescriptor.getProjectPomFile( versionlessKey ) );
         }
 
         result.setResultCode( ReleaseResult.SUCCESS );
@@ -82,15 +85,19 @@ public class CreateBackupPomsPhase
         return execute( releaseDescriptor, releaseEnvironment, reactorProjects );
     }
 
-    private void createPomBackup( MavenProject project )
+    private void createPomBackup( ReleaseDescriptor releaseDescriptor, MavenProject project )
         throws ReleaseExecutionException
     {
+        String projectKey = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
+        
+        String pomLocation = releaseDescriptor.getProjectPomFile( projectKey );
+        
         // delete any existing backup first
-        deletePomBackup( project );
+        deletePomBackup( pomLocation );
 
         try
         {
-            FileUtils.copyFile( ReleaseUtil.getStandardPom( project ), getPomBackup( project ) );
+            FileUtils.copyFile( ReleaseUtil.getStandardPom( project ), getPomBackup( pomLocation ) );
         }
         catch ( IOException e )
         {
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java
index 7b6004f..b6e7c6a 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java
@@ -673,7 +673,7 @@ public class GenerateReleasePomsPhase
      * @see org.apache.maven.shared.release.phase.AbstractReleasePhase#clean(java.util.List)
      */
     @Override
-    public ReleaseResult clean( List<MavenProject> reactorProjects )
+    public ReleaseResult clean( ReleaseDescriptor releaseDescriptor, List<MavenProject> reactorProjects )
     {
         ReleaseResult result = new ReleaseResult();
 
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java
index f746eed..76c0750 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java
@@ -19,6 +19,7 @@ package org.apache.maven.shared.release.phase;
  * under the License.
  */
 
+import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
@@ -35,7 +36,6 @@ import org.apache.maven.shared.release.env.ReleaseEnvironment;
 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
-import org.apache.maven.shared.release.util.ReleaseUtil;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.FileUtils;
@@ -86,7 +86,11 @@ public class RestoreBackupPomsPhase
                                      MavenProject project )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        File pomBackup = getPomBackup( project );
+        String projectKey = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
+        
+        String pomLocation = releaseDescriptor.getProjectPomFile( projectKey );
+        
+        File pomBackup = getPomBackup( pomLocation );
 
         if ( !pomBackup.exists() )
         {
@@ -133,7 +137,7 @@ public class RestoreBackupPomsPhase
 
         try
         {
-            FileUtils.copyFile( getPomBackup( project ), ReleaseUtil.getStandardPom( project ) );
+            FileUtils.copyFile( getPomBackup( pomLocation ), new File( pomLocation ) );
         }
         catch ( IOException e )
         {
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
index beeab5c..d974b80 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
@@ -65,6 +65,12 @@ public class ReleaseUtil
         // noop
     }
 
+    /**
+     * Get the MavenProject from the reactorProjects that is marked as executionRoot
+     * 
+     * @param reactorProjects should not be {@code null} or empty
+     * @return the MavenProject of the executionRoot
+     */
     public static MavenProject getRootProject( List<MavenProject> reactorProjects )
     {
         MavenProject project = reactorProjects.get( 0 );
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhaseTest.java
index ce8e00e..c717a7b 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhaseTest.java
@@ -1,5 +1,7 @@
 package org.apache.maven.shared.release.phase;
 
+import org.apache.maven.artifact.ArtifactUtils;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -23,6 +25,9 @@ import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.release.PlexusJUnit4TestCase;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
+import org.apache.maven.shared.release.config.ReleaseUtils;
 import org.codehaus.plexus.util.ReaderFactory;
 
 import java.io.File;
@@ -90,4 +95,20 @@ public abstract class AbstractBackupPomsPhaseTest
         return project;
     }
 
+    protected ReleaseDescriptorBuilder createReleaseDescriptorBuilder( List<MavenProject> reactorProjects )
+    {
+        ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+        
+        for ( MavenProject reactorProject : reactorProjects )
+        {
+            String projectKey =
+                ArtifactUtils.versionlessKey( reactorProject.getGroupId(), reactorProject.getArtifactId() );
+            
+            // would normally be relative to workingdirectory
+            builder.addProjectPomFile( projectKey, reactorProject.getFile().getAbsolutePath() );
+        }
+        
+        return builder;
+    }
+
 }
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
index 0f72873..46d19a2 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
@@ -652,8 +652,11 @@ public abstract class AbstractRewritingReleasePhaseTestCase
     public void testCleanNoProjects()
         throws Exception
     {
+        ReleaseDescriptorBuilder builder = createDescriptorFromProjects(  Collections.<MavenProject>emptyList(), "" );
+        
         // This occurs when it is release:perform run standalone. Just check there are no errors.
-        ( (ResourceGenerator) phase ).clean( Collections.<MavenProject>emptyList() );
+        ( (ResourceGenerator) phase ).clean( ReleaseUtils.buildReleaseDescriptor( builder ),
+                                             Collections.<MavenProject>emptyList() );
     }
 
     protected ReleaseDescriptorBuilder createUnmappedConfiguration( List<MavenProject> reactorProjects, String workingDirectory )
@@ -746,6 +749,11 @@ public abstract class AbstractRewritingReleasePhaseTestCase
     
     private ReleaseDescriptorBuilder createDescriptorFromProjects( ReleaseDescriptorBuilder builder, List<MavenProject> reactorProjects )
     {
+        if ( reactorProjects.isEmpty() )
+        {
+            return builder;
+        }
+
         MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects );
         
         for ( MavenProject project : reactorProjects )
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhaseTest.java
index 44e43ee..527d79e 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhaseTest.java
@@ -23,10 +23,11 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
+import org.apache.maven.shared.release.config.ReleaseUtils;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
 import org.apache.maven.shared.release.util.ReleaseUtil;
 import org.junit.Test;
@@ -80,8 +81,10 @@ public class CreateBackupPomsPhaseTest
         throws Exception
     {
         List<MavenProject> projects = getReactorProjects( getTestPath( path ) );
+        
+        ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( projects );
 
-        phase.execute( null, new DefaultReleaseEnvironment(), projects );
+        phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), projects );
 
         testProjectBackups( projects, true );
     }
@@ -91,7 +94,9 @@ public class CreateBackupPomsPhaseTest
     {
         List<MavenProject> projects = getReactorProjects( getTestPath( path ) );
 
-        phase.simulate( null, new DefaultReleaseEnvironment(), projects );
+        ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( projects );
+
+        phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), projects );
 
         testProjectBackups( projects, true );
     }
@@ -101,7 +106,9 @@ public class CreateBackupPomsPhaseTest
     {
         List<MavenProject> projects = getReactorProjects( getTestPath( path ) );
 
-        ( (ResourceGenerator) phase ).clean( projects );
+        ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( projects );
+
+        ( (ResourceGenerator) phase ).clean( ReleaseUtils.buildReleaseDescriptor( builder ), projects );
 
         testProjectBackups( projects, false );
     }
@@ -109,10 +116,8 @@ public class CreateBackupPomsPhaseTest
     protected void testProjectBackups( List<MavenProject> reactorProjects, boolean created )
         throws Exception
     {
-        for( Iterator<MavenProject> projects = reactorProjects.iterator(); projects.hasNext(); )
+        for ( MavenProject project : reactorProjects )
         {
-            MavenProject project = projects.next();
-
             File pomFile = project.getFile();
 
             File backupFile = new File( pomFile.getAbsolutePath() + releaseBackupSuffix );
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ReleasePhaseStub.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ReleasePhaseStub.java
index 7d28bdf..67b0b96 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ReleasePhaseStub.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ReleasePhaseStub.java
@@ -74,7 +74,7 @@ public class ReleasePhaseStub
     }
 
     @Override
-    public ReleaseResult clean( List<MavenProject> reactorProjects )
+    public ReleaseResult clean( ReleaseDescriptor releaseDescriptor, List<MavenProject> reactorProjects )
     {
         ReleaseResult result = new ReleaseResult();
 
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhaseTest.java
index dacb66a..a8418c5 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhaseTest.java
@@ -83,8 +83,8 @@ public class RestoreBackupPomsPhaseTest
         throws Exception
     {
         List<MavenProject> projects = getReactorProjects( getTestPath( path ) );
-
-        ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+        
+        ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( projects );
         builder.setScmSourceUrl( "scm:svn:http://myhost/myrepo" );
         phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), projects );
 
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java
index 49642af..84e6a13 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java
@@ -30,6 +30,7 @@ import java.util.List;
 import java.util.Objects;
 
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
 import org.apache.maven.shared.release.config.ReleaseUtils;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
@@ -131,12 +132,14 @@ public class RewritePomsForBranchPhaseTest
         File testFile = getTestFile( "target/test-classes/projects/rewrite-for-branch/basic-pom/pom.xml.branch" );
         testFile.delete();
         assertFalse( testFile.exists() );
+        
+        ReleaseDescriptor descriptor = ReleaseUtils.buildReleaseDescriptor( builder );
 
-        phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
+        phase.simulate( descriptor, new DefaultReleaseEnvironment(), reactorProjects );
 
         assertTrue( testFile.exists() );
 
-        ( (ResourceGenerator) phase ).clean( reactorProjects );
+        ( (ResourceGenerator) phase ).clean( descriptor, reactorProjects );
 
         assertFalse( testFile.exists() );
     }
@@ -153,7 +156,7 @@ public class RewritePomsForBranchPhaseTest
         testFile.delete();
         assertFalse( testFile.exists() );
 
-        ( (ResourceGenerator) phase ).clean( reactorProjects );
+        ( (ResourceGenerator) phase ).clean( ReleaseUtils.buildReleaseDescriptor( builder ), reactorProjects );
 
         assertFalse( testFile.exists() );
     }
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
index 953694c..4be2839 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
@@ -32,6 +32,7 @@ import java.util.List;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.model.Scm;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
 import org.apache.maven.shared.release.config.ReleaseUtils;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
@@ -136,11 +137,12 @@ public class RewritePomsForDevelopmentPhaseTest
         testFile.delete();
         assertFalse( testFile.exists() );
 
-        phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
+        ReleaseDescriptor descriptor = ReleaseUtils.buildReleaseDescriptor( builder );
+        phase.simulate( descriptor, new DefaultReleaseEnvironment(), reactorProjects );
 
         assertTrue( testFile.exists() );
 
-        ( (ResourceGenerator) phase ).clean( reactorProjects );
+        ( (ResourceGenerator) phase ).clean( descriptor, reactorProjects );
 
         assertFalse( testFile.exists() );
     }
@@ -150,12 +152,15 @@ public class RewritePomsForDevelopmentPhaseTest
         throws Exception
     {
         List<MavenProject> reactorProjects = createReactorProjects( "basic-pom" );
-
+        ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects, "basic-pom" );
+        
         File testFile = getTestFile( "target/test-classes/projects/rewrite-for-development/basic-pom/pom.xml.next" );
         testFile.delete();
         assertFalse( testFile.exists() );
 
-        ( (ResourceGenerator) phase ).clean( reactorProjects );
+        ReleaseDescriptor descriptor = ReleaseUtils.buildReleaseDescriptor( builder );
+        
+        ( (ResourceGenerator) phase ).clean( descriptor, reactorProjects );
 
         assertFalse( testFile.exists() );
     }
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
index e25678e..ecac5fa 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
@@ -31,6 +31,7 @@ import java.util.List;
 import java.util.Objects;
 
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
 import org.apache.maven.shared.release.config.ReleaseUtils;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
@@ -134,11 +135,12 @@ public class RewritePomsForReleasePhaseTest
         testFile.delete();
         assertFalse( testFile.exists() );
 
-        phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
+        ReleaseDescriptor descriptor = ReleaseUtils.buildReleaseDescriptor( builder );
+        phase.simulate( descriptor, new DefaultReleaseEnvironment(), reactorProjects );
 
         assertTrue( testFile.exists() );
 
-        ( (ResourceGenerator) phase ).clean( reactorProjects );
+        ( (ResourceGenerator) phase ).clean( descriptor, reactorProjects );
 
         assertFalse( testFile.exists() );
     }
@@ -148,12 +150,13 @@ public class RewritePomsForReleasePhaseTest
         throws Exception
     {
         List<MavenProject> reactorProjects = createReactorProjects( "basic-pom" );
+        ReleaseDescriptorBuilder builder = createDescriptorFromProjects( reactorProjects, "basic-pom" );
 
         File testFile = getTestFile( "target/test-classes/projects/rewrite-for-release/basic-pom/pom.xml.tag" );
         testFile.delete();
         assertFalse( testFile.exists() );
 
-        ( (ResourceGenerator) phase ).clean( reactorProjects );
+        ( (ResourceGenerator) phase ).clean( ReleaseUtils.buildReleaseDescriptor( builder ), reactorProjects );
 
         assertFalse( testFile.exists() );
     }

-- 
To stop receiving notification emails like this one, please contact
rfscholte@apache.org.

[maven-release] 02/03: Store reactor pom locations in ReleaseDescriptor

Posted by rf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch mavenproject2model
in repository https://gitbox.apache.org/repos/asf/maven-release.git

commit caf9c1bd4aa5e0b587a1ca4e4bb173813633d4c6
Author: rfscholte <rf...@apache.org>
AuthorDate: Sat Apr 7 16:53:57 2018 +0200

    Store reactor pom locations in ReleaseDescriptor
---
 .../shared/release/config/ReleaseDescriptor.java   |  2 ++
 .../release/config/ReleaseDescriptorBuilder.java   |  5 ++++
 .../src/main/mdo/release-descriptor.mdo            | 33 ++++++++++++----------
 .../maven/plugins/release/AbstractReleaseMojo.java |  2 ++
 .../plugins/release/PerformReleaseMojoTest.java    | 12 +++++++-
 .../plugins/release/PrepareReleaseMojoTest.java    | 18 ++++++++++++
 .../plugins/release/StageReleaseMojoTest.java      |  5 ++++
 7 files changed, 61 insertions(+), 16 deletions(-)

diff --git a/maven-release-api/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptor.java b/maven-release-api/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptor.java
index 042a347..052b1e4 100644
--- a/maven-release-api/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptor.java
+++ b/maven-release-api/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptor.java
@@ -389,6 +389,8 @@ public interface ReleaseDescriptor
 
     String getProjectReleaseVersion( String key );
 
+    String getProjectPomFile( String projectKey );
+
     /**
      * Method getOriginalScmInfo.
      * 
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java
index c2ed277..ff825c1 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java
@@ -373,6 +373,11 @@ public class ReleaseDescriptorBuilder
         releaseDescriptor.addOriginalVersion( projectKey, version );
     }
     
+    public void addProjectPomFile( String projectKey, String pomFile )
+    {
+        releaseDescriptor.addProjectPomFile( projectKey, pomFile );
+    }
+
     public ReleaseDescriptorBuilder addDependencyOriginalVersion( String dependencyKey, String version )
     {
         releaseDescriptor.addDependencyOriginalVersion( dependencyKey, version );
diff --git a/maven-release-manager/src/main/mdo/release-descriptor.mdo b/maven-release-manager/src/main/mdo/release-descriptor.mdo
index 68e7a68..fbf4932 100644
--- a/maven-release-manager/src/main/mdo/release-descriptor.mdo
+++ b/maven-release-manager/src/main/mdo/release-descriptor.mdo
@@ -217,18 +217,6 @@
             If set to true, this will set the property "performRelease" to true.
           </description>
         </field>
-<!--         <field> -->
-<!--           <name>originalScmInfo</name> -->
-<!--           <version>1.0.0+</version> -->
-<!--           <type>Map</type> -->
-<!--           <association> -->
-<!--             <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>
@@ -536,14 +524,19 @@
           <version>2.1.0+</version>
           <code><![CDATA[
     /**
-     * Field resolvedSnapshotDependencies.
+     * Field projectVersions
      */
-    private java.util.Map<String, ReleaseStageVersions> resolvedSnapshotDependencies = new java.util.HashMap<>();
+    private java.util.Map<String, ReleaseStageVersions> projectVersions = new java.util.HashMap<>();
 
     /**
      * Field projectVersions
      */
-    private java.util.Map<String, ReleaseStageVersions> projectVersions = new java.util.HashMap<>();
+    private java.util.Map<String, String> projectPomFiles = new java.util.HashMap<>();
+
+    /**
+     * Field resolvedSnapshotDependencies.
+     */
+    private java.util.Map<String, ReleaseStageVersions> resolvedSnapshotDependencies = new java.util.HashMap<>();
     
     /**
      * Field originalScmInfo.
@@ -713,6 +706,16 @@
         }
         return value;
     }
+    
+    public void addProjectPomFile( String projectKey, String relativePath )
+    {
+        projectPomFiles.put( projectKey, relativePath );
+    }
+    
+    public String getProjectPomFile( String projectKey )
+    {
+        return projectPomFiles.get( projectKey );
+    }
 
     @Override
     public boolean equals( Object obj )
diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
index fb46c95..66c8c7c 100644
--- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
+++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
@@ -183,6 +183,8 @@ public abstract class AbstractReleaseMojo
         {
             String versionlessKey = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
             descriptor.putOriginalVersion( versionlessKey, project.getVersion() );
+            descriptor.addProjectPomFile( versionlessKey,
+                                          workingDirectory.relativize( project.getFile().toPath() ).toString() );
         }
 
         List<String> profileIds = session.getRequest().getActiveProfiles();
diff --git a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java
index c423c40..786d7f0 100644
--- a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java
+++ b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java
@@ -118,7 +118,12 @@ public class PerformReleaseMojoTest
             (PerformReleaseMojo) lookupMojo( "perform", new File( testFileDirectory, "perform-without-site.xml" ) );
         mojo.setBasedir( testFileDirectory );
         mojo.setPomFileName( "pom.xml" );
-        
+
+        for ( MavenProject reactorProject : mojo.getReactorProjects() )
+        {
+            reactorProject.setFile( new File( workingDirectory, "pom.xml" ) );
+        }
+
         MavenProject project = (MavenProject) getVariableValueFromObject( mojo, "project" );
         setVariableValueToObject( mojo, "session", newMavenSession( project ) );
 
@@ -151,6 +156,11 @@ public class PerformReleaseMojoTest
         mojo.setBasedir( workingDirectory );
         mojo.setPomFileName( fileName );
 
+        for ( MavenProject reactorProject : mojo.getReactorProjects() )
+        {
+            reactorProject.setFile( new File( workingDirectory, "pom.xml" ) );
+        }
+
         MavenProject project = (MavenProject) getVariableValueFromObject( mojo, "project" );
         DistributionManagement distributionManagement = new DistributionManagement();
         distributionManagement.setSite( new Site() );
diff --git a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PrepareReleaseMojoTest.java b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PrepareReleaseMojoTest.java
index 8c1b397..f5ab372 100644
--- a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PrepareReleaseMojoTest.java
+++ b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PrepareReleaseMojoTest.java
@@ -71,6 +71,12 @@ public class PrepareReleaseMojoTest
         setDefaults( mojo );
         mojo.setBasedir( testFile.getParentFile() );
         mojo.setPomFileName( "pom.xml" );
+        
+        for ( MavenProject reactorProject : mojo.getReactorProjects() )
+        {
+            reactorProject.setFile( testFile );
+        }
+
         mojo.session = new MavenSession( null, null, null, null, null, null, null, null, null )
         {
             public Properties getExecutionProperties()
@@ -116,6 +122,12 @@ public class PrepareReleaseMojoTest
         setDefaults( mojo );
         mojo.setBasedir( testFile.getParentFile() );
         mojo.setPomFileName( "pom.xml" );
+
+        for ( MavenProject reactorProject : mojo.getReactorProjects() )
+        {
+            reactorProject.setFile( testFile );
+        }
+
         mojo.session = new MavenSession( null, null, null, null, null, null, null, null, null )
         {
           public Properties getExecutionProperties(){
@@ -158,6 +170,12 @@ public class PrepareReleaseMojoTest
         setDefaults( mojo );
         mojo.setBasedir( testFile.getParentFile() );
         mojo.setPomFileName( "pom.xml" );
+        
+        for ( MavenProject reactorProject : mojo.getReactorProjects() )
+        {
+            reactorProject.setFile( testFile );
+        }
+        
         mojo.session = new MavenSession( null, null, null, null, null, null, null, null, null )
         {
           public Properties getExecutionProperties(){
diff --git a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/StageReleaseMojoTest.java b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/StageReleaseMojoTest.java
index a4c6ebb..15f424e 100644
--- a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/StageReleaseMojoTest.java
+++ b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/StageReleaseMojoTest.java
@@ -95,6 +95,11 @@ public class StageReleaseMojoTest
         mojo.setBasedir( workingDirectory );
         mojo.setPomFileName( "pom.xml" );
         
+        for ( MavenProject reactorProject : mojo.getReactorProjects() )
+        {
+            reactorProject.setFile( new File( workingDirectory, "pom.xml" ) );
+        }
+        
         MavenProject project = (MavenProject) getVariableValueFromObject( mojo, "project" );
         DistributionManagement distributionManagement = new DistributionManagement();
         distributionManagement.setSite( new Site() );

-- 
To stop receiving notification emails like this one, please contact
rfscholte@apache.org.