[jboss-cvs] JBossAS SVN: r100062 - in projects/weld-int/trunk/deployer/src: test/java/org/jboss/test/deployers/test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jan 28 12:22:05 EST 2010
Author: pete.muir at jboss.org
Date: 2010-01-28 12:22:04 -0500 (Thu, 28 Jan 2010)
New Revision: 100062
Modified:
projects/weld-int/trunk/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldEjbInterceptorMetadataDeployer.java
projects/weld-int/trunk/deployer/src/test/java/org/jboss/test/deployers/test/PostDeployersTestCase.java
Log:
WELD-15
Modified: projects/weld-int/trunk/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldEjbInterceptorMetadataDeployer.java
===================================================================
--- projects/weld-int/trunk/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldEjbInterceptorMetadataDeployer.java 2010-01-28 17:12:25 UTC (rev 100061)
+++ projects/weld-int/trunk/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldEjbInterceptorMetadataDeployer.java 2010-01-28 17:22:04 UTC (rev 100062)
@@ -28,6 +28,8 @@
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.AroundInvokeMetaData;
+import org.jboss.metadata.ejb.spec.AroundInvokesMetaData;
import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
import org.jboss.metadata.ejb.spec.EjbJar3xMetaData;
import org.jboss.metadata.ejb.spec.InterceptorBindingMetaData;
@@ -40,40 +42,55 @@
/**
* Adds wb custom interceptor to ejb deployments.
- *
+ *
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
*/
@SuppressWarnings("deprecation")
public class WeldEjbInterceptorMetadataDeployer extends WeldAwareMetadataDeployer<JBossMetaData>
{
- public static final String CONTEXT_INTERCEPTOR_CLASS_NAME = "org.jboss.weld.integration.ejb.SessionBeanInterceptor";
+ public static final String INJECTION_INTERCEPTOR_CLASS_NAME = "org.jboss.weld.integration.ejb.SessionBeanInterceptor";
+ public static final String CONTEXT_INTERCEPTOR_CLASS_NAME = "org.jboss.weld.ejb.SessionBeanInterceptor";
public static final String BINDINGS_INTERCEPTOR_CLASS_NAME = "org.jboss.weld.integration.ejb.interceptor.Jsr299BindingsInterceptor";
- private InterceptorMetaData SBI;
- private InterceptorMetaData BIND;
- private InterceptorBindingMetaData CONTEXT_IBMD;
- private InterceptorBindingMetaData BINDINGS_IMDB;
+ private InterceptorMetaData injectionIMD;
+ private InterceptorMetaData bindingsIMD;
+ private InterceptorMetaData contextIMD;
+ private InterceptorBindingMetaData injectionIBMD;
+ private InterceptorBindingMetaData bindingsIBMD;
+ private InterceptorBindingMetaData contextIBMD;
-
public WeldEjbInterceptorMetadataDeployer()
{
super(JBossMetaData.class, true);
-
+
addInput(DeployersUtils.WELD_FILES);
addInput("merged." + JBossMetaData.class.getName());
setStage(DeploymentStages.POST_CLASSLOADER);
// create interceptor metadata instance for session beans
- SBI = new InterceptorMetaData();
- SBI.setInterceptorClass(CONTEXT_INTERCEPTOR_CLASS_NAME);
+ injectionIMD = new InterceptorMetaData();
+ injectionIMD.setInterceptorClass(INJECTION_INTERCEPTOR_CLASS_NAME);
+ contextIMD = new InterceptorMetaData();
+ contextIMD.setInterceptorClass(CONTEXT_INTERCEPTOR_CLASS_NAME);
+
+ if (contextIMD.getAroundInvokes() == null)
+ {
+ contextIMD.setAroundInvokes(new AroundInvokesMetaData());
+ }
+ AroundInvokeMetaData aroundInvokeMetaData = new AroundInvokeMetaData();
+ aroundInvokeMetaData.setClassName(CONTEXT_INTERCEPTOR_CLASS_NAME);
+ aroundInvokeMetaData.setMethodName("aroundInvoke");
+ contextIMD.getAroundInvokes().add(aroundInvokeMetaData);
+
// create interceptor metadata instance for JSR-299 specific bindings
- BIND = new InterceptorMetaData();
- BIND.setInterceptorClass(BINDINGS_INTERCEPTOR_CLASS_NAME);
+ bindingsIMD = new InterceptorMetaData();
+ bindingsIMD.setInterceptorClass(BINDINGS_INTERCEPTOR_CLASS_NAME);
// create interceptor binding metadata instance
- CONTEXT_IBMD = createInterceptorBindingMetadata(CONTEXT_INTERCEPTOR_CLASS_NAME);
- BINDINGS_IMDB = createInterceptorBindingMetadata(BINDINGS_INTERCEPTOR_CLASS_NAME);
+ injectionIBMD = createInterceptorBindingMetadata(INJECTION_INTERCEPTOR_CLASS_NAME);
+ bindingsIBMD = createInterceptorBindingMetadata(BINDINGS_INTERCEPTOR_CLASS_NAME);
+ contextIBMD = createInterceptorBindingMetadata(CONTEXT_INTERCEPTOR_CLASS_NAME);
}
@@ -87,24 +104,20 @@
return ibmd;
}
+ @Override
protected void internalDeploy(VFSDeploymentUnit unit, JBossMetaData jbmd, VirtualFile wbXml) throws DeploymentException
{
- InterceptorsMetaData interceptors = jbmd.getInterceptors();
- if (interceptors == null)
+ if (jbmd.getInterceptors() == null)
{
InterceptorsMetaData imd = new InterceptorsMetaData();
- imd.add(SBI);
- imd.add(BIND);
EjbJar3xMetaData ejmd = new EjbJar30MetaData();
ejmd.setInterceptors(imd);
-
jbmd.merge(null, ejmd);
}
- else
- {
- interceptors.add(SBI); // clone?
- interceptors.add(BIND);
- }
+ InterceptorsMetaData interceptors = jbmd.getInterceptors();
+ interceptors.add(injectionIMD); // clone?
+ interceptors.add(bindingsIMD);
+ interceptors.add(contextIMD);
JBossAssemblyDescriptorMetaData assemblyDescriptor = jbmd.getAssemblyDescriptor();
if (assemblyDescriptor == null)
@@ -119,26 +132,30 @@
assemblyDescriptor.setInterceptorBindings(interceptorBindings);
}
// Add this as the first binding in the list so that it is called first...
- interceptorBindings.add(0, CONTEXT_IBMD); // clone?
+ interceptorBindings.add(contextIBMD);
+ interceptorBindings.add(0, injectionIBMD);
- //Add JSR-299 binding interceptor as the last (all others have to be called first)
- interceptorBindings.add(BINDINGS_IMDB);
+ // Add JSR-299 binding interceptor as the last (all others have to be
+ // called first)
+ interceptorBindings.add(bindingsIBMD);
// Check to see there is a defined order; if we aren't first, warn
for (InterceptorBindingMetaData interceptorBinding : interceptorBindings)
{
- if (interceptorBinding.getInterceptorOrder() != null && ! interceptorBinding.getInterceptorOrder().isEmpty())
+ if (interceptorBinding.getInterceptorOrder() != null && !interceptorBinding.getInterceptorOrder().isEmpty())
{
- if (!CONTEXT_INTERCEPTOR_CLASS_NAME.equals(interceptorBinding.getInterceptorOrder().iterator().next()))
+ if (!INJECTION_INTERCEPTOR_CLASS_NAME.equals(interceptorBinding.getInterceptorOrder().iterator().next()))
{
- log.warn("The Web Beans SessionnBeanInterceptor is not the inner most EJB interceptor in this deployment. JSR299 injection may not work correctly. Specify " + CONTEXT_INTERCEPTOR_CLASS_NAME + " as the first interceptor in the interceptor ordering for " + interceptorBinding.getEjbName());
+ log.warn("The Web Beans SessionnBeanInterceptor is not the inner most EJB interceptor in this deployment. JSR299 injection may not work correctly. Specify " + INJECTION_INTERCEPTOR_CLASS_NAME + " as the first interceptor in the interceptor ordering for " + interceptorBinding.getEjbName());
}
// TODO automagically make ours the first?
Object lastInterceptorClassName;
Iterator<String> iterator = interceptorBinding.getInterceptorOrder().iterator();
- do {
+ do
+ {
lastInterceptorClassName = iterator.next();
- } while (iterator.hasNext());
+ }
+ while (iterator.hasNext());
if (!BINDINGS_INTERCEPTOR_CLASS_NAME.equals(lastInterceptorClassName))
{
log.warn("The Web Beans Jsr299BindingsInterceptor is not the outer most EJB interceptor in this deployment. JSR299 requires that @InterceptorBinding-bound interceptors should execute after @Interceptors-registered interceptors. Specify " + BINDINGS_INTERCEPTOR_CLASS_NAME + " as the last interceptor in the interceptor ordering for " + interceptorBinding.getEjbName());
Modified: projects/weld-int/trunk/deployer/src/test/java/org/jboss/test/deployers/test/PostDeployersTestCase.java
===================================================================
--- projects/weld-int/trunk/deployer/src/test/java/org/jboss/test/deployers/test/PostDeployersTestCase.java 2010-01-28 17:12:25 UTC (rev 100061)
+++ projects/weld-int/trunk/deployer/src/test/java/org/jboss/test/deployers/test/PostDeployersTestCase.java 2010-01-28 17:22:04 UTC (rev 100062)
@@ -180,7 +180,7 @@
assertNotNull(ejbmd);
InterceptorsMetaData interceptors = ejbmd.getInterceptors();
assertNotNull(interceptors);
- InterceptorMetaData imd = interceptors.get(WeldEjbInterceptorMetadataDeployer.CONTEXT_INTERCEPTOR_CLASS_NAME);
+ InterceptorMetaData imd = interceptors.get(WeldEjbInterceptorMetadataDeployer.INJECTION_INTERCEPTOR_CLASS_NAME);
assertNotNull(imd);
}
More information about the jboss-cvs-commits
mailing list