You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2009/04/29 05:45:44 UTC

svn commit: r769637 - in /maven/components/branches/MNG-2766: maven-core/src/main/java/org/apache/maven/lifecycle/ maven-core/src/main/java/org/apache/maven/plugin/ maven-core/src/test/java/org/apache/maven/lifecycle/ maven-core/src/test/java/org/apach...

Author: jvanzyl
Date: Wed Apr 29 03:45:42 2009
New Revision: 769637

URL: http://svn.apache.org/viewvc?rev=769637&view=rev
Log:
o giving shane a handle on how to grab default plugin information as i've removed all the diddling in the plugin manager itself

Modified:
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
    maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java
    maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java
    maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=769637&r1=769636&r2=769637&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Wed Apr 29 03:45:42 2009
@@ -25,6 +25,7 @@
 import java.util.Set;
 import java.util.StringTokenizer;
 
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.execution.ReactorManager;
 import org.apache.maven.lifecycle.mapping.LifecycleMapping;
@@ -40,10 +41,13 @@
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.configuration.PlexusConfiguration;
+import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 //TODO: The configuration for the lifecycle needs to be externalized so that I can use the annotations
 //      properly for the wiring and reference and external source for the lifecycle configuration.
@@ -334,7 +338,7 @@
                     for( String goal : execution.getGoals() )
                     {
                         String s = plugin.getGroupId() + ":" + plugin.getArtifactId() + ":" + plugin.getVersion() + ":" + goal;
-                        MojoDescriptor md = getMojoDescriptor( s, session, project );
+                        MojoDescriptor md = getMojoDescriptor( s, session.getCurrentProject(), session.getLocalRepository() );
                                                 
                         // need to know if this plugin belongs to a phase in the lifecycle that's running
                         if ( md.getPhase() != null && lifecycle.getPhases().contains( md.getPhase() ) )
@@ -357,7 +361,7 @@
                 //
                 // org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process
                 //
-                lifecyclePlan.add( getMojoDescriptor( mojo, session, project ) );
+                lifecyclePlan.add( getMojoDescriptor( mojo, project, session.getLocalRepository() ) );
             }
         }  
                 
@@ -365,7 +369,8 @@
     }  
            
     // org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process
-    MojoDescriptor getMojoDescriptor( String task, MavenSession session, MavenProject project )
+    MojoDescriptor getMojoDescriptor( String task, MavenProject project, ArtifactRepository localRepository )
+    //MojoDescriptor getMojoDescriptor( String groupId, String artifactId, String version, String goal, MavenProject project, ArtifactRepository localRepository )
         throws LifecycleExecutionException
     {        
         String goal;
@@ -389,7 +394,7 @@
             // Maven plugin deployment we will find the right PluginDescriptor from the remote
             // repository.
 
-            plugin = pluginManager.findPluginForPrefix( prefix, project, session );
+            plugin = pluginManager.findPluginForPrefix( prefix, project );
 
             // Search plugin in the current POM
             if ( plugin == null )
@@ -400,7 +405,7 @@
                     
                     try
                     {
-                        desc = pluginManager.loadPlugin( buildPlugin, project, session );
+                        desc = pluginManager.loadPlugin( buildPlugin, project, localRepository );
                     }
                     catch ( PluginLoaderException e )
                     {
@@ -449,7 +454,7 @@
         
         try
         {
-            mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, session );
+            mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, project, localRepository );
         }
         catch ( PluginLoaderException e )
         {
@@ -495,5 +500,34 @@
         }
 
         return null;
-    }    
+    }   
+    
+    public Xpp3Dom getDefaultPluginConfiguration( String groupId, String artifactId, String version, String goal, MavenProject project, ArtifactRepository localRepository ) 
+        throws LifecycleExecutionException
+    {
+        return convert( getMojoDescriptor( groupId+":"+artifactId+":"+version+":"+goal, project, localRepository ).getMojoConfiguration() );
+    }
+    
+    public Xpp3Dom getMojoConfiguration( MojoDescriptor mojoDescriptor )
+    {
+        PlexusConfiguration configuration = mojoDescriptor.getConfiguration();
+        
+        return convert( configuration );
+    }
+    
+    public Xpp3Dom convert( PlexusConfiguration c )
+    {
+        Xpp3Dom dom = new Xpp3Dom( "configuration" );
+        
+        PlexusConfiguration[] ces = c.getChildren();
+        
+        for( PlexusConfiguration ce : ces )
+        {
+            Xpp3Dom e = new Xpp3Dom( ce.getName() );
+            e.setValue( ce.getValue( ce.getAttribute( "default-value", null ) ) );
+            dom.addChild( e );            
+        }
+
+        return dom;
+    }
 }

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=769637&r1=769636&r2=769637&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Wed Apr 29 03:45:42 2009
@@ -47,7 +47,6 @@
 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.execution.RuntimeInformation;
