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/05 21:55:14 UTC

svn commit: r762142 - in /maven/components/branches/MNG-2766: ./ maven-core/src/main/java/org/apache/maven/lifecycle/ maven-core/src/main/java/org/apache/maven/plugin/ maven-core/src/test/java/org/apache/maven/ maven-embedder/src/main/java/org/apache/m...

Author: jvanzyl
Date: Sun Apr  5 19:55:14 2009
New Revision: 762142

URL: http://svn.apache.org/viewvc?rev=762142&view=rev
Log:
o roll up all the plugin manager capability into one class. having a manager, a component discoverer, and component discovery listener is too complicated.
o using the a looking to set the discoverer and discovery listener. in plexus this can be rolled into one extender


Added:
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginManager.java   (with props)
Removed:
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginDiscoverer.java
Modified:
    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/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
    maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
    maven/components/branches/MNG-2766/pom.xml

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=762142&r1=762141&r2=762142&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 Sun Apr  5 19:55:14 2009
@@ -265,6 +265,8 @@
         
         for( Plugin plugin : project.getBuild().getPlugins() )
         {
+            System.out.println( "plugin --> " + plugin );
+            
             for( PluginExecution execution : plugin.getExecutions() )
             {
                 // if the phase is specified then I don't have to go fetch the plugin yet and pull it down

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=762142&r1=762141&r2=762142&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 Sun Apr  5 19:55:14 2009
@@ -15,9 +15,17 @@
  * the License.
  */
 
+import java.io.IOException;
+import java.io.Reader;
 import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Enumeration;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -26,6 +34,7 @@
 
 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.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
@@ -45,6 +54,7 @@
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.Parameter;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
 import org.apache.maven.project.DuplicateArtifactAttachmentException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
@@ -61,25 +71,39 @@
 import org.codehaus.plexus.component.configurator.ConfigurationListener;
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
+import org.codehaus.plexus.component.discovery.ComponentDiscoverer;
+import org.codehaus.plexus.component.discovery.ComponentDiscovererManager;
+import org.codehaus.plexus.component.discovery.ComponentDiscoveryEvent;
+import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener;
+import org.codehaus.plexus.component.repository.ComponentDescriptor;
+import org.codehaus.plexus.component.repository.ComponentSetDescriptor;
 import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
 import org.codehaus.plexus.configuration.PlexusConfigurationException;
 import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
+import org.codehaus.plexus.context.Context;
+import org.codehaus.plexus.context.ContextMapAdapter;
 import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.InterpolationFilterReader;
+import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
+//TODO: get plugin groups
 //TODO: separate out project downloading
 //TODO: template method plugin validation as its framework specific
 //TODO: provide a method to get default configuraiton for a given plugin
 //TODO: get rid of all the custom configuration merging here, that's domain specific but needs to incorporate defaults the plugin manager can provide
 //TODO: the antrun plugin has its own configurator, the only plugin that does. might need to think about how that works
+//TODO: merge the plugin collector into the plugin manager
+//TODO: merge the plugin discovery listener into the plugin manager
 
 @Component(role = PluginManager.class)
 public class DefaultPluginManager
-    implements PluginManager
+    implements PluginManager, ComponentDiscoverer, ComponentDiscoveryListener
 {
     @Requirement
     private Logger logger;
@@ -91,9 +115,6 @@
     protected ArtifactFilterManager coreArtifactFilterManager;
 
     @Requirement
-    protected MavenPluginCollector pluginCollector;
-
-    @Requirement
     protected RepositorySystem repositorySystem;
 
     @Requirement
@@ -107,9 +128,19 @@
     
     private Map<String,Plugin> pluginDefinitionsByPrefix = new HashMap<String,Plugin>();
     
+    private Map<String, PluginDescriptor> pluginDescriptors;    
+    
+    public DefaultPluginManager()
+    {
+        System.out.println( "hello!!!!");
+        pluginDescriptors = new HashMap<String,PluginDescriptor>();        
+    }
+
     // This should be template method code for allowing subclasses to assist in contributing search/hint information
     public Plugin findPluginForPrefix( String prefix, MavenProject project, MavenSession session )
     {
+        //Use the plugin managers capabilities to get information to augement the request
+        
         return null;
         //return getByPrefix( prefix, session.getPluginGroups(), project.getRemoteArtifactRepositories(), session.getLocalRepository() );
     }
@@ -117,8 +148,10 @@
     public PluginDescriptor loadPlugin( Plugin plugin, MavenProject project, MavenSession session )
         throws PluginLoaderException
     {        
-        PluginDescriptor pluginDescriptor = pluginCollector.getPluginDescriptor( plugin );
+        PluginDescriptor pluginDescriptor = getPluginDescriptor( plugin );
             
+        System.out.println( "XXX plugin: " + plugin );
+        
         // There are cases where plugins are discovered but not actually populated. These are edge cases where you are working in the IDE on
         // Maven itself so this speaks to a problem we have with the system not starting entirely clean.
         if ( pluginDescriptor != null && pluginDescriptor.getClassRealm() != null )
@@ -127,9 +160,7 @@
         }
                         
         try
-        {         
-            resolvePluginVersion( plugin, project, session );
-                                     
+        {                                              
             return addPlugin( plugin, project, session );
         }
         catch ( ArtifactResolutionException e )
@@ -140,15 +171,15 @@
         {
             throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
         }
-        catch ( PluginVersionResolutionException e )
+        catch ( InvalidPluginException e )
         {
             throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
         }
-        catch ( InvalidPluginException e )
+        catch ( PluginVersionResolutionException e )
         {
             throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
         }
-        catch ( PluginManagerException e )
+        catch ( PluginContainerException e )
         {
             throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
         }
@@ -164,8 +195,10 @@
     }
     
     protected PluginDescriptor addPlugin( Plugin plugin, MavenProject project, MavenSession session )
-        throws ArtifactNotFoundException, ArtifactResolutionException, PluginManagerException, InvalidPluginException, PluginVersionResolutionException
+        throws ArtifactNotFoundException, ArtifactResolutionException, InvalidPluginException, PluginVersionResolutionException, PluginContainerException, PluginVersionNotFoundException
     {
+        resolvePluginVersion( plugin, project, session );
+        
         ArtifactRepository localRepository = session.getLocalRepository();
 
         MavenProject pluginProject = buildPluginProject( plugin, localRepository, project.getRemoteArtifactRepositories() );
@@ -184,6 +217,8 @@
 
         ClassRealm pluginRealm = container.createChildRealm( pluginKey( plugin ) );
 
+        System.out.println( "plugin: " + pluginArtifact );
+        
         Set<Artifact> pluginArtifacts = getPluginArtifacts( pluginArtifact, plugin, project, session.getLocalRepository() );
 
         for ( Artifact a : pluginArtifacts )
@@ -213,7 +248,9 @@
             throw new PluginContainerException( plugin, pluginRealm, "Error scanning plugin realm for components.", e );
         }
 
-        PluginDescriptor pluginDescriptor = pluginCollector.getPluginDescriptor( plugin );
+        PluginDescriptor pluginDescriptor = getPluginDescriptor( plugin );
+        
+        // We just need to keep track of the realm, if we need to augment we will wrap the realm
         pluginDescriptor.setPluginArtifact( pluginArtifact );
         pluginDescriptor.setArtifacts( new ArrayList<Artifact>( pluginArtifacts ) );
         pluginDescriptor.setClassRealm( pluginRealm );
@@ -575,24 +612,18 @@
                 {
                     boolean warnOfDeprecation = false;
                     PlexusConfiguration child = extractedMojoConfiguration.getChild( param.getName() );
-                    try
+                        
+                    if ( ( child != null ) && ( child.getValue() != null ) )
+                    {
+                        warnOfDeprecation = true;
+                    }
+                    else if ( param.getAlias() != null )
                     {
+                        child = extractedMojoConfiguration.getChild( param.getAlias() );
                         if ( ( child != null ) && ( child.getValue() != null ) )
                         {
                             warnOfDeprecation = true;
                         }
-                        else if ( param.getAlias() != null )
-                        {
-                            child = extractedMojoConfiguration.getChild( param.getAlias() );
-                            if ( ( child != null ) && ( child.getValue() != null ) )
-                            {
-                                warnOfDeprecation = true;
-                            }
-                        }
-                    }
-                    catch ( PlexusConfigurationException e )
-                    {
-                        // forget it, this is just for deprecation checking, after all...
                     }
 
                     if ( warnOfDeprecation )
@@ -630,14 +661,6 @@
             {
                 extractedConfiguration.addChild( copyConfiguration( child ) );
             }
-            else
-            {
-                // TODO: I defy anyone to find these messages in the '-X' output! Do we need a new log level?
-                // ideally, this would be elevated above the true debug output, but below the default INFO level...
-                // [BP] (2004-07-18): need to understand the context more but would prefer this could be either WARN or
-                // removed - shouldn't need DEBUG to diagnose a problem most of the time.
-                logger.debug( "*** WARNING: Configuration \'" + child.getName() + "\' is not used in goal \'" + mojoDescriptor.getFullGoalName() + "; this may indicate a typo... ***" );
-            }
         }
 
         return extractedConfiguration;
@@ -1082,8 +1105,8 @@
         }
     }
    
-    public void resolvePluginVersion( Plugin plugin, MavenProject project, MavenSession session )
-        throws PluginVersionResolutionException, InvalidPluginException, PluginVersionNotFoundException
+    public void resolvePluginVersion( Plugin plugin, MavenProject project, MavenSession session ) 
+        throws PluginVersionNotFoundException
     {        
         String version = plugin.getVersion();
         
@@ -1107,8 +1130,6 @@
             }
         }
         
