Author: bentmann
Date: Thu Feb 18 23:19:48 2010
New Revision: 911645

URL: http://svn.apache.org/viewvc?rev=911645&view=rev
Log:
o Concentrated all plugin artifact resolution in one component

Modified:
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java?rev=911645&r1=911644&r2=911645&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
 Thu Feb 18 23:19:48 2010
@@ -36,10 +36,7 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.repository.RepositoryRequest;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
-import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
-import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
 import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.classrealm.ClassRealmManager;
@@ -65,7 +62,6 @@
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.repository.RepositorySystem;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
 import org.codehaus.plexus.component.annotations.Component;
@@ -109,12 +105,6 @@
     private ClassRealmManager classRealmManager;
 
     @Requirement
-    protected RepositorySystem repositorySystem;
-
-    @Requirement
-    private ResolutionErrorHandler resolutionErrorHandler;
-
-    @Requirement
     private PluginDescriptorCache pluginDescriptorCache;
 
     @Requirement
@@ -134,7 +124,8 @@
 
         if ( pluginDescriptor == null )
         {
-            Artifact pluginArtifact = resolvePluginArtifact( plugin, 
repositoryRequest );
+            Artifact pluginArtifact =
+                pluginDependenciesResolver.resolve( plugin, new 
ArtifactResolutionRequest( repositoryRequest ) );
 
             pluginDescriptor = extractPluginDescriptor( pluginArtifact, plugin 
);
 
@@ -146,29 +137,6 @@
         return pluginDescriptor;
     }
 
-    private Artifact resolvePluginArtifact( Plugin plugin, RepositoryRequest 
repositoryRequest )
-        throws PluginResolutionException
-    {
-        Artifact pluginArtifact = repositorySystem.createPluginArtifact( 
plugin );
-
-        ArtifactResolutionRequest request = new ArtifactResolutionRequest( 
repositoryRequest );
-        request.setArtifact( pluginArtifact );
-        request.setResolveTransitively( false );
-
-        ArtifactResolutionResult result = repositorySystem.resolve( request );
-
-        try
-        {
-            resolutionErrorHandler.throwErrors( request, result );
-        }
-        catch ( ArtifactResolutionException e )
-        {
-            throw new PluginResolutionException( plugin, e );
-        }
-
-        return pluginArtifact;
-    }
-
     private PluginDescriptor extractPluginDescriptor( Artifact pluginArtifact, 
Plugin plugin )
         throws PluginDescriptorParsingException, 
InvalidPluginDescriptorException
     {
@@ -353,7 +321,8 @@
             dependencyFilter = new AndArtifactFilter( Arrays.asList( 
dependencyFilter, filter ) );
         }
 
-        List<Artifact> pluginArtifacts = resolvePluginArtifacts( plugin, 
pluginArtifact, request, dependencyFilter );
+        List<Artifact> pluginArtifacts =
+            pluginDependenciesResolver.resolve( plugin, pluginArtifact, 
request, dependencyFilter );
 
         ClassRealm pluginRealm = classRealmManager.createPluginRealm( plugin, 
parent, imports, pluginArtifacts );
 
@@ -392,20 +361,6 @@
         }
     }
 
-    /**
-     * Gets all artifacts required for the class realm of the specified 
plugin. An artifact in the result list that has
-     * no file set is meant to be excluded from the plugin realm in favor of 
the equivalent library from the current
-     * core distro.
-     */
-    // FIXME: only exposed to allow workaround for MNG-4194
-    protected List<Artifact> resolvePluginArtifacts( Plugin plugin, Artifact 
pluginArtifact,
-                                                     ArtifactResolutionRequest 
request,
-                                                     ArtifactFilter 
dependencyFilter )
-        throws PluginResolutionException
-    {
-        return pluginDependenciesResolver.resolve( plugin, pluginArtifact, 
request, dependencyFilter );
-    }
-
     public <T> T getConfiguredMojo( Class<T> mojoInterface, MavenSession 
session, MojoExecution mojoExecution )
         throws PluginConfigurationException, PluginContainerException
     {

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java?rev=911645&r1=911644&r2=911645&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
 Thu Feb 18 23:19:48 2010
@@ -63,6 +63,29 @@
     @Requirement
     private ArtifactFilterManager artifactFilterManager;
 
+    public Artifact resolve( Plugin plugin, ArtifactResolutionRequest request )
+        throws PluginResolutionException
+    {
+        Artifact pluginArtifact = repositorySystem.createPluginArtifact( 
plugin );
+
+        request.setArtifact( pluginArtifact );
+        request.setResolveRoot( true );
+        request.setResolveTransitively( false );
+
+        ArtifactResolutionResult result = repositorySystem.resolve( request );
+
+        try
+        {
+            resolutionErrorHandler.throwErrors( request, result );
+        }
+        catch ( ArtifactResolutionException e )
+        {
+            throw new PluginResolutionException( plugin, e );
+        }
+
+        return pluginArtifact;
+    }
+
     public List<Artifact> resolve( Plugin plugin, Artifact pluginArtifact, 
ArtifactResolutionRequest request,
                                    ArtifactFilter dependencyFilter )
         throws PluginResolutionException

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java?rev=911645&r1=911644&r2=911645&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java
 Thu Feb 18 23:19:48 2010
@@ -38,6 +38,18 @@
 {
 
     /**
+     * Resolves the main artifact of the specified plugin.
+     * 
+     * @param plugin The plugin for which to resolve the main artifact, must 
not be {...@code null}.
+     * @param request A prepopulated resolution request that will be completed 
and used for the resolution, must not be
+     *            {...@code null}.
+     * @return The resolved plugin artifact, never {...@code null}.
+     * @throws PluginResolutionException If the plugin artifact could not be 
resolved.
+     */
+    public Artifact resolve( Plugin plugin, ArtifactResolutionRequest request )
+        throws PluginResolutionException;
+
+    /**
      * Resolves the runtime dependencies of the specified plugin.
      * 
      * @param plugin The plugin for which to resolve the dependencies, must 
not be {...@code null}.
@@ -49,7 +61,7 @@
      * @throws PluginResolutionException If any dependency could not be 
resolved.
      */
     List<Artifact> resolve( Plugin plugin, Artifact pluginArtifact, 
ArtifactResolutionRequest request,
-                                           ArtifactFilter dependencyFilter )
+                            ArtifactFilter dependencyFilter )
         throws PluginResolutionException;
 
 }


Reply via email to