[jboss-cvs] JBossAS SVN: r73687 - in projects/aop/trunk/aop/src/main/org/jboss/aop: pointcut and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon May 26 13:17:42 EDT 2008


Author: flavia.rainone at jboss.com
Date: 2008-05-26 13:17:42 -0400 (Mon, 26 May 2008)
New Revision: 73687

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/pointcut/PointcutStats.java
Log:
[JBAOP-579] Plugged BindingClassifier into ClassAdvisor.

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java	2008-05-26 17:14:55 UTC (rev 73686)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java	2008-05-26 17:17:42 UTC (rev 73687)
@@ -62,6 +62,7 @@
 import org.jboss.aop.metadata.ClassMetaDataBinding;
 import org.jboss.aop.metadata.ClassMetaDataLoader;
 import org.jboss.aop.util.Advisable;
+import org.jboss.aop.util.BindingClassifier;
 import org.jboss.aop.util.ConstructorComparator;
 import org.jboss.aop.util.FieldComparator;
 import org.jboss.aop.util.MethodHashing;
@@ -693,11 +694,26 @@
    protected void resolvePointcuts(AdviceBinding binding)
    {
       if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("iterate binding " + binding.getName() + " " + binding.getPointcut().getExpr());
-      resolveMethodPointcut(binding);
-      resolveFieldPointcut(fieldReadInfos, binding, false);
-      resolveFieldPointcut(fieldWriteInfos, binding, true);
-      resolveConstructorPointcut(binding);
-      resolveConstructionPointcut(binding);
+      if (BindingClassifier.isExecution(binding))
+      {
+         resolveMethodPointcut(binding);
+      }
+      if (BindingClassifier.isGet(binding))
+      {
+         resolveFieldPointcut(fieldReadInfos, binding, false);
+      }
+      if (BindingClassifier.isSet(binding))
+      {
+         resolveFieldPointcut(fieldWriteInfos, binding, true);
+      }
+      if (BindingClassifier.isConstructorExecution(binding))
+      {
+         resolveConstructorPointcut(binding);
+      }
+      if (BindingClassifier.isConstruction(binding))
+      {
+         resolveConstructionPointcut(binding);
+      }
    }
 
    private MethodByConInfo initializeConstructorCallerInterceptorsMap(Class<?> callingClass, int callingIndex, String calledClass, long calledMethodHash, Method calledMethod) throws Exception
@@ -827,7 +843,7 @@
          ArrayList<AdviceBinding> bindings = new ArrayList<AdviceBinding>(manager.getBindings().size());
          for(AdviceBinding ab : manager.getBindings().values())
          {
-            if (ab.getPointcut().matchesCall(this, callingConstructor, called, calledMethod))
+            if (BindingClassifier.isMethodCall(ab) && ab.getPointcut().matchesCall(this, callingConstructor, called, calledMethod))
             {
                bindings.add(ab);
             }
@@ -856,7 +872,7 @@
          ArrayList<AdviceBinding> bindings = new ArrayList<AdviceBinding>(manager.getBindings().size());
          for(AdviceBinding ab : manager.getBindings().values())   
          {
-            if (ab.getPointcut().matchesCall(this, callingConstructor, called, calledCon))
+            if (BindingClassifier.isConstructorCall(ab) && ab.getPointcut().matchesCall(this, callingConstructor, called, calledCon))
             {
                bindings.add(ab);
             }
@@ -900,7 +916,10 @@
       info.clear();
       for (AdviceBinding binding : bindings)
       {
-         pointcutResolved(info, binding, new ConstructorCalledByConstructorJoinpoint(info.getCallingConstructor(), info.getConstructor()));
+         if (BindingClassifier.isConstructorCall(binding))
+         {
+            pointcutResolved(info, binding, new ConstructorCalledByConstructorJoinpoint(info.getCallingConstructor(), info.getConstructor()));
+         }
       }
       finalizeConCalledByConInterceptorChain(info);
    }
@@ -923,7 +942,10 @@
       info.clear();
       for (AdviceBinding binding : bindings)
       {
-         pointcutResolved(info, binding, new MethodCalledByConstructorJoinpoint(info.getCallingConstructor(), info.getMethod()));
+         if (BindingClassifier.isCall(binding))
+         {
+            pointcutResolved(info, binding, new MethodCalledByConstructorJoinpoint(info.getCallingConstructor(), info.getMethod()));
+         }
       }
       finalizeMethodCalledByConInterceptorChain(info);
    }
