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 2011/02/24 18:22:48 UTC

svn commit: r1074222 - /maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java

Author: bentmann
Date: Thu Feb 24 17:22:48 2011
New Revision: 1074222

URL: http://svn.apache.org/viewvc?rev=1074222&view=rev
Log:
o Extended debug logging for project dependency graph to include source location of dependency management

Modified:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java?rev=1074222&r1=1074221&r2=1074222&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java Thu Feb 24 17:22:48 2011
@@ -28,6 +28,8 @@ import org.apache.maven.artifact.Artifac
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.Exclusion;
+import org.apache.maven.model.InputLocation;
+import org.apache.maven.model.InputSource;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.Logger;
@@ -43,6 +45,8 @@ import org.sonatype.aether.graph.Depende
 import org.sonatype.aether.resolution.ArtifactResult;
 import org.sonatype.aether.resolution.DependencyRequest;
 import org.sonatype.aether.util.DefaultRequestTrace;
+import org.sonatype.aether.util.artifact.ArtifacIdUtils;
+import org.sonatype.aether.util.artifact.ArtifactProperties;
 import org.sonatype.aether.util.artifact.JavaScopes;
 
 /**
@@ -194,6 +198,8 @@ public class DefaultProjectDependenciesR
 
         private String indent = "";
 
+        private Map<String, Dependency> managed;
+
         public GraphLogger( MavenProject project )
         {
             this.project = project;
@@ -213,12 +219,16 @@ public class DefaultProjectDependenciesR
 
                 if ( node.getPremanagedScope() != null && !node.getPremanagedScope().equals( dep.getScope() ) )
                 {
-                    buffer.append( " (scope managed from " ).append( node.getPremanagedScope() ).append( ")" );
+                    buffer.append( " (scope managed from " ).append( node.getPremanagedScope() );
+                    appendManagementSource( buffer, art, "scope" );
+                    buffer.append( ")" );
                 }
 
                 if ( node.getPremanagedVersion() != null && !node.getPremanagedVersion().equals( art.getVersion() ) )
                 {
-                    buffer.append( " (version managed from " ).append( node.getPremanagedVersion() ).append( ")" );
+                    buffer.append( " (version managed from " ).append( node.getPremanagedVersion() );
+                    appendManagementSource( buffer, art, "version" );
+                    buffer.append( ")" );
                 }
             }
             else
@@ -240,6 +250,41 @@ public class DefaultProjectDependenciesR
             return true;
         }
 
+        private void appendManagementSource( StringBuilder buffer, org.sonatype.aether.artifact.Artifact artifact,
+                                             String field )
+        {
+            if ( managed == null )
+            {
+                managed = new HashMap<String, Dependency>();
+                if ( project.getDependencyManagement() != null )
+                {
+                    for ( Dependency dep : project.getDependencyManagement().getDependencies() )
+                    {
+                        managed.put( dep.getManagementKey(), dep );
+                    }
+                }
+            }
+
+            String key =
+                ArtifacIdUtils.toVersionlessId( artifact.getGroupId(), artifact.getArtifactId(),
+                                                artifact.getProperty( ArtifactProperties.TYPE, "jar" ),
+                                                artifact.getClassifier() );
+
+            Dependency dependency = managed.get( key );
+            if ( dependency != null )
+            {
+                InputLocation location = dependency.getLocation( field );
+                if ( location != null )
+                {
+                    InputSource source = location.getSource();
+                    if ( source != null )
+                    {
+                        buffer.append( " by " ).append( source.getModelId() );
+                    }
+                }
+            }
+        }
+
     }
 
 }