Author: kenney
Date: Thu Jan 18 08:33:34 2007
New Revision: 497491

URL: http://svn.apache.org/viewvc?view=rev&rev=497491
Log:
Use plugin realm to lookup plugin components - fixes custom lifecycle mappings

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=497491&r1=497490&r2=497491
==============================================================================
--- 
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 Jan 18 08:33:34 2007
@@ -1207,20 +1207,31 @@
         }
     }
 
-    public Object getPluginComponent( Plugin plugin,
-                                      String role,
-                                      String roleHint )
+    public Object getPluginComponent( Plugin plugin, String role, String 
roleHint )
         throws PluginManagerException, ComponentLookupException
     {
-        // XXX this needs the plugin realm!
-        return container.lookup( role, roleHint );
+        ClassRealm pluginRealm = pluginCollector.getPluginDescriptor( plugin 
).getClassRealm();
+
+        if ( pluginRealm == null )
+        {
+            getLogger().warn( "getPluginComponent(" + plugin + ", " + role + 
"): descriptor is missing classRealm" );
+            pluginRealm = DefaultPlexusContainer.getLookupRealm();
+        }
+
+        return container.lookup( role, roleHint, pluginRealm );
     }
 
-    public Map getPluginComponents( Plugin plugin,
-                                    String role )
+    public Map getPluginComponents( Plugin plugin, String role )
         throws ComponentLookupException, PluginManagerException
     {
-        // XXX this needs the plugin realm!
-        return container.lookupMap( role );
+        ClassRealm pluginRealm = pluginCollector.getPluginDescriptor( plugin 
).getClassRealm();
+
+        if ( pluginRealm == null )
+        {
+            getLogger().warn( "getPluginComponent(" + plugin + ", " + role + 
"): descriptor is missing classRealm" );
+            pluginRealm = DefaultPlexusContainer.getLookupRealm();
+        }
+
+        return container.lookupMap( role, pluginRealm );
     }
 }


Reply via email to