You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/01/20 03:45:21 UTC
svn commit: r498048 -
/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Author: jdcasey
Date: Fri Jan 19 18:45:20 2007
New Revision: 498048
URL: http://svn.apache.org/viewvc?view=rev&rev=498048
Log:
Fixing plugin-discovery when one plugin depends on another, and the pluginCollector sees a plugin before that plugin is meant to be added with its componentRealm.
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
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?view=diff&rev=498048&r1=498047&r2=498048
==============================================================================
--- 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 Fri Jan 19 18:45:20 2007
@@ -201,6 +201,7 @@
throws PluginVersionResolutionException, ArtifactNotFoundException, ArtifactResolutionException,
InvalidVersionSpecificationException, InvalidPluginException, PluginManagerException, PluginNotFoundException
{
+ getLogger().debug( "In verifyVersionedPlugin for: " + plugin.getKey() );
// TODO: this might result in an artifact "RELEASE" being resolved continuously
// FIXME: need to find out how a plugin gets marked as 'installed'
@@ -225,10 +226,10 @@
artifactResolver.resolve( pluginArtifact, project.getPluginArtifactRepositories(), localRepository );
- if ( !pluginCollector.isPluginInstalled( plugin ) )
- {
- addPlugin( plugin, pluginArtifact, project, localRepository );
- }
+// if ( !pluginCollector.isPluginInstalled( plugin ) )
+// {
+// }
+ addPlugin( plugin, pluginArtifact, project, localRepository );
project.addPlugin( plugin );
}
@@ -345,6 +346,16 @@
private void addPlugin( Plugin plugin, Plugin projectPlugin, Artifact pluginArtifact, Set artifacts )
throws ArtifactNotFoundException, ArtifactResolutionException, PluginManagerException, InvalidPluginException
{
+ // TODO When/if we go to project-level plugin instances (like for plugin-level deps in the
+ // POM), we need to undo this somehow.
+ ClassRealm pluginRealm = container.getComponentRealm( projectPlugin.getKey() );
+
+ if ( pluginRealm != null && pluginRealm != container.getContainerRealm() )
+ {
+ getLogger().debug( "Realm already exists for: " + projectPlugin.getKey() + ". Skipping addition..." );
+ // we've already discovered this plugin, and configured it, so skip it this time.
+ return;
+ }
// ----------------------------------------------------------------------------
// Realm creation for a plugin
@@ -1253,6 +1264,8 @@
public Map getPluginComponents( Plugin plugin, String role )
throws ComponentLookupException, PluginManagerException
{
+ getLogger().debug( "Looking for plugin realm: " + plugin + " using: " + pluginCollector );
+
ClassRealm pluginRealm = pluginCollector.getPluginDescriptor( plugin ).getClassRealm();
if ( pluginRealm == null )