[jboss-cvs] JBossAS SVN: r82671 - projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 7 13:08:56 EST 2009


Author: petemuir
Date: 2009-01-07 13:08:56 -0500 (Wed, 07 Jan 2009)
New Revision: 82671

Modified:
   projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WBEjbInterceptorMetadataDeployer.java
Log:
WBRI-86: Add interceptor binding

Modified: projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WBEjbInterceptorMetadataDeployer.java
===================================================================
--- projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WBEjbInterceptorMetadataDeployer.java	2009-01-07 18:05:36 UTC (rev 82670)
+++ projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WBEjbInterceptorMetadataDeployer.java	2009-01-07 18:08:56 UTC (rev 82671)
@@ -25,9 +25,13 @@
 import org.jboss.deployers.spi.deployer.DeploymentStages;
 import org.jboss.deployers.vfs.spi.deployer.AbstractVFSRealDeployer;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.metadata.ejb.jboss.JBossAssemblyDescriptorMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
 import org.jboss.metadata.ejb.spec.EjbJar3xMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorBindingMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorBindingsMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorClassesMetaData;
 import org.jboss.metadata.ejb.spec.InterceptorMetaData;
 import org.jboss.metadata.ejb.spec.InterceptorsMetaData;
 import org.jboss.webbeans.integration.microcontainer.deployer.ext.JBossWebBeansMetaData;
@@ -40,6 +44,9 @@
 @SuppressWarnings("deprecation")
 public class WBEjbInterceptorMetadataDeployer extends AbstractVFSRealDeployer
 {
+   
+   private static final String INTERCEPTOR_CLASS_NAME = "org.jboss.webbeans.ejb.SessionBeanInterceptor";
+   
    private InterceptorMetaData SBI;
 
    public WBEjbInterceptorMetadataDeployer()
@@ -51,7 +58,7 @@
       setStage(DeploymentStages.POST_CLASSLOADER);
       // create interceptor metadata instance
       SBI = new InterceptorMetaData();
-      SBI.setInterceptorClass("org.jboss.webbeans.ejb.SessionBeanInterceptor");
+      SBI.setInterceptorClass(INTERCEPTOR_CLASS_NAME);
    }
 
    public void deploy(VFSDeploymentUnit unit) throws DeploymentException
@@ -66,12 +73,41 @@
             imd.add(SBI);
             EjbJar3xMetaData ejmd = new EjbJar30MetaData();
             ejmd.setInterceptors(imd);
+            
             jbmd.merge(null, ejmd);
          }
          else
          {
             interceptors.add(SBI);
          }
+         
+         JBossAssemblyDescriptorMetaData assemblyDescriptor = jbmd.getAssemblyDescriptor();
+         if (assemblyDescriptor == null)
+         {
+            assemblyDescriptor = new JBossAssemblyDescriptorMetaData();
+            jbmd.setAssemblyDescriptor(assemblyDescriptor);
+         }
+         bindInterceptorToEjbs(assemblyDescriptor);
       }
    }
+   
+   private void bindInterceptorToEjbs(JBossAssemblyDescriptorMetaData assemblyDescriptor)
+   {
+      InterceptorBindingMetaData interceptorBinding = new InterceptorBindingMetaData();
+      InterceptorClassesMetaData interceptorClasses = new InterceptorClassesMetaData();
+      interceptorClasses.add(INTERCEPTOR_CLASS_NAME);
+      interceptorBinding.setInterceptorClasses(interceptorClasses);
+      interceptorBinding.setEjbName("*");
+      if (assemblyDescriptor.getInterceptorBindings() == null)
+      {
+         InterceptorBindingsMetaData interceptorBindings = new InterceptorBindingsMetaData();
+         interceptorBindings.add(interceptorBinding);
+         assemblyDescriptor.setInterceptorBindings(interceptorBindings);
+      }
+      else
+      {
+         assemblyDescriptor.getInterceptorBindings().add(interceptorBinding);
+      }
+   }
+   
 }
\ No newline at end of file




More information about the jboss-cvs-commits mailing list