[jboss-cvs] JBossAS SVN: r68649 - projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/proxy/aop.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 7 04:43:42 EST 2008


Author: wolfc
Date: 2008-01-07 04:43:42 -0500 (Mon, 07 Jan 2008)
New Revision: 68649

Modified:
   projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/proxy/aop/ManagedObjectContainer.java
Log:
Process annotation introductions

Modified: projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/proxy/aop/ManagedObjectContainer.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/proxy/aop/ManagedObjectContainer.java	2008-01-07 08:55:29 UTC (rev 68648)
+++ projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/proxy/aop/ManagedObjectContainer.java	2008-01-07 09:43:42 UTC (rev 68649)
@@ -21,6 +21,8 @@
  */
 package org.jboss.ejb3.interceptors.proxy.aop;
 
+import java.util.List;
+
 import org.jboss.aop.AspectManager;
 import org.jboss.aop.ClassAdvisor;
 import org.jboss.aop.Domain;
@@ -28,6 +30,7 @@
 import org.jboss.aop.InstanceAdvisorDelegate;
 import org.jboss.aop.advice.AspectDefinition;
 import org.jboss.aop.advice.Interceptor;
+import org.jboss.aop.introduction.AnnotationIntroduction;
 import org.jboss.aop.joinpoint.Joinpoint;
 import org.jboss.aop.metadata.SimpleMetaData;
 import org.jboss.logging.Logger;
@@ -54,6 +57,35 @@
       this.instanceAdvisorDelegate = new InstanceAdvisorDelegate(this, this);
    }
 
+   private void deployAnnotationIntroduction(AnnotationIntroduction introduction)
+   {
+      // Poke introductions into the overrides
+      deployAnnotationOverride(introduction);
+   }
+   
+   @SuppressWarnings("unchecked")
+   private void deployAnnotationIntroductions()
+   {
+      List<AnnotationIntroduction> annotationIntroductions = getManager().getAnnotationIntroductions();
+      if (annotationIntroductions != null)
+      {
+         for(AnnotationIntroduction ai : annotationIntroductions)
+         {
+            deployAnnotationIntroduction(ai);
+         }
+      }
+   }
+
+   @Override
+   protected void rebindClassMetaData()
+   {
+      super.rebindClassMetaData();
+      
+      // Why does AOP not process the annotation introductions!?
+      deployAnnotationIntroductions();
+   }
+   
+   
    public void appendInterceptor(Interceptor interceptor)
    {
       throw new RuntimeException("NYI");




More information about the jboss-cvs-commits mailing list