[jboss-cvs] JBossAS SVN: r59019 - in projects/aop/trunk: aop/src/main/org/jboss/aop aop/src/main/org/jboss/aop/proxy/container build
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Dec 13 18:46:05 EST 2006
Author: adrian at jboss.org
Date: 2006-12-13 18:45:58 -0500 (Wed, 13 Dec 2006)
New Revision: 59019
Modified:
projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java
projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java
projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/InstanceProxyContainer.java
projects/aop/trunk/build/build-thirdparty.xml
Log:
[JBMICROCONT-75] - AOP/MC MetaData integration
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java 2006-12-13 21:14:03 UTC (rev 59018)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java 2006-12-13 23:45:58 UTC (rev 59019)
@@ -43,7 +43,6 @@
import javassist.CtField;
import javassist.CtMethod;
-import org.jboss.aop.ClassAdvisor.RebuildInterceptorsAction;
import org.jboss.aop.advice.AdviceBinding;
import org.jboss.aop.advice.AspectDefinition;
import org.jboss.aop.advice.CFlowInterceptor;
@@ -68,9 +67,11 @@
import org.jboss.aop.metadata.MethodMetaData;
import org.jboss.aop.metadata.SimpleMetaData;
import org.jboss.aop.pointcut.PointcutMethodMatch;
-import org.jboss.aop.util.MethodHashing;
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.signature.MethodSignature;
import org.jboss.repository.spi.MetaDataContext;
import org.jboss.util.NestedRuntimeException;
+import org.jboss.util.NotImplementedException;
import EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap;
import EDU.oswego.cs.dl.util.concurrent.CopyOnWriteArraySet;
@@ -156,8 +157,8 @@
protected ConstructionInfo[] constructionInfos;
- //FIXME - make metaDataContext a MetaDataContext once MC 2.0 is released
- MetaDataContext metadataContext;
+ /** The meta data */
+ private MetaData metadata;
public Advisor(String name, AspectManager manager)
{
@@ -332,9 +333,11 @@
public Object resolveAnnotation(Class annotation)
{
- if (metadataContext != null)
+ if (metadata != null)
{
- Object value = metadataContext.getAnnotation(annotation);
+ Object value = metadata.getAnnotation(annotation);
+ // FIXME The metadata should already include the class annotations
+ // so we should just return this result
if (value != null) return value;
}
@@ -371,13 +374,15 @@
try
{
- if (metadataContext != null)
+ if (metadata != null)
{
if (annotationClass == null)
{
annotationClass = Thread.currentThread().getContextClassLoader().loadClass(annotation);
}
- if (metadataContext.hasAnnotation(annotationClass)) return true;
+ // FIXME The metadata should already include the class annotations
+ // so we should just return this result
+ if (metadata.isAnnotationPresent(annotationClass)) return true;
}
}
catch (ClassNotFoundException e)
@@ -409,14 +414,17 @@
public Object resolveAnnotation(long hash, Method m, Class annotation)
{
- if (metadataContext != null)
+ if (metadata != null)
{
- if (hash == 0)
+ MethodSignature signature = new MethodSignature(m.getName(), m.getParameterTypes());
+ MetaData methodMD = metadata.getComponentMetaData(signature);
+ if (methodMD != null)
{
- hash = MethodHashing.calculateHash(m);
+ // FIXME The metadata should already include the class annotations
+ // so we should just return this result
+ Object val = methodMD.getAnnotation(annotation);
+ if (val != null) return val;
}
- Object val = metadataContext.getAnnotationForMethod(hash, annotation);
- if (val != null) return val;
}
if (annotations.isDisabled(m,annotation))
@@ -475,18 +483,19 @@
try
{
- if (metadataContext != null)
+ if (metadata != null)
{
- if (hash == 0)
- {
- hash = MethodHashing.methodHash(m);
- }
if (annotationClass == null)
+ annotationClass = Thread.currentThread().getContextClassLoader().loadClass(annotation);
+ // FIXME The metadata should already include the class annotations
+ // so we should just return this result
+ MethodSignature signature = new MethodSignature(m.getName(), m.getParameterTypes());
+ MetaData methodMD = metadata.getComponentMetaData(signature);
+ if (methodMD != null)
{
- annotationClass = Thread.currentThread().getContextClassLoader().loadClass(annotation);
+ if (methodMD.isAnnotationPresent(annotationClass))
+ return true;
}
- if (metadataContext.hasAnnotationForMethod(hash, annotationClass))
- return true;
}
}
catch (ClassNotFoundException e)
@@ -574,16 +583,39 @@
return AnnotationElement.isAnyAnnotationPresent(member, annotation);
}
+ @Deprecated // use getMetaData
public MetaDataContext getMetadataContext()
{
- return metadataContext;
+ throw new NotImplementedException("getMetaDataContext");
}
+ @Deprecated // use setMetaData
public void setMetadataContext(/*MetaDataContext*/ Object metadataContext)
{
- this.metadataContext = (MetaDataContext)metadataContext;
+ throw new NotImplementedException("setMetaDataContext");
}
+ /**
+ * Get the metadata
+ *
+ * @return the metadata
+ */
+ public MetaData getMetadata()
+ {
+ return metadata;
+ }
+
+ /**
+ * Set the metadata
+ *
+ * FIXME why does this have java.lang.Object signature?
+ * @param metadata the metadata
+ */
+ public void setMetadata(/*MetaData*/ Object metadata)
+ {
+ this.metadata = (MetaData) metadata;
+ }
+
public String getName()
{
return name;
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java 2006-12-13 21:14:03 UTC (rev 59018)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java 2006-12-13 23:45:58 UTC (rev 59019)
@@ -36,7 +36,7 @@
private Class proxiedClass;
private Object target;
//FIXME convert back to MetaDataContext once the mc 2.0 has been released
- //private MetaDataContext metaDataContext;
+ //private MetaData metaDataContext;
private Object metaDataContext;
private Class[] interfaces;
private AOPProxyFactoryMixin[] mixins;
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/InstanceProxyContainer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/InstanceProxyContainer.java 2006-12-13 21:14:03 UTC (rev 59018)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/InstanceProxyContainer.java 2006-12-13 23:45:58 UTC (rev 59019)
@@ -45,12 +45,12 @@
Advisor classAdvisor;
InstanceAdvisorDelegate delegate;
- public InstanceProxyContainer(String name, ProxyAdvisorDomain instanceDomain, Advisor classAdvisor, /*MetaDataContext*/ Object metaDataContext)
+ public InstanceProxyContainer(String name, ProxyAdvisorDomain instanceDomain, Advisor classAdvisor, /*MetaData*/ Object metaData)
{
super(name, instanceDomain);
this.classAdvisor = classAdvisor;
instanceDomain.setAdvisor(this);
- setMetadataContext(metaDataContext);
+ setMetadata(metaData);
delegate = new InstanceAdvisorDelegate(classAdvisor, this);
delegate.initialize();
initialise(classAdvisor.getClazz());
Modified: projects/aop/trunk/build/build-thirdparty.xml
===================================================================
--- projects/aop/trunk/build/build-thirdparty.xml 2006-12-13 21:14:03 UTC (rev 59018)
+++ projects/aop/trunk/build/build-thirdparty.xml 2006-12-13 23:45:58 UTC (rev 59019)
@@ -52,7 +52,7 @@
<componentref name="jboss/common-logging-log4j" version="2.0.1.GA"/>
<componentref name="jboss/common-logging-spi" version="2.0.1.GA"/>
<componentref name="jboss/jbossretro" version="1.0.4.GA"/>
- <componentref name="jboss/microcontainer" version="snapshot"/>
+ <componentref name="jboss/microcontainer" version="snapshot-metadata"/>
<componentref name="jboss/microcontainer14" version="snapshot"/>
<componentref name="jboss/profiler/jvmti" version="1.0.0.CR5"/>
<componentref name="jboss/test" version="snapshot"/>
More information about the jboss-cvs-commits
mailing list