-        // final pass...retrieve the version for RELEASE and also set that resolved version as the <useVersion/>
-        // in settings.xml.
         if ( StringUtils.isEmpty( version ) || Artifact.RELEASE_VERSION.equals( version ) )
         {
             // 1. resolve the version to be used            
@@ -1190,5 +1211,177 @@
     // ----------------------------------------------------------------------
     // Validate plugin 
     // ----------------------------------------------------------------------
+ 
+    // ----------------------------------------------------------------------
+    // Component Discovery
+    // ----------------------------------------------------------------------
     
+    private PluginDescriptorBuilder builder = new PluginDescriptorBuilder();
+
+    public String getComponentDescriptorLocation()
+    {
+        return "META-INF/maven/plugin.xml";
+    }
+
+    public ComponentSetDescriptor createComponentDescriptors( Reader componentDescriptorConfiguration, String source )
+        throws PlexusConfigurationException
+    {
+        return builder.build( componentDescriptorConfiguration, source );
+    }    
+
+    public List<ComponentSetDescriptor> findComponents( Context context, ClassRealm realm )
+        throws PlexusConfigurationException
+    {
+        System.out.println( "realm: " + realm );
+        
+        List<ComponentSetDescriptor> componentSetDescriptors = new ArrayList<ComponentSetDescriptor>();
+
+        Enumeration<URL> resources;
+        try
+        {
+            // We don't always want to scan parent realms. For plexus
+            // testcase, most components are in the root classloader so that needs to be scanned,
+            // but for child realms, we don't.
+            if ( realm.getParentRealm() != null )
+            {
+                resources = realm.findRealmResources( getComponentDescriptorLocation() );
+            }
+            else
+            {
+                resources = realm.findResources( getComponentDescriptorLocation() );
+            }
+        }
+        catch ( IOException e )
+        {
+            throw new PlexusConfigurationException( "Unable to retrieve resources for: " + getComponentDescriptorLocation() + " in class realm: " + realm.getId() );
+        }
+
+        for ( URL url : Collections.list( resources ) )
+        {
+            Reader reader = null;
+
+            try
+            {
+                URLConnection conn = url.openConnection();
+
+                conn.setUseCaches( false );
+
+                conn.connect();
+
+                reader = ReaderFactory.newXmlReader( conn.getInputStream() );
+
+                InterpolationFilterReader interpolationFilterReader = new InterpolationFilterReader( reader, new ContextMapAdapter( context ) );
+
+                ComponentSetDescriptor componentSetDescriptor = createComponentDescriptors( interpolationFilterReader, url.toString() );
+
+                if ( componentSetDescriptor.getComponents() != null )
+                {
+                    for ( ComponentDescriptor<?> cd : componentSetDescriptor.getComponents() )
+                    {
+                        cd.setComponentSetDescriptor( componentSetDescriptor );
+                        cd.setRealm( realm );
+                    }
+                }
+
+                componentSetDescriptors.add( componentSetDescriptor );
+
+                // Fire the event
+                ComponentDiscoveryEvent event = new ComponentDiscoveryEvent( componentSetDescriptor );
+
+                manager.fireComponentDiscoveryEvent( event );
+            }
+            catch ( IOException ex )
+            {
+                throw new PlexusConfigurationException( "Error reading configuration " + url, ex );
+            }
+            finally
+            {
+                IOUtil.close( reader );
+            }
+        }
+
+        return componentSetDescriptors;
+    }
+
+    public void setManager( ComponentDiscovererManager manager )
+    {
+        this.manager = manager;
+    }
+    
+    // ----------------------------------------------------------------------
+    // Component Discovery Listener
+    // ----------------------------------------------------------------------
+    
+    private Set pluginsInProcess = new HashSet();
+
+    private Map pluginIdsByPrefix = new HashMap();
+    
+    private ComponentDiscovererManager manager;
+    
+    public void componentDiscovered( ComponentDiscoveryEvent event )
+    {        
+        ComponentSetDescriptor componentSetDescriptor = event.getComponentSetDescriptor();
+
+        if ( componentSetDescriptor instanceof PluginDescriptor )
+        {
+            PluginDescriptor pluginDescriptor = (PluginDescriptor) componentSetDescriptor;            
+
+            String key = constructPluginKey( pluginDescriptor );
+            
+            if ( !pluginsInProcess.contains( key ) )
+            {
+                pluginsInProcess.add( key );
+
+                pluginDescriptors.put( key, pluginDescriptor );                
+            }
+        }
+    }
+
+    public String getId()
+    {
+        return "maven-plugin-collector";
+    }
+
+    public PluginDescriptor getPluginDescriptor( Plugin plugin )
+    {
+        return pluginDescriptors.get( constructPluginKey( plugin ) );
+    }
+
+    public Collection<PluginDescriptor> getPluginDescriptors()
+    {
+        return pluginDescriptors.values();    
+    }
+
+    private String constructPluginKey( Plugin plugin )
+    {
+        String version = ArtifactUtils.toSnapshotVersion( plugin.getVersion() );
+        return plugin.getGroupId() + ":" + plugin.getArtifactId() + ":" + version;
+    }
+
+    private String constructPluginKey( PluginDescriptor pluginDescriptor )
+    {
+        String version = ArtifactUtils.toSnapshotVersion( pluginDescriptor.getVersion() );
+        return pluginDescriptor.getGroupId() + ":" + pluginDescriptor.getArtifactId() + ":" + version;
+    }
+
+    public boolean isPluginInstalled( Plugin plugin )
+    {
+        String key = constructPluginKey( plugin );
+        return pluginDescriptors.containsKey( key );
+    }
+
+    public Set<PluginDescriptor> getPluginDescriptorsForPrefix( String prefix )
+    {
+        Set result = new HashSet();
+        for ( Iterator it = pluginDescriptors.values().iterator(); it.hasNext(); )
+        {
+            PluginDescriptor pd = (PluginDescriptor) it.next();
+            if ( pd.getGoalPrefix().equals( prefix ) )
+            {
+                result.add( pd );
+            }
+        }
+
+        return result;
+    }
 }

