[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