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:26 UTC

[maven] 13/31: Store information about resumption storage in execution result

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 edbeb969eeb1e3f092db8557da20b0a009156a9a
Author: Maarten Mulders <ma...@infosupport.com>
AuthorDate: Sat May 23 20:30:46 2020 +0200

    Store information about resumption storage in execution result
---
 .../src/main/java/org/apache/maven/DefaultMaven.java       | 13 +++++++------
 .../maven/execution/DefaultMavenExecutionResult.java       | 14 ++++++++++++++
 .../org/apache/maven/execution/MavenExecutionResult.java   | 14 ++++++++++++++
 .../maven/lifecycle/LifecycleExecutionException.java       | 12 ------------
 .../src/main/java/org/apache/maven/cli/MavenCli.java       |  4 +---
 5 files changed, 36 insertions(+), 21 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index 4907ac9..a5e84f3 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -366,20 +366,21 @@ public class DefaultMaven
 
     private void saveResumptionDataWhenApplicable( MavenExecutionResult result, MavenSession session )
     {
-        List<LifecycleExecutionException> lifecycleExecutionExceptions = result.getExceptions().stream()
+        long lifecycleExecutionExceptionCount = result.getExceptions().stream()
                 .filter( LifecycleExecutionException.class::isInstance )
-                .map( LifecycleExecutionException.class::cast )
-                .collect( Collectors.toList() );
+                .count();
 
-        if ( !lifecycleExecutionExceptions.isEmpty() )
+        if ( lifecycleExecutionExceptionCount > 0 )
         {
             session.getAllProjects().stream()
                     .filter( MavenProject::isExecutionRoot )
                     .findFirst()
                     .ifPresent( rootProject ->
                     {
-                        boolean persisted = buildResumptionManager.persistResumptionData( result, rootProject );
-                        lifecycleExecutionExceptions.forEach( e -> e.setBuildResumptionDataSaved( persisted ) );
+                        if ( buildResumptionManager.persistResumptionData( result, rootProject ) )
+                        {
+                            result.setResumptionDataStored();
+                        }
                     } );
         }
     }
diff --git a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java
index 6ab1daa..f346b7f 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java
@@ -43,6 +43,8 @@ public class DefaultMavenExecutionResult
     private final Map<MavenProject, BuildSummary> buildSummaries =
         Collections.synchronizedMap( new IdentityHashMap<>() );
 
+    private boolean resumptionDataStored = false;
+
     public MavenExecutionResult setProject( MavenProject project )
     {
         this.project = project;
@@ -108,4 +110,16 @@ public class DefaultMavenExecutionResult
     {
         buildSummaries.put( summary.getProject(), summary );
     }
+
+    @Override
+    public boolean isResumptionDataStored()
+    {
+        return resumptionDataStored;
+    }
+
+    @Override
+    public void setResumptionDataStored()
+    {
+        this.resumptionDataStored = true;
+    }
 }
diff --git a/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java b/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java
index cb95fb1..301d459 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java
@@ -67,4 +67,18 @@ public interface MavenExecutionResult
      * @param summary The build summary to add, must not be {@code null}.
      */
     void addBuildSummary( BuildSummary summary );
+
+    /**
+     * Indicates whether or not resumption data has been stored.
+     * @see org.apache.maven.execution.BuildResumptionManager
+     * @return <code>true</code> when it is possible to resume the build, <code>false</code> otherwise.
+     */
+    boolean isResumptionDataStored();
+
+    /**
+     * Indicate that resumption data has been stored.
+     * @see org.apache.maven.execution.BuildResumptionManager
+     * @see #isResumptionDataStored()
+     */
+    void setResumptionDataStored();
 }
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutionException.java b/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutionException.java
index af9821a..0831a4f 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutionException.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutionException.java
@@ -33,8 +33,6 @@ public class LifecycleExecutionException
 {
     private MavenProject project;
 
-    private boolean buildResumptionDataSaved = false;
-
     public LifecycleExecutionException( String message )
     {
         super( message );
@@ -78,16 +76,6 @@ public class LifecycleExecutionException
         return project;
     }
 
-    public boolean isBuildResumptionDataSaved()
-    {
-        return buildResumptionDataSaved;
-    }
-
-    public void setBuildResumptionDataSaved( boolean isBuildResumptionDataSaved )
-    {
-        this.buildResumptionDataSaved = isBuildResumptionDataSaved;
-    }
-
     private static String createMessage( MojoExecution execution, MavenProject project, Throwable cause )
     {
         MessageBuilder buffer = buffer( 256 );
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 657dfe0..66b1fc8 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -992,7 +992,6 @@ public class MavenCli
             Map<String, String> references = new LinkedHashMap<>();
 
             MavenProject project = null;
-            boolean isResumptionDataSaved = false;
 
             for ( Throwable exception : result.getExceptions() )
             {
@@ -1004,7 +1003,6 @@ public class MavenCli
                 {
                     LifecycleExecutionException lifecycleExecutionException = (LifecycleExecutionException) exception;
                     project = lifecycleExecutionException.getProject();
-                    isResumptionDataSaved = lifecycleExecutionException.isBuildResumptionDataSaved();
                 }
             }
 
@@ -1034,7 +1032,7 @@ public class MavenCli
             }
 
             List<MavenProject> sortedProjects = result.getTopologicallySortedProjects();
-            if ( isResumptionDataSaved )
+            if ( result.isResumptionDataStored() )
             {
                 logBuildResumeHint( "mvn <args> -r " );
             }