-import org.apache.maven.lifecycle.LifecycleExecutionException;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.PluginExecution;
@@ -136,7 +135,7 @@
     }
 
     // This should be template method code for allowing subclasses to assist in contributing search/hint information
-    public Plugin findPluginForPrefix( String prefix, MavenProject project, MavenSession session )
+    public Plugin findPluginForPrefix( String prefix, MavenProject project )
     {
         //Use the plugin managers capabilities to get information to augement the request
         
@@ -144,7 +143,7 @@
         //return getByPrefix( prefix, session.getPluginGroups(), project.getRemoteArtifactRepositories(), session.getLocalRepository() );
     }
     
-    public PluginDescriptor loadPlugin( Plugin plugin, MavenProject project, MavenSession session )
+    public PluginDescriptor loadPlugin( Plugin plugin, MavenProject project, ArtifactRepository localRepository )
         throws PluginLoaderException
     {        
         PluginDescriptor pluginDescriptor = getPluginDescriptor( plugin );
@@ -158,7 +157,7 @@
                         
         try
         {                                              
-            return addPlugin( plugin, project, session );
+            return addPlugin( plugin, project, localRepository );
         }
         catch ( ArtifactResolutionException e )
         {
@@ -191,13 +190,11 @@
         return plugin.getGroupId() + ":" + plugin.getArtifactId() + ":" + plugin.getVersion();
     }
     
-    protected PluginDescriptor addPlugin( Plugin plugin, MavenProject project, MavenSession session )
+    protected PluginDescriptor addPlugin( Plugin plugin, MavenProject project, ArtifactRepository localRepository )
         throws ArtifactNotFoundException, ArtifactResolutionException, InvalidPluginException, PluginVersionResolutionException, PluginContainerException, PluginVersionNotFoundException
     {
-        resolvePluginVersion( plugin, project, session );
+        resolvePluginVersion( plugin, project );
         
-        ArtifactRepository localRepository = session.getLocalRepository();
-
         MavenProject pluginProject = buildPluginProject( plugin, localRepository, new ArrayList( project.getRemoteArtifactRepositories() ) );
 
         Artifact pluginArtifact = repositorySystem.createPluginArtifact( plugin );
@@ -214,7 +211,7 @@
 
         ClassRealm pluginRealm = container.createChildRealm( pluginKey( plugin ) );
         
-        Set<Artifact> pluginArtifacts = getPluginArtifacts( pluginArtifact, plugin, project, session.getLocalRepository() );
+        Set<Artifact> pluginArtifacts = getPluginArtifacts( pluginArtifact, plugin, project, localRepository );
 
         for ( Artifact a : pluginArtifacts )
         {
@@ -571,7 +568,7 @@
             // override in the POM.
             validatePomConfiguration( mojoDescriptor, pomConfiguration );
 
-            ExpressionEvaluator expressionEvaluator = new PluginParameterExpressionEvaluator( session, mojoExecution );
+            ExpressionEvaluator expressionEvaluator = new PluginParameterExpressionEvaluator( session );
 
             checkDeprecatedParameters( mojoDescriptor, pomConfiguration );
 
@@ -929,7 +926,7 @@
         }
     }
    
-    public void resolvePluginVersion( Plugin plugin, MavenProject project, MavenSession session ) 
+    public void resolvePluginVersion( Plugin plugin, MavenProject project ) 
         throws PluginVersionNotFoundException
     {        
         String version = plugin.getVersion();
@@ -1022,7 +1019,7 @@
         }
     }    
     
-    public MojoDescriptor getMojoDescriptor( Plugin plugin, String goal, MavenSession session )
+    public MojoDescriptor getMojoDescriptor( Plugin plugin, String goal, MavenProject project, ArtifactRepository localRepository )
         throws PluginLoaderException
     {
         if ( plugin.getVersion() == null )
@@ -1030,7 +1027,7 @@
         	throw new IllegalArgumentException("plugin.version: null");
         }
         
-        PluginDescriptor pluginDescriptor =  loadPlugin( plugin, session.getCurrentProject(), session );
+        PluginDescriptor pluginDescriptor =  loadPlugin( plugin, project, localRepository );
 
         MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo( goal );
         

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java?rev=769637&r1=769636&r2=769637&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java Wed Apr 29 03:45:42 2009
@@ -15,6 +15,7 @@
  * the License.
  */
 
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
@@ -34,12 +35,12 @@
     // - configure the plugin [extension point]
     // - execute the plugin    
     
-    Plugin findPluginForPrefix( String prefix, MavenProject project, MavenSession session );
+    Plugin findPluginForPrefix( String prefix, MavenProject project );
     
-    PluginDescriptor loadPlugin( Plugin plugin, MavenProject project, MavenSession session )
+    PluginDescriptor loadPlugin( Plugin plugin, MavenProject project, ArtifactRepository localRepository )
         throws PluginLoaderException;
     
