Author: brianf
Date: Thu Nov  4 18:48:19 2010
New Revision: 1031144

URL: http://svn.apache.org/viewvc?rev=1031144&view=rev
Log:
MDEP-149 

Modified:
    
maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitor.java
    
maven/shared/trunk/maven-dependency-analyzer/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java

Modified: 
maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitor.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitor.java?rev=1031144&r1=1031143&r2=1031144&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitor.java
 (original)
+++ 
maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitor.java
 Thu Nov  4 18:48:19 2010
@@ -229,7 +229,12 @@ public class DependencyVisitor
     public void visitFieldInsn( final int opcode, final String owner, final 
String name, final String desc )
     {
         addName( owner );
-        addDesc( desc );
+        /*
+         * NOTE: Merely accessing a field does not impose a direct dependency 
on its type. For example, the code line
+         * <code>java.lang.Object var = bean.field;</code> does not directly 
depend on the type of the field. A direct
+         * dependency is only introduced when the code explicitly references 
the field's type by means of a variable
+         * declaration or a type check/cast. Those cases are handled by other 
visitor callbacks.
+         */
     }
 
     /*
@@ -238,7 +243,12 @@ public class DependencyVisitor
     public void visitMethodInsn( final int opcode, final String owner, final 
String name, final String desc )
     {
         addName( owner );
-        addMethodDesc( desc );
+        /*
+         * NOTE: Merely invoking a method does not impose a direct dependency 
on its return type nor its parameter
+         * types. For example, the code line <code>bean.method(null);</code> 
only depends on the owner type of the
+         * method. A direct dependency is only introduced when the code 
explicitly references the method's types by
+         * means of a variable declaration or a type check/cast. Those cases 
are handled by other visitor callbacks.
+         */
     }
 
     /*

Modified: 
maven/shared/trunk/maven-dependency-analyzer/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-analyzer/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java?rev=1031144&r1=1031143&r2=1031144&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-dependency-analyzer/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
 (original)
+++ 
maven/shared/trunk/maven-dependency-analyzer/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
 Thu Nov  4 18:48:19 2010
@@ -446,7 +446,7 @@ public class DependencyVisitorTest exten
     {
         visitor.visitFieldInsn( Opcodes.GETFIELD, "a/b/c", "x", "Lx/y/z;" );
 
-        assertClasses( "a.b.c", "x.y.z" );
+        assertClasses( "a.b.c" );
     }
 
     // visitMethodInsn tests --------------------------------------------------
@@ -476,21 +476,21 @@ public class DependencyVisitorTest exten
     {
         visitor.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", 
"(Lx/y/z;)V" );
 
-        assertClasses( "a.b.c", "x.y.z" );
+        assertClasses( "a.b.c" );
     }
 
     public void testVisitMethodInsnWithObjectArguments()
     {
         visitor.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", 
"(Lp/q/r;Lx/y/z;)V" );
 
-        assertClasses( "a.b.c", "p.q.r", "x.y.z" );
+        assertClasses( "a.b.c" );
     }
 
     public void testVisitMethodInsnWithObjectArrayArgument()
     {
         visitor.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", 
"([Lx/y/z;)V" );
 
-        assertClasses( "a.b.c", "x.y.z" );
+        assertClasses( "a.b.c" );
     }
 
     public void testVisitMethodInsnWithPrimitiveReturnType()
@@ -511,14 +511,14 @@ public class DependencyVisitorTest exten
     {
         visitor.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", 
"()Lx/y/z;" );
 
-        assertClasses( "a.b.c", "x.y.z" );
+        assertClasses( "a.b.c" );
     }
 
     public void testVisitMethodInsnWithObjectArrayReturnType()
     {
         visitor.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", 
"()[Lx/y/z;" );
 
-        assertClasses( "a.b.c", "x.y.z" );
+        assertClasses( "a.b.c" );
     }
 
     // visitJumpInsn tests ----------------------------------------------------


Reply via email to