Added: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginManager.java?rev=762142&view=auto
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginManager.java (added)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginManager.java Sun Apr  5 19:55:14 2009
@@ -0,0 +1,13 @@
+package org.apache.maven.plugin;
+
+import org.sonatype.plexus.plugin.manager.DefaultPlexusPluginManager;
+
+/**
+ * 
+ * @author jvanzyl
+ */
+public class MavenPluginManager
+    extends DefaultPlexusPluginManager
+{
+
+}

Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginManager.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java?rev=762142&r1=762141&r2=762142&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java Sun Apr  5 19:55:14 2009
@@ -9,8 +9,8 @@
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Model;
-import org.apache.maven.plugin.MavenPluginCollector;
-import org.apache.maven.plugin.MavenPluginDiscoverer;
+import org.apache.maven.plugin.DefaultPluginManager;
+import org.apache.maven.plugin.PluginManager;
 import org.apache.maven.project.DefaultProjectBuilderConfiguration;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
@@ -19,6 +19,8 @@
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.component.discovery.ComponentDiscoverer;
+import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener;
 import org.codehaus.plexus.util.FileUtils;
 
 public abstract class AbstractCoreMavenComponentTestCase
@@ -33,7 +35,6 @@
     protected void setUp()
         throws Exception
     {
-        super.setUp();
         repositorySystem = lookup( RepositorySystem.class );
         projectBuilder = lookup( MavenProjectBuilder.class );                
     }
