| <?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> |