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/19 04:12:45 UTC

svn commit: r497696 - in /maven/components/trunk/maven-core/src/main/java/org/apache/maven: lifecycle/DefaultLifecycleExecutor.java plugin/DefaultPluginManager.java

Author: jdcasey
Date: Thu Jan 18 19:12:44 2007
New Revision: 497696

URL: http://svn.apache.org/viewvc?view=rev&rev=497696
Log:
partially fixing problem with plugin-dependency loading...now, we're including maven-plugin-api in the plugin realm somehow, which means the standard artifact filter isn't working.

Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    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/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?view=diff&rev=497696&r1=497695&r2=497696
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Thu Jan 18 19:12:44 2007
@@ -1243,6 +1243,8 @@
     private PluginDescriptor verifyPlugin( Plugin plugin, MavenProject project, MavenSession session )
         throws LifecycleExecutionException, PluginNotFoundException
     {
+        getLogger().debug( "Verifying plugin: " + plugin.getKey() );
+        
         PluginDescriptor pluginDescriptor;
         try
         {

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=497696&r1=497695&r2=497696
==============================================================================
--- 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 19:12:44 2007
@@ -18,6 +18,7 @@
 
 import org.apache.maven.ArtifactFilterManager;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
@@ -83,6 +84,7 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -337,6 +339,8 @@
 
         pluginDescriptor.setArtifacts( new ArrayList( artifacts ) );
 
+        getLogger().debug( "Realm for plugin: " + plugin.getKey() + ":\n" + componentRealm );
+        
         pluginDescriptor.setClassRealm( componentRealm );
     }
 
@@ -387,8 +391,10 @@
                                                                                 artifactMetadataSource,
                                                                                 coreArtifactFilterManager.getArtifactFilter() );
 
-        Set resolved = result.getArtifacts();
-
+        List resolved = new ArrayList( result.getArtifacts() );
+        
+        getLogger().info( "Main plugin artifacts: " + resolved );
+        
         // Also resolve the plugin dependencies specified in <plugin><dependencies>:
         resolved.addAll( artifactResolver.resolveTransitively( projectPluginDependencies,
                                                                pluginArtifact,
@@ -396,7 +402,9 @@
                                                                repositories,
                                                                artifactMetadataSource,
                                                                coreArtifactFilterManager.getArtifactFilter() ).getArtifacts() );
-
+        
+        getLogger().info( "After adding project-level plugin dependencies: " + resolved );
+        
         for ( Iterator it = resolved.iterator(); it.hasNext(); )
         {
             Artifact artifact = (Artifact) it.next();
@@ -413,13 +421,45 @@
 
         resolveCoreArtifacts( unresolved, localRepository, resolutionGroup.getResolutionRepositories() );
 
-        List allResolved = new ArrayList( resolved.size() + unresolved.size() );
-
-        allResolved.addAll( resolved );
-
-        allResolved.addAll( unresolved );
+        Set allResolved = new LinkedHashSet( resolved.size() + unresolved.size() );
+        
+        Set seenVersionlessKeys = new HashSet();
+        
+        for ( Iterator it = resolved.iterator(); it.hasNext(); )
+        {
+            Artifact resolvedArtifact = (Artifact) it.next();
+            
+            String versionlessKey = ArtifactUtils.versionlessKey( resolvedArtifact );
+            if ( !seenVersionlessKeys.contains( versionlessKey ) )
+            {
+                allResolved.add( resolvedArtifact );
+                seenVersionlessKeys.add( versionlessKey );
+            }
+            else
+            {
+                getLogger().info( "NOT including: " + resolvedArtifact.getId() + " in plugin dependencies." );
+            }
+        }
+        
+        for ( Iterator it = unresolved.iterator(); it.hasNext(); )
+        {
+            Artifact unresolvedArtifact = (Artifact) it.next();
+            
+            String versionlessKey = ArtifactUtils.versionlessKey( unresolvedArtifact );
+            if ( !seenVersionlessKeys.contains( versionlessKey ) )
+            {
+                allResolved.add( unresolvedArtifact );
+                seenVersionlessKeys.add( versionlessKey );
+            }
+            else
+            {
+                getLogger().info( "NOT including: " + unresolvedArtifact.getId() + " in plugin dependencies." );
+            }
+        }
+        
+        getLogger().info( "Using the following artifacts for classpath of: " + pluginArtifact.getId() + ":\n\n" + allResolved.toString().replace( ',', '\n' ) );
 
-        return resolved;
+        return allResolved;
     }
 
     // ----------------------------------------------------------------------
@@ -624,7 +664,7 @@
 
             ClassRealm oldRealm = DefaultPlexusContainer.setLookupRealm( realm );
 
-            plugin = (Mojo) container.lookup( Mojo.ROLE, mojoDescriptor.getRoleHint() );
+            plugin = (Mojo) container.lookup( Mojo.ROLE, mojoDescriptor.getRoleHint(), realm );
 
             DefaultPlexusContainer.setLookupRealm( oldRealm );