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 ----------------------------------------------------