[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