Author: jvanzyl Date: Thu Mar 5 06:56:41 2009 New Revision: 750343 URL: http://svn.apache.org/viewvc?rev=750343&view=rev Log: o more plugin manager refactoring
Removed: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/loader/ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/ Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.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/DefaultPluginManagerSupport.java Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=750343&r1=750342&r2=750343&view=diff ============================================================================== --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java (original) +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java Thu Mar 5 06:56:41 2009 @@ -163,7 +163,7 @@ return request.getSettings(); } - public List getSortedProjects() + public List<MavenProject> getSortedProjects() { return reactorManager.getSortedProjects(); } Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java?rev=750343&r1=750342&r2=750343&view=diff ============================================================================== --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java (original) +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java Thu Mar 5 06:56:41 2009 @@ -155,7 +155,7 @@ return sorter.hasMultipleProjects(); } - public List getSortedProjects() + public List<MavenProject> getSortedProjects() { return sorter.getSortedProjects(); } @@ -194,7 +194,7 @@ { private final DAG dag; - private final List sortedProjects; + private final List<MavenProject> sortedProjects; private MavenProject topLevelProject; @@ -221,7 +221,7 @@ // In this case, both the verify and the report goals are called // in a different lifecycle. Though the compiler-plugin has a valid usecase, although // that seems to work fine. We need to take versions and lifecycle into account. - public ProjectSorter( List projects ) + public ProjectSorter( List<MavenProject> projects ) throws CycleDetectedException, DuplicateProjectException { dag = new DAG(); @@ -380,7 +380,7 @@ return topLevelProject; } - public List getSortedProjects() + public List<MavenProject> getSortedProjects() { return sortedProjects; } 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=750343&r1=750342&r2=750343&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 Thu Mar 5 06:56:41 2009 @@ -374,7 +374,7 @@ } ResolutionGroup resolutionGroup; - + try { resolutionGroup = repositorySystem.retrieve( pluginArtifact, localRepository, project.getRemoteArtifactRepositories() ); @@ -407,18 +407,12 @@ // followed by the plugin's default artifact set dependencies.addAll( resolutionGroup.getArtifacts() ); - - Set repositories = new LinkedHashSet(); - - repositories.addAll( resolutionGroup.getResolutionRepositories() ); - - repositories.addAll( project.getRemoteArtifactRepositories() ); ArtifactResolutionRequest request = new ArtifactResolutionRequest() .setArtifact( pluginArtifact ) .setArtifactDependencies( dependencies ) .setLocalRepository( localRepository ) - .setRemoteRepostories( repositories.isEmpty() ? Collections.EMPTY_LIST : new ArrayList( repositories ) ) + .setRemoteRepostories( project.getRemoteArtifactRepositories() ) .setManagedVersionMap( pluginManagedDependencies ) .setFilter( filter ) .setMetadataSource( repositorySystem ); @@ -449,12 +443,8 @@ // Mojo execution // ---------------------------------------------------------------------- - public void executeMojo( MavenProject project, - MojoExecution mojoExecution, - MavenSession session ) - throws ArtifactResolutionException, MojoFailureException, - ArtifactNotFoundException, InvalidDependencyVersionException, PluginManagerException, - PluginConfigurationException + public void executeMojo( MavenProject project, MojoExecution mojoExecution, MavenSession session ) + throws ArtifactResolutionException, MojoFailureException, ArtifactNotFoundException, InvalidDependencyVersionException, PluginManagerException, PluginConfigurationException { MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor(); @@ -462,19 +452,13 @@ // anything that wants to execute a mojo. if ( mojoDescriptor.isProjectRequired() && !session.isUsingPOMsFromFilesystem() ) { - throw new PluginExecutionException( mojoExecution, project, - "Cannot execute mojo: " - + mojoDescriptor.getGoal() - + ". It requires a project with an existing pom.xml, but the build is not using one." ); + throw new PluginExecutionException( mojoExecution, project, "Cannot execute mojo: " + mojoDescriptor.getGoal() + ". It requires a project with an existing pom.xml, but the build is not using one." ); } if ( mojoDescriptor.isOnlineRequired() && session.isOffline() ) { // TODO: Should we error out, or simply warn and skip?? - throw new PluginExecutionException( mojoExecution, project, - "Mojo: " - + mojoDescriptor.getGoal() - + " requires online mode for execution. Maven is currently offline." ); + throw new PluginExecutionException( mojoExecution, project, "Mojo: " + mojoDescriptor.getGoal() + " requires online mode for execution. Maven is currently offline." ); } if ( mojoDescriptor.getDeprecated() != null ) @@ -488,7 +472,7 @@ if ( mojoDescriptor.isDependencyResolutionRequired() != null ) { - Collection projects; + Collection<MavenProject> projects; if ( mojoDescriptor.isAggregator() ) { Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManagerSupport.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManagerSupport.java?rev=750343&r1=750342&r2=750343&view=diff ============================================================================== --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManagerSupport.java (original) +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManagerSupport.java Thu Mar 5 06:56:41 2009 @@ -19,7 +19,6 @@ * under the License. */ -import java.util.ArrayList; import java.util.List; import org.apache.maven.artifact.Artifact; @@ -47,13 +46,12 @@ import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextException; -import org.codehaus.plexus.logging.LogEnabled; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; @Component(role = PluginManagerSupport.class) public class DefaultPluginManagerSupport - implements PluginManagerSupport, LogEnabled, Contextualizable + implements PluginManagerSupport, Contextualizable { @Requirement private MavenRepositorySystem repositorySystem; @@ -70,7 +68,7 @@ @Requirement private PluginVersionManager pluginVersionManager; - //@Requirement + @Requirement private Logger logger; private Context containerContext; @@ -80,26 +78,9 @@ { ArtifactRepository localRepository = session.getLocalRepository(); - List remoteRepositories = new ArrayList(); - - remoteRepositories.addAll( project.getRemoteArtifactRepositories() ); + MavenProject pluginProject = buildPluginProject( plugin, localRepository, project.getRemoteArtifactRepositories() ); - MavenProject pluginProject = null; - for(MavenProject mp : (List<MavenProject>) session.getSortedProjects()) - { - if(mp.getId().equals(project.getId())) - { - pluginProject = mp; - break; - } - } - - if(pluginProject == null) - { - pluginProject = buildPluginProject( plugin, localRepository, remoteRepositories ); - } - - checkRequiredMavenVersion( plugin, pluginProject, localRepository, remoteRepositories ); + checkRequiredMavenVersion( plugin, pluginProject, localRepository, project.getRemoteArtifactRepositories() ); checkPluginDependencySpec( plugin, pluginProject ); @@ -107,8 +88,10 @@ pluginArtifact = project.replaceWithActiveArtifact( pluginArtifact ); - ArtifactResolutionRequest request = new ArtifactResolutionRequest( pluginArtifact, localRepository, remoteRepositories ); + ArtifactResolutionRequest request = new ArtifactResolutionRequest( pluginArtifact, localRepository, project.getRemoteArtifactRepositories() ); + ArtifactResolutionResult result = repositorySystem.resolve( request ); + resolutionErrorHandler.throwErrors( request, result ); return pluginArtifact; @@ -133,26 +116,17 @@ * @todo would be better to store this in the plugin descriptor, but then it won't be available to the version * manager which executes before the plugin is instantiated */ - public void checkRequiredMavenVersion( Plugin plugin, - MavenProject pluginProject, - ArtifactRepository localRepository, - List remoteRepositories ) + public void checkRequiredMavenVersion( Plugin plugin, MavenProject pluginProject, ArtifactRepository localRepository, List remoteRepositories ) throws PluginVersionResolutionException, InvalidPluginException { // if we don't have the required Maven version, then ignore an update - if ( ( pluginProject.getPrerequisites() != null ) - && ( pluginProject.getPrerequisites().getMaven() != null ) ) + if ( ( pluginProject.getPrerequisites() != null ) && ( pluginProject.getPrerequisites().getMaven() != null ) ) { - DefaultArtifactVersion requiredVersion = new DefaultArtifactVersion( - pluginProject.getPrerequisites() - .getMaven() ); + DefaultArtifactVersion requiredVersion = new DefaultArtifactVersion( pluginProject.getPrerequisites().getMaven() ); if ( runtimeInformation.getApplicationInformation().getVersion().compareTo( requiredVersion ) < 0 ) { - throw new PluginVersionResolutionException( plugin.getGroupId(), - plugin.getArtifactId(), - "Plugin requires Maven version " - + requiredVersion ); + throw new PluginVersionResolutionException( plugin.getGroupId(), plugin.getArtifactId(), "Plugin requires Maven version " + requiredVersion ); } } } @@ -171,18 +145,13 @@ } } - public PluginDescriptor loadIsolatedPluginDescriptor( Plugin plugin, - MavenProject project, - MavenSession session ) + public PluginDescriptor loadIsolatedPluginDescriptor( Plugin plugin, MavenProject project, MavenSession session ) { if ( plugin.getVersion() == null ) { try { - plugin.setVersion( pluginVersionManager.resolvePluginVersion( plugin.getGroupId(), - plugin.getArtifactId(), - project, - session ) ); + plugin.setVersion( pluginVersionManager.resolvePluginVersion( plugin.getGroupId(), plugin.getArtifactId(), project, session ) ); } catch ( PluginVersionResolutionException e ) { @@ -239,11 +208,7 @@ try { - List componentSetDescriptors = RealmScanningUtils.scanForComponentSetDescriptors( artifact, - discoverer, - containerContext, - "Plugin: " - + plugin.getKey() ); + List componentSetDescriptors = RealmScanningUtils.scanForComponentSetDescriptors( artifact, discoverer, containerContext, "Plugin: " + plugin.getKey() ); if ( !componentSetDescriptors.isEmpty() ) { @@ -259,11 +224,6 @@ return null; } - public void enableLogging( Logger logger ) - { - this.logger = logger; - } - public void contextualize( Context context ) throws ContextException {