Hi Clint,

Your usage of ejb-ref-name is perfectly legitimate.  The issue is that
you don't have the ejb-link element pointing to another bean in the same
ejb-jar.xml

<ejb-ref>
  <ejb-ref-name>ejb/CabinEJB</ejb-ref-name>
  <ejb-ref-type>Session</ejb-ref-type>
  <home>com.titan.CabinHome</home>
  <remote>com.titan.Cabin</remote>
  <ejb-link>CabinEJB</ejb-link>
</ejb-ref>

Requiring any beans that reference each other to be in the same
ejb-jar.xml is completely compliant with the EJB spec.  In fact, the
spec says, "The value of the ejb-link element must be the ejb-name of an
enterprise bean in the same ejb-jar file or in another ejb-jar file in
the same J2EE application unit."  We don't support J2EE .ear files, so
the later won't work for us.

In the EJB 2.0 spec, they added ability to link beans from other jars
using this syntax:
<ejb-link>../products/product.jar#ProductEJB</ejb-link>

We haven't implemented this yet, but is something that will be required
for 2.0 or 2.1 compliance.  For now, it's just as easy to include both
beans in the same ejb-jar.xml 

I've attached the ejb-jar.xml for our test suite, it is a great example
of how to use the various elements of an ejb-jar.xml

Let us know if you run into any more problems or have more questions.

-David

PS - Did you see this article? http://java.foundries.sourceforge.net/


> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED]] On Behalf 
> Of Clint Olson
> Sent: Friday, October 04, 2002 8:03 PM
> To: openejb users
> Subject: [OpenEJB-user] EJB Reference causes Assembler 
> NullPointerException
> 
> 
> I can deploy and use a CMP Entity bean, and I can deploy 
> (e.g. openejb deploy -a ...) a Stateless Session bean that 
> references the Entity bean.  But when I start the openejb 
> server it crashes as shown by the openejb.log text below. 
> Any ideas what I'm doing wrong?
> 
> I guess I'm wondering if <ejb-name> in ejb-jar.xml is 
> "CabinEJB" for the CMP Entity bean, what should the 
> <ejb-ref-name> be in ejb-jar.xml for the Stateless Session 
> bean?  I'm using "ejb/CabinEJB".
> 
> Note that the Assembler NullPointerException does not happen 
> when I only have the Entity bean deployed, so this must have 
> something to do with the Stateless Session bean that is 
> referencing it.
> 
> 
> 
> **************************************************************
> ******************
> OpenEJB http://openejb.sf.net
> Startup: 10/4/02 5:35 PM
> Copyright 2000,2001,2002 (C) OpenEJB Project, All Rights Reserved.
> Version: 0.8.3
> Build date: 20021001
> Build time: 2020
> **************************************************************
> ******************
> 
> 
> DEBUG:  No SecurityManager installed. Installing default.
> DEBUG:  Instantiating assembler class 
> org.openejb.alt.assembler.classic.Assembler
> FATAL:  OpenEJB has encountered a fatal error and cannot be 
> started: The Assembler encountered an unexpected error while 
> attempting to initialize. java.lang.NullPointerException
>       at
> org.openejb.alt.config.ConfigurationFactory.initJndiReferences
> (ConfigurationFactory.java:672)
>       at
> org.openejb.alt.config.ConfigurationFactory.initEnterpriseBean
> Infos(ConfigurationFactory.java:600)
>       at
> org.openejb.alt.config.ConfigurationFactory.getOpenEjbConfigur
> ation(ConfigurationFactory.java:182)
>       at 
> org.openejb.alt.assembler.classic.Assembler.init(Assembler.java:163)
>       at org.openejb.OpenEJB.init(OpenEJB.java:224)
>       at org.openejb.server.EjbDaemon.init(EjbDaemon.java:137)
>       at org.openejb.server.EjbDaemon.main(EjbDaemon.java:1104)
>       at org.openejb.server.Main.main(Main.java:121)
> 
> 
> 
> =====
> Clinton S. Olson - Owner, Steven's Pass Carving Elvises
>    http://home.bak.rr.com/fl/fl.htm
> 
> "The two most important things in life are good friends and a 
> strong bullpen"
> 
>   -- Bob Lemon, former manager Royals/White Sox/Yankees
> 
> __________________________________________________
> Do you Yahoo!?
> New DSL Internet Access from SBC & Yahoo!
> http://sbc.yahoo.com
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf 
> _______________________________________________
> http://OpenEJB.sf.net
> OpenEJB-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/openejb-user
> 
<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd";>

