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 2009/07/23 00:03:26 UTC

svn commit: r796891 - in /maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven: extension/DefaultExtensionManager.java plugin/DefaultPluginManager.java

Author: jdcasey
Date: Wed Jul 22 22:03:26 2009
New Revision: 796891

URL: http://svn.apache.org/viewvc?rev=796891&view=rev
Log:
[MNG-3506] Fixing loading of ArtifactHandlers from plugins with extensions, even in cases where multiple plugins with extensions are used.

Modified:
    maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
    maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java

Modified: maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java?rev=796891&r1=796890&r2=796891&view=diff
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java (original)
+++ maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java Wed Jul 22 22:03:26 2009
@@ -19,7 +19,9 @@
  * under the License.
  */
 
-import org.apache.maven.MavenArtifactFilterManager;
+import static org.apache.maven.container.ContainerUtils.findChildComponentHints;
+
+import org.apache.maven.MavenArtifactFilterManager; 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.factory.ArtifactFactory;
@@ -46,7 +48,6 @@
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.PlexusContainerException;
-import org.codehaus.plexus.component.repository.ComponentDescriptor;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.context.Context;
 import org.codehaus.plexus.context.ContextException;
@@ -264,16 +265,15 @@
         return child;
     }
 
-    @SuppressWarnings( "unchecked" )
     public void registerWagons()
     {
         if ( extensionContainer != null )
         {
-            Map<String, ComponentDescriptor> wagons = extensionContainer.getComponentDescriptorMap( Wagon.ROLE );
+            Set<String> wagons = findChildComponentHints( Wagon.ROLE, container, extensionContainer );
             if ( wagons != null && !wagons.isEmpty() )
             {
-                getLogger().debug( "Wagons to register: " + wagons.keySet() );
-                wagonManager.registerWagons( wagons.keySet(), extensionContainer );
+                getLogger().debug( "Wagons to register: " + wagons );
+                wagonManager.registerWagons( wagons, extensionContainer );
             }
         }
         else

Modified: maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=796891&r1=796890&r2=796891&view=diff
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Wed Jul 22 22:03:26 2009
@@ -19,6 +19,8 @@
  * under the License.
  */
 
+import static org.apache.maven.container.ContainerUtils.findChildComponentHints;
+
 import org.apache.maven.MavenArtifactFilterManager;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
@@ -59,6 +61,7 @@
 import org.apache.maven.project.path.PathTranslator;
 import org.apache.maven.reporting.MavenReport;
 import org.apache.maven.settings.Settings;
+import org.apache.maven.wagon.Wagon;
 import org.codehaus.classworlds.ClassRealm;
 import org.codehaus.classworlds.NoSuchRealmException;
 import org.codehaus.plexus.PlexusConstants;
@@ -70,6 +73,7 @@
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
 import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener;
+import org.codehaus.plexus.component.repository.ComponentDescriptor;
 import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
@@ -1588,6 +1592,7 @@
         return pluginContainer.lookup( role, roleHint );
     }
 
+    @SuppressWarnings( "unchecked" )
     public Map getPluginComponents( Plugin plugin,
                                     String role )
         throws ComponentLookupException, PluginManagerException
@@ -1595,7 +1600,15 @@
         PluginDescriptor pluginDescriptor = pluginCollector.getPluginDescriptor( plugin );
 
         PlexusContainer pluginContainer = getPluginContainer( pluginDescriptor );
+        
+        Set<String> pluginHints = findChildComponentHints( role, container, pluginContainer );
+        Map<String, Object> components = new HashMap<String, Object>( pluginHints.size() );
+        for ( String hint : pluginHints )
+        {
+            getLogger().debug( "Looking up plugin component: " + role + " with hint: " + hint );
+            components.put( hint, pluginContainer.lookup( role, hint ) );
+        }
 
-        return pluginContainer.lookupMap( role );
+        return components;
     }
 }