You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/05/05 00:41:23 UTC

svn commit: r771481 - in /maven/components/branches/MNG-2766: maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java

Author: bentmann
Date: Mon May  4 22:41:22 2009
New Revision: 771481

URL: http://svn.apache.org/viewvc?rev=771481&view=rev
Log:
o Fixed propagation of POM-level plugin dependencies to the plugin manager

Modified:
    maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java

Modified: maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=771481&r1=771480&r2=771481&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original)
+++ maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Mon May  4 22:41:22 2009
@@ -19,6 +19,8 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -424,8 +426,32 @@
         if ( request.isResolveTransitively() )
         {
             try
-            {                
-                artifacts = source.retrieve( rootArtifact, localRepository, remoteRepositories ).getArtifacts();
+            {
+                Set<Artifact> directArtifacts =
+                    source.retrieve( rootArtifact, localRepository, remoteRepositories ).getArtifacts();
+
+                if ( artifacts == null || artifacts.isEmpty() )
+                {
+                    artifacts = directArtifacts;
+                }
+                else
+                {
+                    List<Artifact> allArtifacts = new ArrayList<Artifact>();
+                    allArtifacts.addAll( artifacts );
+                    allArtifacts.addAll( directArtifacts );
+
+                    Map<String, Artifact> mergedArtifacts = new LinkedHashMap<String, Artifact>();
+                    for ( Artifact artifact : allArtifacts )
+                    {
+                        String conflictId = artifact.getDependencyConflictId();
+                        if ( !mergedArtifacts.containsKey( conflictId ) )
+                        {
+                            mergedArtifacts.put( conflictId, artifact );
+                        }
+                    }
+
+                    artifacts = new LinkedHashSet<Artifact>( mergedArtifacts.values() );
+                }
             }
             catch ( ArtifactMetadataRetrievalException e )
             {

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=771481&r1=771480&r2=771481&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 Mon May  4 22:41:22 2009
@@ -468,15 +468,15 @@
             throw new LifecycleExecutionException( message );
         }
 
-        if ( plugin.getVersion() == null )
+        for ( Plugin buildPlugin : project.getBuildPlugins() )
         {
-            for ( Plugin buildPlugin : project.getBuildPlugins() )
+            if ( buildPlugin.getKey().equals( plugin.getKey() ) )
             {
-                if ( buildPlugin.getKey().equals( plugin.getKey() ) )
+                if ( plugin.getVersion() == null || plugin.getVersion().equals( buildPlugin.getVersion() ) )
                 {
                     plugin = buildPlugin;
-                    break;
                 }
+                break;
             }
         }