<ejb-jar>
    <description>
    This ejb-jar file contains assembled enterprise beans that are
    part of employee self-service application.
    </description>
    
    <enterprise-beans>
        <!-- 
        ########################################################
        ########################################################
        ######  CMP   E N T I T Y   B E A N S  #################
        ########################################################
        ########################################################
        -->
        
        <!-- 
        ########################################################
        ID:  client/tests/entity/cmp/BasicCmpHome
        ########################################################
        -->
        
        <entity>
            <description>
            The EmployeeRecord entity bean encapsulates access
            to the employee records.The deployer will use
            container-managed persistence to integrate the
            entity bean with the back-end system managing
            the employee records.
            </description>
            <ejb-name>BasicCmpBean</ejb-name>
            <home>org.openejb.test.entity.cmp.BasicCmpHome</home>
            <remote>org.openejb.test.entity.cmp.BasicCmpObject</remote>
            <ejb-class>org.openejb.test.entity.cmp.BasicCmpBean</ejb-class>
            <persistence-type>Container</persistence-type>
            <prim-key-class>java.lang.Integer</prim-key-class>
            <reentrant>False</reentrant>
            <primkey-field>primaryKey</primkey-field>
            <resource-ref>
                <description>
                This is a reference to a JDBC database.
                </description>
                <res-ref-name>jdbc/basic/entityDatabase</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </entity>

        <!-- 
        ########################################################
        ID:  client/tests/entity/cmp/allowed_operations/EntityHome
        ########################################################
        -->
        
        <entity>
            <description>
             blah, blah, blah
            </description>
            <ejb-name>AOBasicCmpBean</ejb-name>
            <home>org.openejb.test.entity.cmp.BasicCmpHome</home>
            <remote>org.openejb.test.entity.cmp.BasicCmpObject</remote>
            <ejb-class>org.openejb.test.entity.cmp.AllowedOperationsCmpBean</ejb-class>
            <persistence-type>Container</persistence-type>
            <prim-key-class>java.lang.Integer</prim-key-class>
            <reentrant>False</reentrant>
            <primkey-field>primaryKey</primkey-field>
            <resource-ref>
                <description>
                This is a reference to a JDBC database.
                </description>
                <res-ref-name>jdbc/basic/entityDatabase</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </entity>

        <!-- 
        ########################################################
        ID:  client/tests/entity/cmp/EncBean
        ########################################################
        -->
        
        <entity>
            <description>
             blah, blah, blah
            </description>
            <ejb-name>EncCmpBean</ejb-name>
            <home>org.openejb.test.entity.cmp.EncCmpHome</home>
            <remote>org.openejb.test.entity.cmp.EncCmpObject</remote>
            <ejb-class>org.openejb.test.entity.cmp.EncCmpBean</ejb-class>
            <persistence-type>Container</persistence-type>
            <prim-key-class>java.lang.Integer</prim-key-class>
            <reentrant>False</reentrant>
            <primkey-field>primaryKey</primkey-field>
            <env-entry>
                <env-entry-name>entity/cmp/references/Boolean</env-entry-name>
                <env-entry-type>java.lang.Boolean</env-entry-type>
                <env-entry-value>true</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/cmp/references/String</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/cmp/references/Double</env-entry-name>
                <env-entry-type>java.lang.Double</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/cmp/references/Long</env-entry-name>
                <env-entry-type>java.lang.Long</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/cmp/references/Float</env-entry-name>
                <env-entry-type>java.lang.Float</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/cmp/references/Integer</env-entry-name>
                <env-entry-type>java.lang.Integer</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/cmp/references/Short</env-entry-name>
                <env-entry-type>java.lang.Short</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/cmp/references/Byte</env-entry-name>
                <env-entry-type>java.lang.Byte</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <ejb-ref> 
                <ejb-ref-name>entity/cmp/beanReferences/cmp_entity</ejb-ref-name> 
                <ejb-ref-type>Entity</ejb-ref-type>
                <home>org.openejb.test.entity.cmp.BasicCmpHome</home>
                <remote>org.openejb.test.entity.cmp.BasicCmpObject</remote>
                <ejb-link>BasicCmpBean</ejb-link>
            </ejb-ref> 
            <ejb-ref> 
                <ejb-ref-name>entity/cmp/beanReferences/stateful</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateful.BasicStatefulHome</home>
                <remote>org.openejb.test.stateful.BasicStatefulObject</remote>
                <ejb-link>BasicStatefulBean</ejb-link>
            </ejb-ref> 
            <ejb-ref> 
                <ejb-ref-name>entity/cmp/beanReferences/stateless</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateless.BasicStatelessHome</home>
                <remote>org.openejb.test.stateless.BasicStatelessObject</remote>
                <ejb-link>BasicStatelessBean</ejb-link>
            </ejb-ref> 
            <resource-ref>
                <res-ref-name>datasource</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
            <resource-ref>
                <res-ref-name>jdbc/basic/entityDatabase</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </entity>

        <!-- 
        ########################################################
        ID:  client/tests/entity/cmp/RMI-over-IIOP/EJBHome
        ########################################################
        -->
        
        <entity>
            <description>
             blah, blah, blah
            </description>
            <ejb-name>Cmp RMI-IIOP Bean</ejb-name>
            <home>org.openejb.test.entity.cmp.RmiIiopCmpHome</home>
            <remote>org.openejb.test.entity.cmp.RmiIiopCmpObject</remote>
            <ejb-class>org.openejb.test.entity.cmp.RmiIiopCmpBean</ejb-class>
            <persistence-type>Container</persistence-type>
            <prim-key-class>java.lang.Integer</prim-key-class>
            <reentrant>False</reentrant>
            <primkey-field>primaryKey</primkey-field>
            <ejb-ref> 
                <ejb-ref-name>cmp/rmi-iiop/home</ejb-ref-name> 
                <ejb-ref-type>Entity</ejb-ref-type> 
                <home>org.openejb.test.entity.cmp.EncCmpHome</home>
                <remote>org.openejb.test.entity.cmp.EncCmpObject</remote>
                <ejb-link>EncCmpBean</ejb-link>
            </ejb-ref> 
            <security-role-ref>
                <role-name>TheMan</role-name>
                <role-link>Executive</role-link>
            </security-role-ref>
        </entity>

        <!-- 
        ########################################################
        ########################################################
        ####  S T A T E F U L   S E S S I O N   B E A N S  #####
        ########################################################
        ########################################################
        -->
        
        <!-- 
        ########################################################
        ID:  client/tests/stateful/BasicStatefulHome
        ########################################################
        -->
        
        <session>
            <description>A basic stateful session bean with contianer-managed 
            transaction demarcation that implements the 
            javax.ejb.SessionSynchronization interface.
            </description>
            <ejb-name>BasicStatefulBean</ejb-name>
            <home>org.openejb.test.stateful.BasicStatefulHome</home>
            <remote>org.openejb.test.stateful.BasicStatefulObject</remote>
            <ejb-class>org.openejb.test.stateful.BasicStatefulBean</ejb-class>
            <session-type>Stateful</session-type>
            <transaction-type>Container</transaction-type>
            <security-role-ref>
                <role-name>TheMan</role-name>
                <role-link>Executive</role-link>
            </security-role-ref>
        </session>
        
        <!-- 
        ########################################################
        ID:  client/tests/stateful/BeanManagedBasicStatefulHome
        ########################################################
        -->
        
        <session>
            <description>A basic stateful session bean with bean-managed 
            transaction demarcation.
            </description>
            <ejb-name>Basic BMT StatefulBean</ejb-name>
            <home>org.openejb.test.stateful.BasicStatefulHome</home>
            <remote>org.openejb.test.stateful.BasicStatefulObject</remote>
            <ejb-class>org.openejb.test.stateful.BMTStatefulBean</ejb-class>
            <session-type>Stateful</session-type>
            <transaction-type>Bean</transaction-type>
            <security-role-ref>
                <role-name>TheMan</role-name>
                <role-link>Executive</role-link>
            </security-role-ref>
        </session>
        
        <!-- 
        ########################################################
        ID:  client/tests/stateful/BeanManagedTransactionTests/EJBHome
        ########################################################
        -->
        
        <session>
            <description>A basic stateful session bean with bean-managed 
            transaction demarcation.
            </description>
            <ejb-name>BMT StatefulBean</ejb-name>
            <home>org.openejb.test.stateful.BeanTxStatefulHome</home>
            <remote>org.openejb.test.stateful.BeanTxStatefulObject</remote>
            <ejb-class>org.openejb.test.stateful.BeanTxStatefulBean</ejb-class>
            <session-type>Stateful</session-type>
            <transaction-type>Bean</transaction-type>
            <security-role-ref>
                <role-name>TheMan</role-name>
                <role-link>Executive</role-link>
            </security-role-ref>
            <resource-ref>
                <res-ref-name>datasource</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </session>
        
        <!-- 
        ########################################################
        ID:  client/tests/stateful/EncBean
        ########################################################
        -->
        
        <session>
            <description>A basic stateful session bean with bean-managed 
            transaction demarcation.
            </description>
            <ejb-name>EncStatefulBean</ejb-name>
            <home>org.openejb.test.stateful.EncStatefulHome</home>
            <remote>org.openejb.test.stateful.EncStatefulObject</remote>
            <ejb-class>org.openejb.test.stateful.EncStatefulBean</ejb-class>
            <session-type>Stateful</session-type>
            <transaction-type>Bean</transaction-type>
            <env-entry>
                <env-entry-name>stateful/references/Boolean</env-entry-name>
                <env-entry-type>java.lang.Boolean</env-entry-type>
                <env-entry-value>true</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateful/references/String</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateful/references/Double</env-entry-name>
                <env-entry-type>java.lang.Double</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateful/references/Long</env-entry-name>
                <env-entry-type>java.lang.Long</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateful/references/Float</env-entry-name>
                <env-entry-type>java.lang.Float</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateful/references/Integer</env-entry-name>
                <env-entry-type>java.lang.Integer</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateful/references/Short</env-entry-name>
                <env-entry-type>java.lang.Short</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateful/references/Byte</env-entry-name>
                <env-entry-type>java.lang.Byte</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <ejb-ref> 
                <ejb-ref-name>stateful/beanReferences/bmp_entity</ejb-ref-name> 
                <ejb-ref-type>Entity</ejb-ref-type>
                <home>org.openejb.test.entity.bmp.BasicBmpHome</home>
                <remote>org.openejb.test.entity.bmp.BasicBmpObject</remote>
                <ejb-link>BasicBmpBean</ejb-link>
            </ejb-ref> 
            <ejb-ref> 
                <ejb-ref-name>stateful/beanReferences/stateful</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateful.BasicStatefulHome</home>
                <remote>org.openejb.test.stateful.BasicStatefulObject</remote>
                <ejb-link>BasicStatefulBean</ejb-link>
            </ejb-ref> 
            <ejb-ref> 
                <ejb-ref-name>stateful/beanReferences/stateless</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateless.BasicStatelessHome</home>
                <remote>org.openejb.test.stateless.BasicStatelessObject</remote>
                <ejb-link>BasicStatelessBean</ejb-link>
            </ejb-ref> 
            <security-role-ref>
                <role-name>TheMan</role-name>
                <role-link>Executive</role-link>
            </security-role-ref>
            <resource-ref>
                <res-ref-name>datasource</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </session>
        
        <!-- 
        ########################################################
        ID:  client/tests/stateful/RMI-over-IIOP/EJBHome
        ########################################################
        -->
        
        <session>
            <description>
                The stateful bean for the RMI-IIOP Tests
            </description>
            <ejb-name>Stateful RMI-IIOP Bean</ejb-name>
            <home>org.openejb.test.stateful.RmiIiopStatefulHome</home>
            <remote>org.openejb.test.stateful.RmiIiopStatefulObject</remote>
            <ejb-class>org.openejb.test.stateful.RmiIiopStatefulBean</ejb-class>
            <session-type>Stateful</session-type>
            <transaction-type>Bean</transaction-type>
            <ejb-ref> 
                <ejb-ref-name>stateful/rmi-iiop/home</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateful.EncStatefulHome</home>
                <remote>org.openejb.test.stateful.EncStatefulBean</remote>
                <ejb-link>EncStatefulBean</ejb-link>
            </ejb-ref> 
            <security-role-ref>
                <role-name>TheMan</role-name>
                <role-link>Executive</role-link>
            </security-role-ref>
        </session>
        
        <!-- 
        ########################################################
        ########################################################
        ###  S T A T E L E S S   S E S S I O N   B E A N S  ####
        ########################################################
        ########################################################
        -->
        
        <!-- 
        ########################################################
        ID:  client/tests/stateless/BasicStatelessHome
        ########################################################
        -->
        
        <session>
            <description>A basic stateless session bean with contianer-managed 
            transaction demarcation.
            </description>
            <ejb-name>BasicStatelessBean</ejb-name>
            <home>org.openejb.test.stateless.BasicStatelessHome</home>
            <remote>org.openejb.test.stateless.BasicStatelessObject</remote>
            <ejb-class>org.openejb.test.stateless.BasicStatelessBean</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Container</transaction-type>
            <env-entry>
                <env-entry-name>stateless/references/JNDI_access_to_java_comp_env</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>Success</env-entry-value>
            </env-entry>
            <ejb-ref> 
                <ejb-ref-name>stateless/beanReferences/Enterprise_bean_access</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateful.BasicStatefulHome</home>
                <remote>org.openejb.test.stateful.BasicStatefulObject</remote>
                <ejb-link>BasicStatefulBean</ejb-link>
            </ejb-ref> 
            <security-role-ref>
                <role-name>BigWig</role-name>
                <role-link>Teller</role-link>
            </security-role-ref>
            <security-role-ref>
                <role-name>HighRoller</role-name>
                <role-link>Manager</role-link>
            </security-role-ref>
            <resource-ref>
                <description>
                This is a reference to a JDBC database.
                </description>
                <res-ref-name>stateless/references/Resource_manager_access</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </session>
        
        <!-- 
        ########################################################
        ID:  client/tests/stateless/BeanManagedBasicStatelessHome
        ########################################################
        -->
        
        <session>
            <description>A basic stateless session bean with bean-managed 
            transaction demarcation.
            </description>
            <ejb-name>Basic BMT StatelessBean</ejb-name>
            <home>org.openejb.test.stateless.BasicStatelessHome</home>
            <remote>org.openejb.test.stateless.BasicStatelessObject</remote>
            <ejb-class>org.openejb.test.stateless.BasicStatelessBean</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Bean</transaction-type>
            <env-entry>
                <env-entry-name>stateless/references/JNDI_access_to_java_comp_env</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>Success</env-entry-value>
            </env-entry>
            <ejb-ref> 
                <ejb-ref-name>stateless/beanReferences/Enterprise_bean_access</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateful.BasicStatefulHome</home>
                <remote>org.openejb.test.stateful.BasicStatefulObject</remote>
                <ejb-link>BasicStatefulBean</ejb-link>
            </ejb-ref> 
            <security-role-ref>
                <role-name>BigWig</role-name>
                <role-link>Teller</role-link>
            </security-role-ref>
            <security-role-ref>
                <role-name>HighRoller</role-name>
                <role-link>Manager</role-link>
            </security-role-ref>
            <resource-ref>
                <description>
                This is a reference to a JDBC database.
                </description>
                <res-ref-name>stateless/references/Resource_manager_access</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </session>
        
        <!-- 
        ########################################################
        ID:  client/tools/DatabaseHome
        ########################################################
        -->
        
        <session>
            <description>A basic stateless session bean with bean-managed 
            transaction demarcation.
            </description>
            <ejb-name>DatabaseBean</ejb-name>
            <home>org.openejb.test.beans.DatabaseHome</home>
            <remote>org.openejb.test.beans.Database</remote>
            <ejb-class>org.openejb.test.beans.DatabaseBean</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Bean</transaction-type>
            <security-role-ref>
                <role-name>BigWig</role-name>
                <role-link>Teller</role-link>
            </security-role-ref>
            <security-role-ref>
                <role-name>HighRoller</role-name>
                <role-link>Manager</role-link>
            </security-role-ref>
            <resource-ref>
                <res-ref-name>database</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </session>
        
        <!-- 
        ########################################################
        ID:  client/tests/stateless/BeanManagedTransactionTests/EJBHome
        ########################################################
        -->
        
        <session>
            <description>A basic stateless session bean with bean-managed 
            transaction demarcation.
            </description>
            <ejb-name>BMT StatelessBean</ejb-name>
            <home>org.openejb.test.stateless.BeanTxStatelessHome</home>
            <remote>org.openejb.test.stateless.BeanTxStatelessObject</remote>
            <ejb-class>org.openejb.test.stateless.BeanTxStatelessBean</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Bean</transaction-type>
            <security-role-ref>
                <role-name>BigWig</role-name>
                <role-link>Teller</role-link>
            </security-role-ref>
            <security-role-ref>
                <role-name>HighRoller</role-name>
                <role-link>Manager</role-link>
            </security-role-ref>
            <resource-ref>
                <res-ref-name>database</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </session>
        
        <!-- 
        ########################################################
        ID:  client/tests/stateless/EncBean
        ########################################################
        -->
        
        <session>
            <description>
                The stateless bean for the JNDI ENC tests
            </description>
            <ejb-name>EncStatelessBean</ejb-name>
            <home>org.openejb.test.stateless.EncStatelessHome</home>
            <remote>org.openejb.test.stateless.EncStatelessObject</remote>
            <ejb-class>org.openejb.test.stateless.EncStatelessBean</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Bean</transaction-type>
            
            
            <env-entry>
                <env-entry-name>stateless/references/JNDI_access_to_java_comp_env</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>Success</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateless/references/Boolean</env-entry-name>
                <env-entry-type>java.lang.Boolean</env-entry-type>
                <env-entry-value>true</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateless/references/String</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateless/references/Double</env-entry-name>
                <env-entry-type>java.lang.Double</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateless/references/Long</env-entry-name>
                <env-entry-type>java.lang.Long</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateless/references/Float</env-entry-name>
                <env-entry-type>java.lang.Float</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateless/references/Integer</env-entry-name>
                <env-entry-type>java.lang.Integer</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateless/references/Short</env-entry-name>
                <env-entry-type>java.lang.Short</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>stateless/references/Byte</env-entry-name>
                <env-entry-type>java.lang.Byte</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <ejb-ref> 
                <ejb-ref-name>stateless/beanReferences/Enterprise_bean_access</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateful.BasicStatefulHome</home>
                <remote>org.openejb.test.stateful.BasicStatefulObject</remote>
                <ejb-link>BasicStatefulBean</ejb-link>
            </ejb-ref> 
            <ejb-ref> 
                <ejb-ref-name>stateless/beanReferences/bmp_entity</ejb-ref-name> 
                <ejb-ref-type>Entity</ejb-ref-type>
                <home>org.openejb.test.entity.bmp.BasicBmpHome</home>
                <remote>org.openejb.test.entity.bmp.BasicBmpObject</remote>
                <ejb-link>BasicBmpBean</ejb-link>
            </ejb-ref> 
            <ejb-ref> 
                <ejb-ref-name>stateless/beanReferences/stateful</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateful.BasicStatefulHome</home>
                <remote>org.openejb.test.stateful.BasicStatefulObject</remote>
                <ejb-link>BasicStatefulBean</ejb-link>
            </ejb-ref> 
            <ejb-ref> 
                <ejb-ref-name>stateless/beanReferences/stateless</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateless.BasicStatelessHome</home>
                <remote>org.openejb.test.stateless.BasicStatelessObject</remote>
                <ejb-link>BasicStatelessBean</ejb-link>
            </ejb-ref> 
            <security-role-ref>
                <role-name>TheMan</role-name>
                <role-link>Executive</role-link>
            </security-role-ref>
            <resource-ref>
                <res-ref-name>datasource</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </session>
        
        <!-- 
        ########################################################
        ID:  client/tests/stateless/RMI-over-IIOP/EJBHome
        ########################################################
        -->
        
        <session>
            <description>
                The stateless bean for the RMI-IIOP Tests
            </description>
            <ejb-name>Stateless RMI-IIOP Bean</ejb-name>
            <home>org.openejb.test.stateless.RmiIiopStatelessHome</home>
            <remote>org.openejb.test.stateless.RmiIiopStatelessObject</remote>
            <ejb-class>org.openejb.test.stateless.RmiIiopStatelessBean</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Bean</transaction-type>
            <ejb-ref> 
                <ejb-ref-name>stateless/rmi-iiop/home</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateless.EncStatelessHome</home>
                <remote>org.openejb.test.stateless.EncStatelessBean</remote>
                <ejb-link>EncStatelessBean</ejb-link>
            </ejb-ref> 
            <security-role-ref>
                <role-name>TheMan</role-name>
                <role-link>Executive</role-link>
            </security-role-ref>
        </session>
        
        <!-- 
        ########################################################
        ########################################################
        ######  BMP   E N T I T Y   B E A N S  #################
        ########################################################
        ########################################################
        -->
        
        <!-- 
        ########################################################
        ID:  client/tests/entity/bmp/BasicBmpHome
        ########################################################
        -->
        
        <entity>
            <description>
            The EmployeeRecord entity bean encapsulates access
            to the employee records.The deployer will use
            container-managed persistence to integrate the
            entity bean with the back-end system managing
            the employee records.
            </description>
            <ejb-name>BasicBmpBean</ejb-name>
            <home>org.openejb.test.entity.bmp.BasicBmpHome</home>
            <remote>org.openejb.test.entity.bmp.BasicBmpObject</remote>
            <ejb-class>org.openejb.test.entity.bmp.BasicBmpBean</ejb-class>
            <persistence-type>Bean</persistence-type>
            <prim-key-class>java.lang.Integer</prim-key-class>
            <reentrant>False</reentrant>
            <primkey-field>primaryKey</primkey-field>
            <resource-ref>
                <description>
                This is a reference to a JDBC database.
                </description>
                <res-ref-name>jdbc/basic/entityDatabase</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </entity>

        <!-- 
        ########################################################
        ID:  client/tests/entity/bmp/allowed_operations/EntityHome
        ########################################################
        -->
        
        <entity>
            <description>
             blah, blah, blah
            </description>
            <ejb-name>AOBasicBmpBean</ejb-name>
            <home>org.openejb.test.entity.bmp.BasicBmpHome</home>
            <remote>org.openejb.test.entity.bmp.BasicBmpObject</remote>
            <ejb-class>org.openejb.test.entity.bmp.AllowedOperationsBmpBean</ejb-class>
            <persistence-type>Bean</persistence-type>
            <prim-key-class>java.lang.Integer</prim-key-class>
            <reentrant>False</reentrant>
            <primkey-field>primaryKey</primkey-field>
            <env-entry>
                <env-entry-name>stateless/references/JNDI_access_to_java_comp_env</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>Success</env-entry-value>
            </env-entry>
            <ejb-ref> 
                <ejb-ref-name>stateless/beanReferences/Enterprise_bean_access</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateful.BasicStatefulHome</home>
                <remote>org.openejb.test.stateful.BasicStatefulObject</remote>
                <ejb-link>BasicStatefulBean</ejb-link>
            </ejb-ref> 
            <resource-ref>
                <description>
                This is a reference to a JDBC database.
                </description>
                <res-ref-name>jdbc/basic/entityDatabase</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
            <resource-ref>
                <description>
                This is a reference to a JDBC database.
                </description>
                <res-ref-name>stateless/references/Resource_manager_access</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </entity>

        <!-- 
        ########################################################
        ID:  client/tests/entity/bmp/EncBean
        ########################################################
        -->
        
        <entity>
            <description>
             blah, blah, blah
            </description>
            <ejb-name>EncBmpBean</ejb-name>
            <home>org.openejb.test.entity.bmp.EncBmpHome</home>
            <remote>org.openejb.test.entity.bmp.EncBmpObject</remote>
            <ejb-class>org.openejb.test.entity.bmp.EncBmpBean</ejb-class>
            <persistence-type>Bean</persistence-type>
            <prim-key-class>java.lang.Integer</prim-key-class>
            <reentrant>False</reentrant>
            <primkey-field>primaryKey</primkey-field>
            <env-entry>
                <env-entry-name>entity/bmp/references/Boolean</env-entry-name>
                <env-entry-type>java.lang.Boolean</env-entry-type>
                <env-entry-value>true</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/bmp/references/String</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/bmp/references/Double</env-entry-name>
                <env-entry-type>java.lang.Double</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/bmp/references/Long</env-entry-name>
                <env-entry-type>java.lang.Long</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/bmp/references/Float</env-entry-name>
                <env-entry-type>java.lang.Float</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/bmp/references/Integer</env-entry-name>
                <env-entry-type>java.lang.Integer</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/bmp/references/Short</env-entry-name>
                <env-entry-type>java.lang.Short</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>entity/bmp/references/Byte</env-entry-name>
                <env-entry-type>java.lang.Byte</env-entry-type>
                <env-entry-value>1</env-entry-value>
            </env-entry>
            <ejb-ref> 
                <ejb-ref-name>entity/bmp/beanReferences/bmp_entity</ejb-ref-name> 
                <ejb-ref-type>Entity</ejb-ref-type>
                <home>org.openejb.test.entity.bmp.BasicBmpHome</home>
                <remote>org.openejb.test.entity.bmp.BasicBmpObject</remote>
                <ejb-link>BasicBmpBean</ejb-link>
            </ejb-ref> 
            <ejb-ref> 
                <ejb-ref-name>entity/bmp/beanReferences/stateful</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateful.BasicStatefulHome</home>
                <remote>org.openejb.test.stateful.BasicStatefulObject</remote>
                <ejb-link>BasicStatefulBean</ejb-link>
            </ejb-ref> 
            <ejb-ref> 
                <ejb-ref-name>entity/bmp/beanReferences/stateless</ejb-ref-name> 
                <ejb-ref-type>Session</ejb-ref-type>
                <home>org.openejb.test.stateless.BasicStatelessHome</home>
                <remote>org.openejb.test.stateless.BasicStatelessObject</remote>
                <ejb-link>BasicStatelessBean</ejb-link>
            </ejb-ref> 
            <resource-ref>
                <res-ref-name>datasource</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
            <resource-ref>
                <res-ref-name>jdbc/basic/entityDatabase</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </entity>

        <!-- 
        ########################################################
        ID:  client/tests/entity/bmp/RMI-over-IIOP/EJBHome
        ########################################################
        -->
        
        <entity>
            <description>
             blah, blah, blah
            </description>
            <ejb-name>Bmp RMI-IIOP Bean</ejb-name>
            <home>org.openejb.test.entity.bmp.RmiIiopBmpHome</home>
            <remote>org.openejb.test.entity.bmp.RmiIiopBmpObject</remote>
            <ejb-class>org.openejb.test.entity.bmp.RmiIiopBmpBean</ejb-class>
            <persistence-type>Bean</persistence-type>
            <prim-key-class>java.lang.Integer</prim-key-class>
            <reentrant>False</reentrant>
            <primkey-field>primaryKey</primkey-field>
            <ejb-ref> 
                <ejb-ref-name>bmp/rmi-iiop/home</ejb-ref-name> 
                <ejb-ref-type>Entity</ejb-ref-type> 
                <home>org.openejb.test.entity.bmp.EncBmpHome</home>
                <remote>org.openejb.test.entity.bmp.EncBmpObject</remote>
                <ejb-link>EncBmpBean</ejb-link>
            </ejb-ref> 
            <security-role-ref>
                <role-name>TheMan</role-name>
                <role-link>Executive</role-link>
            </security-role-ref>
        </entity>
    </enterprise-beans>
    
    <assembly-descriptor>
        <security-role>
            <description>The description</description>
            <role-name>Teller</role-name>
        </security-role>
        <security-role>
            <description>The description</description>
            <role-name>Manager</role-name>
        </security-role>
        <security-role>
            <description>The description</description>
            <role-name>Accountant</role-name>
        </security-role>
        <security-role>
            <description>The description</description>
            <role-name>Executive</role-name>
        </security-role>
        
        <method-permission>
            <description>The description</description>
            <role-name>Teller</role-name>
            <method>
                <description>The description</description>
                <ejb-name>BasicStatelessBean</ejb-name>
                <method-name>remove</method-name>
            </method>
        </method-permission>
        
        <method-permission>
            <description>The description</description>
            <role-name>Accountant</role-name>
            <role-name>Manager</role-name>
            <method>
                <description>The description</description>
                <ejb-name>BasicStatefulBean</ejb-name>
                <method-name>*</method-name>
            </method>
        </method-permission>

        <container-transaction>
            <method>
                <ejb-name>BasicStatefulBean</ejb-name>
                <method-name>*</method-name>
            </method>
            <trans-attribute>Required</trans-attribute>
        </container-transaction>

        <container-transaction>
            <method>
                <ejb-name>BasicStatelessBean</ejb-name>
                <method-name>businessMethod</method-name>
            </method>
            <trans-attribute>Required</trans-attribute>
        </container-transaction>
    </assembly-descriptor>
</ejb-jar>

Reply via email to