[jboss-cvs] JBossAS SVN: r61644 - projects/aop/trunk/aop/src/main/org/jboss/aop.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Mar 23 13:19:15 EDT 2007


Author: kabir.khan at jboss.com
Date: 2007-03-23 13:19:15 -0400 (Fri, 23 Mar 2007)
New Revision: 61644

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/ReflectiveAspectBinder.java
Log:
Optimization, only get the bindings once rather than for every field, method, ctor we want to bind

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ReflectiveAspectBinder.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ReflectiveAspectBinder.java	2007-03-23 17:16:08 UTC (rev 61643)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ReflectiveAspectBinder.java	2007-03-23 17:19:15 UTC (rev 61644)
@@ -87,9 +87,10 @@
    {
       if (!initialisedAspects)
       {
-         bindMethodAdvices(clazz);
-         bindConstructorAdvices();
-         bindFieldAdvices();
+         Map bindings = advisor.getManager().getBindings();
+         bindMethodAdvices(clazz, bindings);
+         bindConstructorAdvices(bindings);
+         bindFieldAdvices(bindings);
       }
       return aspects;
    }
@@ -161,7 +162,7 @@
       }
    }
    
-   protected void bindMethodAdvices(Class superClass)
+   protected void bindMethodAdvices(Class superClass, Map bindings)
    {
       createMethodMap(superClass); 
       if (methodMap != null)
@@ -169,12 +170,12 @@
          Object[] methods = methodMap.getValues();
          for (int i = 0 ; i < methods.length ; i++)
          {
-            bindMethodAdvice((Method)methods[i]);
+            bindMethodAdvice((Method)methods[i], bindings);
          }
       }
    }
 
-   protected void bindConstructorAdvices()
+   protected void bindConstructorAdvices(Map bindings)
    {
       Constructor[] cons = (Constructor[]) AccessController.doPrivileged(new PrivilegedAction() 
       {
@@ -185,11 +186,11 @@
       });
       for (int i = 0; i < cons.length; i++)
       {
-         bindConstructorAdvice(cons[i]);
+         bindConstructorAdvice(cons[i], bindings);
       }
    }
 
-   protected void bindFieldAdvices()
+   protected void bindFieldAdvices(Map bindings)
    {
       Field[] fields = (Field[]) AccessController.doPrivileged(new PrivilegedAction() 
       {
@@ -200,8 +201,8 @@
       });
       for (int i = 0; i < fields.length; i++)
       {
-         bindFieldGetAdvice(fields[i]);
-         bindFieldSetAdvice(fields[i]);
+         bindFieldGetAdvice(fields[i], bindings);
+         bindFieldSetAdvice(fields[i], bindings);
       }
    }
 
@@ -211,10 +212,9 @@
       return ((Boolean) ai.getTarget().jjtAccept(matcher, null)).booleanValue();
    }
 
-   protected void bindMethodAdvice(Method mi)
+   protected void bindMethodAdvice(Method mi, Map bindings)
    {
-      Map repositoryBindings = advisor.getManager().getBindings();
-      Iterator it = repositoryBindings.values().iterator();
+      Iterator it = bindings.values().iterator();
       ArrayList advices = (ArrayList)methodAdvices.get(mi);
       while (it.hasNext())
       {
@@ -238,10 +238,9 @@
       }
    }
 
-   protected void bindConstructorAdvice(Constructor mi)
+   protected void bindConstructorAdvice(Constructor mi, Map bindings)
    {
-      Map repositoryBindings = advisor.getManager().getBindings();
-      Iterator it = repositoryBindings.values().iterator();
+      Iterator it = bindings.values().iterator();
       ArrayList advices = (ArrayList)constructorAdvices.get(mi);
       while (it.hasNext())
       {
@@ -263,7 +262,7 @@
       }
    }
 
-   protected void bindFieldGetAdvice(Field mi)
+   protected void bindFieldGetAdvice(Field mi, Map bindings)
    {
       Map repositoryBindings = advisor.getManager().getBindings();
       Iterator it = repositoryBindings.values().iterator();
@@ -288,7 +287,7 @@
       }
    }
 
-   protected void bindFieldSetAdvice(Field mi)
+   protected void bindFieldSetAdvice(Field mi, Map bindings)
    {
       Map repositoryBindings = advisor.getManager().getBindings();
       Iterator it = repositoryBindings.values().iterator();




More information about the jboss-cvs-commits mailing list