@@ -63,8 +64,8 @@
      */
     protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration )
     {
-        containerConfiguration.addComponentDiscoverer( new MavenPluginDiscoverer() );
-        containerConfiguration.addComponentDiscoveryListener( new MavenPluginCollector() );
+        containerConfiguration.addComponentDiscoverer( PluginManager.class );
+        containerConfiguration.addComponentDiscoveryListener( PluginManager.class );
     }
     
     protected MavenExecutionRequest createMavenExecutionRequest( File pom )

Modified: maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=762142&r1=762141&r2=762142&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Sun Apr  5 19:55:14 2009
@@ -37,8 +37,6 @@
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
-import org.apache.maven.plugin.MavenPluginCollector;
-import org.apache.maven.plugin.MavenPluginDiscoverer;
 import org.apache.maven.plugin.PluginLoaderException;
 import org.apache.maven.plugin.PluginManager;
 import org.apache.maven.project.MavenProject;
@@ -408,8 +406,8 @@
         try
         {
             ContainerConfiguration cc = new DefaultContainerConfiguration()
-                .addComponentDiscoverer( new MavenPluginDiscoverer() )
-                .addComponentDiscoveryListener( new MavenPluginCollector() )
+                .addComponentDiscoverer( PluginManager.class )
+                .addComponentDiscoveryListener( PluginManager.class )
                 .setClassWorld( classWorld )
                 .setName( "embedder" );
 

Modified: maven/components/branches/MNG-2766/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/pom.xml?rev=762142&r1=762141&r2=762142&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/pom.xml (original)
+++ maven/components/branches/MNG-2766/pom.xml Sun Apr  5 19:55:14 2009
@@ -47,7 +47,7 @@
     <commonsCliVersion>1.0</commonsCliVersion>
     <easyMockVersion>1.2_Java1.3</easyMockVersion>
     <junitVersion>3.8.1</junitVersion>    
-    <plexusVersion>1.0-beta-3.0.6</plexusVersion>
+    <plexusVersion>1.0-beta-4-SNAPSHOT</plexusVersion>
     <plexusInteractivityVersion>1.0-alpha-6</plexusInteractivityVersion>
     <plexusInterpolationVersion>1.7</plexusInterpolationVersion>
     <plexusPluginManagerVersion>1.0-alpha-1</plexusPluginManagerVersion>