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 )