[jboss-cvs] JBossAS SVN: r103199 - in trunk: server/src/main/java/org/jboss/ejb/deployers and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 29 14:53:26 EDT 2010


Author: jaikiran
Date: 2010-03-29 14:53:25 -0400 (Mon, 29 Mar 2010)
New Revision: 103199

Modified:
   trunk/component-matrix/pom.xml
   trunk/server/src/main/java/org/jboss/ejb/deployers/MergedJBossMetaDataDeployer.java
Log:
JBAS-7858 Interceptor metadata processing logic added to MergedJBossMetadataDeployer and upgraded jboss-metadata-ejb to 2.0.0-alpha-9

Modified: trunk/component-matrix/pom.xml
===================================================================
--- trunk/component-matrix/pom.xml	2010-03-29 18:43:38 UTC (rev 103198)
+++ trunk/component-matrix/pom.xml	2010-03-29 18:53:25 UTC (rev 103199)
@@ -94,7 +94,7 @@
     <version.org.jboss.metadata.client>2.0.0.Alpha2</version.org.jboss.metadata.client>
     <version.org.jboss.metadata.common>2.0.0.Alpha14</version.org.jboss.metadata.common>
     <version.org.jboss.metadata.ear>2.0.0.Alpha3</version.org.jboss.metadata.ear>
-    <version.org.jboss.metadata.ejb>2.0.0-alpha-8</version.org.jboss.metadata.ejb>
+    <version.org.jboss.metadata.ejb>2.0.0-alpha-9</version.org.jboss.metadata.ejb>
     <version.org.jboss.metadata.rar>2.0.0.Alpha</version.org.jboss.metadata.rar>
     <version.org.jboss.metadata.war>2.0.0.Alpha14</version.org.jboss.metadata.war>
     <version.org.jboss.mod_cluster>1.1.0.Beta1</version.org.jboss.mod_cluster>

Modified: trunk/server/src/main/java/org/jboss/ejb/deployers/MergedJBossMetaDataDeployer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/ejb/deployers/MergedJBossMetaDataDeployer.java	2010-03-29 18:43:38 UTC (rev 103198)
+++ trunk/server/src/main/java/org/jboss/ejb/deployers/MergedJBossMetaDataDeployer.java	2010-03-29 18:53:25 UTC (rev 103199)
@@ -21,16 +21,24 @@
  */
 package org.jboss.ejb.deployers;
 
+import java.lang.reflect.AnnotatedElement;
+import java.util.Collection;
+import java.util.HashSet;
+
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.deployer.DeploymentStages;
 import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployment.AnnotationMetaDataDeployer;
+import org.jboss.metadata.annotation.creator.ejb.InterceptorMetaDataCreator;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
 import org.jboss.metadata.ear.jboss.JBossAppMetaData;
 import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
 import org.jboss.metadata.ejb.jboss.JBossAssemblyDescriptorMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.spec.EjbJarMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorsMetaData;
 import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
 
 /**
@@ -125,9 +133,44 @@
         }
       }
 
+      // Create interceptors metadata by processing interceptor classes (from the merged
+      // jboss metadata)
+      Collection<String> interceptorClassNames = JBossMetaData.getAllInterceptorClasses(mergedMetaData);
+      Collection<Class<?>> interceptorClasses = null;
+      try
+      {
+         interceptorClasses = this.loadClasses(unit.getClassLoader(), interceptorClassNames);
+      }
+      catch (ClassNotFoundException cnfe)
+      {
+         throw new DeploymentException("Exception while loading interceptor classes for unit " + unit.getName(), cnfe);
+      }
+      // Process the interceptor classes
+      AnnotationFinder<AnnotatedElement> annotationFinder = new DefaultAnnotationFinder<AnnotatedElement>();
+      InterceptorMetaDataCreator interceptorMetaDataCreator = new InterceptorMetaDataCreator(annotationFinder);
+      // create interceptors metadata from the interceptor classes
+      InterceptorsMetaData annotatedInterceptorsMetaData = interceptorMetaDataCreator.create(interceptorClasses);
+
+      InterceptorsMetaData mergedInterceptorsMetaData = new InterceptorsMetaData();
+      // merge the interceptors metadata 
+      mergedInterceptorsMetaData.merge(mergedMetaData.getInterceptors(), annotatedInterceptorsMetaData);
+
+      // now set the merged interceptors metadata into the merged jboss metadata
+      mergedMetaData.setInterceptors(mergedInterceptorsMetaData);
+      
       // Output the merged JBossMetaData
       unit.getTransientManagedObjects().addAttachment(JBossMetaData.class, mergedMetaData);
       unit.addAttachment(EJB_MERGED_ATTACHMENT_NAME, mergedMetaData, JBossMetaData.class);
    }
+   
+   private Collection<Class<?>> loadClasses(ClassLoader cl, Iterable<String> classNames) throws ClassNotFoundException
+   {
+      Collection<Class<?>> interceptorClasses = new HashSet<Class<?>>();
+      for (String interceptorClassName : classNames)
+      {
+         interceptorClasses.add(cl.loadClass(interceptorClassName));
+      }
+      return interceptorClasses;
+   }
 
 }




More information about the jboss-cvs-commits mailing list