Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] LTW and pointcut not matched with @target and inheritance

Hello Adrian,
i tried with latest release (dev build: aspectj-DEVELOPMENT-20050816144948.jar),
and no good results yet.

do you see anything strange in the output of a full clean/build/launch of the project:
ant clean compile test
Buildfile: build.xml

clean:
  [delete] Deleting directory /home/valerio/workspace/ltwtest/output/build

compile:
   [mkdir] Created dir: /home/valerio/workspace/ltwtest/output/build
[javac] Compiling 5 source files to /home/valerio/workspace/ltwtest/output/build [iajc] /home/valerio/workspace/ltwtest/src/test/MyAspect.aj:12 [warning] advice defined in test.MyAspect has not been applied [Xlint:adviceDidNotMatch]
    [iajc] before(): foo(){
    [iajc] ^^^^^^^^^^

test:
   [junit] Running test.LtwTest
[junit] info using classpath: [/usr/java/jdk1.5.0/jre/lib/rt.jar, /usr/java/jdk1.5.0/jre/lib/i18n.jar, /usr/java/jdk1.5.0/jre/lib/sunrsasign.jar, /usr/java/jdk1.5.0/jre/lib/jsse.jar, /usr/java/jdk1.5.0/jre/lib/jce.jar, /usr/java/jdk1.5.0/jre/lib/charsets.jar, /usr/java/jdk1.5.0/jre/classes]
   [junit] info using aspectpath: []
[junit] info zipfile classpath entry does not exist: /usr/java/jdk1.5.0/jre/lib/i18n.jar [junit] info zipfile classpath entry does not exist: /usr/java/jdk1.5.0/jre/lib/sunrsasign.jar [junit] info directory classpath entry does not exist: /usr/java/jdk1.5.0/jre/classes [junit] info register classloader sun.misc.Launcher$AppClassLoader@26099296
   [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,041 sec
   [junit] Testsuite: test.LtwTest
   [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,041 sec
   [junit] ------------- Standard Output ---------------
   [junit] in Clazz: hello
   [junit] ------------- ---------------- ---------------

   [junit] Testcase: testLtw took 0,035 sec

BUILD SUCCESSFUL
Total time: 7 seconds


where i renamed my pointcut to foo() to be compliant to the signature you used in your tests. despite the fact that i set aj.weaving.verbose=true and in aop.xml " -verbose", i can't see any weaving info.

I got those results from command-line. I got same results launching the ant tasks within eclipse and ajdt.

I'm pretty sure this is not related to the configuration of my machine, but tell me if i should look for something special, more than then the sources i uploaded there.

Some info :

java -version
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)

ajc -version
AspectJ Compiler DEVELOPMENT built on Tuesday Aug 16, 2005 at 14:16:39 GMT

Adrian Colyer ha scritto:

I just tried out your latest code with the current dev build of
AspectJ 5. I made only the following change:

public class LtwTest // extends TestCase {

 // added main to drive direct from command line...
 public static void main(String[] args) {
    new LtwTest().testLtw();
 }

 // rest as before

}

and the program output:

**in MyAspect**
in Clazz: hello

which is the expected output.

This test case:

   <ajc-test title="intermediate annotation matching" dir="bugs150">
       <compile files="AnnotationPlusPatternMatchingError.aj" options="-1.5">
           <message kind="warning" line="28" text="matched"/>
       </compile>
       <run class="AnnotationPlusPatternMatchingError">
           <stdout>
               <line text="In advice"/>
           </stdout>
       </run>
   </ajc-test>

with source code as shown below also passes. Is it possible there is
something else going on in your environment?

interface A {
public void a(String s);
}

@Annotation
interface B extends A{}

class C implements B {
  public void a(final String s) {}
}

aspect Aspect{
  pointcut foo(): call(* (@Annotation *)+.*(..));
declare warning : foo() : "matched"; before() : foo() {
	   System.out.println("In advice");
  }
}

public class AnnotationPlusPatternMatchingError {
	
	public static void main(String[] args) {
		new AnnotationPlusPatternMatchingError().testLtw();
	}
	
	public void testLtw() {
		 B anA = new C();
		 anA.a("hi");
	}
	
}

@interface Annotation {}

On 16/08/05, Valerio Schiavoni <ervalerio@xxxxxxxxxx> wrote:
a project test case can be downloaded from:

http://sardes.inrialpes.fr/~valerio/ltwtest.tgz




Back to the top