Author: jvanzyl
Date: Wed May 13 13:41:06 2009
New Revision: 774361

URL: http://svn.apache.org/viewvc?rev=774361&view=rev
Log:
o removing MavenProject from the public signature of the plugin manager to 
enforce the concern of the plugin manager which is simply to execute plugins. 
all configuration and processing of configuration happens before the plugin 
manager. the only thing left is the expression evaluator which has the mixed 
concern of configuration and componnent injection.

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/test/java/org/apache/maven/plugin/PluginManagerTest.java
    
maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.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=774361&r1=774360&r2=774361&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 May 13 13:41:06 2009
@@ -445,7 +445,7 @@
             // Maven plugin deployment we will find the right PluginDescriptor 
from the remote
             // repository.
 
-            plugin = pluginManager.findPluginForPrefix( prefix, project );
+            plugin = pluginManager.findPluginForPrefix( prefix, 
localRepository, project.getRemoteArtifactRepositories() );
 
             // Search plugin in the current POM
             if ( plugin == null )
@@ -456,7 +456,7 @@
                     
                     try
                     {
-                        desc = pluginManager.loadPlugin( buildPlugin, project, 
localRepository );
+                        desc = pluginManager.loadPlugin( buildPlugin, 
localRepository, project.getRemoteArtifactRepositories() );
                     }
                     catch ( PluginLoaderException e )
                     {
@@ -505,7 +505,7 @@
         
         try
         {                        
-            mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, 
project, localRepository );
+            mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, 
localRepository, project.getRemoteArtifactRepositories() );
         }
         catch ( PluginLoaderException e )
         {
@@ -530,7 +530,7 @@
                         
         try
         {
-            mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, 
project, localRepository );
+            mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, 
localRepository, project.getRemoteArtifactRepositories() );
         }
         catch ( PluginLoaderException e )
         {

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=774361&r1=774360&r2=774361&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 May 13 13:41:06 2009
@@ -114,7 +114,7 @@
     }
 
     // This should be template method code for allowing subclasses to assist 
in contributing search/hint information
-    public Plugin findPluginForPrefix( String prefix, MavenProject project )
+    public Plugin findPluginForPrefix( String prefix, ArtifactRepository 
localRepository, List<ArtifactRepository> remoteRepositories )
     {
         //Use the plugin managers capabilities to get information to augement 
the request
 
@@ -122,7 +122,7 @@
         //return getByPrefix( prefix, session.getPluginGroups(), 
project.getRemoteArtifactRepositories(), session.getLocalRepository() );
     }
 
-    public PluginDescriptor loadPlugin( Plugin plugin, MavenProject project, 
ArtifactRepository localRepository )
+    public PluginDescriptor loadPlugin( Plugin plugin, ArtifactRepository 
localRepository, List<ArtifactRepository> remoteRepositories )
         throws PluginLoaderException
     {
         PluginDescriptor pluginDescriptor = getPluginDescriptor( plugin );
@@ -136,7 +136,7 @@
 
         try
         {
-            return addPlugin( plugin, project, localRepository );
+            return addPlugin( plugin, localRepository, remoteRepositories );
         }
         catch ( ArtifactResolutionException e )
         // PluginResolutionException - a problem that occurs resolving the 
plugin artifact or its deps
@@ -167,7 +167,7 @@
         return plugin.getGroupId() + ":" + plugin.getArtifactId() + ":" + 
plugin.getVersion();
     }
 
-    protected PluginDescriptor addPlugin( Plugin plugin, MavenProject project, 
ArtifactRepository localRepository )
+    protected PluginDescriptor addPlugin( Plugin plugin, ArtifactRepository 
localRepository, List<ArtifactRepository> remoteRepositories )
         throws ArtifactNotFoundException, ArtifactResolutionException, 
