/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ import org.jboss.aop.AspectManager; import org.jboss.aop.Advised; import org.jboss.aop.Advisor; import org.jboss.aop.InstanceAdvisor; /** * * @author Bill Burke * @version $Revision: 1.1 $ */ public class Driver { public static void main(String[] args) { System.out.println("---- POJO ---"); POJO pojo = new POJO(); pojo.field++; pojo.someMethod(); System.out.println("---- POJO2 ---"); POJO2 pojo2 = new POJO2(); pojo2.field++; pojo2.someMethod(); System.out.println("-- get stats --"); AspectPerVM vm = (AspectPerVM)AspectManager.instance().getPerVMAspect("AspectPerVM"); System.out.println("perVM stats: " + vm.constructorCalled + " " + vm.methodCalled + " " + vm.fieldRead + " " + vm.fieldWrite); Advisor advisor = ((Advised)pojo)._getAdvisor(); AspectPerClass perClass = (AspectPerClass)advisor.getPerClassAspect("AspectPerClass"); System.out.println("POJO perClass stats: " + perClass.constructorCalled + " " + perClass.methodCalled + " " + perClass.fieldRead + " " + perClass.fieldWrite); advisor = ((Advised)pojo2)._getAdvisor(); perClass = (AspectPerClass)advisor.getPerClassAspect("AspectPerClass"); System.out.println("POJO2 perClass stats: " + perClass.constructorCalled + " " + perClass.methodCalled + " " + perClass.fieldRead + " " + perClass.fieldWrite); InstanceAdvisor ia = ((Advised)pojo)._getInstanceAdvisor(); AspectPerInstance perInstance = (AspectPerInstance)ia.getPerInstanceAspect("AspectPerInstance"); System.out.println("pojo perInstance stats: " + perInstance.methodCalled + " " + perInstance.fieldRead + " " + perInstance.fieldWrite); ia = ((Advised)pojo2)._getInstanceAdvisor(); perInstance = (AspectPerInstance)ia.getPerInstanceAspect("AspectPerInstance"); System.out.println("pojo2 perInstance stats: " + perInstance.methodCalled + " " + perInstance.fieldRead + " " + perInstance.fieldWrite); } }