[jboss-cvs] JBossAS SVN: r82333 - in projects/ejb3/trunk/testsuite/src/test: resources/test-configs/removedislocal/deploy and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Dec 17 00:05:02 EST 2008


Author: ALRubinger
Date: 2008-12-17 00:05:02 -0500 (Wed, 17 Dec 2008)
New Revision: 82333

Modified:
   projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/removedislocal/StatelessBean.java
   projects/ejb3/trunk/testsuite/src/test/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml
Log:
[EJBTHREE-1241] Fix "removedislocal" deployment failures, expose error

Modified: projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/removedislocal/StatelessBean.java
===================================================================
--- projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/removedislocal/StatelessBean.java	2008-12-17 04:11:35 UTC (rev 82332)
+++ projects/ejb3/trunk/testsuite/src/test/java/org/jboss/ejb3/test/removedislocal/StatelessBean.java	2008-12-17 05:05:02 UTC (rev 82333)
@@ -21,9 +21,12 @@
  */
 package org.jboss.ejb3.test.removedislocal;
 
-import javax.ejb.EJB;
+import javax.ejb.Remote;
 import javax.ejb.Stateless;
-import javax.ejb.Remote;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
 import org.jboss.logging.Logger;
 
 /**
@@ -34,18 +37,33 @@
 public class StatelessBean implements StatelessRemote
 {
    private static final Logger log = Logger.getLogger(StatelessBean.class);
-   
-   @EJB(beanName="StatelessBean")
-   private StatelessRemote stateless;
-   
+
    public void noop()
    {
       log.info("*** noop");
    }
-   
+
    public void test()
    {
+      // Initialize
+      Context context = null;
+      StatelessRemote stateless = null;
+
+      // Log
       log.info("*** test");
+
+      // Lookup
+      try
+      {
+         context = new InitialContext();
+         stateless = (StatelessRemote) context.lookup(StatelessBean.class.getSimpleName() + "/remote");
+      }
+      catch (NamingException ne)
+      {
+         throw new RuntimeException(ne);
+      }
+
+      // Invoke
       stateless.noop();
    }
 }

Modified: projects/ejb3/trunk/testsuite/src/test/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml
===================================================================
--- projects/ejb3/trunk/testsuite/src/test/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml	2008-12-17 04:11:35 UTC (rev 82332)
+++ projects/ejb3/trunk/testsuite/src/test/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml	2008-12-17 05:05:02 UTC (rev 82333)
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
+
 <aop xmlns="urn:jboss:aop-beans:1.0">
    <interceptor class="org.jboss.aspects.remoting.InvokeRemoteInterceptor" scope="PER_VM"/>
    <interceptor class="org.jboss.ejb3.security.client.SecurityClientInterceptor" scope="PER_VM"/>
@@ -31,7 +32,11 @@
    </stack>
 
    <stack name="StatelessSessionClientInterceptors">
-      <!--interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/-->
+      <!--  
+      
+      Commented out for removedislocal test
+      
+      <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/> -->
       <interceptor-ref name="org.jboss.ejb3.security.client.SecurityClientInterceptor"/>
       <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
       <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
@@ -45,7 +50,7 @@
    </stack>
 
    <stack name="ClusteredStatelessSessionClientInterceptors">
-      <!--interceptor-ref name="org.jboss.ejb3.remoting.ClusteredIsLocalInterceptor"/-->
+      <interceptor-ref name="org.jboss.ejb3.remoting.ClusteredIsLocalInterceptor"/>
       <interceptor-ref name="org.jboss.ejb3.security.client.SecurityClientInterceptor"/>
       <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
       <interceptor-ref name="org.jboss.aspects.remoting.ClusterChooserInterceptor"/>
@@ -60,6 +65,7 @@
       <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
    </stack>
 
+   <interceptor class="org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor" scope="PER_VM"/>
    <interceptor class="org.jboss.ejb3.asynchronous.AsynchronousInterceptor" scope="PER_CLASS"/>
    <interceptor class="org.jboss.ejb3.ENCPropagationInterceptor" scope="PER_VM"/>
    <interceptor name="Basic Authorization" factory="org.jboss.ejb3.security.RoleBasedAuthorizationInterceptorFactory" scope="PER_CLASS"/>
@@ -73,15 +79,88 @@
    <interceptor class="org.jboss.ejb3.service.ServiceSingletonInterceptor" scope="PER_VM"/>
    <interceptor class="org.jboss.ejb3.cache.StatefulReplicationInterceptor" scope="PER_VM"/>
    <interceptor factory="org.jboss.ejb3.stateful.StatefulRemoveFactory" scope="PER_CLASS_JOINPOINT"/>
-   <interceptor factory="org.jboss.ejb3.tx.TxInterceptorFactory" scope="PER_CLASS_JOINPOINT"/>
-   <interceptor factory="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory" scope="PER_CLASS_JOINPOINT"/>
+   <interceptor factory="org.jboss.ejb3.tx.BMTTxInterceptorFactory" scope="PER_CLASS_JOINPOINT"/>
+   <interceptor factory="org.jboss.ejb3.tx.CMTTxInterceptorFactory" scope="PER_CLASS_JOINPOINT"/>
+   <!-- interceptor factory="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory" scope="PER_CLASS_JOINPOINT"/ -->
    <interceptor factory="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory" scope="PER_CLASS"/>
    <interceptor class="org.jboss.ejb3.AllowedOperationsInterceptor" scope="PER_VM"/>
    <interceptor factory="org.jboss.ejb3.mdb.CurrentMessageInjectorInterceptorFactory" scope="PER_CLASS"/>
    <interceptor class="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor" scope="PER_VM"/>
+   <interceptor class="org.jboss.ejb3.BlockContainerShutdownInterceptor" scope="PER_VM"/>
+   <interceptor factory="org.jboss.ejb3.connectionmanager.CachedConnectionInterceptorFactory" scope="PER_CLASS"/>
 
-   <domain name="Stateless Bean">
+   <!--
+         INTERCEPTORS
+     -->
+   
+   <aspect name="InjectInterceptorsFactory" factory="org.jboss.ejb3.interceptors.aop.InjectInterceptorsFactory" scope="PER_JOINPOINT"/>
+   <aspect name="InterceptorsFactory" factory="org.jboss.ejb3.interceptors.aop.InterceptorsFactory" scope="PER_INSTANCE"/>
+   <aspect name="InvocationContextInterceptor" class="org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor" scope="PER_VM"/>
+
+   <!-- TODO: this is actually the bootstrap container -->
+   <domain name="Intercepted Bean">
+      <pointcut name="beanAroundInvokeCallbackMethods" expr="execution(* @org.jboss.ejb3.interceptors.ManagedObject->@javax.interceptor.AroundInvoke(..))"/>
+      <pointcut name="beanPostConstructCallbackMethods" expr="execution(* @org.jboss.ejb3.interceptors.ManagedObject->@javax.interceptor.PostConstruct(..))"/>
+      <pointcut name="beanPreDestroyCallbackMethods" expr="execution(* @org.jboss.ejb3.interceptors.ManagedObject->@javax.interceptor.PreDestroy(..))"/>
+      
+      <pointcut name="beanLifecycleCallbackMethods" expr="beanAroundInvokeCallbackMethods OR beanPostConstructCallbackMethods OR beanPreDestroyCallbackMethods"/>
+      
+      <!-- Prepare for dynamic AOP -->
+      <!-- TODO: optimize, we only need managed objects (and interceptors!) to be aspectized -->
+      <!-- prepare expr="all(*) AND has(@org.jboss.ejb3.interceptors.ManagedObject->new(..))"/ -->
+      <!-- TODO: let's see if we can do without 
+      <prepare expr="all(*)"/>
+      -->
+      
+      <!-- Setup AOP interceptors based on spec interceptors -->
+      <bind pointcut="construction(@org.jboss.ejb3.interceptors.ManagedObject->new(..))">
+         <!-- interceptor-ref name="LoggingInterceptor"/ -->
+         <!-- TODO: we don't need invocation context here -->
+         <!-- TODO: we do until we've seperated the post constructs -->
+         <advice name="setup" aspect="InvocationContextInterceptor"/>
+         <advice name="invoke" aspect="InterceptorsFactory"/>
+      </bind>
+      
+      <!-- Lifecycle Event Callbacks (EJB 3 12.4) -->
+      
+      <!-- TODO: for now handled in EJBContainer.invokePostConstruct until injection is refactored 
+      <bind pointcut="construction(@org.jboss.ejb3.interceptors.ManagedObject->new(..))">
+         <advice name="setup" aspect="InvocationContextInterceptor"/>
+         <advice name="postConstruct" aspect="InjectInterceptorsFactory"/>
+      </bind>
+      -->
+      
+      <!-- this is the usual way, now we move it into the other domains, because the
+           invocation of EJB interceptors must be the last in the chain 
+      <bind pointcut="execution(* @org.jboss.ejb3.interceptors.ManagedObject->*(..)) AND !beanLifecycleCallbackMethods">
+         <advice name="setup" aspect="InvocationContextInterceptor"/>
+         <advice name="fillMethod" aspect="InvocationContextInterceptor"/>
+         <advice name="aroundInvoke" aspect="InjectInterceptorsFactory"/>
+      </bind>
+      -->
+      <stack name="EJBInterceptors">
+         <interceptor-ref name="org.jboss.ejb3.connectionmanager.CachedConnectionInterceptorFactory"/>
+         
+         <advice name="setup" aspect="InvocationContextInterceptor"/>
+         <advice name="fillMethod" aspect="InvocationContextInterceptor"/>
+         <advice name="aroundInvoke" aspect="InjectInterceptorsFactory"/>
+      </stack>
+      
       <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.BlockContainerShutdownInterceptor"/>
+      </bind>
+      
+      <stack name="LifecycleCallbackStack">
+         <interceptor-ref name="org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor"/>
+         <advice name="setup" aspect="InvocationContextInterceptor"/>
+      </stack>
+   </domain>
+   
+   
+   
+   <domain name="Stateless Bean" extends="Intercepted Bean" inheritBindings="true">
+      <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
@@ -89,26 +168,28 @@
       <bind pointcut="execution(public * @org.jboss.ejb3.annotation.SecurityDomain->*(..))">
          <interceptor-ref name="Basic Authorization"/>
       </bind>
-      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+      <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
       </bind>
       <bind pointcut="execution(public * @org.jboss.ejb3.annotation.Clustered->*(..))">
          <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
       </bind>
       <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.CMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
-         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.BMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+         <!-- interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/ -->
+         <stack-ref name="EJBInterceptors"/>
       </bind>
       <annotation expr="!class(@org.jboss.ejb3.annotation.Pool)">
          @org.jboss.ejb3.annotation.Pool (value="ThreadlocalPool", maxSize=30, timeout=10000)
       </annotation>
    </domain>
 
-   <domain name="JACC Stateless Bean">
+   <domain name="JACC Stateless Bean" extends="Intercepted Bean" inheritBindings="true">
       <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
@@ -117,26 +198,28 @@
       <bind pointcut="execution(public * @org.jboss.ejb3.annotation.SecurityDomain->*(..))">
          <interceptor-ref name="JACC Authorization"/>
       </bind>
-      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+      <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
       </bind>
       <bind pointcut="execution(public * @org.jboss.ejb3.annotation.Clustered->*(..))">
          <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
       </bind>
       <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.CMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
-         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.BMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+         <!-- interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/ -->
+         <stack-ref name="EJBInterceptors"/>
       </bind>
       <annotation expr="!class(@org.jboss.ejb3.annotation.Pool)">
          @org.jboss.ejb3.annotation.Pool (value="ThreadlocalPool", maxSize=30, timeout=10000)
       </annotation>
    </domain>
 
-   <domain name="Base Stateful Bean">
+   <domain name="Base Stateful Bean" extends="Intercepted Bean" inheritBindings="true">
       <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
@@ -145,19 +228,22 @@
       <bind pointcut="execution(public * @org.jboss.ejb3.annotation.SecurityDomain->*(..))">
          <interceptor-ref name="Basic Authorization"/>
       </bind>
-      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+      <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
       </bind>
       <bind pointcut="execution(public * @org.jboss.ejb3.annotation.Clustered->*(..))">
          <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
       </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.CMTTxInterceptorFactory"/>
+      </bind>
       <bind pointcut="execution(public * *->@javax.ejb.Remove(..))">
          <interceptor-ref name="org.jboss.ejb3.stateful.StatefulRemoveFactory"/>
       </bind>
       <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.stateful.StatefulInstanceInterceptor"/>
-         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.BMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
       </bind>
       <bind pointcut="execution(public * $instanceof{javax.ejb.SessionSynchronization}->*(..))">
@@ -173,7 +259,8 @@
       </bind>
 
       <bind pointcut="execution(public * *->*(..))">
-         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+         <!-- interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/ -->
+         <stack-ref name="EJBInterceptors"/>
       </bind>
 
       <annotation expr="!class(@org.jboss.ejb3.annotation.Pool)">
@@ -198,11 +285,11 @@
          @org.jboss.ejb3.annotation.Cache ("StatefulTreeCache")
       </annotation>
       <annotation expr="!class(@org.jboss.ejb3.annotation.CacheConfig) AND class(@org.jboss.ejb3.annotation.Clustered)">
-         @org.jboss.ejb3.annotation.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0)
+         @org.jboss.ejb3.annotation.CacheConfig (name="sfsb-cache", maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0)
       </annotation>
    </domain>
 
-   <domain name="JACC Stateful Bean">
+   <domain name="JACC Stateful Bean" extends="Intercepted Bean" inheritBindings="true">
       <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
@@ -211,19 +298,22 @@
       <bind pointcut="execution(public * @org.jboss.ejb3.annotation.SecurityDomain->*(..))">
          <interceptor-ref name="JACC Authorization"/>
       </bind>
-      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+      <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
       </bind>
       <bind pointcut="execution(public * @org.jboss.ejb3.annotation.Clustered->*(..))">
          <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
       </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.CMTTxInterceptorFactory"/>
+      </bind>
       <bind pointcut="execution(public * *->@javax.ejb.Remove(..))">
          <interceptor-ref name="org.jboss.ejb3.stateful.StatefulRemoveFactory"/>
       </bind>
       <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.stateful.StatefulInstanceInterceptor"/>
-         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.BMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
       </bind>
       <bind pointcut="execution(public * $instanceof{javax.ejb.SessionSynchronization}->*(..))">
@@ -232,7 +322,8 @@
       <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+         <!-- interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/ -->
+         <stack-ref name="EJBInterceptors"/>
       </bind>
 
       <bind pointcut="execution(public * @org.jboss.ejb3.annotation.Clustered->*(..)) AND !execution(public * *->@javax.ejb.Remove(..))">
@@ -241,7 +332,7 @@
       <annotation expr="!class(@org.jboss.ejb3.annotation.Pool)">
          @org.jboss.ejb3.annotation.Pool (value="ThreadlocalPool", maxSize=30, timeout=10000)
       </annotation>
-      
+
       <!-- NON Clustered cache configuration -->
       <annotation expr="!class(@org.jboss.ejb3.annotation.Cache) AND !class(@org.jboss.ejb3.annotation.Clustered)">
          @org.jboss.ejb3.annotation.Cache ("SimpleStatefulCache")
@@ -258,7 +349,7 @@
          @org.jboss.ejb3.annotation.Cache ("StatefulTreeCache")
       </annotation>
       <annotation expr="!class(@org.jboss.ejb3.annotation.CacheConfig) AND class(@org.jboss.ejb3.annotation.Clustered)">
-         @org.jboss.ejb3.annotation.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0)
+         @org.jboss.ejb3.annotation.CacheConfig (name="sfsb-cache", maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0)
       </annotation>
    </domain>
 
@@ -270,29 +361,34 @@
 
    </domain>
 
-   <domain name="Message Driven Bean">
-      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+   <domain name="Message Driven Bean" extends="Intercepted Bean" inheritBindings="true">
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
       </bind>
+      <!-- TODO: Authorization? -->
       <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.tx.CMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.BMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+         <!-- interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/ -->
+         <stack-ref name="EJBInterceptors"/>
       </bind>
       <annotation expr="!class(@org.jboss.ejb3.annotation.Pool)">
          @org.jboss.ejb3.annotation.Pool (value="StrictMaxPool", maxSize=15, timeout=10000)
       </annotation>
    </domain>
 
-   <domain name="Consumer Bean">
-      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+   <domain name="Consumer Bean" extends="Intercepted Bean" inheritBindings="true">
+      <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
       </bind>
       <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.tx.CMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.BMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
       </bind>
@@ -300,14 +396,15 @@
          <interceptor-ref name="org.jboss.ejb3.mdb.CurrentMessageInjectorInterceptorFactory"/>
       </bind>
       <bind pointcut="execution(public * *->*(..))">
-         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+         <!-- interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/ -->
+         <stack-ref name="EJBInterceptors"/>
       </bind>
       <annotation expr="!class(@org.jboss.ejb3.annotation.Pool)">
          @org.jboss.ejb3.annotation.Pool (value="StrictMaxPool", maxSize=15, timeout=10000)
       </annotation>
    </domain>
 
-   <domain name="Service Bean">
+   <domain name="Service Bean" extends="Intercepted Bean" inheritBindings="true">
       <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
@@ -318,21 +415,23 @@
       <bind pointcut="execution(public * @org.jboss.ejb3.annotation.SecurityDomain->*(..))">
          <interceptor-ref name="Basic Authorization"/>
       </bind>
-      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+      <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
       </bind>
       <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.CMTTxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.BMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
       </bind>
       <bind pointcut="execution(public * *->*(..)) AND !execution(* *->create()) AND !execution(* *->start())">
-         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+         <!-- interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/ -->
+         <stack-ref name="EJBInterceptors"/>
       </bind>
    </domain>
 
-   <domain name="JACC Service Bean">
+   <domain name="JACC Service Bean" extends="Intercepted Bean" inheritBindings="true">
       <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
@@ -343,18 +442,20 @@
       <bind pointcut="execution(public * @org.jboss.ejb3.annotation.SecurityDomain->*(..))">
          <interceptor-ref name="Basic Authorization"/>
       </bind>
-      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+      <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
       </bind>
       <bind pointcut="execution(public * *->*(..))">
          <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
-         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.CMTTxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.BMTTxInterceptorFactory"/>
          <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
          <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
       </bind>
       <bind pointcut="execution(public * *->*(..)) AND !execution(* *->create()) AND !execution(* *->start())">
-         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+         <!-- interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/ -->
+         <stack-ref name="EJBInterceptors"/>
       </bind>
    </domain>
 
-</aop>
+</aop>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list