PluginVersionResolutionException, PluginContainerException, 
PluginVersionNotFoundException
     {
         Artifact pluginArtifact = repositorySystem.createPluginArtifact( 
plugin );
@@ -175,7 +175,7 @@
         ArtifactResolutionRequest request = new ArtifactResolutionRequest()
             .setArtifact( pluginArtifact )
             .setLocalRepository( localRepository )
-            .setRemoteRepostories( project.getRemoteArtifactRepositories() );
+            .setRemoteRepostories( remoteRepositories );
 
         ArtifactResolutionResult result = repositorySystem.resolve( request );
 
@@ -183,7 +183,7 @@
 
         ClassRealm pluginRealm = container.createChildRealm( pluginKey( plugin 
) );
 
-        Set<Artifact> pluginArtifacts = getPluginArtifacts( pluginArtifact, 
plugin, project, localRepository );
+        Set<Artifact> pluginArtifacts = getPluginArtifacts( pluginArtifact, 
plugin, localRepository, remoteRepositories );
 
         for ( Artifact a : pluginArtifacts )
         {
@@ -230,7 +230,7 @@
     //   its dependencies while filtering out what's in the core
     //   layering on the project level plugin dependencies
 
-    private Set<Artifact> getPluginArtifacts( Artifact pluginArtifact, Plugin 
pluginAsSpecifiedinPom, MavenProject project, ArtifactRepository 
localRepository )
+    private Set<Artifact> getPluginArtifacts( Artifact pluginArtifact, Plugin 
pluginAsSpecifiedinPom, ArtifactRepository localRepository, 
List<ArtifactRepository> remoteRepositories )
         throws ArtifactNotFoundException, ArtifactResolutionException
     {
         AndArtifactFilter filter = new AndArtifactFilter();
@@ -260,7 +260,7 @@
             // So this in fact are overrides ... 
             .setArtifactDependencies( dependenciesToResolveForPlugin )
             .setLocalRepository( localRepository )
-            .setRemoteRepostories( project.getRemoteArtifactRepositories() )
+            .setRemoteRepostories( remoteRepositories )
             .setFilter( filter )
             .setResolveTransitively( true );
         
@@ -536,10 +536,10 @@
         }
     }
 
-    public MojoDescriptor getMojoDescriptor( Plugin plugin, String goal, 
MavenProject project, ArtifactRepository localRepository )
+    public MojoDescriptor getMojoDescriptor( Plugin plugin, String goal, 
ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories 
)
         throws PluginLoaderException
     {
-        PluginDescriptor pluginDescriptor = loadPlugin( plugin, project, 
localRepository );
+        PluginDescriptor pluginDescriptor = loadPlugin( plugin, 
localRepository, remoteRepositories );
 
         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=774361&r1=774360&r2=774361&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 May 13 13:41:06 2009
@@ -15,12 +15,13 @@
  * the License.
  */
 
+import java.util.List;
+
 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;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
-import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.component.discovery.ComponentDiscoverer;
 import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener;
 
@@ -35,12 +36,12 @@
     // - configure the plugin [extension point]
     // - execute the plugin    
     
-    Plugin findPluginForPrefix( String prefix, MavenProject project );
+    Plugin findPluginForPrefix( String prefix, ArtifactRepository 
localRepository, List<ArtifactRepository> remoteRepositories );
     
-    PluginDescriptor loadPlugin( Plugin plugin, MavenProject project, 
ArtifactRepository localRepository )
+    PluginDescriptor loadPlugin( Plugin plugin, ArtifactRepository 
localRepository, List<ArtifactRepository> remoteRepositories )
         throws PluginLoaderException;
     
-    MojoDescriptor getMojoDescriptor( Plugin plugin, String goal, MavenProject 
project, ArtifactRepository localRepository )
+    MojoDescriptor getMojoDescriptor( Plugin plugin, String goal, 
ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories 
)
         throws PluginLoaderException;
     
     void executeMojo( MavenSession session, MojoExecution execution )

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=774361&r1=774360&r2=774361&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 May 13 13:41:06 2009
@@ -6,6 +6,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 PluginManagerTest
     extends AbstractCoreMavenComponentTestCase
@@ -77,10 +78,16 @@
     public void testRemoteResourcesPlugin()
         throws Exception
     {
+        //TODO: turn an equivalent back on when the RR plugin is released.
+        
         /*
 
         This will not work until the RR plugin is released to get rid of the 
binding to the reporting exception which is a mistake.
         
+        This happpens after removing the reporting API from the core:
+        
+        java.lang.NoClassDefFoundError: 
org/apache/maven/reporting/MavenReportException
+        
         MavenSession session = createMavenSession( getProject( 
"project-with-inheritance" ) );       
         String goal = "process";
         
@@ -107,9 +114,14 @@
         plugin.setArtifactId( "maven-surefire-plugin" );
         plugin.setVersion( "2.4.2" );
 
+        // The project has already been fully interpolated so getting the raw 
mojoDescriptor is not going to have the processes configuration.
         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 );
+        
+        System.out.println( 
session.getCurrentProject().getBuild().getPluginsAsMap() );
+        
+        Xpp3Dom configuration = (Xpp3Dom) 
session.getCurrentProject().getBuild().getPluginsAsMap().get( plugin.getKey() 
).getExecutions().get( 0 ).getConfiguration();
+        MojoExecution mojoExecution = new MojoExecution( mojoDescriptor, 
configuration );
         pluginManager.executeMojo( session, mojoExecution );
     }
     

Modified: 
maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java?rev=774361&r1=774360&r2=774361&view=diff
==============================================================================
--- 
maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
 (original)
+++ 
maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
 Wed May 13 13:41:06 2009
@@ -1457,8 +1457,7 @@
 
         ProjectBuilderConfiguration config = new 
DefaultProjectBuilderConfiguration();
 
-        String localRepoUrl =
-            System.getProperty( "maven.repo.local", System.getProperty( 
"user.home" ) + "/.m2/repository" );
+        String localRepoUrl = System.getProperty( "maven.repo.local", 
System.getProperty( "user.home" ) + "/.m2/repository" );
         localRepoUrl = "file://" + localRepoUrl;
         config.setLocalRepository( new DefaultArtifactRepository( "local", 
localRepoUrl, new DefaultRepositoryLayout() ) );
 


Reply via email to