You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/06/07 14:16:47 UTC

svn commit: r782377 - in /maven/components/trunk/maven-core/src/main/java/org/apache/maven: lifecycle/DefaultLifecycleExecutor.java plugin/DefaultPluginManager.java plugin/MojoExecution.java

Author: bentmann
Date: Sun Jun  7 12:16:46 2009
New Revision: 782377

URL: http://svn.apache.org/viewvc?rev=782377&view=rev
Log:
o Fixed propagation of project-level plugin dependencies by directly associating the mojo execution with the originating plugin instance. The key difference between a plugin instance and the g:a:v triplet are the dependencies in the plugin instance which can't be easily reconstructed from just the g:a:v but are crucial for construction of the plugin realm.

Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/MojoExecution.java

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=782377&r1=782376&r2=782377&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Sun Jun  7 12:16:46 2009
@@ -313,7 +313,11 @@
                     //TODO: remove hard coding
                     if ( phase.equals( "clean" ) )
                     {
-                        mojos.add( new MojoExecution( "org.apache.maven.plugins", "maven-clean-plugin", "2.3", "clean", "default-clean" ) );
+                        Plugin plugin = new Plugin();
+                        plugin.setGroupId( "org.apache.maven.plugins" );
+                        plugin.setArtifactId( "maven-clean-plugin" );
+                        plugin.setVersion( "2.3" );
+                        mojos.add( new MojoExecution( plugin, "clean", "default-clean" ) );
                     }
 
                     // This is just just laying out the initial structure of the mojos to run in each phase of the
@@ -347,7 +351,7 @@
                                     phaseToMojoMapping.put( execution.getPhase(), new ArrayList<MojoExecution>() );
                                 }
 
-                                MojoExecution mojoExecution = new MojoExecution( plugin.getGroupId(), plugin.getArtifactId(), plugin.getVersion(), goal, execution.getId() );
+                                MojoExecution mojoExecution = new MojoExecution( plugin, goal, execution.getId() );
                                 phaseToMojoMapping.get( execution.getPhase() ).add( mojoExecution );
                             }
                         }
@@ -360,7 +364,7 @@
 
                                 if ( mojoDescriptor.getPhase() != null && phaseToMojoMapping.get( mojoDescriptor.getPhase() ) != null )
                                 {
-                                    MojoExecution mojoExecution = new MojoExecution( plugin.getGroupId(), plugin.getArtifactId(), plugin.getVersion(), goal, execution.getId() );
+                                    MojoExecution mojoExecution = new MojoExecution( plugin, goal, execution.getId() );
                                     phaseToMojoMapping.get( mojoDescriptor.getPhase() ).add( mojoExecution );
                                 }
                             }
@@ -395,7 +399,7 @@
             // org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process
             //                        
             MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( 
-                mojoExecution.getGroupId(), mojoExecution.getArtifactId(), mojoExecution.getVersion(), mojoExecution.getGoal(), session.getLocalRepository(), project.getPluginArtifactRepositories() );
+                mojoExecution.getPlugin(), mojoExecution.getGoal(), session.getLocalRepository(), project.getPluginArtifactRepositories() );
 
             requiredDependencyResolutionScope = calculateRequiredDependencyResolutionScope( requiredDependencyResolutionScope, mojoDescriptor.isDependencyResolutionRequired() );          
             
@@ -794,7 +798,7 @@
         {
             for( String goal : pluginExecution.getGoals() )
             {
-                Xpp3Dom dom = getDefaultPluginConfiguration( plugin.getGroupId(), plugin.getArtifactId(), plugin.getVersion(), goal, localRepository, remoteRepositories );
+                Xpp3Dom dom = getDefaultPluginConfiguration( plugin, goal, localRepository, remoteRepositories );
                 pluginExecution.setConfiguration( Xpp3Dom.mergeXpp3Dom( (Xpp3Dom) pluginExecution.getConfiguration(), dom, Boolean.TRUE ) );
             }
         }
@@ -809,14 +813,14 @@
         }
     }    
     
-    private Xpp3Dom getDefaultPluginConfiguration( String groupId, String artifactId, String version, String goal, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories ) 
+    private Xpp3Dom getDefaultPluginConfiguration( Plugin plugin, String goal, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories ) 
         throws LifecycleExecutionException
     {
         MojoDescriptor mojoDescriptor;
         
         try
         {
-            mojoDescriptor = pluginManager.getMojoDescriptor( groupId, artifactId, version, goal, localRepository, remoteRepositories );
+            mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, localRepository, remoteRepositories );
         }
         catch ( PluginNotFoundException e )
         {

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=782377&r1=782376&r2=782377&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Sun Jun  7 12:16:46 2009
@@ -274,7 +274,7 @@
             // defined dependencies and then the result is merged with the overrides. The overrides don't pass through the metadata source which is where the
             // Artifact.setFile( file ) method is called. We should eventually take care of this in the resolver.
             Artifact a = repositorySystem.createDependencyArtifact( dependencySpecifiedInProject );
-            if ( a.getScope().equals(  Artifact.SCOPE_SYSTEM ) )
+            if ( Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
             {
                 a.setFile( new File( dependencySpecifiedInProject.getSystemPath() ) );
             }

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/MojoExecution.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/MojoExecution.java?rev=782377&r1=782376&r2=782377&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/MojoExecution.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/MojoExecution.java Sun Jun  7 12:16:46 2009
@@ -19,16 +19,14 @@
  * under the License.
  */
 
+import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 public class MojoExecution
 {
-    private String groupId;
-    
-    private String artifactId;
-    
-    private String version;
+
+    private Plugin plugin;
     
     private String goal;
     
@@ -44,11 +42,9 @@
      */
     private String lifecyclePhase;
     
-    public MojoExecution( String groupId, String artifactId, String version, String goal, String executionId )
+    public MojoExecution( Plugin plugin, String goal, String executionId )
     {
-        this.groupId = groupId;
-        this.artifactId = artifactId;
-        this.version = version;
+        this.plugin = plugin;
         this.goal = goal;
         this.executionId = executionId;
     }
@@ -79,6 +75,16 @@
         return executionId;
     }
 
+    public Plugin getPlugin()
+    {
+        if ( mojoDescriptor != null )
+        {
+            return mojoDescriptor.getPluginDescriptor().getPlugin();
+        }
+
+        return plugin;
+    }
+
     public MojoDescriptor getMojoDescriptor()
     {
         return mojoDescriptor;
@@ -133,7 +139,7 @@
             return mojoDescriptor.getPluginDescriptor().getGroupId();
         }
         
-        return groupId;
+        return plugin.getGroupId();
     }
 
     public String getArtifactId()
@@ -143,7 +149,7 @@
             return mojoDescriptor.getPluginDescriptor().getArtifactId();
         }
         
-        return artifactId;
+        return plugin.getArtifactId();
     }
 
     public String getVersion()
@@ -153,7 +159,7 @@
             return mojoDescriptor.getPluginDescriptor().getVersion();
         }        
         
-        return version;
+        return plugin.getVersion();
     }
 
     public String getGoal()