1 22 package org.jboss.test.aop.deployers; 23 24 import java.util.Map ; 25 import java.util.TreeMap ; 26 27 import org.jboss.aop.AspectManager; 28 import org.jboss.aop.advice.AdviceBinding; 29 import org.jboss.aop.advice.AspectDefinition; 30 import org.jboss.aop.advice.AspectFactory; 31 import org.jboss.aop.advice.GenericAspectFactory; 32 33 38 public class DeployersMonitor implements DeployersMonitorMBean 39 { 40 AspectManager manager = AspectManager.instance(); 41 42 public Map <String , String > getCurrentBindings() 43 { 44 Map <String , String > result = new TreeMap <String , String >(); 45 Map bindings = manager.getBindings(); 46 for (Object binding : bindings.values()) 47 { 48 String key = ((AdviceBinding)binding).getName(); 49 String poincut = ((AdviceBinding)binding).getPointcut().getExpr(); 50 result.put(key, poincut); 51 } 52 53 return result; 54 } 55 56 public Map <String , String > getCurrentAspectDefinitions() 57 { 58 Map <String , String > result = new TreeMap (); 59 Map definitions = manager.getAspectDefinitions(); 60 for (Object def : definitions.values()) 61 { 62 AspectFactory factory = ((AspectDefinition)def).getFactory(); 63 64 if (factory instanceof GenericAspectFactory) 65 { 66 String key = ((AspectDefinition)def).getName(); 67 String clazz = ((GenericAspectFactory)factory).getClassname(); 68 result.put(key, clazz); 69 } 70 } 71 72 return result; 73 } 74 75 public void invokeXmlPOJO() throws Exception 76 { 77 org.jboss.test.aop.deployers.xml.POJO pojo = new org.jboss.test.aop.deployers.xml.POJO(); 78 org.jboss.test.aop.deployers.xml.POJO.invoked = false; 79 org.jboss.test.aop.deployers.xml.SomeInterceptor.invoked = 0; 80 org.jboss.test.aop.deployers.xml.SomeAspect.invoked = 0; 81 82 pojo.someMethod(); 83 84 if (org.jboss.test.aop.deployers.xml.SomeInterceptor.invoked != 2) throw new RuntimeException ("SomeInterceptor should have intercepted 2 times not " + org.jboss.test.aop.deployers.xml.SomeInterceptor.invoked); 85 if (org.jboss.test.aop.deployers.xml.SomeAspect.invoked != 2) throw new RuntimeException ("SomeAspect should have intercepted 2 times not " + org.jboss.test.aop.deployers.xml.SomeAspect.invoked); 86 if (!org.jboss.test.aop.deployers.xml.POJO.invoked) throw new RuntimeException ("POJO was not called"); 87 } 88 89 public void invokeAnnotationPOJO() throws Exception 90 { 91 org.jboss.test.aop.deployers.annotations.POJO pojo = new org.jboss.test.aop.deployers.annotations.POJO(); 92 org.jboss.test.aop.deployers.annotations.POJO.invoked = false; 93 org.jboss.test.aop.deployers.annotations.SomeInterceptor.invoked = 0; 94 org.jboss.test.aop.deployers.annotations.SomeAspect.invoked = 0; 95 96 pojo.someMethod(); 97 98 if (org.jboss.test.aop.deployers.annotations.SomeInterceptor.invoked != 1) throw new RuntimeException ("SomeInterceptor should have intercepted 1 times not " + org.jboss.test.aop.deployers.annotations.SomeInterceptor.invoked); 99 if (org.jboss.test.aop.deployers.annotations.SomeAspect.invoked != 1) throw new RuntimeException ("SomeAspect should have intercepted 1 times not " + org.jboss.test.aop.deployers.annotations.SomeAspect.invoked); 100 if (!org.jboss.test.aop.deployers.annotations.POJO.invoked) throw new RuntimeException ("POJO was not called"); 101 } 102 } 103 | Popular Tags |