@@ -1435,7 +1457,7 @@
          {
             for (AdviceBinding binding : manager.getBindings().values())
             {
-               if (binding.getPointcut().matchesCall(this, callingConstructor, called, calledMethod))
+               if (BindingClassifier.isConstructorCall(binding) && binding.getPointcut().matchesCall(this, callingConstructor, called, calledMethod))
                {
                   addConstructorCallerPointcut(callingIndex, calledClass, calledMethodHash, binding);
                   matched = true;
@@ -1500,7 +1522,7 @@
          {
             for (AdviceBinding binding : manager.getBindings().values())
             {
-               if (binding.getPointcut().matchesCall(this, callingConstructor, called, calledCon))
+               if (BindingClassifier.isConstructorCall(binding) && binding.getPointcut().matchesCall(this, callingConstructor, called, calledCon))
                {
                   addConstructorCalledByConPointcut(callingIndex, calledClass, calledConHash, binding);
                   matched = true;
@@ -2274,7 +2296,7 @@
             boolean matched = false;
             for (AdviceBinding binding : manager.getBindings().values())
             {
-               if (binding.getPointcut().matchesCall(ClassAdvisor.this, callingMethod, called, calledMethod))
+               if (BindingClassifier.isMethodCall(binding) && binding.getPointcut().matchesCall(ClassAdvisor.this, callingMethod, called, calledMethod))
                {
                   addMethodCalledByMethodPointcut(callingMethodHash, calledClass, calledMethodHash, binding);
                   matched = true;
@@ -2393,7 +2415,7 @@
             ArrayList<AdviceBinding> bindings = new ArrayList<AdviceBinding>(manager.getBindings().size());
             for(AdviceBinding ab : manager.getBindings().values())
             {
-               if (ab.getPointcut().matchesCall(ClassAdvisor.this, callingMethod, called, calledMethod))
+               if (BindingClassifier.isMethodCall(ab) && ab.getPointcut().matchesCall(ClassAdvisor.this, callingMethod, called, calledMethod))
                {
                   bindings.add(ab);
                }
@@ -2414,7 +2436,10 @@
          info.clear();
          for (AdviceBinding binding : bindings)
          {
-            pointcutResolved(info, binding, new MethodCalledByMethodJoinpoint(info.getCallingMethod(), info.getMethod()));
+            if (BindingClassifier.isCall(binding))
+            {
+               pointcutResolved(info, binding, new MethodCalledByMethodJoinpoint(info.getCallingMethod(), info.getMethod()));
+            }
          }
          finalizeMethodCalledByMethodInterceptorChain(info);
       }
@@ -2462,7 +2487,7 @@
             ArrayList<AdviceBinding> bindings = new ArrayList<AdviceBinding>(manager.getBindings().size());
             for(AdviceBinding ab : manager.getBindings().values())
             {
-               if (ab.getPointcut().matchesCall(ClassAdvisor.this, callingMethod, called, calledCon))
+               if (BindingClassifier.isConstructorCall(ab) && ab.getPointcut().matchesCall(ClassAdvisor.this, callingMethod, called, calledCon))
                {
                   bindings.add(ab);
                }
@@ -2549,7 +2574,8 @@
             {
                for (AdviceBinding binding : manager.getBindings().values())
                {
-                  if (binding.getPointcut().matchesCall(ClassAdvisor.this, callingMethod, called, calledCon))
+                  if (BindingClassifier.isConstructorCall(binding) &&
+                        binding.getPointcut().matchesCall(ClassAdvisor.this, callingMethod, called, calledCon))
                   {
                      addConstructorCalledByMethodPointcut(callingMethodHash, calledClass, calledConHash, binding);
                      matched = true;
@@ -2682,7 +2708,10 @@
          info.clear();
          for (AdviceBinding binding : bindings)
          {
-            pointcutResolved(info, binding, new ConstructorCalledByMethodJoinpoint(info.getCallingMethod(), info.getConstructor()));
+            if (BindingClassifier.isConstructorCall(binding))
+            {
+               pointcutResolved(info, binding, new ConstructorCalledByMethodJoinpoint(info.getCallingMethod(), info.getConstructor()));
+            }
          }
          finalizeConCalledByMethodInterceptorChain(info);
       }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/pointcut/PointcutStats.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/pointcut/PointcutStats.java	2008-05-26 17:14:55 UTC (rev 73686)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/pointcut/PointcutStats.java	2008-05-26 17:17:42 UTC (rev 73687)
@@ -206,7 +206,11 @@
    {
       // can't be sure so set all
       execution = true;
+      methodExecution = true;
+      constructorExecution = true;
       call = true;
+      methodCall = true;
+      constructorCall = true;
       within = true;
       get = true;
       set = true;




More information about the jboss-cvs-commits mailing list