<?xml version="1.0" encoding="UTF-8"?>
<!--

    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

-->

<!--   -->

<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>

<ejb-jar>
    <display-name>SimpleBMPJAR</display-name>
    <enterprise-beans>

        <!-- Simple EJB -->
        <entity>
            <display-name>SimpleBMPEJB</display-name>
            <ejb-name>SimpleBMPEJB</ejb-name>
            <home>com.sun.s1asdev.jdbc.stmtcaching.ejb.SimpleBMPHome</home>
            <remote>com.sun.s1asdev.jdbc.stmtcaching.ejb.SimpleBMP</remote>
            <ejb-class>com.sun.s1asdev.jdbc.stmtcaching.ejb.SimpleBMPBean</ejb-class>
            <persistence-type>Bean</persistence-type>
            <prim-key-class>java.lang.String</prim-key-class>
            <reentrant>False</reentrant>
            <security-identity>
                <description></description>
                <use-caller-identity></use-caller-identity>
            </security-identity>
            <resource-ref>
                <res-ref-name>DataSource</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
                <res-sharing-scope>Unshareable</res-sharing-scope>
                     </resource-ref>

        </entity>
    </enterprise-beans>

    <assembly-descriptor>
        <container-transaction>
            <method>
                <ejb-name>SimpleBMPEJB</ejb-name>
                <method-name>testHit</method-name>
            </method>
            <trans-attribute>NotSupported</trans-attribute>
        </container-transaction>

        <container-transaction>
            <method>
                <ejb-name>SimpleBMPEJB</ejb-name>
                <method-name>testMiss</method-name>
            </method>
            <trans-attribute>NotSupported</trans-attribute>
        </container-transaction>

        <container-transaction>
            <method>
                <ejb-name>SimpleBMPEJB</ejb-name>
                <method-name>testHitColumnNames</method-name>
            </method>
            <trans-attribute>NotSupported</trans-attribute>
        </container-transaction>
        <container-transaction>
            <method>
                <ejb-name>SimpleBMPEJB</ejb-name>
                <method-name>testHitColumnIndexes</method-name>
            </method>
            <trans-attribute>NotSupported</trans-attribute>
        </container-transaction>
</assembly-descriptor>
</ejb-jar>

