<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar
        xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                            http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
        version="3.0">
   <display-name>InterceptorsTest</display-name>
   <enterprise-beans>
       <session>
          <ejb-name>XMLOnlySLSB</ejb-name>
          <remote>org.jboss.ejb3.test.interceptors2.XMLOnlySLSBRemote</remote>
          <ejb-class>org.jboss.ejb3.test.interceptors2.XMLOnlySLSB</ejb-class>
           <session-type>Stateless</session-type>
           <transaction-type>Container</transaction-type>
           <around-invoke>
	           <method-name>intercept</method-name>
           </around-invoke>
	       <post-construct>
	           <lifecycle-callback-method>postConstruct</lifecycle-callback-method>
	       </post-construct>
	       <pre-destroy>
	           <lifecycle-callback-method>preDestroy</lifecycle-callback-method>
	       </pre-destroy>
       </session>
   </enterprise-beans>
   <interceptors>
      <interceptor>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.DefaultInterceptor</interceptor-class>
         <around-invoke>
            <method-name>intercept</method-name>
         </around-invoke>
         <post-construct>
            <lifecycle-callback-method>postConstruct</lifecycle-callback-method>
         </post-construct>
         <pre-destroy>
            <lifecycle-callback-method>preDestroy</lifecycle-callback-method>
         </pre-destroy>
         <post-activate>
            <lifecycle-callback-method>postActivate</lifecycle-callback-method>
         </post-activate>
         <pre-passivate>
            <lifecycle-callback-method>prePassivate</lifecycle-callback-method>
         </pre-passivate>
      </interceptor>   
      <interceptor>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLClassInterceptor</interceptor-class>
         <around-invoke>
            <method-name>intercept</method-name>
         </around-invoke>
         <post-construct>
            <lifecycle-callback-method>postConstruct</lifecycle-callback-method>
         </post-construct>
         <pre-destroy>
            <lifecycle-callback-method>preDestroy</lifecycle-callback-method>
         </pre-destroy>
         <post-activate>
            <lifecycle-callback-method>postActivate</lifecycle-callback-method>
         </post-activate>
         <pre-passivate>
            <lifecycle-callback-method>prePassivate</lifecycle-callback-method>
         </pre-passivate>
      </interceptor>   
      <interceptor>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLClassInterceptor2</interceptor-class>
         <around-invoke>
            <method-name>intercept2</method-name>
         </around-invoke>
         <post-construct>
            <lifecycle-callback-method>postConstruct2</lifecycle-callback-method>
         </post-construct>
         <pre-destroy>
            <lifecycle-callback-method>preDestroy2</lifecycle-callback-method>
         </pre-destroy>
         <post-activate>
            <lifecycle-callback-method>postActivate2</lifecycle-callback-method>
         </post-activate>
         <pre-passivate>
            <lifecycle-callback-method>prePassivate2</lifecycle-callback-method>
         </pre-passivate> 
      </interceptor>   
      <interceptor>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLClassInterceptor3</interceptor-class>
         <around-invoke>
            <method-name>intercept3</method-name>
         </around-invoke>
         <post-construct>
            <lifecycle-callback-method>postConstruct3</lifecycle-callback-method>
         </post-construct>
         <pre-destroy>
            <lifecycle-callback-method>preDestroy3</lifecycle-callback-method>
         </pre-destroy>
         <post-activate>
            <lifecycle-callback-method>postActivate3</lifecycle-callback-method>
         </post-activate>
         <pre-passivate>
            <lifecycle-callback-method>prePassivate3</lifecycle-callback-method>
         </pre-passivate>
      </interceptor>   
      <interceptor>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLMethodInterceptor</interceptor-class>
         <around-invoke>
            <method-name>intercept</method-name>
         </around-invoke>
         <post-construct>
            <lifecycle-callback-method>postConstruct</lifecycle-callback-method>
         </post-construct>
         <pre-destroy>
            <lifecycle-callback-method>preDestroy</lifecycle-callback-method>
         </pre-destroy>
         <post-activate>
            <lifecycle-callback-method>postActivate</lifecycle-callback-method>
         </post-activate>
         <pre-passivate>
            <lifecycle-callback-method>prePassivate</lifecycle-callback-method>
         </pre-passivate>
      </interceptor>   
      <interceptor>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.MixedClassInterceptor</interceptor-class>
         <around-invoke>
            <method-name>intercept</method-name>
         </around-invoke>
      </interceptor>   
      <interceptor>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.MixedMethodInterceptor</interceptor-class>
         <around-invoke>
            <method-name>intercept</method-name>
         </around-invoke>
      </interceptor>   
   </interceptors>
   <assembly-descriptor>
      <container-transaction>
         <method>
            <ejb-name>XMLOnlySLSB</ejb-name>
            <method-name>*</method-name>
         </method>
         <trans-attribute>Required</trans-attribute>
      </container-transaction>
      <interceptor-binding>
         <ejb-name>*</ejb-name>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.DefaultInterceptor</interceptor-class>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>XMLOnlySLSB</ejb-name>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLClassInterceptor2</interceptor-class>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>XMLOnlySLSB</ejb-name>
         <exclude-default-interceptors>true</exclude-default-interceptors>
         <method>
			<method-name>overloadedMethod</method-name>
         	<method-params>
	          <method-param>long</method-param>
            </method-params>
         </method>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>XMLOnlySLSB</ejb-name>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLMethodInterceptor</interceptor-class>
         <method>
           <method-name>overloadedMethod</method-name>
           <method-params>
	         <method-param>long</method-param>
	         <method-param>java.lang.String[][]</method-param>
           </method-params>
         </method>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>XMLOnlySLSB</ejb-name>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLMethodInterceptor</interceptor-class>
         <exclude-class-interceptors>true</exclude-class-interceptors>
         <method>
           <method-name>overloadedMethod</method-name>
           <method-params>
	         <method-param>int</method-param>
           </method-params>
         </method>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>XMLOnlySLSB</ejb-name>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLMethodInterceptor</interceptor-class>
         <exclude-default-interceptors>true</exclude-default-interceptors>
         <exclude-class-interceptors>true</exclude-class-interceptors>
         <method>
           <method-name>overloadedMethod</method-name>
           <method-params>
           </method-params>
         </method>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>MixedConfigSFSB</ejb-name>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLClassInterceptor</interceptor-class>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.AnnotatedClassInterceptor</interceptor-class>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>MixedConfigSFSB</ejb-name>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLMethodInterceptor</interceptor-class>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.AnnotatedMethodInterceptor</interceptor-class>
         <method>
           <method-name>testWithMethodLevel</method-name>
         </method>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>MixedConfigSFSB</ejb-name>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLMethodInterceptor</interceptor-class>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.AnnotatedMethodInterceptor</interceptor-class>
         <method>
           <method-name>testWithMethodLevelB</method-name>
         </method>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>OrderedSLSB</ejb-name>
         <interceptor-order>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.AnnotatedClassInterceptor3</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLClassInterceptor3</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.DefaultInterceptor</interceptor-class>
         </interceptor-order>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>OrderedSLSB</ejb-name>
         <interceptor-order>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLMethodInterceptor</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.DefaultInterceptor</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.AnnotatedMethodInterceptor</interceptor-class>
         </interceptor-order>
         <method>
           <method-name>methodWithOwn</method-name>
         </method>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>OrderedSLSB</ejb-name>
         <interceptor-order>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.AnnotatedClassInterceptor3</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.DefaultInterceptor</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLClassInterceptor3</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.AnnotatedMethodInterceptor</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.MixedMethodInterceptor</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLMethodInterceptor</interceptor-class>
         </interceptor-order>
         <method>
           <method-name>overLoadedMethod</method-name>
           <method-params>
	         <method-param>java.lang.String</method-param>
           </method-params>
         </method>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>OrderedSLSB</ejb-name>
         <interceptor-order>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.MixedMethodInterceptor</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.DefaultInterceptor</interceptor-class>
         </interceptor-order>
         <method>
           <method-name>overLoadedMethod</method-name>
           <method-params>
           </method-params>
         </method>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>OrderedSLSB</ejb-name>
         <interceptor-order>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLClassInterceptor3</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.AnnotatedMethodInterceptor</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.AnnotatedClassInterceptor3</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.DefaultInterceptor</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.MixedMethodInterceptor</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLMethodInterceptor</interceptor-class>
         </interceptor-order>
         <method>
           <method-name>overLoadedMethod</method-name>
           <method-params>
	         <method-param>long</method-param>
           </method-params>
         </method>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>OrderedSLSB</ejb-name>
         <interceptor-order>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.XMLClassInterceptor3</interceptor-class>
	         <interceptor-class>org.jboss.ejb3.test.interceptors2.AnnotatedMethodInterceptor</interceptor-class>
         </interceptor-order>
         <method>
           <method-name>methodNotSpecifyingAll</method-name>
         </method>
      </interceptor-binding>
      <interceptor-binding>
         <ejb-name>MixedService</ejb-name>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.MixedMethodInterceptor</interceptor-class>
         <exclude-class-interceptors>true</exclude-class-interceptors>
         <method>
           <method-name>remoteMethod</method-name>
         </method>
     </interceptor-binding>
      <interceptor-binding>
         <ejb-name>MixedConsumer</ejb-name>
         <interceptor-class>org.jboss.ejb3.test.interceptors2.MixedMethodInterceptor</interceptor-class>
         <exclude-default-interceptors>true</exclude-default-interceptors>
         <exclude-class-interceptors>true</exclude-class-interceptors>
         <method>
           <method-name>methodWithOwnOnly</method-name>
         </method>
     </interceptor-binding>
   </assembly-descriptor>
</ejb-jar>      
