[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