
Listing 5. 12345 example. Note that the pointcuts actually
work for the main method as well.
--------------------------------------------------------------------

/*
	The entire aspect.
*/

package com.wgrosso.ddjarticle1;
import org.aspectj.lang.*;

public aspect Aspect_PrintThree {

	pointcut CallStringWrapper(): call(* com.wgrosso..*.*(..));

	pointcut ExecuteStringWrapper(): execution(* com.wgrosso..*.*(..));

	before(): CallStringWrapper() {
		System.out.println("1");
	}

	before(): ExecuteStringWrapper() {
		System.out.println("2");
	}

	after(): ExecuteStringWrapper() {
		System.out.println("4");
	}

	after(): CallStringWrapper() {
		System.out.println("5");
	}
}

/*
	The entire class
*/

package com.wgrosso.ddjarticle1;

public class PrintThree {
	public static void main(String[] args) {
		System.out.println("3");	
	}
}