
Listing 4. Using CFlowBelow to detect calls to a library. 
--------------------------------------------------------------------

/*
	enteringFromExternalSource picks out join points which
	are involve public methods and are not in the cflowbelow 
	of a public method invocation. 

	Note that we need to use && and ! to define this pointcut.

*/

	pointcut comWGrossoPulicMethods():
		call(public * com.wgrosso..*.*(..));

	pointcut enteringFromExternalSource():
		comWGrossoPulicMethods() &&
		!cflowbelow(comWGrossoPulicMethods());

