[jboss-cvs] JBossAS SVN: r75183 - projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Jun 29 16:58:50 EDT 2008


Author: flavia.rainone at jboss.com
Date: 2008-06-29 16:58:50 -0400 (Sun, 29 Jun 2008)
New Revision: 75183

Modified:
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/AdvisorManagedMatchingStrategy.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/AspectManager.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/DynamicMatchingStrategy.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/IndexedMatchingStrategy.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/JoinPointManager.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
Log:
[JBAOP-509] Improved connection from JBoss AOP to the graph. All interactions are performed by means of 
JoinPointGraphFactory, JoinPointGraph and JoinPointRegistry interfaces.

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/AdvisorManagedMatchingStrategy.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/AdvisorManagedMatchingStrategy.java	2008-06-29 20:49:18 UTC (rev 75182)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/AdvisorManagedMatchingStrategy.java	2008-06-29 20:58:50 UTC (rev 75183)
@@ -21,6 +21,8 @@
  */
 package org.jboss.aop;
 
+import org.jboss.aop.joinpoint.JoinPointRegistry;
+
 /**
  * @author  <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
  *
@@ -36,4 +38,17 @@
    {
       return new AdvisedJoinPointManager(domain);
    }
+   
+   public JoinPointRegistry getJoinPointRegistry()
+   {
+      return new JoinPointRegistry() {
+         public void register(ConstructorInfo info){}
+         public void register(ConstructionInfo info){}
+         public void register(FieldInfo info){}
+         public void register(MethodInfo info){}
+         public void register(ConByConInfo info){}
+         public void register(ConByMethodInfo info){}
+         public void register(MethodByConInfo info){}
+         public void register(MethodByMethodInfo info){}};
+   }
 }
\ No newline at end of file

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/AspectManager.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/AspectManager.java	2008-06-29 20:49:18 UTC (rev 75182)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/AspectManager.java	2008-06-29 20:58:50 UTC (rev 75183)
@@ -107,7 +107,7 @@
    private static final Logger logger = AOPLogger.getLogger(AspectManager.class);
 
    /** Strategy that controls how joinpoint info objects are managed during execution. */
-   protected static DynamicMatchingStrategy dynamicMatchingStrategy = new AdvisorManagedMatchingStrategy();
+   protected static DynamicMatchingStrategy dynamicMatchingStrategy;
    
    /** Lock to be used when lazy creating the collections */
    Object lazyCollectionLock = new Object();
@@ -347,7 +347,7 @@
                {
                   maintainAdvisorMethodInterceptors = (new Boolean(methodInterceptors)).booleanValue();
                }
-               manager.joinPointManager = dynamicMatchingStrategy.getJoinPointManager(manager);
+               manager.setDynamicMatchingStrategy(new AdvisorManagedMatchingStrategy());
                Deployment.deploy();
                return null;
             }
@@ -2003,11 +2003,13 @@
    public void setDynamicMatchingStrategy(DynamicMatchingStrategy strategy)
    {
       // avoid users calling this method in run time
-      if (this.transformationStarted || this.subDomainsByName.size() > 0)
+      if ((this.transformationStarted || this.subDomainsByName.size() > 0) &&
+            dynamicMatchingStrategy != strategy)
       {
          throw new RuntimeException("Dynamic Matching Strategy Update not allowed in run time");
       }
       dynamicMatchingStrategy = strategy;
+      JoinPointInfo.registry = strategy.getJoinPointRegistry();
       this.joinPointManager = strategy.getJoinPointManager(this);
    }
 

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/DynamicMatchingStrategy.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/DynamicMatchingStrategy.java	2008-06-29 20:49:18 UTC (rev 75182)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/DynamicMatchingStrategy.java	2008-06-29 20:58:50 UTC (rev 75183)
@@ -21,6 +21,8 @@
  */
 package org.jboss.aop;
 
+import org.jboss.aop.joinpoint.JoinPointRegistry;
+
 /**
  * @author  <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
  *
@@ -29,4 +31,5 @@
 {
    JoinPointManager getJoinPointManager(AspectManager manager);
    JoinPointManager getJoinPointManager(Domain domain);
+   JoinPointRegistry getJoinPointRegistry();
 }
\ No newline at end of file

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/IndexedMatchingStrategy.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/IndexedMatchingStrategy.java	2008-06-29 20:49:18 UTC (rev 75182)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/IndexedMatchingStrategy.java	2008-06-29 20:58:50 UTC (rev 75183)
@@ -21,9 +21,13 @@
  */
 package org.jboss.aop;
 
+import org.jboss.aop.joinpoint.JoinPointRegistry;
+import org.jboss.aop.joinpoint.graph.JoinPointGraphFactory;
+
 /**
+ * 
+ * 
  * @author  <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
- *
  */
 public class IndexedMatchingStrategy implements DynamicMatchingStrategy
 {
@@ -34,7 +38,11 @@
 
    public JoinPointManager getJoinPointManager(Domain domain)
    {
-      // TODO Auto-generated method stub
-      return null;
+      return new IndexedJoinPointManager(domain);
    }
+   
+   public JoinPointRegistry getJoinPointRegistry()
+   {
+      return JoinPointGraphFactory.getRegistry();
+   }
 }
