[jboss-cvs] JBossAS SVN: r84505 - in projects/aop/branches/createspi: aop/src/main/java/org/jboss/aop/advice and 14 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 20 06:50:52 EST 2009
Author: kabir.khan at jboss.com
Date: 2009-02-20 06:50:52 -0500 (Fri, 20 Feb 2009)
New Revision: 84505
Removed:
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/AbstractManager.java
Modified:
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Advisor.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AdvisorFactory.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectAnnotationLoader.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectManager.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectXmlLoader.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassAdvisor.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassContainer.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassicWeavingStrategy.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Deployment.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Domain.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/GeneratedClassAdvisor.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/MethodMatchInfo.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/AdviceBinding.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/AspectFactoryWithClassLoaderSupport.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/ClassifiedBindingAndPointcutCollection.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/GeneratedAdvisorInterceptor.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/GenericAspectFactory.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/annotation/AdviceMethodFactory.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/annotation/PortableAnnotationElement.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/CallerTransformer.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/ClassicInstrumentor.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/FieldAccessTransformer.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/Instrumentor.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/InstrumentorFactory.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/JoinPointGenerator.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/JoinpointSimpleClassifier.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/TransformerCommon.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/TransformerFactory.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/introduction/AnnotationIntroduction.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultAOPSystem.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultConfiguration.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/LoadInterceptedClassesStrategy.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/pointcut/MatcherStrategy.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/AOPSystem.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/Configuration.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/standalone/Compiler.java
projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/util/JavassistToReflect.java
projects/aop/branches/createspi/aop/src/test/java/org/jboss/test/aop/container/ContainerTestCase.java
projects/aop/branches/createspi/aop/src/test/java/org/jboss/test/aop/stress/FileScenarioPropertyReader.java
projects/aop/branches/createspi/asintegration-core/src/main/java/org/jboss/aop/asintegration/core/AspectManagerServiceDelegate.java
projects/aop/branches/createspi/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/AOPClassLoaderInitializer.java
Log:
Add Weaver, Configuration and Manager interfaces
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Advisor.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Advisor.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Advisor.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -73,6 +73,8 @@
import org.jboss.aop.metadata.MethodMetaData;
import org.jboss.aop.metadata.SimpleMetaData;
import org.jboss.aop.pointcut.PointcutMethodMatch;
+import org.jboss.aop.spi.AOPSystem;
+import org.jboss.aop.spi.Configuration;
import org.jboss.aop.util.JoinPointComparator;
import org.jboss.aop.util.UnmodifiableEmptyCollections;
import org.jboss.aop.util.logging.AOPLogger;
@@ -93,6 +95,7 @@
*/
public abstract class Advisor
{
+
/**
* Returns the {@code MethodInfo} that represents the execution of the method
* identified by {@code hash}.
@@ -144,6 +147,8 @@
}
}
+ protected final Configuration config = AOPSystem.getConfiguration();
+
/** Read/Write lock to be used when lazy creating the collections */
protected Object lazyCollectionLock = new Object();
@@ -1335,7 +1340,7 @@
if (match != null && match.isMatch())
{
adviceBindings.add(binding);
- if (AspectManager.verbose)
+ if (AOPSystem.getConfiguration().isVerbose())
{
/*
RepositoryClassLoader loader = (RepositoryClassLoader)clazz.getClassLoader();
@@ -1353,7 +1358,7 @@
binding.addAdvisor(this);
MethodMatchInfo info = methodInfos.getMatchInfo(keys[i]);
info.addMatchedBinding(binding, match);
- if (AspectManager.maintainAdvisorMethodInterceptors)
+ if (config.isMaintainAdvisorMethodInterceptors())
{
methodInterceptors.put(keys[i], info);
}
@@ -1371,14 +1376,14 @@
if (match != null && match.isMatch())
{
- if (AspectManager.verbose)
+ if (AOPSystem.getConfiguration().isVerbose())
{
logger.debug("removing matched binding: "+method.toString());
}
MethodMatchInfo info = methodInfos.getMatchInfo(keys[i]);
info.removeMatchedBinding(binding, match);
info.getInfo().clear();
- if (AspectManager.maintainAdvisorMethodInterceptors)
+ if (config.isMaintainAdvisorMethodInterceptors())
{
methodInterceptors.put(keys[i], info);
}
@@ -1399,7 +1404,7 @@
if ((!write && binding.getPointcut().matchesGet(this, field))
|| (write && binding.getPointcut().matchesSet(this, field)))
{
- if (AspectManager.verbose) logger.debug("Removing field, matched " + ((write) ? "write" : "read") + " binding: " + field);
+ if (AOPSystem.getConfiguration().isVerbose()) logger.debug("Removing field, matched " + ((write) ? "write" : "read") + " binding: " + field);
fieldInfos[i].clear();
for(AdviceBinding ab : bindings)
@@ -1432,7 +1437,7 @@
Constructor<?> constructor = constructors[i];
if (binding.getPointcut().matchesExecution(this, constructor))
{
- if (AspectManager.verbose) logger.debug("Removing constructor, matched binding: " + constructor);
+ if (AOPSystem.getConfiguration().isVerbose()) logger.debug("Removing constructor, matched binding: " + constructor);
constructorInfos[i].clear();
for(AdviceBinding ab : bindingCol.getConstructorExecutionBindings())
{
@@ -1442,7 +1447,7 @@
pointcutResolved(constructorInfos[i], ab, new ConstructorJoinpoint(constructor));
}
}
- if (AspectManager.maintainAdvisorMethodInterceptors)
+ if (config.isMaintainAdvisorMethodInterceptors())
{
this.constructorInterceptors[i] = constructorInfos[i].getInterceptors();
}
@@ -1463,7 +1468,7 @@
Constructor<?> constructor = info.getConstructor();
if (binding.getPointcut().matchesConstruction(this, constructor))
{
- if (AspectManager.verbose) logger.debug("Removing construction, matched binding: " + constructor);
+ if (AOPSystem.getConfiguration().isVerbose()) logger.debug("Removing construction, matched binding: " + constructor);
constructionInfos[i].clear();
for(AdviceBinding ab : bindingCol.getConstructionBindings())
{
@@ -1473,7 +1478,7 @@
pointcutResolved(constructionInfos[i], ab, new ConstructorJoinpoint(constructor));
}
}
- if (AspectManager.maintainAdvisorMethodInterceptors)
+ if (config.isMaintainAdvisorMethodInterceptors())
{
this.constructionInterceptors[i] = constructionInfos[i].getInterceptors();
}
@@ -1533,7 +1538,7 @@
protected void finalizeMethodChain()
{
- boolean maintain = AspectManager.maintainAdvisorMethodInterceptors;
+ boolean maintain = config.isMaintainAdvisorMethodInterceptors();
TLongObjectHashMap newMethodInfos = (maintain) ? new TLongObjectHashMap() : null;
long[] keys = methodInfos.keys();
@@ -1854,12 +1859,12 @@
Constructor<?> constructor = constructors[i];
if (binding.getPointcut().matchesExecution(this, constructor))
{
- if (AspectManager.verbose) logger.debug("constructor matched binding: " + constructor);
+ if (config.isVerbose()) logger.debug("constructor matched binding: " + constructor);
adviceBindings.add(binding);
binding.addAdvisor(this);
pointcutResolved(constructorInfos[i], binding, new ConstructorJoinpoint(constructor));
// if we must keep track of deprecated fields and the field is already initialized
- if (AspectManager.maintainAdvisorMethodInterceptors && constructorInterceptors != null)
+ if (config.isMaintainAdvisorMethodInterceptors() && constructorInterceptors != null)
{
constructorInterceptors[i] = constructorInfos[i].getInterceptors();
}
@@ -1877,12 +1882,12 @@
Constructor<?> constructor = info.getConstructor();
if (binding.getPointcut().matchesConstruction(this, constructor))
{
- if (AspectManager.verbose) logger.debug("construction matched binding: " + constructor);
+ if (config.isVerbose()) logger.debug("construction matched binding: " + constructor);
adviceBindings.add(binding);
binding.addAdvisor(this);
pointcutResolved(info, binding, new ConstructorJoinpoint(constructor));
// if we must keep track of deprecated fields and the field is already initialized
- if (AspectManager.maintainAdvisorMethodInterceptors && this.constructionInterceptors != null)
+ if (config.isMaintainAdvisorMethodInterceptors() && this.constructionInterceptors != null)
{
this.constructionInterceptors[i] = constructionInfos[i].getInterceptors();
}
@@ -1894,7 +1899,7 @@
/** @deprecated We should just be using xxxxInfos */
protected void populateInterceptorsFromInfos()
{
- if (!AspectManager.maintainAdvisorMethodInterceptors)
+ if (!config.isMaintainAdvisorMethodInterceptors())
{
return;
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AdvisorFactory.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AdvisorFactory.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AdvisorFactory.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -53,9 +53,9 @@
private static final Class<?>[] CONSTRUCTOR_SIG = new Class<?>[] {String.class, AspectManager.class};
- public static void initialise(String property)
+ public static void initialise(boolean verbose, String property)
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (verbose && logger.isDebugEnabled())
{
logger.debug("Passed in advisor: " + property);
}
@@ -86,7 +86,7 @@
}
else
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (verbose && logger.isDebugEnabled())
{
logger.debug("[debug] Defaulting advisor to: " + ClassAdvisor.class.getName());
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectAnnotationLoader.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectAnnotationLoader.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectAnnotationLoader.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -51,6 +51,8 @@
import org.jboss.aop.pointcut.DynamicCFlow;
import org.jboss.aop.pointcut.ast.ASTCFlowExpression;
import org.jboss.aop.pointcut.ast.PointcutExpressionParser;
+import org.jboss.aop.spi.AOPSystem;
+import org.jboss.aop.spi.Configuration;
import org.jboss.aop.util.MethodHashing;
import org.jboss.aop.util.logging.AOPLogger;
@@ -62,6 +64,7 @@
*/
public class AspectAnnotationLoader
{
+ Configuration config = AOPSystem.getConfiguration();
private static final AOPLogger logger = AOPLogger.getLogger(AspectAnnotationLoader.class);
@@ -118,7 +121,7 @@
public void deployClassFile(ClassFile cf) throws Exception
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Looking for aspects in: " + cf.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("Looking for aspects in: " + cf.getName());
AnnotationsAttribute visible = (AnnotationsAttribute) cf.getAttribute(AnnotationsAttribute.visibleTag);
if (visible != null)
{
@@ -163,7 +166,7 @@
public void undeployClassFile(ClassFile cf) throws Exception
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Looking for aspects in: " + cf.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("Looking for aspects in: " + cf.getName());
AnnotationsAttribute visible = (AnnotationsAttribute) cf.getAttribute(AnnotationsAttribute.visibleTag);
if (visible != null)
{
@@ -189,7 +192,7 @@
javassist.bytecode.annotation.Annotation info = visible.getAnnotation(Aspect.class.getName());
if (info != null)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("[debug] Found @Aspect in: " + cf.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("[debug] Found @Aspect in: " + cf.getName());
Aspect aspect = (Aspect) AnnotationProxy.createProxy(info, Aspect.class);
Scope scope = aspect.scope();
@@ -224,7 +227,7 @@
javassist.bytecode.annotation.Annotation info = visible.getAnnotation(Aspect.class.getName());
if (info != null)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Undeploying @Aspect in: " + cf.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("Undeploying @Aspect in: " + cf.getName());
loaderStrategy.undeployAspect(this, cf.getName());
undeployAspectMethodBindings(cf);
@@ -237,7 +240,7 @@
javassist.bytecode.annotation.Annotation info = visible.getAnnotation(InterceptorDef.class.getName());
if (info != null)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Found @InterceptorDef in: " + cf.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("Found @InterceptorDef in: " + cf.getName());
Aspect aspect = (Aspect) AnnotationProxy.createProxy(info, Aspect.class);
Scope scope = aspect.scope();
@@ -274,7 +277,7 @@
javassist.bytecode.annotation.Annotation info = visible.getAnnotation(InterceptorDef.class.getName());
if (info != null)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Undeploying @InterceptorDef in: " + cf.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("Undeploying @InterceptorDef in: " + cf.getName());
AnnotationProxy.createProxy(info, Aspect.class);
loaderStrategy.undeployInterceptor(this, cf.getName());
@@ -288,7 +291,7 @@
javassist.bytecode.annotation.Annotation info = visible.getAnnotation(DynamicCFlowDef.class.getName());
if (info != null)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Found @DynamicCFlowDef in: " + cf.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("Found @DynamicCFlowDef in: " + cf.getName());
AnnotationProxy.createProxy(info, DynamicCFlowDef.class);
String name = cf.getName();
@@ -315,7 +318,7 @@
javassist.bytecode.annotation.Annotation info = visible.getAnnotation(DynamicCFlowDef.class.getName());
if (info != null)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Undeploying @DynamicCFlowDef in: " + cf.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("Undeploying @DynamicCFlowDef in: " + cf.getName());
String name = cf.getName();
loaderStrategy.undeployDynamicCFlow(this, name);
}
@@ -327,7 +330,7 @@
javassist.bytecode.annotation.Annotation info = visible.getAnnotation(Prepare.class.getName());
if (info != null)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Found top-level @Prepare in: " + cf.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("Found top-level @Prepare in: " + cf.getName());
Prepare prepare = (Prepare) AnnotationProxy.createProxy(info, Prepare.class);
String name = cf.getName() + "." + visible.getName();
@@ -355,7 +358,7 @@
javassist.bytecode.annotation.Annotation info = visible.getAnnotation(Precedence.class.getName());
if (info != null)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Found top-level @Precedence in: " + cf.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("Found top-level @Precedence in: " + cf.getName());
ArrayList<PrecedenceDefEntry> entries = new ArrayList<PrecedenceDefEntry>();
Iterator<FieldInfo> fields = cf.getFields().iterator();
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectManager.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectManager.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectManager.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -30,7 +30,6 @@
import java.security.ProtectionDomain;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -82,7 +81,11 @@
import org.jboss.aop.pointcut.PointcutStats;
import org.jboss.aop.pointcut.Typedef;
import org.jboss.aop.pointcut.ast.ClassExpression;
+import org.jboss.aop.spi.AOPSystem;
+import org.jboss.aop.spi.Configuration;
+import org.jboss.aop.spi.Manager;
import org.jboss.aop.util.AOPLock;
+import org.jboss.aop.util.CollectionConvert;
import org.jboss.aop.util.UnmodifiableEmptyCollections;
import org.jboss.aop.util.logging.AOPLogger;
import org.jboss.util.collection.WeakValueHashMap;
@@ -108,6 +111,9 @@
{
private static final AOPLogger logger = AOPLogger.getLogger(AspectManager.class);
+ //TOD how this gets set needs revisiting
+ Manager manager = null;
+
/** Indicates that a call to the factory has been made, but it returned null. */
private static final Object NULL_ASPECT = new Object();
@@ -143,83 +149,45 @@
protected volatile HashMap<String,ClassMetaDataLoader> classMetaDataLoaders = UnmodifiableEmptyCollections.EMPTY_HASHMAP;
protected volatile HashMap<String, AdviceStack> interceptorStacks = UnmodifiableEmptyCollections.EMPTY_HASHMAP;
protected volatile HashMap<String, DeclareDef> declares = UnmodifiableEmptyCollections.EMPTY_HASHMAP;
- protected volatile ConcurrentHashMap<String, CFlowStack> cflowStacks = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
+ //protected volatile ConcurrentHashMap<String, CFlowStack> cflowStacks = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
protected volatile ConcurrentHashMap<String, DynamicCFlowDefinition> dynamicCFlows = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
protected volatile ConcurrentHashMap<String, AspectDefinition> aspectDefinitions = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
protected volatile ConcurrentHashMap<String, Object> perVMAspects = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
- /** class name prefixes to explicitly exclude unless contained in include. Maintained by top-level AspectManager */
- protected volatile ArrayList<String> exclude = UnmodifiableEmptyCollections.EMPTY_ARRAYLIST;
-
- /** class name prefixes to explicitly include, this overrides whatever was set in exclude. Maintained by top-level AspectManager */
- protected volatile ArrayList<String> include = UnmodifiableEmptyCollections.EMPTY_ARRAYLIST;
-
- /** A set of wildcard enabled classnames that will be ignored no matter if they have been included. Maintained by top-level AspectManager */
- protected volatile ArrayList<String> ignore = UnmodifiableEmptyCollections.EMPTY_ARRAYLIST;
-
- /** A set of annotation names that will be included even though they are invisible. */
- protected List<String> includeInvisibleAnnotations = Collections .emptyList();
-
- /** ClassExpressions built from ignore. Maintained by top-level AspectManager */
- protected ClassExpression[] ignoreExpressions = new ClassExpression[0];
-
protected static AOPLock lock = new AOPLock();
- public static boolean classicOrder = false;
-
protected volatile LinkedHashMap<String, ClassMetaDataBinding> classMetaData = UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP;
protected volatile HashMap<String, DomainDefinition> containers = UnmodifiableEmptyCollections.EMPTY_HASHMAP;
protected volatile LinkedHashMap<String, PrecedenceDef> precedenceDefs = UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP;
protected PrecedenceDefEntry[] sortedPrecedenceDefEntries;
protected WeavingStrategy weavingStrategy;
- protected DynamicAOPStrategy dynamicStrategy = new LoadInterceptedClassesStrategy();
-
- /** The classloader scoping policy */
- // This shouldn't really be static (artifact of singleton and self-bootstrap design)
- private static AOPClassLoaderScopingPolicy classLoaderScopingPolicy;
-
//Keeps track of if we need to convert references etc for a given class. Domains for scoped classloaders will have their own version of this
protected static Map<ClassLoader, InterceptionMarkers> interceptionMarkers = new WeakHashMap<ClassLoader, InterceptionMarkers>();
private final static ClassLoader NULL_CLASSLOADER = new URLClassLoader(new URL[0]);
// Static -------------------------------------------------------
- protected static AspectManager manager;
- public static boolean optimize = true;
- public static boolean debugClasses;//If true, the generated advisor instrumentor will output the generated classes
- public static ClassLoaderValidation classLoaderValidator;
+ protected static AspectManager singleton;
//Keep track of the microcontainer lifecycle callbacks
public LifecycleManager lifecycleManager = new LifecycleManager(this);
/**
- * logging switch. We don't use log4j to avoid another heavy library
- */
- public static boolean verbose = false;
-
- /**
- * Whether or not we should maintain the deprecated Advisor.methodInterceptors field
- * This is required in jboss 4.x for backwards compatibility with EJB 3
- * See JBAOP-517
- */
- public static boolean maintainAdvisorMethodInterceptors;
-
- /**
* Get the top level aspect manager
*
* @return the top level aspect manager
*/
public static synchronized AspectManager getTopLevelAspectManager()
{
- if (classLoaderScopingPolicy == null)
+ if (AOPSystem.getConfiguration().getClassLoaderScopingPolicy() == null)
{
//We are not running in jboss
return instance();
}
AspectManager result = initManager();
- Domain scopedDomain = classLoaderScopingPolicy.getTopLevelDomain(result);
+ Domain scopedDomain = AOPSystem.getConfiguration().getClassLoaderScopingPolicy().getTopLevelDomain(result);
if (scopedDomain != null)
result = scopedDomain;
return result;
@@ -239,9 +207,9 @@
public static synchronized AspectManager instance(ClassLoader loadingClassLoader)
{
AspectManager result = initManager();
- if (classLoaderScopingPolicy != null)
+ if (AOPSystem.getConfiguration().getClassLoaderScopingPolicy() != null)
{
- Domain scopedDomain = classLoaderScopingPolicy.getDomain(loadingClassLoader, result);
+ Domain scopedDomain = AOPSystem.getConfiguration().getClassLoaderScopingPolicy().getDomain(loadingClassLoader, result);
if (scopedDomain != null)
result = scopedDomain;
}
@@ -257,128 +225,38 @@
*/
private static AspectManager initManager()
{
- if (manager == null)
+ if (singleton == null)
{
AccessController.doPrivileged(new PrivilegedAction<AspectManager>()
{
public AspectManager run()
{
- String optimized = System.getProperty("jboss.aop.optimized", null);
- if (optimized != null)
- {
- optimize = (new Boolean(optimized)).booleanValue();
- }
- String pruneit = System.getProperty("jboss.aop.prune", null);
- if (pruneit != null)
- {
- AOPClassPoolRepository.getInstance().setPrune((new Boolean(pruneit)).booleanValue());
- }
- manager = new AspectManager();
- //Initialise frequently used fields needed by the top-level manager
- manager.subDomainsPerClass = new WeakHashMap<Class<?>, WeakReference<Domain>>();
- manager.exclude = new ArrayList<String>();
- manager.include = new ArrayList<String>();
- manager.ignore = new ArrayList<String>();
- manager.includeInvisibleAnnotations = new ArrayList<String>();
-
-
- AOPClassPoolRepository.getInstance().setAspectManager(manager);
-
- if (!verbose)
- {
- verbose = (new Boolean(System.getProperty("jboss.aop.verbose", "false"))).booleanValue();
- }
- String exclude = System.getProperty("jboss.aop.exclude", null);
- if (exclude != null)
- {
- ArrayList<String> list = splitString(exclude, ",");
- manager.setExclude(list);
- }
- String include = System.getProperty("jboss.aop.include", null);
- if (include != null)
- {
- ArrayList<String> list = splitString(include, ",");
- manager.setInclude(list);
- }
- String ignore = System.getProperty("jboss.aop.ignore", null);
- if (ignore != null)
- {
- ArrayList<String> list = splitString(ignore, ",");
- manager.setIgnore(list);
- }
- String invisibleAnnotations = System.getProperty("jboss.aop.invisible.annotations", null);
- if(invisibleAnnotations != null)
- {
- ArrayList<String> list = splitString(invisibleAnnotations, ",");
- manager.setIncludedInvisibleAnnotations(list);
- }
-
- String instrument = System.getProperty("jboss.aop.instrumentor", null);
- InstrumentorFactory.initialise(instrument);
-
- String advisorName = System.getProperty("jboss.aop.advisor", null);
- AdvisorFactory.initialise(advisorName);
-
- String debugClass = System.getProperty("jboss.aop.debug.classes", null);
- if (debugClass != null)
- {
- debugClasses = (new Boolean(debugClass)).booleanValue();
- }
-
- String classic = System.getProperty("jboss.aop.classicorder", null);
- if (classic != null)
- {
- classicOrder = (new Boolean(classic)).booleanValue();
- }
-
- String methodInterceptors = System.getProperty("jboss.aop.advisor.methodInterceptors", null);
- if (methodInterceptors != null)
- {
- maintainAdvisorMethodInterceptors = (new Boolean(methodInterceptors)).booleanValue();
- }
-
-
+ singleton = new AspectManager();
+ AOPClassPoolRepository.getInstance().setAspectManager(singleton);
Deployment.deploy();
return null;
}
});
}
- return manager;
+ return singleton;
}
- private static ArrayList<String> splitString(String string, String delim)
- {
- if (string != null)
- {
- ArrayList<String> list = new ArrayList<String>();
- for(String token : string.split(delim))
- {
- list.add(token.trim());
- }
- return list;
- }
- return null;
- }
-
/**
- * Get the classLoaderScopingPolicy.
- *
- * @return the classLoaderScopingPolicy.
+ * @see Configuration#getClassLoaderScopingPolicy()
*/
+ @Deprecated
public static AOPClassLoaderScopingPolicy getClassLoaderScopingPolicy()
{
- return classLoaderScopingPolicy;
+ return AOPSystem.getConfiguration().getClassLoaderScopingPolicy();
}
/**
- * Set the classLoaderScopingPolicy.
- *
- * TODO does it make sense for this to be modified once it has been set?
- * @param classLoaderScopingPolicy the classLoaderScopingPolicy.
+ * @see Configuration#setClassLoaderScopingPolicy()
*/
+ @Deprecated
public static void setClassLoaderScopingPolicy(AOPClassLoaderScopingPolicy classLoaderScopingPolicy)
{
- AspectManager.classLoaderScopingPolicy = classLoaderScopingPolicy;
+ AOPSystem.getConfiguration().setClassLoaderScopingPolicy(classLoaderScopingPolicy);
}
public InterceptionMarkers getInterceptionMarkers(ClassLoader loader)
@@ -411,20 +289,20 @@
public CFlowStack getCFlowStack(String name)
{
- return cflowStacks.get(name);
+ return manager.getCFlowStack(name);
}
public void addCFlowStack(CFlowStack stack)
{
- initCflowStacksMap();
- cflowStacks.put(stack.getName(), stack);
+ manager.addCFlowStack(stack);
}
public void removeCFlowStack(String name)
{
- cflowStacks.remove(name);
+ manager.removeCFlowStack(name);
}
+
@Deprecated
public DynamicCFlow getDynamicCFlow(String name)
{
@@ -749,7 +627,7 @@
advisors.put(clazz, new WeakReference<Advisor>(advisor));
registerClass(clazz);
advisor.attachClass(clazz);
- InterceptorChainObserver observer = dynamicStrategy.getInterceptorChainObserver(clazz);
+ InterceptorChainObserver observer = AOPSystem.getWeaver().getDynamicAOPStrategy().getInterceptorChainObserver(clazz);
advisor.setInterceptorChainObserver(observer);
if (notificationHandler != null)
{
@@ -789,6 +667,7 @@
synchronized (getRegisteredCLs())
{
if (!advisors.containsKey(advisor.getClazz())) return false;
+ final ClassLoaderValidation classLoaderValidator = AOPSystem.getConfiguration().getClassLoaderValidator();
if (classLoaderValidator != null)
{
if (classLoaderValidator.isValidClassLoader(advisor.getClassLoader()))
@@ -855,237 +734,160 @@
AOPClassPoolRepository.getInstance().unregisterClassLoader(cl);
}
+ @Deprecated
public ArrayList<String> getExclude()
{
- return exclude;
+ return CollectionConvert.toArrayList(AOPSystem.getConfiguration().getExclude());
}
+ @Deprecated
public void setExclude(ArrayList<String> exclude)
{
- this.exclude.clear();
- this.exclude.addAll(exclude);
+ AOPSystem.getConfiguration().setExclude(exclude);
}
+ @Deprecated
public ArrayList<String> getInclude()
{
- return include;
+ return CollectionConvert.toArrayList(AOPSystem.getConfiguration().getInclude());
}
+ @Deprecated
public void setInclude(ArrayList<String> include)
{
- this.include.clear();
- this.include.addAll(include);
+ AOPSystem.getConfiguration().setInclude(include);
}
+ @Deprecated
public ArrayList<String> getIgnore()
{
- return ignore;
+ return CollectionConvert.toArrayList(AOPSystem.getConfiguration().getIgnore());
}
-
+ @Deprecated
public List<String> getIncludedInvisibleAnnotations()
{
- return includeInvisibleAnnotations;
+ return AOPSystem.getConfiguration().getIncludedInvisibleAnnotations();
}
+ @Deprecated
public void setIncludedInvisibleAnnotations(List<String> ia)
{
- includeInvisibleAnnotations.clear();
- includeInvisibleAnnotations.addAll(ia);
+ AOPSystem.getConfiguration().setIncludedInvisibleAnnotations(ia);
}
+ @Deprecated
public ClassExpression[] getIgnoreExpressions()
{
- return ignoreExpressions;
+ return AOPSystem.getConfiguration().getIgnoreExpressions();
}
+ @Deprecated
public void setIgnore(ArrayList<String> ignore)
{
- this.ignore.clear();
- this.ignore.addAll(ignore);
- ignoreExpressions = new ClassExpression[ignore.size()];
- for (int i = 0 ; i < ignore.size() ; i++)
- {
- String ex = ignore.get(i);
- ignoreExpressions[i] = new ClassExpression(ex);
- }
+ AOPSystem.getConfiguration().setIgnore(ignore);
}
- public boolean ignoreClass(String classname)
- {
- ArrayList<String> ignore = getIgnore();
- if (ignore == null) return false;
- ClassExpression[] ignoreExprs = getIgnoreExpressions();
- for (int i = 0; i < ignoreExprs.length; i++)
- {
- if(ignoreExprs[i].matches(classname)) return true;
- }
- return false;
- }
+ //These do not seem to be used from anywhere else, and I doubt any users would need them
+ //They have been moved as private methods in DefaultWeaver
+// public boolean ignoreClass(String classname)
+// public boolean includeClass(String classname)
+// public boolean excludeClass(String classname)
- public boolean includeClass(String classname)
- {
- ArrayList<String> include = getInclude();
- if (include == null) return false;
- for (int i = 0; i < include.size(); i++)
- {
- String str = include.get(i);
- if (classname.startsWith(str)) return true;
- }
- return false;
- }
-
- public boolean excludeClass(String classname)
- {
- ArrayList<String> exclude = getExclude();
- if (exclude == null) return false;
- for (int i = 0; i < exclude.size(); i++)
- {
- String str = exclude.get(i);
- if (str.equals("*")) return true;
- if (classname.startsWith(str)) return true;
- }
- return false;
- }
-
+ @Deprecated
public static boolean getPrune()
{
return AOPClassPoolRepository.getInstance().isPrune();
}
+ @Deprecated
public static void setPrune(boolean prune)
{
AOPClassPoolRepository.getInstance().setPrune(prune);
}
+ @Deprecated
public static void setClassPoolFactory(ScopedClassPoolFactory factory)
{
AOPClassPoolRepository.getInstance().setClassPoolFactory(factory);
}
+ @Deprecated
public static ScopedClassPoolFactory getClassPoolFactory()
{
return AOPClassPoolRepository.getInstance().getClassPoolFactory();
}
+ @Deprecated
public boolean isNonAdvisableClassName(String classname)
{
- if (ignoreClass(classname)) return true;
- if (includeClass(classname)) return false;
- if (excludeClass(classname)) return true;
- return (classname.startsWith("org.jboss.aop.") ||
- classname.endsWith("$aop") ||
- classname.startsWith("javassist") ||
- classname.startsWith("org.jboss.util.") ||
- classname.startsWith("gnu.trove.") ||
- classname.startsWith("EDU.oswego.cs.dl.util.concurrent.") ||
- classname.contains('.' + JoinPointGenerator.JOINPOINT_CLASS_PREFIX) ||
- // System classes
- classname.startsWith("org.apache.tools.ant") ||
- classname.startsWith("org.apache.crimson") ||
- classname.startsWith("org.apache.xalan") ||
- classname.startsWith("org.apache.xml") ||
- classname.startsWith("org.apache.xpath") ||
- classname.startsWith("org.ietf.") ||
- classname.startsWith("org.omg.") ||
- classname.startsWith("org.w3c.") ||
- classname.startsWith("org.xml.sax.") ||
- classname.startsWith("sunw.") ||
- classname.startsWith("sun.") ||
- classname.startsWith("java.") ||
- classname.startsWith("javax.") ||
- classname.startsWith("com.sun.") ||
- classname.startsWith("junit") ||
- classname.startsWith("jrockit.") ||
- classname.startsWith("com.bea.vm.") ||
- classname.startsWith("$Proxy")
- );
+ return AOPSystem.getWeaver().isWeavable(classname) == false;
}
- /**
- * This is the hook for ClassLoaders that want to instrument their classes with AOP
- * <p/>
- * This would be called during a findClass or loadClass call. The return value
- * is used by defineClass to create the class from bytecode
- */
+ @Deprecated
public byte[] transform(ClassLoader loader,
String className,
- @SuppressWarnings(value= {"all"}) Class classBeingRedefined,
+ Class<?> classBeingRedefined,
ProtectionDomain protectionDomain,
byte[] classfileBuffer)
throws Exception
{
- byte[] b = translate(className, loader, classfileBuffer);
- return b;
+
+ return AOPSystem.getWeaver().transform(loader, className, classBeingRedefined, protectionDomain, classfileBuffer);
+// try
+// {
+// if (isNonAdvisableClassName(className))
+// {
+// return null;
+// }
+// lock.lockRead();
+// try
+// {
+// synchronized(this){
+// if (weavingStrategy == null)
+// {
+// if (TransformerCommon.isCompileTime())
+// {
+// weavingStrategy = new ClassicWeavingStrategy();
+// }
+// else if(InstrumentorFactory.getInstrumentor(this,dynamicStrategy.getJoinpointClassifier())
+// instanceof GeneratedAdvisorInstrumentor)
+// {
+// weavingStrategy = new SuperClassesFirstWeavingStrategy();
+// }
+// else
+// {
+// weavingStrategy = new ClassicWeavingStrategy();
+// }
+// }
+//
+// return weavingStrategy.translate(this, className, loader, classfileBuffer);
+// }
+// }
+// finally
+// {
+// lock.unlockRead();
+// }
+// }
+// catch (Exception e)
+// {
+// // AutoGenerated
+// throw new RuntimeException(e);
+// }
+
}
- /**
- * This is to be backward compatible with JBoss 3.2.3 Translator interface
- *
- * @param className
- * @param loader
- * @return
- * @throws Exception
- */
+ @Deprecated
public byte[] translate(String className, ClassLoader loader) throws Exception
{
return translate(className, loader, null);
}
- /**
- * This is to be backward compatible with JBoss 3.2.3 Translator interface
- * TODO: stalep, added a synchronized block for the entire method to prevent
- * a deadlock. its not optimal and should be further reviewed.
- * (commented out sync block inside the method)
- *
- * @param className
- * @param loader
- * @return
- * @throws Exception
- */
+ @Deprecated
public byte[] translate(String className, ClassLoader loader, byte[] classfileBuffer) throws Exception
{
- try
- {
- if (isNonAdvisableClassName(className))
- {
- return null;
- }
- lock.lockRead();
- try
- {
- synchronized(this){
- if (weavingStrategy == null)
- {
- if (TransformerCommon.isCompileTime() || classicOrder)
- {
- weavingStrategy = new ClassicWeavingStrategy();
- }
- else if(InstrumentorFactory.getInstrumentor(this,dynamicStrategy.getJoinpointClassifier())
- instanceof GeneratedAdvisorInstrumentor)
- {
- weavingStrategy = new SuperClassesFirstWeavingStrategy();
- }
- else
- {
- weavingStrategy = new ClassicWeavingStrategy();
- }
- }
-
- return weavingStrategy.translate(this, className, loader, classfileBuffer);
- }
- }
- finally
- {
- lock.unlockRead();
- }
- }
- catch (Exception e)
- {
- // AutoGenerated
- throw new RuntimeException(e);
- }
+ return AOPSystem.getWeaver().translate(className, loader, classfileBuffer);
}
/**
@@ -1393,7 +1195,7 @@
if (binding != null)
{
binding.clearAdvisors();
- dynamicStrategy.interceptorChainsUpdated();
+ AOPSystem.getWeaver().getDynamicAOPStrategy().interceptorChainsUpdated();
}
}
finally
@@ -1451,7 +1253,7 @@
}
advisor.removeAdviceBindings(removedBindings);
}
- dynamicStrategy.interceptorChainsUpdated();
+ AOPSystem.getWeaver().getDynamicAOPStrategy().interceptorChainsUpdated();
}
/**
@@ -1489,7 +1291,7 @@
}
}
}
- this.dynamicStrategy.interceptorChainsUpdated();
+ AOPSystem.getWeaver().getDynamicAOPStrategy().interceptorChainsUpdated();
}
finally
{
@@ -1518,14 +1320,14 @@
if (binding.getPointcut().softMatch(advisor))
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled())
logger.debug("softmatch succeeded for : " + advisor.getName() + " " + binding + " " + binding.getPointcut().getExpr());
advisor.newBindingAdded(binding);
//affectedAdvisors.remove(advisor);
}
else
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled())
logger.debug("softmatch failed for : " + advisor.getName() + " " + binding + " " + binding.getPointcut().getExpr());
}
}
@@ -1790,7 +1592,7 @@
if (declare.isPointcut())
{
PointcutStats stats;
- stats = new PointcutStats(declare.getAst(), manager);
+ stats = new PointcutStats(declare.getAst(), singleton);
stats.matches();
bindingCollection.updateStats(stats);
}
@@ -2056,7 +1858,7 @@
public Map<String, CFlowStack> getCflowStacks()
{
- return cflowStacks;
+ return manager.getCFlowStacks();
}
public Map<String, DynamicCFlowDefinition> getDynamicCFlows()
@@ -2074,27 +1876,16 @@
return classMetaData;
}
- /**
- * Returns the dynamic aop strategy to be used.
- */
+ @Deprecated
public DynamicAOPStrategy getDynamicAOPStrategy()
{
- return this.dynamicStrategy;
+ return AOPSystem.getWeaver().getDynamicAOPStrategy();
}
- /**
- * Sets the dynamic aop strategy to be used.
- * Should be called only before any class is transformed.
- * @param strategy the new dynamic aop strategy.
- */
+ @Deprecated
public void setDynamicAOPStrategy(DynamicAOPStrategy strategy)
{
- // avoid users calling this method in run time
- if (hasTransformationStarted())
- {
- throw new RuntimeException("Dynamic AOP Strategy Update not allowed in run time");
- }
- this.dynamicStrategy = strategy;
+ AOPSystem.getWeaver().setDynamicAOPStrategy(strategy);
}
/**
@@ -2158,6 +1949,7 @@
private Advisor getAdvisorFromAdvisorsKeySetIterator(Iterator<Class<?>> it)
{
Class<?> clazz = it.next();
+ final ClassLoaderValidation classLoaderValidator = AOPSystem.getConfiguration().getClassLoaderValidator();
if (classLoaderValidator != null && !classLoaderValidator.isValidClassLoader(SecurityActions.getClassLoader(clazz)))
{
it.remove();
@@ -2455,20 +2247,6 @@
}
}
- protected void initCflowStacksMap()
- {
- if (cflowStacks == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
- {
- synchronized(lazyCollectionLock)
- {
- if (cflowStacks == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
- {
- cflowStacks = new ConcurrentHashMap<String, CFlowStack>();
- }
- }
- }
- }
-
protected void initDynamicCflowsMap()
{
if (dynamicCFlows == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectXmlLoader.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectXmlLoader.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectXmlLoader.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -68,6 +68,7 @@
import org.jboss.aop.pointcut.ast.ParseException;
import org.jboss.aop.pointcut.ast.PointcutExpressionParser;
import org.jboss.aop.pointcut.ast.TypeExpressionParser;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.XmlHelper;
import org.jboss.aop.util.logging.AOPLogger;
import org.jboss.util.xml.XmlLoadable;
@@ -105,7 +106,7 @@
public void setManager(AspectManager manager)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("AspectXMLLoader using manager" + manager);
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("AspectXMLLoader using manager" + manager);
this.manager = manager;
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassAdvisor.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassAdvisor.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassAdvisor.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -441,11 +441,11 @@
if ((!write && binding.getPointcut().matchesGet(this, field))
|| (write && binding.getPointcut().matchesSet(this, field)))
{
- if (AspectManager.verbose) logger.debug("field matched " + ((write) ? "write" : "read") + " binding: " + field);
+ if (config.isVerbose()) logger.debug("field matched " + ((write) ? "write" : "read") + " binding: " + field);
adviceBindings.add(binding);
binding.addAdvisor(this);
pointcutResolved(newFieldInfos[i], binding, new FieldJoinpoint(field));
- if (AspectManager.maintainAdvisorMethodInterceptors && this.initialized)
+ if (config.isMaintainAdvisorMethodInterceptors() && this.initialized)
{
interceptors[i] = newFieldInfos[i].getInterceptors();
}
@@ -584,7 +584,7 @@
@SuppressWarnings("deprecation")
protected void createInterceptorChains() throws Exception
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (config.isVerbose() && logger.isDebugEnabled())
{
logger.debug("Creating chains for " + clazz + " " + getClassLoader());
}
@@ -622,7 +622,7 @@
ClassifiedBindingAndPointcutCollection bindingCol = manager.getBindingCollection();
for (AdviceBinding binding: bindingCol.getFieldReadBindings())
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (config.isVerbose() && logger.isDebugEnabled())
{
logger.debug("iterate binding " + binding.getName() + " " +
binding.getPointcut().getExpr());
@@ -631,7 +631,7 @@
}
for (AdviceBinding binding: bindingCol.getFieldWriteBindings())
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (config.isVerbose() && logger.isDebugEnabled())
{
logger.debug("iterate binding " + binding.getName() + " " +
binding.getPointcut().getExpr());
@@ -640,7 +640,7 @@
}
for (AdviceBinding binding: bindingCol.getConstructionBindings())
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (config.isVerbose() && logger.isDebugEnabled())
{
logger.debug("iterate binding " + binding.getName() + " " +
binding.getPointcut().getExpr());
@@ -649,7 +649,7 @@
}
for (AdviceBinding binding: bindingCol.getConstructorExecutionBindings())
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (config.isVerbose() && logger.isDebugEnabled())
{
logger.debug("iterate binding " + binding.getName() + " " +
binding.getPointcut().getExpr());
@@ -658,7 +658,7 @@
}
for (AdviceBinding binding: bindingCol.getMethodExecutionBindings())
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (config.isVerbose() && logger.isDebugEnabled())
{
logger.debug("iterate binding " + binding.getName() + " " +
binding.getPointcut().getExpr());
@@ -669,7 +669,7 @@
protected void updateInterceptorChains() throws Exception
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (config.isVerbose() && logger.isDebugEnabled())
{
logger.debug("Updating chains for " + clazz + " " + ((clazz != null) ? getClassLoader() : null ));
}
@@ -745,7 +745,7 @@
protected void resolvePointcuts(AdviceBinding binding)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("iterate binding " + binding.getName() + " " + binding.getPointcut().getExpr());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("iterate binding " + binding.getName() + " " + binding.getPointcut().getExpr());
if (BindingClassifier.isExecution(binding))
{
resolveMethodPointcut(binding);
@@ -832,7 +832,7 @@
@Override
protected void updateFieldPointcutAfterRemove(FieldInfo fieldInfo, int i, boolean write)
{
- if (AspectManager.maintainAdvisorMethodInterceptors)
+ if (config.isMaintainAdvisorMethodInterceptors())
{
if (write)
{
@@ -1298,7 +1298,7 @@
public void addConstructorCallerPointcut(int callingIndex, String calledClass, long calledMethodHash, AdviceBinding binding) throws Exception
{
- if (AspectManager.verbose) logger.debug("constructor call matched binding " + binding.getPointcut().getExpr());
+ if (config.isVerbose()) logger.debug("constructor call matched binding " + binding.getPointcut().getExpr());
adviceBindings.add(binding);
binding.addAdvisor(this);
HashMap<String, TLongObjectHashMap> callingCon = methodCalledByConBindings[callingIndex];
@@ -1336,7 +1336,7 @@
private void addConstructorCalledByConPointcut(int callingIndex, String calledClass, long calledConHash, AdviceBinding binding) throws Exception
{
- if (AspectManager.verbose) logger.debug("constructor call matched binding " + binding.getPointcut().getExpr());
+ if (config.isVerbose()) logger.debug("constructor call matched binding " + binding.getPointcut().getExpr());
adviceBindings.add(binding);
binding.addAdvisor(this);
HashMap<String, TLongObjectHashMap> callingCon = conCalledByConBindings[callingIndex];
@@ -2040,7 +2040,7 @@
@Override
protected void populateInterceptorsFromInfos()
{
- if (!AspectManager.maintainAdvisorMethodInterceptors)
+ if (!config.isMaintainAdvisorMethodInterceptors())
{
return;
}
@@ -2479,7 +2479,7 @@
private void addMethodCalledByMethodPointcut(long callingMethodHash, String calledClass, long calledMethodHash, AdviceBinding binding) throws Exception
{
//Called via resolveCallerMethodInfo, maps are initialised
- if (AspectManager.verbose) logger.debug("method call matched binding " + binding.getPointcut().getExpr());
+ if (config.isVerbose()) logger.debug("method call matched binding " + binding.getPointcut().getExpr());
adviceBindings.add(binding);
binding.addAdvisor(ClassAdvisor.this);
HashMap<String, TLongObjectHashMap> callingMethod = (HashMap<String, TLongObjectHashMap>)methodCalledByMethodBindings.get(callingMethodHash);
@@ -2755,7 +2755,7 @@
private void addConstructorCalledByMethodPointcut(long callingMethodHash, String calledClass, long calledMethodHash, AdviceBinding binding) throws Exception
{
- if (AspectManager.verbose) logger.debug("method call matched binding " + binding.getPointcut().getExpr());
+ if (config.isVerbose()) logger.debug("method call matched binding " + binding.getPointcut().getExpr());
adviceBindings.add(binding);
binding.addAdvisor(ClassAdvisor.this);
HashMap<String, TLongObjectHashMap> callingMethod = (HashMap<String, TLongObjectHashMap>) conCalledByMethodBindings.get(callingMethodHash);
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassContainer.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassContainer.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassContainer.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -146,7 +146,7 @@
@Override
protected void rebuildInterceptorsForAddedBinding(AdviceBinding binding)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("iterate binding " + binding.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("iterate binding " + binding.getName());
resetChainKeepInterceptors(methodInfos);
resetChainKeepInterceptors(constructorInfos);
@@ -329,13 +329,13 @@
Collection<AdviceBinding> bindings = bindingCol.getConstructorExecutionBindings();
for (AdviceBinding binding : bindings)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("iterate binding " + binding.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("iterate binding " + binding.getName());
resolveConstructorPointcut(binding);
}
bindings = bindingCol.getMethodExecutionBindings();
for (AdviceBinding binding : bindings)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("iterate binding " + binding.getName());
+ if (config.isVerbose() && logger.isDebugEnabled()) logger.debug("iterate binding " + binding.getName());
resolveMethodPointcut(binding);
}
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassicWeavingStrategy.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassicWeavingStrategy.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/ClassicWeavingStrategy.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -24,6 +24,7 @@
import org.jboss.aop.classpool.AOPClassPool;
import org.jboss.aop.instrument.Instrumentor;
import org.jboss.aop.instrument.InstrumentorFactory;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
import javassist.ByteArrayClassPath;
@@ -41,12 +42,13 @@
{
private static final AOPLogger logger = AOPLogger.getLogger(ClassicWeavingStrategy.class);
- private boolean verbose = AspectManager.verbose;
/**
* This is the translate version that was always there
*/
public byte[] translate(AspectManager manager, String className, ClassLoader loader, byte[] classfileBuffer) throws Exception
{
+ final boolean verbose = AOPSystem.getConfiguration().isVerbose();
+
if (isReEntry())
{
return null;
@@ -95,8 +97,8 @@
Instrumentor instrumentor = InstrumentorFactory.getInstrumentor(
pool,
manager,
- manager.dynamicStrategy.getJoinpointClassifier(),
- manager.dynamicStrategy.getDynamicTransformationObserver(clazz));
+ AOPSystem.getWeaver().getDynamicAOPStrategy().getJoinpointClassifier(),
+ AOPSystem.getWeaver().getDynamicAOPStrategy().getDynamicTransformationObserver(clazz));
if (!Instrumentor.isTransformable(clazz))
{
@@ -111,7 +113,7 @@
if (transformed)
{
pool.lockInCache(clazz);
- if (AspectManager.debugClasses)
+ if (AOPSystem.getConfiguration().isDebugClasses())
{
SecurityActions.debugWriteFile(clazz);
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Deployment.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Deployment.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Deployment.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -21,6 +21,7 @@
*/
package org.jboss.aop;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
import org.jboss.util.file.ArchiveBrowser;
import org.jboss.util.file.ClassFileFilter;
@@ -69,7 +70,7 @@
{
String search = System.getProperty("jboss.aop.search.classpath", null);
if (search != null) searchClasspath = (new Boolean(search)).booleanValue();
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("jboss.aop.search.classpath: '" + search + "' " + searchClasspath);
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("jboss.aop.search.classpath: '" + search + "' " + searchClasspath);
if (searchClasspath)
{
try
@@ -78,7 +79,7 @@
while (en.hasMoreElements())
{
URL url = en.nextElement();
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("deploying " + url);
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("deploying " + url);
AspectXmlLoader.deployXML(url);
}
}
@@ -97,10 +98,10 @@
String path = System.getProperty("jboss.aop.class.path", null);
if (path == null)
{
- if (AspectManager.verbose) logger.debug("jboss.aop.class.path is NULL");
+ if (AOPSystem.getConfiguration().isVerbose()) logger.debug("jboss.aop.class.path is NULL");
return;
}
- if (AspectManager.verbose) logger.debug("jboss.aop.class.path: " + path);
+ if (AOPSystem.getConfiguration().isVerbose()) logger.debug("jboss.aop.class.path: " + path);
StringTokenizer t = new StringTokenizer(path, File.pathSeparator);
while (t.hasMoreTokens())
{
@@ -134,14 +135,14 @@
public static void preconfigThroughSystemProperty()
{
String path = System.getProperty("jboss.aop.path", null);
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("jboss.aop.path: " + path);
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("jboss.aop.path: " + path);
if (path == null) return;
StringTokenizer t = new StringTokenizer(path, File.pathSeparator);
int j = 0;
while (t.hasMoreTokens())
{
String token = t.nextToken();
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("jboss.aop.path[" + j + "]: " + token);
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("jboss.aop.path[" + j + "]: " + token);
File f = new File(token);
try
{
@@ -180,7 +181,7 @@
{
// use toURI().toURL() because of bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4273532
URL url = f.toURI().toURL();
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("deploying " + url);
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("deploying " + url);
AspectXmlLoader.deployXML(url);
}
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Domain.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Domain.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Domain.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -50,7 +50,6 @@
import org.jboss.aop.pointcut.Pointcut;
import org.jboss.aop.pointcut.PointcutInfo;
import org.jboss.aop.pointcut.Typedef;
-import org.jboss.aop.pointcut.ast.ClassExpression;
import org.jboss.aop.util.UnmodifiableEmptyCollections;
/**
@@ -561,18 +560,20 @@
{
// when child first, parent bindings go in first so that they can be overridden by child.
map.putAll(parent.getCflowStacks());
- synchronized (cflowStacks)
- {
- map.putAll(cflowStacks);
- }
+ //TODO necessary locking?
+// synchronized (cflowStacks)
+// {
+ map.putAll(getCflowStacks());
+// }
return map;
}
else
{
- synchronized (cflowStacks)
- {
- map.putAll(cflowStacks);
- }
+ //TODO necessary locking?
+// synchronized (cflowStacks)
+// {
+ map.putAll(getCflowStacks());
+// }
map.putAll(parent.getCflowStacks());
return map;
}
@@ -1004,42 +1005,7 @@
return parent.getSubDomainsPerClass();
}
- /** Only set on a per vm basis */
@Override
- public ArrayList<String> getExclude()
- {
- return parent.getExclude();
- }
-
- /** Only set on a per vm basis */
- @Override
- public ArrayList<String> getInclude()
- {
- return parent.getInclude();
- }
-
- /** Only set on a per vm basis */
- @Override
- public ArrayList<String> getIgnore()
- {
- return parent.getIgnore();
- }
-
- /** Only set on a per vm basis */
- @Override
- public ClassExpression[] getIgnoreExpressions()
- {
- return parent.getIgnoreExpressions();
- }
-
- /** Only set on a per vm basis */
- @Override
- public List<String> getIncludedInvisibleAnnotations()
- {
- return parent.getIncludedInvisibleAnnotations();
- }
-
- @Override
public DynamicAOPStrategy getDynamicAOPStrategy()
{
return parent.getDynamicAOPStrategy();
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/GeneratedClassAdvisor.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/GeneratedClassAdvisor.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/GeneratedClassAdvisor.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -53,6 +53,7 @@
import org.jboss.aop.joinpoint.Joinpoint;
import org.jboss.aop.joinpoint.MethodJoinpoint;
import org.jboss.aop.pointcut.PointcutMethodMatch;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.UnmodifiableEmptyCollections;
import org.jboss.aop.util.logging.AOPLogger;
@@ -288,7 +289,7 @@
if (match != null && match.isMatch())
{
adviceBindings.add(binding);
- if (AspectManager.verbose)
+ if (AOPSystem.getConfiguration().isVerbose())
{
logger.error("method matched binding " + binding.getPointcut().getExpr() + " " + method.toString());
}
@@ -632,7 +633,7 @@
MethodJoinPointGenerator generator = getJoinPointGenerator(info);
finalizeChainAndRebindJoinPoint(oldInfos, info, generator, OldInfoMaps.INFOS);
}
- if (AspectManager.maintainAdvisorMethodInterceptors)
+ if (config.isMaintainAdvisorMethodInterceptors())
{
methodInterceptors = newMethodInfos;
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/MethodMatchInfo.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/MethodMatchInfo.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/MethodMatchInfo.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -26,6 +26,7 @@
import org.jboss.aop.advice.AdviceBinding;
import org.jboss.aop.joinpoint.MethodJoinpoint;
import org.jboss.aop.pointcut.PointcutMethodMatch;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
/**
@@ -116,14 +117,15 @@
private void overridePopulateBindings(ArrayList<AdviceBinding> applicableBindings)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("populate bindings for " + info.getMethod() + " all bindings");
+ final boolean verbose = AOPSystem.getConfiguration().isVerbose();
+ if (verbose && logger.isDebugEnabled()) logger.debug("populate bindings for " + info.getMethod() + " all bindings");
int size = bindings.size();
int minMatchLevel = 1000000;
for (int i = 0 ; i < size ; i++)
{
AdviceBinding binding = bindings.get(i);
PointcutMethodMatch match = pointcutMethodMatches.get(i);
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug(match.getMatchLevel() + " " + match.getMatchedClass().getName() + " " + binding.getPointcut().getExpr() + " : " + binding.getInterceptorFactories().length);
+ if (verbose && logger.isDebugEnabled()) logger.debug(match.getMatchLevel() + " " + match.getMatchedClass().getName() + " " + binding.getPointcut().getExpr() + " : " + binding.getInterceptorFactories().length);
if (minMatchLevel > match.getMatchLevel() && !match.isInstanceOf())
{
@@ -131,7 +133,7 @@
}
}
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("populate bindings for " + info.getMethod() + " actual bindings");
+ if (verbose && logger.isDebugEnabled()) logger.debug("populate bindings for " + info.getMethod() + " actual bindings");
for (int i = 0 ; i < size ; i++)
{
AdviceBinding binding = bindings.get(i);
@@ -139,7 +141,7 @@
if (match.isInstanceOf() || match.getMatchLevel() == minMatchLevel)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug(match.getMatchLevel() + " " + match.getMatchedClass().getName() + " " + binding.getPointcut().getExpr() + " : " + binding.getInterceptorFactories().length);
+ if (verbose && logger.isDebugEnabled()) logger.debug(match.getMatchLevel() + " " + match.getMatchedClass().getName() + " " + binding.getPointcut().getExpr() + " : " + binding.getInterceptorFactories().length);
applyBinding(applicableBindings, binding);
}
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/SuperClassesFirstWeavingStrategy.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/SuperClassesFirstWeavingStrategy.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -25,6 +25,7 @@
import org.jboss.aop.classpool.AOPClassPool;
import org.jboss.aop.instrument.Instrumentor;
import org.jboss.aop.instrument.InstrumentorFactory;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
import javassist.ByteArrayClassPath;
@@ -44,11 +45,12 @@
private static final AOPLogger logger = AOPLogger.getLogger(SuperClassesFirstWeavingStrategy.class);
- private boolean verbose = AspectManager.verbose;
public static final String AOP_PACKAGE = Advised.class.getPackage().getName();
public byte[] translate(AspectManager manager, String className, ClassLoader loader, byte[] classfileBuffer) throws Exception
{
+ final boolean verbose = AOPSystem.getConfiguration().isVerbose();
+
if (isReEntry())
{
return null;
@@ -70,7 +72,7 @@
if (woven != null)
{
pool.lockInCache(woven);
- if (AspectManager.debugClasses)
+ if (AOPSystem.getConfiguration().isDebugClasses())
{
SecurityActions.debugWriteFile(clazz);
}
@@ -123,6 +125,8 @@
private CtClass instrumentClass(AspectManager manager, AOPClassPool pool, CtClass clazz, boolean isLoadedClass) throws NotFoundException, Exception
{
+ final boolean verbose = AOPSystem.getConfiguration().isVerbose();
+
if (pool.isClassLoadedButNotWoven(clazz.getName()))
{
return null;
@@ -186,8 +190,8 @@
Instrumentor instrumentor = InstrumentorFactory.getInstrumentor(
pool,
manager,
- manager.dynamicStrategy.getJoinpointClassifier(),
- manager.dynamicStrategy.getDynamicTransformationObserver(clazz));
+ AOPSystem.getWeaver().getDynamicAOPStrategy().getJoinpointClassifier(),
+ AOPSystem.getWeaver().getDynamicAOPStrategy().getDynamicTransformationObserver(clazz));
if (!Instrumentor.isTransformable(clazz))
{
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/AdviceBinding.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/AdviceBinding.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/AdviceBinding.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -36,6 +36,7 @@
import org.jboss.aop.pointcut.ast.ASTCFlowExpression;
import org.jboss.aop.pointcut.ast.ParseException;
import org.jboss.aop.pointcut.ast.PointcutExpressionParser;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
/**
@@ -327,7 +328,7 @@
*/
public void addAdvisor(Advisor advisor)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("added advisor: " + advisor.getName() + " from binding: " + name);
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("added advisor: " + advisor.getName() + " from binding: " + name);
// Don't hold a direct reference to an advisor because of undeploy and redeploy. Use WeakRefrences because
// we may be having in the future an Advisor per instance.
synchronized (advisors)
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/AspectFactoryWithClassLoaderSupport.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/AspectFactoryWithClassLoaderSupport.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/AspectFactoryWithClassLoaderSupport.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -23,7 +23,7 @@
import java.lang.ref.WeakReference;
-import org.jboss.aop.AspectManager;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
/**
@@ -84,12 +84,12 @@
{
// FIXME ClassLoader - which should we always know the correct classloader?
ClassLoader tcl = SecurityActions.getContextClassLoader();
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Using context classloader " + tcl + " to load aspect " + name);
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("Using context classloader " + tcl + " to load aspect " + name);
return tcl.loadClass(name);
}
else
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Using scoped classloader " + cl + " to load aspect " + name);
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("Using scoped classloader " + cl + " to load aspect " + name);
return cl.loadClass(name);
}
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/ClassifiedBindingAndPointcutCollection.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/ClassifiedBindingAndPointcutCollection.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/ClassifiedBindingAndPointcutCollection.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -32,6 +32,7 @@
import org.jboss.aop.pointcut.PointcutExpression;
import org.jboss.aop.pointcut.PointcutInfo;
import org.jboss.aop.pointcut.PointcutStats;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.BindingClassifier;
import org.jboss.aop.util.UnmodifiableEmptyCollections;
import org.jboss.aop.util.UnmodifiableLinkedHashMap;
@@ -930,7 +931,7 @@
}
else
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Setting all pointcut stats to true");
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("Setting all pointcut stats to true");
// can't be sure so set all
execution = true;
construction = true;
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/GeneratedAdvisorInterceptor.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/GeneratedAdvisorInterceptor.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/GeneratedAdvisorInterceptor.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -25,7 +25,6 @@
import java.lang.reflect.Modifier;
import org.jboss.aop.Advisor;
-import org.jboss.aop.AspectManager;
import org.jboss.aop.ClassAdvisor;
import org.jboss.aop.ClassInstanceAdvisor;
import org.jboss.aop.GeneratedClassAdvisor;
@@ -49,6 +48,7 @@
import org.jboss.aop.joinpoint.MethodInvocation;
import org.jboss.aop.joinpoint.MethodJoinpoint;
import org.jboss.aop.pointcut.ast.ASTCFlowExpression;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
/**
@@ -275,7 +275,7 @@
if (instance == null)
{
//Used by JoinPointGenerator at code generation time
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled())
{
logger.debug("Calling create on PER_JOINPOINT scoped AspectFactory with no InstanceAdvisor as part of setup");
}
@@ -320,7 +320,7 @@
if (ia == null)
{
//Used by JoinPointGenerator at code generation time
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled())
{
logger.debug("Calling create on PER_INSTANCE scoped AspectFactory with no InstanceAdvisor as part of setup");
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/GenericAspectFactory.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/GenericAspectFactory.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/GenericAspectFactory.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -30,9 +30,9 @@
import java.lang.reflect.Method;
import org.jboss.aop.Advisor;
-import org.jboss.aop.AspectManager;
import org.jboss.aop.InstanceAdvisor;
import org.jboss.aop.joinpoint.Joinpoint;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -310,7 +310,7 @@
{
if (advisor == null)
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled())
{
logger.debug("Ignoring attempt to set advisor attribute on PER_VM scoped aspect/interceptor: " + classname);
}
@@ -333,7 +333,7 @@
{
if (jp == null)
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled())
{
logger.debug("Ignoring attempt to set joinpoint attribute on aspect/interceptor: " + classname + " which is not scoped PER_JOINPOINT");
}
@@ -356,7 +356,7 @@
{
if (instanceAdvisor == null)
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled())
{
logger.debug("Ignoring attempt to set instance advisor attribute on aspect/interceptor: " + classname + " which is not scoped PER_INSTANCE or PER_JOINPOINT");
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/annotation/AdviceMethodFactory.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/annotation/AdviceMethodFactory.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/advice/annotation/AdviceMethodFactory.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -34,12 +34,12 @@
import java.util.ListIterator;
import java.util.Map;
-import org.jboss.aop.AspectManager;
import org.jboss.aop.advice.AdviceMethodProperties;
import org.jboss.aop.advice.AdviceType;
import org.jboss.aop.advice.InvalidAdviceException;
import org.jboss.aop.advice.NoMatchingAdviceException;
import org.jboss.aop.advice.annotation.assignability.DegreeAlgorithm;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.ReflectUtils;
/**
@@ -138,7 +138,7 @@
{
return true;
}
- if (AspectManager.verbose)
+ if (AOPSystem.getConfiguration().isVerbose())
{
appendNewMatchingMessage(method, "argument 0 is not assignable from ");
appendMatchingMessage(properties.getInvocationType());
@@ -361,7 +361,7 @@
if (methods.length == 0)
{
- if (AspectManager.verbose)
+ if (AOPSystem.getConfiguration().isVerbose())
{
throw new NoMatchingAdviceException(properties, adviceType,
": no method named " + properties.getAdviceName() +
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/annotation/PortableAnnotationElement.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/annotation/PortableAnnotationElement.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/annotation/PortableAnnotationElement.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -35,6 +35,7 @@
import org.jboss.aop.AspectManager;
import org.jboss.annotation.factory.javassist.AnnotationProxy;
import org.jboss.aop.advice.SecurityActions;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.ReflectToJavassist;
import java.lang.annotation.Annotation;
@@ -672,7 +673,7 @@
protected static boolean includeInvisibleAnnotation(String annotation)
{
- for(String includedAnnotation : AspectManager.instance().getIncludedInvisibleAnnotations())
+ for(String includedAnnotation : AOPSystem.getConfiguration().getIncludedInvisibleAnnotations())
{
if(includedAnnotation.equals("*") || annotation.startsWith(includedAnnotation))
{
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/CallerTransformer.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/CallerTransformer.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/CallerTransformer.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -28,6 +28,7 @@
import org.jboss.aop.AspectManager;
import org.jboss.aop.ClassAdvisor;
import org.jboss.aop.pointcut.Pointcut;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.Advisable;
import org.jboss.aop.util.JavassistMethodHashing;
import org.jboss.aop.util.logging.AOPLogger;
@@ -84,7 +85,7 @@
{
if (!advisor.getManager().isWithin() && !advisor.getManager().isCall() && !advisor.getManager().isWithincode())
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("There are no caller pointcuts!");
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("There are no caller pointcuts!");
return false;
}
CallerExprEditor expr = callerExprEditorFactory(advisor, clazz);
@@ -348,7 +349,7 @@
}
else
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("MethodCall does not match: " + p.getExpr());
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("MethodCall does not match: " + p.getExpr());
}
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/ClassicInstrumentor.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/ClassicInstrumentor.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/ClassicInstrumentor.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -32,6 +32,7 @@
import org.jboss.aop.AspectManager;
import org.jboss.aop.ClassAdvisor;
import org.jboss.aop.classpool.AOPClassPool;
+import org.jboss.aop.spi.AOPSystem;
/**
* Comment
@@ -63,7 +64,7 @@
protected void intitialiseTransformers()
{
- if (AspectManager.optimize)
+ if (AOPSystem.getConfiguration().isOptimize())
{
methodExecutionTransformer = new OptimizedMethodExecutionTransformer(this);
constructorExecutionTransformer = new OptimizedConstructorExecutionTransformer(this);
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/FieldAccessTransformer.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/FieldAccessTransformer.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/FieldAccessTransformer.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -38,9 +38,9 @@
import javassist.expr.ExprEditor;
import javassist.expr.FieldAccess;
-import org.jboss.aop.AspectManager;
import org.jboss.aop.ClassAdvisor;
import org.jboss.aop.classpool.AOPClassPool;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.Advisable;
/**
@@ -69,7 +69,7 @@
protected FieldAccessTransformer(Instrumentor instrumentor)
{
this.instrumentor = instrumentor;
- this.optimize = AspectManager.optimize;
+ this.optimize = AOPSystem.getConfiguration().isOptimize();
this.codifier = new Codifier();
this.classifier = instrumentor.joinpointClassifier;
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/Instrumentor.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/Instrumentor.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/Instrumentor.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -58,6 +58,7 @@
import org.jboss.aop.classpool.AOPClassPoolRepository;
import org.jboss.aop.introduction.AnnotationIntroduction;
import org.jboss.aop.introduction.InterfaceIntroduction;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.Advisable;
import org.jboss.aop.util.CtConstructorComparator;
import org.jboss.aop.util.CtFieldComparator;
@@ -323,6 +324,7 @@
HashSet<Long> addedMethods = new HashSet<Long>();
String[] interfaces = mixin.getInterfaces();
+ final boolean verbose = AOPSystem.getConfiguration().isVerbose();
for (int i = 0; i < interfaces.length; i++)
{
CtClass intf = classPool.get(interfaces[i]);
@@ -348,7 +350,7 @@
}
else
{
- if (AspectManager.verbose)logger.warn(msg);
+ if (verbose)logger.warn(msg);
}
}
// If another interface of this mixin has a duplicate method, then its ok, but don't re-add
@@ -432,12 +434,14 @@
throws Exception
{
boolean changed = false;
+ final boolean verbose = AOPSystem.getConfiguration().isVerbose();
+
for (AnnotationIntroduction introduction : advisor.getManager().getAnnotationIntroductions())
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("**** " + introduction.getOriginalAnnotationExpr() + " invisible: " + introduction.isInvisible() + " expr: " + introduction.getOriginalExpression());
+ if (verbose && logger.isDebugEnabled()) logger.debug("**** " + introduction.getOriginalAnnotationExpr() + " invisible: " + introduction.isInvisible() + " expr: " + introduction.getOriginalExpression());
if (introduction.matches(advisor, clazz))
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug(introduction.getAnnotation() + " binds to " + clazz.getName());
+ if (verbose && logger.isDebugEnabled()) logger.debug(introduction.getAnnotation() + " binds to " + clazz.getName());
javassist.bytecode.annotation.Annotation info = AnnotationInfoCreator.createAnnotationInfo(classPool, clazz.getClassFile2().getConstPool(), introduction.getAnnotation());
if (introduction.isInvisible())
{
@@ -652,7 +656,7 @@
if (AspectManager.suppressReferenceErrors)
{
System.err.println("[warn] Could not find class " + ref + " (or one of its implemented interfaces) that " + clazz.getName() + " references. It may not be in your classpath and you may not be getting field and constructor weaving for this class.");
- if (AspectManager.verbose) e.printStackTrace();
+ if (AOPSystem.getConfiguration().isVerbose()) e.printStackTrace();
continue;
}
else
@@ -733,7 +737,7 @@
{
if (shouldNotTransform(clazz)) return false;
prepareClassForTransformation(clazz);
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("trying to transform " + clazz.getName());
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("trying to transform " + clazz.getName());
DeclareChecker.checkDeclares(manager, clazz, advisor);
@@ -797,7 +801,7 @@
processedClasses.add(clazz);
}
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("was " + clazz.getName() + " converted: " + (basicsSet || converted));
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("was " + clazz.getName() + " converted: " + (basicsSet || converted));
if (basicsSet || converted)
{
@@ -1058,7 +1062,7 @@
if (shouldReplaceArrayAccess)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("[debug] Replacing array access in " + clazz.getName());
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("[debug] Replacing array access in " + clazz.getName());
converter.replaceArrayAccess(classPool.get(ArrayAdvisor.class.getName()), new CodeConverter.DefaultArrayAccessReplacementMethodNames());
}
return shouldReplaceArrayAccess;
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/InstrumentorFactory.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/InstrumentorFactory.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/InstrumentorFactory.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -43,9 +43,9 @@
private static final Class<?>[] CONSTRUCTOR_SIG = new Class[] {AOPClassPool.class, AspectManager.class, JoinpointClassifier.class, DynamicTransformationObserver.class};
- public static void initialise(String property)
+ public static void initialise(boolean verbose, String property)
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (verbose && logger.isDebugEnabled())
{
logger.debug("Passed in instrumentor: " + property);
}
@@ -83,7 +83,7 @@
else
{
instrumentor = InstrumentorEnum.GENERATED_ADVISOR;
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (verbose && logger.isDebugEnabled())
{
logger.debug("Defaulting instrumentor to: " + getInstrumentorName());
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/JoinPointGenerator.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/JoinPointGenerator.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/JoinPointGenerator.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -62,6 +62,7 @@
import org.jboss.aop.joinpoint.JoinPointBean;
import org.jboss.aop.pointcut.ast.ASTCFlowExpression;
import org.jboss.aop.pointcut.ast.ClassExpression;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.JavassistUtils;
import org.jboss.aop.util.ReflectToJavassist;
import org.jboss.aop.util.logging.AOPLogger;
@@ -1287,7 +1288,7 @@
if (superDispatches.length > 2)
{
- if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Too many dispatch() methods found in " + superClass.getName());
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled()) logger.debug("Too many dispatch() methods found in " + superClass.getName());
}
for (int i = 0 ; i < superDispatches.length ; i++)
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/JoinpointSimpleClassifier.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/JoinpointSimpleClassifier.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/JoinpointSimpleClassifier.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -27,8 +27,8 @@
import javassist.NotFoundException;
import org.jboss.aop.Advisor;
-import org.jboss.aop.AspectManager;
import org.jboss.aop.pointcut.Pointcut;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
/**
@@ -57,19 +57,20 @@
*/
protected JoinpointClassification classifyJoinpoint(CtMember member, Advisor advisor, Matcher joinpointMatcher, BindingCollectionAccessor bindingCollectionAccessor) throws NotFoundException
{
+ final boolean verbose = AOPSystem.getConfiguration().isVerbose();
Collection<Pointcut> pointcuts = bindingCollectionAccessor.getPointcuts(advisor);
for (Pointcut pointcut : pointcuts)
{
if (joinpointMatcher.matches(pointcut, advisor, member))
{
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (verbose && logger.isDebugEnabled())
{
logger.debug(member + " matches pointcut: " + pointcut.getExpr());
}
return JoinpointClassification.WRAPPED;
}
}
- if (AspectManager.verbose && logger.isDebugEnabled())
+ if (verbose && logger.isDebugEnabled())
{
logger.debug(member + " matches no pointcuts");
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/TransformerCommon.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/TransformerCommon.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/TransformerCommon.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -39,8 +39,8 @@
import javassist.CtField;
import javassist.NotFoundException;
-import org.jboss.aop.AspectManager;
import org.jboss.aop.classpool.AOPClassPool;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.standalone.Compiler;
/**
@@ -108,7 +108,7 @@
}
}
- if (AspectManager.debugClasses)
+ if (AOPSystem.getConfiguration().isDebugClasses())
{
debugWriteFile(newClass);
}
@@ -299,7 +299,7 @@
{
public Class<?> run() throws Exception
{
- if (AspectManager.debugClasses)
+ if (AOPSystem.getConfiguration().isDebugClasses())
{
clazz.debugWriteFile();
}
@@ -324,7 +324,7 @@
public Class<?> toClass(CtClass clazz, ClassLoader loader, ProtectionDomain pd)
throws CannotCompileException
{
- if (AspectManager.debugClasses)
+ if (AOPSystem.getConfiguration().isDebugClasses())
{
clazz.debugWriteFile();
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/TransformerFactory.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/TransformerFactory.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/instrument/TransformerFactory.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -21,7 +21,7 @@
*/
package org.jboss.aop.instrument;
-import org.jboss.aop.AspectManager;
+import org.jboss.aop.spi.AOPSystem;
/**
* Comment
@@ -34,7 +34,7 @@
public static MethodExecutionTransformer getMethodExecutionTransformer(
Instrumentor instrumentor)
{
- if (AspectManager.optimize)
+ if (AOPSystem.getConfiguration().isOptimize())
{
return new OptimizedMethodExecutionTransformer(instrumentor);
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/introduction/AnnotationIntroduction.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/introduction/AnnotationIntroduction.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/introduction/AnnotationIntroduction.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -21,26 +21,27 @@
*/
package org.jboss.aop.introduction;
+import java.io.StringReader;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
import javassist.CtClass;
import javassist.CtConstructor;
import javassist.CtField;
import javassist.CtMethod;
-import org.jboss.aop.Advisor;
-import org.jboss.aop.AspectManager;
+
import org.jboss.annotation.factory.ast.ASTAnnotation;
import org.jboss.annotation.factory.ast.AnnotationParser;
import org.jboss.annotation.factory.ast.ParseException;
+import org.jboss.aop.Advisor;
import org.jboss.aop.pointcut.AnnotationMatcher;
import org.jboss.aop.pointcut.ast.ASTStart;
import org.jboss.aop.pointcut.ast.TypeExpressionParser;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
import org.jboss.util.StringPropertyReplacer;
-import java.io.StringReader;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
/**
* Comment
*
@@ -95,7 +96,7 @@
originalExpression = expr;
try
{
- if (AspectManager.verbose && logger.isTraceEnabled())
+ if (AOPSystem.getConfiguration().isVerbose() && logger.isTraceEnabled())
{
logger.trace("Creating annotation from " + originalAnnotationExpr);
}
Deleted: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/AbstractManager.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/AbstractManager.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/AbstractManager.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -1,77 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.aop.plugins;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.jboss.aop.pointcut.CFlowStack;
-import org.jboss.aop.spi.Manager;
-import org.jboss.aop.util.UnmodifiableEmptyCollections;
-
-/**
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public class AbstractManager implements Manager
-{
- private final Object lazyCollectionLock = new Object();
-
- protected volatile ConcurrentHashMap<String, CFlowStack> cflowStacks = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
-
- public void addCFlowStack(CFlowStack stack)
- {
- initCflowStacksMap();
- cflowStacks.put(stack.getName(), stack);
- }
-
- public CFlowStack getCFlowStack(String name)
- {
- return cflowStacks.get(name);
- }
-
- public void removeCFlowStack(String name)
- {
- cflowStacks.remove(name);
- }
-
- public Map<String, CFlowStack> getCFlowStacks()
- {
- return Collections.unmodifiableMap(cflowStacks);
- }
-
- protected void initCflowStacksMap()
- {
- if (cflowStacks == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
- {
- synchronized(lazyCollectionLock)
- {
- if (cflowStacks == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
- {
- cflowStacks = new ConcurrentHashMap<String, CFlowStack>();
- }
- }
- }
- }
-}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultAOPSystem.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultAOPSystem.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultAOPSystem.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -22,13 +22,61 @@
package org.jboss.aop.plugins;
import org.jboss.aop.spi.AOPSystem;
+import org.jboss.aop.spi.AbstractAOPSystem;
+import org.jboss.aop.spi.Configuration;
+import org.jboss.aop.spi.Manager;
+import org.jboss.aop.spi.Weaver;
/**
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision: 1.1 $
*/
-public class DefaultAOPSystem extends AOPSystem
+public class DefaultAOPSystem extends AbstractAOPSystem
{
+ private Configuration configuration;
+ private Manager mainManager;
+ private Weaver weaver;
+ public DefaultAOPSystem(AOPSystem system)
+ {
+ super(system);
+ }
+
+ @Override
+ protected void setConfiguration(AOPSystem system, Configuration configuration)
+ {
+ this.configuration = configuration;
+ }
+
+ @Override
+ protected Configuration getConfiguration(AOPSystem system)
+ {
+ return configuration;
+ }
+
+ @Override
+ protected void initRootManager(AOPSystem system)
+ {
+ mainManager = new DefaultManager(configuration);
+ }
+
+ @Override
+ protected Manager getRootManager(AOPSystem system)
+ {
+ return mainManager;
+ }
+
+ @Override
+ protected void initWeaver(AOPSystem system)
+ {
+ weaver = new DefaultWeaver(configuration);
+ }
+
+ @Override
+ protected Weaver getWeaver(AOPSystem system)
+ {
+ return null;
+ }
+
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultConfiguration.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultConfiguration.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultConfiguration.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -26,7 +26,8 @@
import java.util.concurrent.CopyOnWriteArrayList;
import org.jboss.aop.AdvisorFactory;
-import org.jboss.aop.Deployment;
+import org.jboss.aop.ClassLoaderValidation;
+import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
import org.jboss.aop.classpool.AOPClassPoolRepository;
import org.jboss.aop.instrument.InstrumentorFactory;
import org.jboss.aop.pointcut.ast.ClassExpression;
@@ -49,6 +50,8 @@
protected List<String> includedInvisibleAnnotations = new CopyOnWriteArrayList<String>();
private boolean debugClasses;
private boolean maintainAdvisorMethodInterceptors;
+ private AOPClassLoaderScopingPolicy classLoaderScopingPolicy;
+ private ClassLoaderValidation classLoaderValidator;
public DefaultConfiguration()
{
@@ -164,6 +167,26 @@
this.maintainAdvisorMethodInterceptors = maintainMethodInterceptors;
}
+ public AOPClassLoaderScopingPolicy getClassLoaderScopingPolicy()
+ {
+ return classLoaderScopingPolicy;
+ }
+
+ public void setClassLoaderScopingPolicy(AOPClassLoaderScopingPolicy classLoaderScopingPolicy)
+ {
+ this.classLoaderScopingPolicy = classLoaderScopingPolicy;
+ }
+
+ public ClassLoaderValidation getClassLoaderValidator()
+ {
+ return classLoaderValidator;
+ }
+
+ public void setClassLoaderValidator(ClassLoaderValidation classLoaderValidator)
+ {
+ this.classLoaderValidator = classLoaderValidator;
+ }
+
protected void initialise()
{
initialiseOptimized();
@@ -179,12 +202,10 @@
//TODO Make these accessible from AOPFactory?
//If not move them into initialiseXXX methods
String instrument = System.getProperty(INSTRUMENTOR, null);
- InstrumentorFactory.initialise(instrument);
+ InstrumentorFactory.initialise(verbose, instrument);
String advisorName = System.getProperty(ADVISOR, null);
- AdvisorFactory.initialise(advisorName);
-
- Deployment.deploy();
+ AdvisorFactory.initialise(verbose, advisorName);
}
private void initialiseOptimized()
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/LoadInterceptedClassesStrategy.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/LoadInterceptedClassesStrategy.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/LoadInterceptedClassesStrategy.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -19,12 +19,13 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jboss.aop;
+package org.jboss.aop.plugins;
import javassist.CodeConverter;
import javassist.CtClass;
import javassist.CtField;
+import org.jboss.aop.DynamicAOPStrategy;
import org.jboss.aop.instrument.DynamicTransformationObserver;
import org.jboss.aop.instrument.JoinpointClassifier;
import org.jboss.aop.instrument.JoinpointSimpleClassifier;
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/pointcut/MatcherStrategy.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/pointcut/MatcherStrategy.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/pointcut/MatcherStrategy.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -25,10 +25,10 @@
import java.lang.reflect.Method;
import org.jboss.aop.Advisor;
-import org.jboss.aop.AspectManager;
import org.jboss.aop.annotation.AnnotationElement;
import org.jboss.aop.pointcut.ast.ClassExpression;
import org.jboss.aop.proxy.container.ClassProxyContainer;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
/**
@@ -79,7 +79,7 @@
}
catch (ClassNotFoundException e)
{
- if (AspectManager.verbose)
+ if (AOPSystem.getConfiguration().isVerbose())
{
logger.warn("The annotation @" + sub + " referenced in one of your pointcut expressions can not be found");
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -26,6 +26,7 @@
import org.jboss.aop.Advised;
import org.jboss.aop.AspectManager;
import org.jboss.aop.instrument.Untransformable;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.logging.AOPLogger;
/**
@@ -55,7 +56,7 @@
params.setObjectAsSuperClass(true);
params.setTarget(target);
Object proxy = proxyFactory.createAdvisedProxy(params);
- if( AspectManager.verbose && logger.isDebugEnabled())
+ if(AOPSystem.getConfiguration().isVerbose() && logger.isDebugEnabled())
logger.debug("Created proxy: "+proxy.getClass()+"@"+System.identityHashCode(proxy)+" target: "+target.getClass());
return interfaceClass.cast(proxy);
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/AOPSystem.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/AOPSystem.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/AOPSystem.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -21,9 +21,13 @@
*/
package org.jboss.aop.spi;
+import java.lang.reflect.Constructor;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import org.jboss.aop.Deployment;
import org.jboss.aop.util.logging.AOPLogger;
import org.jboss.logging.Logger;
@@ -33,31 +37,82 @@
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision: 1.1 $
*/
-public abstract class AOPSystem
+public final class AOPSystem
{
private static final Logger STATIC_LOGGER = Logger.getLogger(AOPSystem.class);
protected final AOPLogger log = AOPLogger.getLogger(this.getClass());
- protected static final AOPSystem INSTANCE;
+ private static final AOPSystem INSTANCE;
- protected final Configuration CONFIGURATION;
+ /**
+ * The AbstractAOPSystem called by our static methods
+ */
+ private static final AbstractAOPSystem SYSTEM;
+
static
{
- INSTANCE = initialiseAOPSystem();
+ SYSTEM = initialiseAOPSystem();
+ INSTANCE = new AOPSystem();
}
- protected AOPSystem()
+ private AOPSystem()
{
- CONFIGURATION = initialiseConfiguration();
+ System.out.println(SYSTEM);
+ SYSTEM.setConfiguration(INSTANCE, initialiseConfiguration());
+ try
+ {
+ AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
+
+ public Object run() throws Exception
+ {
+ SYSTEM.initRootManager(INSTANCE);
+ SYSTEM.initWeaver(INSTANCE);
+ Deployment.deploy();
+ return null;
+ }});
+ }
+ catch (PrivilegedActionException e)
+ {
+ Throwable t = e.getCause();
+ System.out.println("Error initialising AOP System");
+ t.printStackTrace();
+ throw new RuntimeException(t);
+ }
}
+ /**
+ * Get the Configuration singleton
+ * @return The Configuration singleton
+ */
public static Configuration getConfiguration()
{
- return INSTANCE.CONFIGURATION;
+ return SYSTEM.getConfiguration(INSTANCE);
}
- private static AOPSystem initialiseAOPSystem()
+ /**
+ * Get the root Manager
+ * @return Get the root Manager
+ */
+ public static Manager getRootManager()
{
+ return SYSTEM.getRootManager(INSTANCE);
+ }
+
+ /**
+ * Get the Weaver
+ * @return the Weaver
+ */
+ public static Weaver getWeaver()
+ {
+ return SYSTEM.getWeaver(INSTANCE);
+ }
+
+ /**
+ * Initialises the AOPSystem using class given in the {@link ConfigurationProperties#AOP_SYSTEM}
+ * system property.
+ */
+ private static AbstractAOPSystem initialiseAOPSystem()
+ {
String name = AccessController.doPrivileged(new PrivilegedAction<String>() {
public String run()
{
@@ -67,7 +122,20 @@
try
{
Class<?> clazz = Class.forName(name);
- return (AOPSystem)clazz.newInstance();
+ if (!AbstractAOPSystem.class.isAssignableFrom(clazz))
+ {
+ throw new IllegalStateException(clazz.getName() + " is not an instance of " + AbstractAOPSystem.class.getName());
+ }
+ try
+ {
+ Constructor<?> ctor = clazz.getDeclaredConstructor(AOPSystem.class);
+ return (AbstractAOPSystem)ctor.newInstance(INSTANCE);
+ }
+ catch (Exception e)
+ {
+ throw new IllegalStateException(clazz.getName() + " does not seem to have a public constructor with " +
+ AOPSystem.class.getName() + " as its only argument");
+ }
}
catch (Exception e)
{
@@ -76,7 +144,11 @@
}
}
- private static Configuration initialiseConfiguration()
+ /**
+ * Initialises the AOPSystem using class given in the {@link ConfigurationProperties#AOP_SYSTEM}
+ * system property.
+ */
+ private Configuration initialiseConfiguration()
{
String name = AccessController.doPrivileged(new PrivilegedAction<String>() {
public String run()
@@ -97,5 +169,6 @@
throw new RuntimeException(e);
}
}
-
+
+
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/Configuration.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/Configuration.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/Configuration.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -24,10 +24,14 @@
import java.util.List;
import org.jboss.aop.Advisor;
+import org.jboss.aop.ClassLoaderValidation;
+import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
import org.jboss.aop.pointcut.ast.ClassExpression;
/**
+ * Interface for the singleton Configuration object that contains global
+ * configuration data
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision: 1.1 $
@@ -137,4 +141,37 @@
* @param maintainMethodInterceptors whether Advisor.methodinterceptors should be maintained
*/
void setMaintainAdvisorMethodInterceptors(boolean maintainMethodInterceptors);
+
+ /**
+ * Gets the classloader scoping policy. This is normally only used when running in a managed environment
+ * such as JBoss Application Server
+ * @return The classloader scoping policy
+ */
+ //TODO SPI interface needed for AOPClassLoaderScopingPolicy
+ AOPClassLoaderScopingPolicy getClassLoaderScopingPolicy();
+
+ /**
+ * Sets the classloader scoping policy. This is normally only used when running in a managed environment
+ * such as JBoss Application Server
+ * @param classLoaderScopingPolicy The classloader scoping policy
+ */
+ //TODO SPI interface needed for AOPClassLoaderScopingPolicy
+ void setClassLoaderScopingPolicy(AOPClassLoaderScopingPolicy classLoaderScopingPolicy);
+
+ /**
+ * Gets the classloader validation. This is normally only used whhen running in a managed environment
+ * such as JBoss Application Server
+ * @return The classloader validation
+ */
+ //TODO SPI interface needed for ClassLoaderValidation
+ ClassLoaderValidation getClassLoaderValidator();
+
+ /**
+ * Sets the classloader validation. This is normally only used whhen running in a managed environment
+ * such as JBoss Application Server
+ * @param classLoaderValidator The classloader validation
+ */
+ //TODO SPI interface needed for ClassLoaderValidation
+ void setClassLoaderValidator(ClassLoaderValidation classLoaderValidator);
+
}
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/standalone/Compiler.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/standalone/Compiler.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/standalone/Compiler.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -42,6 +42,7 @@
import org.jboss.aop.AspectManager;
import org.jboss.aop.Deployment;
import org.jboss.aop.instrument.TransformationException;
+import org.jboss.aop.spi.AOPSystem;
/**
* takes jar or class files and adds needed jboss bytecode
@@ -189,9 +190,9 @@
Thread.currentThread().setContextClassLoader(loader);
Deployment.searchClasspath = true; // turn on dynamic finding of DDs
- AspectManager.verbose = verbose;
+ AOPSystem.getConfiguration().setVerbose(verbose);
AspectManager.suppressReferenceErrors = suppress;
- AspectManager.optimize = optimized;
+ AOPSystem.getConfiguration().setOptimize(optimized);
AspectManager.instance();
if (report)
Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/util/JavassistToReflect.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/util/JavassistToReflect.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/util/JavassistToReflect.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -25,7 +25,7 @@
import javassist.CtClass;
import javassist.NotFoundException;
-import org.jboss.aop.AspectManager;
+import org.jboss.aop.spi.AOPSystem;
/**
* Comment
@@ -90,7 +90,7 @@
else
{
//Array initialisers are not supported
- if (AspectManager.debugClasses)
+ if (AOPSystem.getConfiguration().isDebugClasses())
{
return "new " + getArrayClassName(clazz) + "[0].getClass()";
}
Modified: projects/aop/branches/createspi/aop/src/test/java/org/jboss/test/aop/container/ContainerTestCase.java
===================================================================
--- projects/aop/branches/createspi/aop/src/test/java/org/jboss/test/aop/container/ContainerTestCase.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/test/java/org/jboss/test/aop/container/ContainerTestCase.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -34,6 +34,7 @@
import org.jboss.aop.MethodInfo;
import org.jboss.aop.advice.Interceptor;
import org.jboss.aop.joinpoint.MethodInvocation;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.aop.util.MethodHashing;
import org.jboss.test.aop.AOPTestWithSetup;
@@ -73,13 +74,13 @@
public void testMethodInterceptorsPopulated() throws Throwable
{
- AspectManager.maintainAdvisorMethodInterceptors = true;
+ AOPSystem.getConfiguration().setMaintainAdvisorMethodInterceptors(true);
checkMethodInterceptors(true);
}
public void testMethodInterceptorsNotPopulated() throws Throwable
{
- AspectManager.maintainAdvisorMethodInterceptors = false;
+ AOPSystem.getConfiguration().setMaintainAdvisorMethodInterceptors(false);
checkMethodInterceptors(false);
}
Modified: projects/aop/branches/createspi/aop/src/test/java/org/jboss/test/aop/stress/FileScenarioPropertyReader.java
===================================================================
--- projects/aop/branches/createspi/aop/src/test/java/org/jboss/test/aop/stress/FileScenarioPropertyReader.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/aop/src/test/java/org/jboss/test/aop/stress/FileScenarioPropertyReader.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -30,7 +30,7 @@
import java.net.URL;
import java.util.Properties;
-import org.jboss.aop.AspectManager;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.logging.Logger;
/**
@@ -65,7 +65,7 @@
throw new RuntimeException("Could not find config file " + file);
}
- if (AspectManager.verbose)
+ if (AOPSystem.getConfiguration().isVerbose())
{
System.out.println("Could not find test/scenario config file " + file + ". Creating passthrough reader");
}
Modified: projects/aop/branches/createspi/asintegration-core/src/main/java/org/jboss/aop/asintegration/core/AspectManagerServiceDelegate.java
===================================================================
--- projects/aop/branches/createspi/asintegration-core/src/main/java/org/jboss/aop/asintegration/core/AspectManagerServiceDelegate.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/asintegration-core/src/main/java/org/jboss/aop/asintegration/core/AspectManagerServiceDelegate.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -56,6 +56,8 @@
import org.jboss.aop.instrument.TransformerCommon;
import org.jboss.aop.introduction.InterfaceIntroduction;
import org.jboss.aop.pointcut.Pointcut;
+import org.jboss.aop.spi.AOPSystem;
+import org.jboss.aop.spi.Configuration;
import org.jboss.logging.Logger;
import org.jboss.system.server.ServerConfig;
import org.w3c.dom.Document;
@@ -68,6 +70,9 @@
*/
public abstract class AspectManagerServiceDelegate
{
+ //TODO should be injected?
+ Configuration configuration = AOPSystem.getConfiguration();
+
Logger log = Logger.getLogger(AspectManagerServiceDelegate.class);
static {
@@ -152,9 +157,10 @@
/**
* This needs setting to true in AS 4
*/
+ @Deprecated
public void setAspectManagerMaintainAdvisorInterceptors(boolean maintain)
{
- AspectManager.maintainAdvisorMethodInterceptors = maintain;
+ AOPSystem.getConfiguration().setMaintainAdvisorMethodInterceptors(maintain);
}
public void setAspectManager(AspectManager manager)
@@ -237,7 +243,7 @@
throw new FileNotFoundException("Failed to create tmpClassesDir: " + tmpClassesDir.getAbsolutePath());
AspectManager.setClassPoolFactory(createFactory());
- AspectManager.classLoaderValidator = createClassLoaderValidation();
+ configuration.setClassLoaderValidator(createClassLoaderValidation());
// Add the tmp classes dir to our UCL classpath
Deployment.searchClasspath = false; // turn off dynamic finding of DDs
@@ -251,7 +257,7 @@
{
attachTranslator();
}
- AspectManager.setClassLoaderScopingPolicy(integration.createAOPClassLoaderScopingPolicy());
+ configuration.setClassLoaderScopingPolicy(integration.createAOPClassLoaderScopingPolicy());
deployBootstrapXml();
deployBaseXml();
@@ -469,7 +475,7 @@
list.add(tokenizer.nextToken().trim());
}
}
- manager.setExclude(list);
+ configuration.setExclude(list);
}
public String getInclude()
@@ -489,7 +495,7 @@
list.add(tokenizer.nextToken().trim());
}
}
- manager.setInclude(list);
+ configuration.setInclude(list);
}
public String getIgnore()
@@ -509,7 +515,7 @@
list.add(tokenizer.nextToken().trim());
}
}
- manager.setIgnore(list);
+ configuration.setIgnore(list);
}
public String getIncludedInvisibleAnnotations()
@@ -525,7 +531,7 @@
for(String inc : ia.split(","))
iiaList.add(inc.trim());
}
- manager.setIncludedInvisibleAnnotations(iiaList);
+ configuration.setIncludedInvisibleAnnotations(iiaList);
}
@@ -546,19 +552,19 @@
}
/**
- * Set the verbosity of aop logging. It doesn't use log4j
+ * Set the verbosity of aop logging.
*/
public boolean getVerbose()
{
- return AspectManager.verbose;
+ return configuration.isVerbose();
}
/**
- * Set the verbosity of aop logging. It doesn't use log4j
+ * Set the verbosity of aop logging.
*/
public void setVerbose(boolean verbose)
{
- AspectManager.verbose = verbose;
+ configuration.setVerbose(verbose);
}
/**
@@ -566,7 +572,7 @@
*/
public boolean getOptimized()
{
- return AspectManager.optimize;
+ return configuration.isOptimize();
}
/**
@@ -574,7 +580,7 @@
*/
public void setOptimized(boolean verbose)
{
- AspectManager.optimize = verbose;
+ configuration.setOptimize(verbose);
}
/**
@@ -793,7 +799,7 @@
public void setInstrumentor(String instrumentor)
{
- InstrumentorFactory.initialise(instrumentor);
+ InstrumentorFactory.initialise(AOPSystem.getConfiguration().isVerbose(), instrumentor);
}
Modified: projects/aop/branches/createspi/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/AOPClassLoaderInitializer.java
===================================================================
--- projects/aop/branches/createspi/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/AOPClassLoaderInitializer.java 2009-02-20 11:49:30 UTC (rev 84504)
+++ projects/aop/branches/createspi/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/AOPClassLoaderInitializer.java 2009-02-20 11:50:52 UTC (rev 84505)
@@ -23,6 +23,7 @@
import org.jboss.aop.AspectManager;
import org.jboss.aop.Domain;
+import org.jboss.aop.spi.AOPSystem;
import org.jboss.classloader.spi.ClassLoaderDomain;
import org.jboss.classloader.spi.ClassLoaderSystem;
import org.jboss.classloading.spi.dependency.Module;
@@ -37,7 +38,7 @@
{
public static Domain initializeForUnit(DeploymentUnit unit)
{
- AOPClassLoaderScopingPolicyWithRegistry policy = (AOPClassLoaderScopingPolicyWithRegistry)AspectManager.getClassLoaderScopingPolicy();
+ AOPClassLoaderScopingPolicyWithRegistry policy = (AOPClassLoaderScopingPolicyWithRegistry)AOPSystem.getConfiguration().getClassLoaderScopingPolicy();
registerLoaders(policy, unit);
Domain domain = getDomain(policy.getRegistry(), unit);
@@ -46,7 +47,7 @@
public static void unregisterLoaders(AspectManager manager, DeploymentUnit unit)
{
- AOPClassLoaderScopingPolicyWithRegistry policy = (AOPClassLoaderScopingPolicyWithRegistry)AspectManager.getClassLoaderScopingPolicy();
+ AOPClassLoaderScopingPolicyWithRegistry policy = (AOPClassLoaderScopingPolicyWithRegistry)AOPSystem.getConfiguration().getClassLoaderScopingPolicy();
DomainRegistry registry = policy.getRegistry();
if (unit.isTopLevel() || unit.getParent().getClassLoader() != unit.getClassLoader())
{
More information about the jboss-cvs-commits
mailing list