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; }