blob: b349c3c9a5d623206c438c3c80e2a194e002689a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
version 2 with the GNU Classpath Exception, which is available at
https://www.gnu.org/software/classpath/license.html.
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" metadata-complete="true" version="3.2" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd" xmlns="http://xmlns.jcp.org/xml/ns/javaee">
<enterprise-beans>
<session>
<display-name>myStatefulTest1</display-name>
<ejb-name>myStatefulTest1</ejb-name>
<business-remote>test.ejb.stateful.SFHello</business-remote>
<ejb-class>test.ejb.stateful.StatefulTest1</ejb-class>
<session-type>Stateful</session-type>
<concurrency-management-type>Container</concurrency-management-type>
<transaction-type>Bean</transaction-type>
<ejb-local-ref>
<ejb-ref-name>test.ejb.stateful.StatefulTest1/slHello1</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local>test.ejb.stateless.SLHello</local>
<ejb-link>myStatelessTest1</ejb-link>
<injection-target>
<injection-target-class>test.ejb.stateful.StatefulTest1</injection-target-class>
<injection-target-name>slHello1</injection-target-name>
</injection-target>
</ejb-local-ref>
<ejb-local-ref>
<ejb-ref-name>test.ejb.stateful.StatefulTest1/slHello2</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local>test.ejb.stateless.SLHello</local>
<ejb-link>myStatelessTest1</ejb-link>
<injection-target>
<injection-target-class>test.ejb.stateful.StatefulTest1</injection-target-class>
<injection-target-name>slHello2</injection-target-name>
</injection-target>
</ejb-local-ref>
<security-identity>
<use-caller-identity/>
</security-identity>
<passivation-capable>true</passivation-capable>
</session>
<session>
<display-name>StatefulTest2</display-name>
<ejb-name>StatefulTest2</ejb-name>
<business-remote>test.ejb.stateful.SFHello</business-remote>
<ejb-class>StatefulTest2</ejb-class>
<session-type>Stateful</session-type>
<concurrency-management-type>Container</concurrency-management-type>
<transaction-type>Container</transaction-type>
<security-identity>
<use-caller-identity/>
</security-identity>
<passivation-capable>true</passivation-capable>
</session>
<session>
<display-name>myStatelessTest1</display-name>
<ejb-name>myStatelessTest1</ejb-name>
<business-local>test.ejb.stateless.SLHello</business-local>
<ejb-class>test.ejb.stateless.StatelessTest1</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-local-ref>
<ejb-ref-name>test.ejb.stateless.InterceptorA/slHello</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local>test.ejb.stateless.SLHello</local>
<ejb-link>myStatelessTest1</ejb-link>
<injection-target>
<injection-target-class>test.ejb.stateless.InterceptorA</injection-target-class>
<injection-target-name>slHello</injection-target-name>
</injection-target>
</ejb-local-ref>
<resource-ref>
<res-ref-name>jdbc/myDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
<lookup-name>java:comp/DefaultDataSource</lookup-name>
</resource-ref>
<resource-env-ref>
<resource-env-ref-name>test.ejb.stateless.InterceptorB/sessionCtx</resource-env-ref-name>
<resource-env-ref-type>jakarta.ejb.SessionContext</resource-env-ref-type>
<injection-target>
<injection-target-class>test.ejb.stateless.InterceptorB</injection-target-class>
<injection-target-name>sessionCtx</injection-target-name>
</injection-target>
</resource-env-ref>
<security-identity>
<run-as>
<role-name>user</role-name>
</run-as>
</security-identity>
</session>
<session>
<display-name>StatelessTest2</display-name>
<ejb-name>StatelessTest2</ejb-name>
<business-local>test.ejb.stateless.SLHello</business-local>
<ejb-class>test.ejb.stateless.StatelessTest2</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<security-identity>
<use-caller-identity/>
</security-identity>
</session>
</enterprise-beans>
<interceptors>
<interceptor>
<interceptor-class>test.ejb.stateless.InterceptorB</interceptor-class>
<around-invoke>
<class>test.ejb.stateless.InterceptorB</class>
<method-name>aroundInvokeB</method-name>
</around-invoke>
<around-invoke>
<class>test.ejb.stateless.InterceptorA</class>
<method-name>aroundInvokeA</method-name>
</around-invoke>
<post-construct>
<lifecycle-callback-class>test.ejb.stateless.InterceptorA</lifecycle-callback-class>
<lifecycle-callback-method>postConstruct</lifecycle-callback-method>
</post-construct>
<pre-destroy>
<lifecycle-callback-class>test.ejb.stateless.InterceptorB</lifecycle-callback-class>
<lifecycle-callback-method>preDestroy</lifecycle-callback-method>
</pre-destroy>
</interceptor>
</interceptors>
<assembly-descriptor>
<security-role>
<role-name>j2ee</role-name>
</security-role>
<security-role>
<role-name>staff</role-name>
</security-role>
<security-role>
<role-name>user</role-name>
</security-role>
<method-permission>
<role-name>staff</role-name>
<method>
<ejb-name>myStatelessTest1</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayGoodAfternoon</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<method>
<ejb-name>myStatelessTest1</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayHello</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
</method-permission>
<method-permission>
<role-name>j2ee</role-name>
<method>
<ejb-name>myStatelessTest1</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayHello</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
</method-permission>
<method-permission>
<unchecked/>
<method>
<ejb-name>myStatelessTest1</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayGoodMorning</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
</method-permission>
<method-permission>
<role-name>staff</role-name>
<method>
<ejb-name>StatelessTest2</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayHello</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
</method-permission>
<method-permission>
<role-name>j2ee</role-name>
<method>
<ejb-name>StatelessTest2</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayHello</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
</method-permission>
<method-permission>
<unchecked/>
<method>
<ejb-name>StatelessTest2</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayGoodMorning</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
</method-permission>
<container-transaction>
<description>Required</description>
<method>
<ejb-name>myStatelessTest1</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayGoodAfternoon</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<description>Required</description>
<method>
<ejb-name>myStatelessTest1</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayHello</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<description>RequiresNew</description>
<method>
<ejb-name>myStatelessTest1</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayGoodMorning</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<trans-attribute>RequiresNew</trans-attribute>
</container-transaction>
<container-transaction>
<description>Mandatory</description>
<method>
<ejb-name>StatelessTest2</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayGoodAfternoon</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<trans-attribute>Mandatory</trans-attribute>
</container-transaction>
<container-transaction>
<description>Mandatory</description>
<method>
<ejb-name>StatelessTest2</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayHello</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<trans-attribute>Mandatory</trans-attribute>
</container-transaction>
<container-transaction>
<description>RequiresNew</description>
<method>
<ejb-name>StatelessTest2</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayGoodMorning</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<trans-attribute>RequiresNew</trans-attribute>
</container-transaction>
<interceptor-binding>
<ejb-name>myStatelessTest1</ejb-name>
<interceptor-order>
<interceptor-class>test.ejb.stateless.InterceptorB</interceptor-class>
</interceptor-order>
</interceptor-binding>
<exclude-list>
<method>
<ejb-name>StatelessTest2</ejb-name>
<method-intf>Local</method-intf>
<method-name>sayGoodAfternoon</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
</exclude-list>
</assembly-descriptor>
</ejb-jar>