Repository: maven
Updated Branches:
  refs/heads/master e84405162 -> cc006b544


[MNG-5359] Declared execution in PluginMgmt gets bound to lifecycle (regression)

o Updated to restore reporting of unsupported packagings.


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/cc006b54
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/cc006b54
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/cc006b54

Branch: refs/heads/master
Commit: cc006b544f0e21683d955e2175b06e864e64329f
Parents: e844051
Author: Christian Schulte <[email protected]>
Authored: Sun Dec 20 21:35:37 2015 +0100
Committer: Christian Schulte <[email protected]>
Committed: Sun Dec 20 21:35:37 2015 +0100

----------------------------------------------------------------------
 .../lifecycle/LifeCyclePluginAnalyzer.java      |  3 ++-
 .../DefaultLifecyclePluginAnalyzer.java         | 20 +++++++++++++-------
 .../DefaultLifecycleBindingsInjector.java       | 12 +++++++++++-
 3 files changed, 26 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/cc006b54/maven-core/src/main/java/org/apache/maven/lifecycle/LifeCyclePluginAnalyzer.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/lifecycle/LifeCyclePluginAnalyzer.java
 
b/maven-core/src/main/java/org/apache/maven/lifecycle/LifeCyclePluginAnalyzer.java
index 770e013..1d4e7f8 100644
--- 
a/maven-core/src/main/java/org/apache/maven/lifecycle/LifeCyclePluginAnalyzer.java
+++ 
b/maven-core/src/main/java/org/apache/maven/lifecycle/LifeCyclePluginAnalyzer.java
@@ -38,7 +38,8 @@ public interface LifeCyclePluginAnalyzer
      * @param packaging The packaging to get plugins for.
      * @param phases The phases to get plugins for.
      *
-     * @return All lifecycle {@code Plugin}s for the given {@code packaging} 
and {@code phases}.
+     * @return All lifecycle {@code Plugin}s for the given {@code packaging} 
and {@code phases}
+     * or {@code null}, if {@code packaging} does not identify a supported 
packaging.
      *
      * @since 3.4
      */

http://git-wip-us.apache.org/repos/asf/maven/blob/cc006b54/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
 
b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
index 555498d..27159e4 100644
--- 
a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
+++ 
b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
@@ -139,6 +139,12 @@ public class DefaultLifecyclePluginAnalyzer
         }
 
         final LifecycleMapping lifecycleMappingForPackaging = 
this.lifecycleMappings.get( packaging );
+
+        if ( lifecycleMappingForPackaging == null )
+        {
+            return null;
+        }
+
         final Map<Plugin, Plugin> plugins = new LinkedHashMap<>();
 
         for ( final Lifecycle lifecycle : this.getOrderedLifecycles() )
@@ -215,25 +221,25 @@ public class DefaultLifecyclePluginAnalyzer
         List<LifecycleMojo> mojos = goals.getMojos();
         if ( mojos != null )
         {
-            
+
             for ( int i = 0; i < mojos.size(); i++ )
             {
                 LifecycleMojo mojo = mojos.get( i );
-                
+
                 GoalSpec gs = parseGoalSpec( mojo.getGoal() );
-    
+
                 if ( gs == null )
                 {
                     logger.warn( "Ignored invalid goal specification '" + 
mojo.getGoal()
                             + "' from lifecycle mapping for phase " + phase );
                     continue;
                 }
-    
+
                 Plugin plugin = new Plugin();
                 plugin.setGroupId( gs.groupId );
                 plugin.setArtifactId( gs.artifactId );
                 plugin.setVersion( gs.version );
-    
+
                 Plugin existing = plugins.get( plugin );
                 if ( existing != null )
                 {
@@ -247,14 +253,14 @@ public class DefaultLifecyclePluginAnalyzer
                 {
                     plugins.put( plugin, plugin );
                 }
-    
+
                 PluginExecution execution = new PluginExecution();
                 execution.setId( getExecutionId( plugin, gs.goal ) );
                 execution.setPhase( phase );
                 execution.setPriority( i - mojos.size() );
                 execution.getGoals().add( gs.goal );
                 execution.setConfiguration( mojo.getConfiguration() );
-                
+
                 plugin.setDependencies( mojo.getDependencies() );
                 plugin.getExecutions().add( execution );
             }

http://git-wip-us.apache.org/repos/asf/maven/blob/cc006b54/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java
 
b/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java
index 9422be6..3933e14 100644
--- 
a/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java
+++ 
b/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java
@@ -36,7 +36,10 @@ import org.apache.maven.model.PluginContainer;
 import org.apache.maven.model.PluginExecution;
 import org.apache.maven.model.PluginManagement;
 import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblem.Severity;
+import org.apache.maven.model.building.ModelProblem.Version;
 import org.apache.maven.model.building.ModelProblemCollector;
+import org.apache.maven.model.building.ModelProblemCollectorRequest;
 import org.apache.maven.model.merge.MavenModelMerger;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
@@ -81,7 +84,14 @@ public class DefaultLifecycleBindingsInjector
                 ? 
lifecyclePluginAnalyzer.getPluginsBoundByDefaultToAllLifecycles( packaging )
                 : lifecyclePluginAnalyzer.getPlugins( packaging, phases );
 
-        if ( !defaultPlugins.isEmpty() )
+        if ( defaultPlugins == null )
+        {
+            problems.add( new ModelProblemCollectorRequest( Severity.ERROR, 
Version.BASE ).
+                    setMessage( "Unknown packaging: " + packaging ).
+                    setLocation( model.getLocation( "packaging" ) ) );
+
+        }
+        else if ( !defaultPlugins.isEmpty() )
         {
             Model lifecycleModel = new Model();
             lifecycleModel.setBuild( new Build() );

Reply via email to