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() );
+ }
+ }
+ }
+ }
+
}
}