[Design of AOP on JBoss (Aspects/JBoss)] - Re: ManagedObject stuff for AOP
by scott.stark@jboss.org
Container configuration type settings like those used by ejb3:
| <?xml version="1.0" encoding="UTF-8"?>
| <!DOCTYPE aop PUBLIC
| "-//JBoss//DTD JBOSS AOP 1.0//EN"
| "http://labs.jboss.com/portal/jbossaop/dtd/jboss-aop_1_0.dtd">
|
| <aop>
| <interceptor class="org.jboss.aspects.remoting.InvokeRemoteInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.aspects.security.SecurityClientInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.aspects.tx.ClientTxPropagationInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.ejb3.remoting.IsLocalInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.ejb3.remoting.ClusteredIsLocalInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.aspects.remoting.ClusterChooserInterceptor" scope="PER_VM"/>
|
| <interceptor class="org.jboss.aspects.tx.TxPropagationInterceptor" scope="PER_VM"/>
|
| <stack name="ServiceClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="AsynchronousStatelessSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="AsynchronousStatefulSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="StatelessSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="StatefulSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="ClusteredStatelessSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.ClusteredIsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.ClusterChooserInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="ClusteredStatefulSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.ClusteredIsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.ClusterChooserInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <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"/>
| <interceptor name="JACC Authorization" factory="org.jboss.ejb3.security.JaccAuthorizationInterceptorFactory" scope="PER_CLASS"/>
| <interceptor factory="org.jboss.ejb3.security.AuthenticationInterceptorFactory" scope="PER_CLASS"/>
| <interceptor factory="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory" scope="PER_CLASS"/>
| <interceptor class="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.ejb3.stateless.StatelessInstanceInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.ejb3.stateful.StatefulInstanceInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor" scope="PER_VM"/>
| <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.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"/>
|
| <domain name="Stateless Bean">
| <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"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="Basic Authorization"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
| <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <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.AllowedOperationsInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
| <annotation expr="!class((a)org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.JndiBindingPolicy)">
| @org.jboss.annotation.ejb.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.PackagingBasedJndiBindingPolicy.class)
| </annotation>
| </domain>
|
| <domain name="JACC Stateless Bean">
| <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"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="JACC Authorization"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
| <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <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.AllowedOperationsInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
| <annotation expr="!class((a)org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.JndiBindingPolicy)">
| @org.jboss.annotation.ejb.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.PackagingBasedJndiBindingPolicy.class)
| </annotation>
| </domain>
|
| <domain name="Base Stateful Bean">
| <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"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="Basic Authorization"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
| <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
| </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.AllowedOperationsInterceptor"/>
| </bind>
| <bind pointcut="execution(public * $instanceof{javax.ejb.SessionSynchronization}->*(..))">
| <interceptor-ref name="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor"/>
| </bind>
|
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..)) AND !execution(public * *->@javax.ejb.Remove(..))">
| <interceptor-ref name="org.jboss.ejb3.cache.StatefulReplicationInterceptor"/>
| </bind>
|
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
|
| <annotation expr="!class((a)org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.JndiBindingPolicy)">
| @org.jboss.annotation.ejb.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.PackagingBasedJndiBindingPolicy.class)
| </annotation>
| </domain>
|
| <domain name="Stateful Bean" extends="Base Stateful Bean" inheritBindings="true">
| <!-- NON Clustered cache configuration -->
| <annotation expr="!class((a)org.jboss.annotation.ejb.cache.Cache) AND !class((a)org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.simple.SimpleStatefulCache.class)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.cache.simple.PersistenceManager) AND !class((a)org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.simple.PersistenceManager (org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.class)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.cache.simple.CacheConfig) AND !class((a)org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.simple.CacheConfig (maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0)
| </annotation>
|
| <!-- Clustered cache configuration -->
| <annotation expr="!class((a)org.jboss.annotation.ejb.cache.Cache) AND class((a)org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.tree.StatefulTreeCache.class)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.cache.tree.CacheConfig) AND class((a)org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.tree.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0)
| </annotation>
| </domain>
|
| <domain name="JACC Stateful Bean">
| <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"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="JACC Authorization"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
| <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
| </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.AllowedOperationsInterceptor"/>
| </bind>
| <bind pointcut="execution(public * $instanceof{javax.ejb.SessionSynchronization}->*(..))">
| <interceptor-ref name="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor"/>
| </bind>
| <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"/>
| </bind>
|
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..)) AND !execution(public * *->@javax.ejb.Remove(..))">
| <interceptor-ref name="org.jboss.ejb3.cache.StatefulReplicationInterceptor"/>
| </bind>
| <annotation expr="!class((a)org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.JndiBindingPolicy)">
| @org.jboss.annotation.ejb.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.PackagingBasedJndiBindingPolicy.class)
| </annotation>
|
| <!-- NON Clustered cache configuration -->
| <annotation expr="!class((a)org.jboss.annotation.ejb.cache.Cache) AND !class((a)org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.simple.SimpleStatefulCache.class)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.cache.simple.PersistenceManager) AND !class((a)org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.simple.PersistenceManager (org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.class)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.cache.simple.CacheConfig) AND !class((a)org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.simple.CacheConfig (maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0)
| </annotation>
|
| <!-- Clustered cache configuration -->
| <annotation expr="!class((a)org.jboss.annotation.ejb.cache.Cache) AND class((a)org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.tree.StatefulTreeCache.class)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.cache.tree.CacheConfig) AND class((a)org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.tree.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0)
| </annotation>
| </domain>
|
| <domain name="Embedded Stateful Bean" extends="Base Stateful Bean" inheritBindings="true">
| <!-- NON Clustered cache configuration -->
| <annotation expr="!class((a)org.jboss.annotation.ejb.cache.Cache)">
| @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.NoPassivationCache.class)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.JndiBindingPolicy)">
| @org.jboss.annotation.ejb.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.PackagingBasedJndiBindingPolicy.class)
| </annotation>
|
| </domain>
|
| <domain name="Message Driven Bean">
| <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.stateless.StatelessInstanceInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
| <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
| <annotation expr="!class((a)org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=15, timeout=10000)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.JndiBindingPolicy)">
| @org.jboss.annotation.ejb.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.PackagingBasedJndiBindingPolicy.class)
| </annotation>
| </domain>
|
| <domain name="Consumer Bean">
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
| <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| </bind>
| <bind pointcut="execution(public * *->*(..)) AND (has(* *->@org.jboss.annotation.ejb.CurrentMessage(..)) OR hasfield(* *->@org.jboss.annotation.ejb.CurrentMessage))">
| <interceptor-ref name="org.jboss.ejb3.mdb.CurrentMessageInjectorInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
| <annotation expr="!class((a)org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=15, timeout=10000)
| </annotation>
| <annotation expr="!class((a)org.jboss.annotation.ejb.JndiBindingPolicy)">
| @org.jboss.annotation.ejb.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.PackagingBasedJndiBindingPolicy.class)
| </annotation>
| </domain>
|
| <domain name="Service Bean">
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
| </bind>
| <bind pointcut="!execution(* *->create()) AND !execution(* *->start()) AND !execution(*->new(..))">
| <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="Basic Authorization"/>
| </bind>
| <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.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"/>
| </bind>
| <annotation expr="!class((a)org.jboss.annotation.ejb.JndiBindingPolicy)">
| @org.jboss.annotation.ejb.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.PackagingBasedJndiBindingPolicy.class)
| </annotation>
| </domain>
|
| <domain name="JACC Service Bean">
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
| </bind>
| <bind pointcut="!execution(* *->create()) AND !execution(* *->start()) AND !execution(*->new(..))">
| <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="Basic Authorization"/>
| </bind>
| <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.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"/>
| </bind>
| <annotation expr="!class((a)org.jboss.annotation.ejb.JndiBindingPolicy)">
| @org.jboss.annotation.ejb.JndiBindingPolicy (policy=org.jboss.ejb3.jndipolicy.PackagingBasedJndiBindingPolicy.class)
| </annotation>
| </domain>
| </aop>
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4102308#4102308
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4102308
18 years, 5 months
[Design of Clustering on JBoss (Clusters/JBoss)] - Re: JBoss server mcast socket bound to network interface
by bstansberry@jboss.com
Thanks for opening this thread, Alex. Your interface binding suggestion has implications for end users, so I wanted it discussed here rather than in the more narrowly-read QA forum.
For background on issues QA is having, see http://jira.jboss.com/jira/browse/JBAS-4939
and
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=123056 .
On this thread I'd just like to focus on whether having the -b switch *not* set system property jgroups.bind_address makes sense from the viewpoint of AS users, not AS testers. If a solution doesn't make sense for users, it's not right to do it; the testsuite should just find workarounds. We can sort any testsuite workarounds on the QA forum thread.
Reasons why I don't like the idea of -b not setting system property jgroups.bind_address:
1) All other service bindings in the AS are controlled by -b. Having an exception for JGroups is confusing.
2) If you don't tell JGroups what address to bind to, it will bind to the first non-loopback interface it finds when iterating over NetworkInterface.getNetworkInterfaces(). So, not clear that will be the desired interface. Even if JGroups or the AS were changed to pick the machine's default interface, it's not certain that would be the interface that supports multicast either.
3) This would be a significant change in behavior from previous releases, so we would have to spend significant effort educating users/SEs/consultants, altering docs, wikis, training course materials and certification exams etc.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4102252#4102252
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4102252
18 years, 5 months