[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