\ No newline at end of file

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/JoinPointManager.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/JoinPointManager.java	2008-06-29 20:49:18 UTC (rev 75182)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/JoinPointManager.java	2008-06-29 20:58:50 UTC (rev 75183)
@@ -37,12 +37,12 @@
 import org.jboss.aop.joinpoint.ConstructorCalledByMethodJoinpoint;
 import org.jboss.aop.joinpoint.ConstructorJoinpoint;
 import org.jboss.aop.joinpoint.FieldJoinpoint;
-import org.jboss.aop.joinpoint.JoinPointRegistry;
 import org.jboss.aop.joinpoint.Joinpoint;
 import org.jboss.aop.joinpoint.MethodCalledByConstructorJoinpoint;
 import org.jboss.aop.joinpoint.MethodCalledByMethodJoinpoint;
 import org.jboss.aop.joinpoint.MethodJoinpoint;
 import org.jboss.aop.joinpoint.graph.JoinPointGraph;
+import org.jboss.aop.joinpoint.graph.JoinPointGraphFactory;
 import org.jboss.aop.joinpoint.graph.SearchKey;
 import org.jboss.aop.joinpoint.graph.SearchKeyParser;
 import org.jboss.aop.pointcut.Pointcut;
@@ -61,11 +61,8 @@
    {
       this.domain = domain;
       this.dynamicWeavingStrategy = domain.getDynamicAOPStrategy();
-      JoinPointInfo.registry = getRegistry();
    }
    
-   protected abstract JoinPointRegistry getRegistry();
-   
    public synchronized void bindingAdded(AdviceBinding binding)
    {
       this.internalBindingAdded(binding);
@@ -105,20 +102,6 @@
    }
    
    @Override
-   protected JoinPointRegistry getRegistry()
-   {
-      return new JoinPointRegistry() {
-         public void register(ConstructorInfo info){}
-         public void register(ConstructionInfo info){}
-         public void register(FieldInfo info){}
-         public void register(MethodInfo info){}
-         public void register(ConByConInfo info){}
-         public void register(ConByMethodInfo info){}
-         public void register(MethodByConInfo info){}
-         public void register(MethodByMethodInfo info){}};
-   }
-
-   @Override
    protected void internalBindingAdded(AdviceBinding binding)
    {
       synchronized (domain.getAdvisors())
@@ -201,23 +184,26 @@
 class IndexedJoinPointManager extends JoinPointManager
 {
    Map<AdviceBinding,Collection<CreatedInterceptorInfo>> createdInterceptors;
+   private JoinPointGraph joinPointGraph;
    
-   public IndexedJoinPointManager(AspectManager domain)
+   public IndexedJoinPointManager(AspectManager aspectManager)
    {
-      super(domain);
+      super(aspectManager);
+      this.joinPointGraph = JoinPointGraphFactory.create();
       this.createdInterceptors = new HashMap<AdviceBinding,Collection<CreatedInterceptorInfo>>();
    }
-
-   @Override
-   protected JoinPointRegistry getRegistry()
+   
+   public IndexedJoinPointManager(Domain domain)
    {
-      return JoinPointGraph.getInstance();
+      super(domain);
+      this.joinPointGraph = JoinPointGraphFactory.create(domain);
+      this.createdInterceptors = new HashMap<AdviceBinding,Collection<CreatedInterceptorInfo>>();
    }
-
+   
    protected Collection<JoinPointInfo> getMatch(Pointcut pointcut)
    {
       SearchKey searchKey = SearchKeyParser.parse(pointcut);
-      return JoinPointGraph.getInstance().search(searchKey);
+      return joinPointGraph.search(searchKey);
    }
 
    @Override
@@ -389,18 +375,4 @@
          this.interceptors = interceptors;
       }
    }
-}
-
-class IndexedDomainJoinPointManager extends IndexedJoinPointManager
-{
-   public IndexedDomainJoinPointManager(AspectManager domain)
-   {
-      super(domain);
-   }
-
-   // TODO implement this
-   protected Collection<JoinPointInfo> getMatch(Pointcut pointcut)
-   {
-      return super.getMatch(pointcut);
-   }
 }
\ No newline at end of file

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java	2008-06-29 20:49:18 UTC (rev 75182)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java	2008-06-29 20:58:50 UTC (rev 75183)
@@ -131,7 +131,7 @@
          if (superClass != null && !Instrumentor.implementsAdvised(clazz))
          {
             ClassPool superPool = superClass.getClassPool();
-            if (superPool instanceof AOPClassPool)
+            if (superPool instanceof AOPClassPool  && !((AOPClassPool)superPool).isClassLoadedButNotWoven(superClass.getName()))
             {
                AspectManager aspectManager = manager;
                if (manager instanceof Domain && superPool != pool)




More information about the jboss-cvs-commits mailing list