-    MojoDescriptor getMojoDescriptor( Plugin plugin, String goal, MavenSession session )
+    MojoDescriptor getMojoDescriptor( Plugin plugin, String goal, MavenProject project, ArtifactRepository localRepository )
         throws PluginLoaderException;
     
     void executeMojo( MavenSession session, MojoExecution execution )

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java?rev=769637&r1=769636&r2=769637&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java Wed Apr 29 03:45:42 2009
@@ -45,9 +45,15 @@
     private String basedir;
 
     private Properties properties;    
-    
+
+    @Deprecated
     public PluginParameterExpressionEvaluator( MavenSession session, MojoExecution mojoExecution )
     {
+        this( session );
+    }
+
+    public PluginParameterExpressionEvaluator( MavenSession session )
+    {
         this.session = session;
         this.mojoExecution = mojoExecution;
         this.properties = session.getExecutionProperties();

Modified: maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java?rev=769637&r1=769636&r2=769637&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java Wed Apr 29 03:45:42 2009
@@ -13,6 +13,7 @@
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 public class LifecycleExecutorTest
     extends AbstractCoreMavenComponentTestCase
@@ -95,4 +96,15 @@
         
         assertEquals( 8, plugins.size() );
     }
+    
+    public void testPluginConfigurationCreation()
+        throws Exception
+    {
+        File pom = getProject( "project-with-additional-lifecycle-elements" );
+        MavenSession session = createMavenSession( pom );
+        MojoDescriptor mojoDescriptor = lifecycleExecutor.getMojoDescriptor( "org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process", session.getCurrentProject(), session.getLocalRepository() );
+        Xpp3Dom dom = lifecycleExecutor.convert( mojoDescriptor.getMojoConfiguration() );
+        System.out.println( dom );
+    }
+        
 }

Modified: maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java?rev=769637&r1=769636&r2=769637&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java Wed Apr 29 03:45:42 2009
@@ -35,7 +35,7 @@
         plugin.setGroupId( "org.codehaus.plexus" );
         plugin.setArtifactId( "plexus-component-metadata" );
         plugin.setVersion( plexusVersion );
-        PluginDescriptor pluginDescriptor = pluginManager.loadPlugin( plugin, session.getCurrentProject(), session );
+        PluginDescriptor pluginDescriptor = pluginManager.loadPlugin( plugin, session.getCurrentProject(), session.getLocalRepository() );
         assertNotNull( pluginDescriptor );
         assertNotNull( pluginDescriptor.getClassRealm() );
     }
@@ -50,7 +50,7 @@
         plugin.setArtifactId( "plexus-component-metadata" );
         plugin.setVersion( plexusVersion );
         
-        MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, session );        
+        MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, session.getCurrentProject(), session.getLocalRepository() );        
         assertNotNull( mojoDescriptor );
         assertEquals( "generate-metadata", mojoDescriptor.getGoal() );
         assertNotNull( mojoDescriptor.getRealm() );
@@ -86,24 +86,24 @@
         plugin.setArtifactId( "maven-remote-resources-plugin" );
         plugin.setVersion( "1.0-beta-2" );
         
-        MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, session );
+        MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, session.getCurrentProject(), session.getLocalRepository() );        
         assertPluginDescriptor( mojoDescriptor, "org.apache.maven.plugins", "maven-remote-resources-plugin", "1.1" );
         MojoExecution mojoExecution = new MojoExecution( mojoDescriptor );
         pluginManager.executeMojo( session, mojoExecution );
     }
-
+    
     public void testSurefirePlugin()
         throws Exception
     {
-        MavenSession session = createMavenSession( getProject( "project-with-inheritance" ) );       
+        MavenSession session = createMavenSession( getProject( "project-with-inheritance" ) );
         String goal = "test";
 
         Plugin plugin = new Plugin();
         plugin.setGroupId( "org.apache.maven.plugins" );
         plugin.setArtifactId( "maven-surefire-plugin" );
         plugin.setVersion( "2.4.2" );
-        
-        MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, session );                
+
+        MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, session.getCurrentProject(), session.getLocalRepository() );        
         assertPluginDescriptor( mojoDescriptor, "org.apache.maven.plugins", "maven-surefire-plugin", "2.4.2" );
         MojoExecution mojoExecution = new MojoExecution( mojoDescriptor );
         pluginManager.executeMojo( session, mojoExecution );

Modified: maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=769637&r1=769636&r2=769637&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Wed Apr 29 03:45:42 2009
@@ -274,13 +274,13 @@
      * mkleint: protected so that IDE integrations can selectively allow downloading artifacts
      * from remote repositories (if they prohibit by default on project loading)
      * @throws PluginLoaderException 
-     */
     protected void verifyPlugin( Plugin plugin, MavenProject project )
         throws ComponentLookupException, PluginLoaderException
     {
         MavenSession session = new MavenSession( request );
         pluginManager.loadPlugin( plugin, project, session );
     }
+     */
 
     // ----------------------------------------------------------------------
     // Project