[jboss-cvs] JBossAS SVN: r111403 - trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu May 19 04:14:25 EDT 2011
Author: marius.bogoevici
Date: 2011-05-19 04:14:25 -0400 (Thu, 19 May 2011)
New Revision: 111403
Modified:
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldEjbInterceptorMetadataDeployer.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldLifecycleInterceptor.java
Log:
JBAS-9390 Remote EJB invocations do not get an active context
The main cause is the way in which interceptor metadata is processed. Switched to annotations and doing all processing through InterceptorMetadataCreator
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldEjbInterceptorMetadataDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldEjbInterceptorMetadataDeployer.java 2011-05-19 08:02:54 UTC (rev 111402)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldEjbInterceptorMetadataDeployer.java 2011-05-19 08:14:25 UTC (rev 111403)
@@ -69,9 +69,6 @@
private InterceptorMetaData bindingsIMD;
private InterceptorMetaData contextIMD;
- private InterceptorBindingMetaData injectionIBMD;
- private InterceptorBindingMetaData contextIBMD;
-
private InterceptorMetaDataCreator interceptorMetaDataCreator;
public WeldEjbInterceptorMetadataDeployer()
@@ -92,58 +89,11 @@
contextIMD = interceptorsMetaData.get(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);
-
- // make sure we have a context when activating/passivating
- addPostActivate(contextIMD, "lifecycleCallback");
- addPrePassivate(contextIMD, "lifecycleCallback");
-
// create interceptor metadata instance for JSR-299 specific bindings
bindingsIMD = interceptorsMetaData.get(BINDINGS_INTERCEPTOR_CLASS_NAME);
- // create interceptor binding metadata instance
- injectionIBMD = createInterceptorBindingMetadata(INJECTION_INTERCEPTOR_CLASS_NAME);
- contextIBMD = createInterceptorBindingMetadata(CONTEXT_INTERCEPTOR_CLASS_NAME);
}
- private static void addLifecycleCallback(LifecycleCallbacksMetaData lifecycleCallbacksMetaData, String methodName)
- {
- LifecycleCallbackMetaData lifecycleCallbackMetaData = new LifecycleCallbackMetaData();
- lifecycleCallbackMetaData.setMethodName(methodName);
- lifecycleCallbacksMetaData.add(lifecycleCallbackMetaData);
- }
-
- private static void addPostActivate(InterceptorMetaData interceptorMetaData, String methodName)
- {
- if (interceptorMetaData.getPostActivates() == null)
- interceptorMetaData.setPostActivates(new LifecycleCallbacksMetaData());
- addLifecycleCallback(interceptorMetaData.getPostActivates(), methodName);
- }
-
- private static void addPrePassivate(InterceptorMetaData interceptorMetaData, String methodName)
- {
- if (interceptorMetaData.getPrePassivates() == null)
- interceptorMetaData.setPrePassivates(new LifecycleCallbacksMetaData());
- addLifecycleCallback(interceptorMetaData.getPrePassivates(), methodName);
- }
-
- private InterceptorBindingMetaData createInterceptorBindingMetadata(String interceptorClassName)
- {
- InterceptorBindingMetaData ibmd = new InterceptorBindingMetaData();
- InterceptorClassesMetaData interceptorClasses = new InterceptorClassesMetaData();
- interceptorClasses.add(interceptorClassName);
- ibmd.setInterceptorClasses(interceptorClasses);
- ibmd.setEjbName("*");
- return ibmd;
- }
-
@Override
protected void internalDeploy(VFSDeploymentUnit unit, JBossMetaData jbmd, Collection<VirtualFile> wbXml) throws DeploymentException
{
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldLifecycleInterceptor.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldLifecycleInterceptor.java 2011-05-19 08:02:54 UTC (rev 111402)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/metadata/WeldLifecycleInterceptor.java 2011-05-19 08:14:25 UTC (rev 111403)
@@ -22,6 +22,9 @@
package org.jboss.weld.integration.deployer.metadata;
+import javax.ejb.PostActivate;
+import javax.ejb.PrePassivate;
+import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;
import org.jboss.weld.ejb.SessionBeanInterceptor;
@@ -35,8 +38,20 @@
{
private static final long serialVersionUID = 1L;
+ @PrePassivate
+ public void prePassivate(InvocationContext invocationContext) throws Exception
+ {
+ aroundInvoke(invocationContext);
+ }
+
+ @PostActivate
public void lifecycleCallback(InvocationContext invocation) throws Exception
{
aroundInvoke(invocation);
}
+
+ @AroundInvoke
+ public Object doAroundInvoke(InvocationContext invocation) throws Exception {
+ return super.aroundInvoke(invocation);
+ }
}
More information about the jboss-cvs-commits
mailing list