You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2018/09/16 19:09:58 UTC

[maven] 01/02: [MNG-5666] Divide Lifecycle in prePhases, phases and postPhases

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

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

commit cfd13dd715fc414a608bdb5768f143518e30bd8e
Author: rfscholte <rf...@apache.org>
AuthorDate: Tue Aug 28 15:05:01 2018 +0200

    [MNG-5666] Divide Lifecycle in prePhases, phases and postPhases
---
 .../apache/maven/lifecycle/DefaultLifecycles.java  |  4 +--
 .../java/org/apache/maven/lifecycle/Lifecycle.java | 30 ++++++++++++++++++++++
 .../apache/maven/lifecycle/MavenExecutionPlan.java |  2 +-
 .../internal/DefaultLifecycleMappingDelegate.java  |  2 +-
 .../main/resources/META-INF/plexus/components.xml  | 12 ++++++---
 .../maven/lifecycle/DefaultLifecyclesTest.java     |  2 +-
 6 files changed, 44 insertions(+), 8 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
index a7d9fac..e79635f 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
@@ -89,7 +89,7 @@ public class DefaultLifecycles
                 logger.debug( "Lifecycle " + lifecycle );
             }
 
-            for ( String phase : lifecycle.getPhases() )
+            for ( String phase : lifecycle.getAllPhases() )
             {
                 // The first definition wins.
                 if ( !phaseToLifecycleMap.containsKey( phase ) )
@@ -136,7 +136,7 @@ public class DefaultLifecycles
 
         for ( Lifecycle lifecycle : getLifeCycles() )
         {
-            phases.addAll( lifecycle.getPhases() );
+            phases.addAll( lifecycle.getAllPhases() );
         }
 
         return StringUtils.join( phases.iterator(), ", " );
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/Lifecycle.java b/maven-core/src/main/java/org/apache/maven/lifecycle/Lifecycle.java
index 5fc99d5..5f796ac 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/Lifecycle.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/Lifecycle.java
@@ -19,6 +19,7 @@ package org.apache.maven.lifecycle;
  * under the License.
  */
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -54,8 +55,18 @@ public class Lifecycle
 
     private String id;
 
+    /**
+     * @since 3.6.0
+     */
+    private List<String> prePhases = new ArrayList<>();
+
     private List<String> phases;
 
+    /**
+     * @since 3.6.0
+     */
+    private List<String> postPhases = new ArrayList<>();
+
     private Map<String, LifecyclePhase> defaultPhases;
 
     public String getId()
@@ -63,11 +74,30 @@ public class Lifecycle
         return this.id;
     }
 
+    public List<String> getPrePhases()
+    {
+        return prePhases;
+    }
+
     public List<String> getPhases()
     {
         return this.phases;
     }
 
+    public List<String> getPostPhases()
+    {
+        return postPhases;
+    }
+    
+    public List<String> getAllPhases()
+    {
+        List<String> allPhases = new ArrayList<>( prePhases.size() + phases.size() + postPhases.size() );
+        allPhases.addAll( prePhases );
+        allPhases.addAll( phases );
+        allPhases.addAll( postPhases );
+        return allPhases;
+    }
+
     public Map<String, LifecyclePhase> getDefaultLifecyclePhases()
     {
         return defaultPhases;
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java b/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java
index aecf264..10ecfb5 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java
@@ -78,7 +78,7 @@ public class MavenExecutionPlan
                 final Lifecycle lifecycle = defaultLifecycles.get( phase );
                 if ( lifecycle != null )
                 {
-                    totalPhaseSet.addAll( lifecycle.getPhases() );
+                    totalPhaseSet.addAll( lifecycle.getAllPhases() );
                 }
             }
         }
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleMappingDelegate.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleMappingDelegate.java
index 1ddee05..9c8277f 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleMappingDelegate.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleMappingDelegate.java
@@ -69,7 +69,7 @@ public class DefaultLifecycleMappingDelegate
         Map<String, Map<Integer, List<MojoExecution>>> mappings =
             new LinkedHashMap<>();
 
-        for ( String phase : lifecycle.getPhases() )
+        for ( String phase : lifecycle.getAllPhases() )
         {
             Map<Integer, List<MojoExecution>> phaseBindings = new TreeMap<>();
 
diff --git a/maven-core/src/main/resources/META-INF/plexus/components.xml b/maven-core/src/main/resources/META-INF/plexus/components.xml
index 3f099cb..4353dbd 100644
--- a/maven-core/src/main/resources/META-INF/plexus/components.xml
+++ b/maven-core/src/main/resources/META-INF/plexus/components.xml
@@ -34,8 +34,10 @@ under the License.
       <configuration>
         <id>default</id>
         <!-- START SNIPPET: lifecycle -->
-        <phases>
+        <prePhases>
           <phase>validate</phase>
+        </prePhases>
+        <phases>
           <phase>initialize</phase>
           <phase>generate-sources</phase>
           <phase>process-sources</phase>
@@ -56,9 +58,11 @@ under the License.
           <phase>integration-test</phase>
           <phase>post-integration-test</phase>
           <phase>verify</phase>
+        </phases>
+        <postPhases>
           <phase>install</phase>
           <phase>deploy</phase>
-        </phases>
+        </postPhases>
         <!-- END SNIPPET: lifecycle -->
       </configuration>
     </component>
@@ -97,8 +101,10 @@ under the License.
           <phase>pre-site</phase>
           <phase>site</phase>
           <phase>post-site</phase>
-          <phase>site-deploy</phase>
         </phases>
+        <postPhases>
+          <phase>site-deploy</phase>
+        </postPhases>
         <default-phases>
           <site>
             org.apache.maven.plugins:maven-site-plugin:3.3:site
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java b/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
index 690532c..52d4af5 100644
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
+++ b/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
@@ -52,7 +52,7 @@ public class DefaultLifecyclesTest
         assertNotNull( cycles );
         final Lifecycle lifecycle = cycles.get( 0 );
         assertEquals( "default", lifecycle.getId() );
-        assertEquals( 23, lifecycle.getPhases().size() );
+        assertEquals( 23, lifecycle.getAllPhases().size() );
 
     }