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/01 02:36:03 UTC
svn commit: r760747 - in /maven/components/branches/MNG-2766:
maven-core/src/main/java/org/apache/maven/
maven-core/src/main/java/org/apache/maven/execution/
maven-core/src/main/java/org/apache/maven/lifecycle/
maven-core/src/main/java/org/apache/maven...
Author: jvanzyl
Date: Wed Apr 1 00:36:02 2009
New Revision: 760747
URL: http://svn.apache.org/viewvc?rev=760747&view=rev
Log:
o another pass at the plugin manager
Modified:
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
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/MavenPluginCollector.java
maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTest.java
maven/components/branches/MNG-2766/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=760747&r1=760746&r2=760747&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Wed Apr 1 00:36:02 2009
@@ -144,7 +144,7 @@
try
{
- session = new MavenSession( request, projects );
+ session = new MavenSession( container, request, projects );
result.setReactorManager( session.getReactorManager() );
}
Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=760747&r1=760746&r2=760747&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java Wed Apr 1 00:36:02 2009
@@ -29,6 +29,7 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.settings.Settings;
+import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.util.dag.CycleDetectedException;
/**
@@ -37,6 +38,8 @@
*/
public class MavenSession
{
+ private PlexusContainer container;
+
private ReactorManager reactorManager;
private MavenExecutionRequest request;
@@ -49,15 +52,16 @@
this.request = request;
}
- public MavenSession( MavenExecutionRequest request, MavenProject project )
+ public MavenSession( PlexusContainer container, MavenExecutionRequest request, MavenProject project )
throws CycleDetectedException, DuplicateProjectException
{
- this( request, Arrays.asList( new MavenProject[]{ project } ) );
+ this( container, request, Arrays.asList( new MavenProject[]{ project } ) );
}
- public MavenSession( MavenExecutionRequest request, List<MavenProject> projects )
+ public MavenSession( PlexusContainer container, MavenExecutionRequest request, List<MavenProject> projects )
throws CycleDetectedException, DuplicateProjectException
{
+ this.container = container;
this.request = request;
this.reactorManager = new ReactorManager( projects, request.getReactorFailureBehavior() );
this.currentProject = projects.get( 0 );
@@ -73,6 +77,11 @@
return reactorManager.getPluginContext( pluginDescriptor, project );
}
+ public PlexusContainer getContainer()
+ {
+ return container;
+ }
+
public ArtifactRepository getLocalRepository()
{
return request.getLocalRepository();
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=760747&r1=760746&r2=760747&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 1 00:36:02 2009
@@ -403,11 +403,7 @@
{
throw new LifecycleExecutionException( "Error loading MojoDescriptor.", e );
}
-
- // this has been simplified from the old code that injected the plugin management stuff, since
- // pluginManagement injection is now handled by the project method.
- project.addPlugin( plugin );
-
+
return mojoDescriptor;
}
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=760747&r1=760746&r2=760747&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 1 00:36:02 2009
@@ -31,7 +31,6 @@
import org.apache.maven.ArtifactFilterManager;
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.metadata.GroupRepositoryMetadata;
import org.apache.maven.artifact.repository.metadata.Metadata;
@@ -152,13 +151,7 @@
{
resolvePluginVersion( plugin, project, session );
- addPlugin( plugin, project, session );
-
- pluginDescriptor = pluginCollector.getPluginDescriptor( plugin );
-
- project.addPlugin( plugin );
-
- return pluginDescriptor;
+ return addPlugin( plugin, project, session );
}
catch ( ArtifactResolutionException e )
{
@@ -191,7 +184,7 @@
return plugin.getGroupId() + ":" + plugin.getArtifactId() + ":" + plugin.getVersion();
}
- protected void addPlugin( Plugin plugin, MavenProject project, MavenSession session )
+ protected PluginDescriptor addPlugin( Plugin plugin, MavenProject project, MavenSession session )
throws ArtifactNotFoundException, ArtifactResolutionException, PluginManagerException, InvalidPluginException, PluginVersionResolutionException
{
ArtifactRepository localRepository = session.getLocalRepository();
@@ -247,6 +240,8 @@
pluginDescriptor.setPluginArtifact( pluginArtifact );
pluginDescriptor.setArtifacts( new ArrayList<Artifact>( pluginArtifacts ) );
pluginDescriptor.setClassRealm( pluginRealm );
+
+ return pluginDescriptor;
}
// plugin artifact
@@ -1224,65 +1219,39 @@
// in settings.xml.
if ( StringUtils.isEmpty( version ) || Artifact.RELEASE_VERSION.equals( version ) )
{
- // 1. resolve the version to be used
- version = resolveMetaVersion( groupId, artifactId, project, session.getLocalRepository(), Artifact.RELEASE_VERSION );
- logger.debug( "Version from RELEASE metadata: " + version );
- }
-
- // if we still haven't found a version, then fail early before we get into the update goop.
- if ( StringUtils.isEmpty( version ) )
- {
- throw new PluginVersionNotFoundException( groupId, artifactId );
- }
-
- plugin.setVersion( version );
- }
-
- private String resolveMetaVersion( String groupId, String artifactId, MavenProject project, ArtifactRepository localRepository, String metaVersionId )
- throws PluginVersionResolutionException, InvalidPluginException
- {
- logger.info( "Attempting to resolve a version for plugin: " + groupId + ":" + artifactId + " using meta-version: " + metaVersionId );
-
- Artifact artifact = repositorySystem.createProjectArtifact( groupId, artifactId, metaVersionId );
-
- String version = null;
+ // 1. resolve the version to be used
+ Artifact artifact = repositorySystem.createProjectArtifact( groupId, artifactId, Artifact.RELEASE_VERSION );
- String artifactVersion = artifact.getVersion();
+ String artifactVersion = artifact.getVersion();
- // make sure this artifact was transformed to a real version, and actually resolved to a file in the repo...
- if ( !metaVersionId.equals( artifactVersion ) && ( artifact.getFile() != null ) )
- {
- boolean pluginValid = false;
-
- while ( !pluginValid && ( artifactVersion != null ) )
+ // make sure this artifact was transformed to a real version, and actually resolved to a file in the repo...
+ if ( !Artifact.RELEASE_VERSION.equals( artifactVersion ) && ( artifact.getFile() != null ) )
{
- pluginValid = true;
-
- MavenProject pluginProject;
-
- try
- {
- artifact = repositorySystem.createProjectArtifact( groupId, artifactId, artifactVersion );
+ boolean pluginValid = false;
- pluginProject = mavenProjectBuilder.buildFromRepository( artifact, project.getRemoteArtifactRepositories(), localRepository );
- }
- catch ( ProjectBuildingException e )
+ while ( !pluginValid && ( artifactVersion != null ) )
{
- throw new InvalidPluginException( "Unable to build project information for plugin '" + ArtifactUtils.versionlessKey( groupId, artifactId ) + "': " + e.getMessage(), e );
+ pluginValid = true;
+
+ artifact = repositorySystem.createProjectArtifact( groupId, artifactId, artifactVersion );
}
+
+ version = artifactVersion;
}
- version = artifactVersion;
+ if ( version == null )
+ {
+ version = artifactVersion;
+ }
}
- if ( version == null )
+ // if we still haven't found a version, then fail early before we get into the update goop.
+ if ( StringUtils.isEmpty( version ) )
{
- version = artifactVersion;
+ throw new PluginVersionNotFoundException( groupId, artifactId );
}
- logger.info( "Using version: " + version + " of plugin: " + groupId + ":" + artifactId );
-
- return version;
+ plugin.setVersion( version );
}
// We need to strip out the methods in here for a validation method.
Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java?rev=760747&r1=760746&r2=760747&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java Wed Apr 1 00:36:02 2009
@@ -33,6 +33,7 @@
import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener;
import org.codehaus.plexus.component.repository.ComponentSetDescriptor;
+//TODO: collapse this into the plugin manager
public class MavenPluginCollector
implements ComponentDiscoveryListener
{
Modified: maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTest.java?rev=760747&r1=760746&r2=760747&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTest.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTest.java Wed Apr 1 00:36:02 2009
@@ -99,7 +99,7 @@
// We just need to use the configuration, and get the POM from that.
MavenProject project = projectBuilder.build( pom, configuration );
- MavenSession session = new MavenSession( request, project );
+ MavenSession session = new MavenSession( getContainer(), request, project );
return session;
}
Modified: maven/components/branches/MNG-2766/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=760747&r1=760746&r2=760747&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/branches/MNG-2766/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Wed Apr 1 00:36:02 2009
@@ -1301,20 +1301,6 @@
return build;
}
- public void addPlugin( Plugin plugin )
- {
- Build build = getModelBuild();
-
- if ( !build.getPluginsAsMap().containsKey( plugin.getKey() ) )
- {
- injectPluginManagementInfo( plugin );
-
- build.addPlugin( plugin );
-
- build.flushPluginMap();
- }
- }
-
//!!jvz remove ModelUtils
public void injectPluginManagementInfo( Plugin plugin )
{