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 2020/06/20 09:33:41 UTC

[maven] 28/31: Refactored `#determineProjectsToSkip` to return a list instead of an optional with a comma separated list

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

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

commit 823d375c15926e40a5b69a57223ce4d355a2a027
Author: Martin Kanters <Ma...@infosupport.com>
AuthorDate: Wed Jun 17 15:00:22 2020 +0200

    Refactored `#determineProjectsToSkip` to return a list instead of an optional with a comma separated list
---
 .../DefaultBuildResumptionDataRepository.java      | 25 +++++++++-------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionDataRepository.java b/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionDataRepository.java
index e6815ce..7e647d7 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionDataRepository.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionDataRepository.java
@@ -103,10 +103,13 @@ public class DefaultBuildResumptionDataRepository implements BuildResumptionData
         {
             MavenProject resumeFromProject = failedProjects.get( 0 );
             Optional<String> resumeFrom = getResumeFrom( result, resumeFromProject );
-            Optional<String> projectsToSkip = determineProjectsToSkip( result, failedProjects, resumeFromProject );
+            List<String> projectsToSkip = determineProjectsToSkip( result, failedProjects, resumeFromProject );
 
             resumeFrom.ifPresent( value -> properties.setProperty( RESUME_FROM_PROPERTY, value ) );
-            projectsToSkip.ifPresent( value -> properties.setProperty( EXCLUDED_PROJECTS_PROPERTY, value ) );
+            if ( !projectsToSkip.isEmpty() ) {
+                String excludedProjects = String.join( PROPERTY_DELIMITER, projectsToSkip );
+                properties.setProperty( EXCLUDED_PROJECTS_PROPERTY, excludedProjects );
+            }
         }
         else
         {
@@ -154,11 +157,10 @@ public class DefaultBuildResumptionDataRepository implements BuildResumptionData
      * @param result The result of the Maven build.
      * @param failedProjects The list of failed projects in the build.
      * @param resumeFromProject The project where the build will be resumed with in the next run.
-     * @return An optional containing a comma separated list of projects which can be skipped,
-     *   or an empty optional if no projects can be skipped.
+     * @return A list of projects which can be skipped in a later build.
      */
-    private Optional<String> determineProjectsToSkip( MavenExecutionResult result, List<MavenProject> failedProjects,
-                                                      MavenProject resumeFromProject )
+    private List<String> determineProjectsToSkip( MavenExecutionResult result, List<MavenProject> failedProjects,
+                                                  MavenProject resumeFromProject )
     {
         List<MavenProject> allProjects = result.getTopologicallySortedProjects();
         int resumeFromProjectIndex = allProjects.indexOf( resumeFromProject );
@@ -168,18 +170,11 @@ public class DefaultBuildResumptionDataRepository implements BuildResumptionData
                 .map( GroupArtifactPair::new )
                 .collect( Collectors.toList() );
 
-        String projectsToSkip = remainingProjects.stream()
+        return remainingProjects.stream()
                 .filter( project -> result.getBuildSummary( project ) instanceof BuildSuccess )
                 .filter( project -> hasNoDependencyOnProjects( project, failedProjectsGAList ) )
                 .map( project -> project.getGroupId() + ":" + project.getArtifactId() )
-                .collect( Collectors.joining( PROPERTY_DELIMITER ) );
-
-        if ( !StringUtils.isEmpty( projectsToSkip ) )
-        {
-            return Optional.of( projectsToSkip );
-        }
-
-        return Optional.empty();
+                .collect( Collectors.toList() );
     }
 
     private boolean hasNoDependencyOnProjects( MavenProject project, List<GroupArtifactPair> projectsGAs )