blob: b383424be8d8dd88a49a5d4565103224a8e2a7f1 [file] [log] [blame]
<?xml version="1.0"?>
<!--$Id$-->
<!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>
<enterprise-beans>
<session>
<display-name>KeyAllocator</display-name>
<ejb-name>KeyAllocator</ejb-name>
<home>org.apache.tapestry.vlib.ejb.IKeyAllocatorHome</home>
<remote>org.apache.tapestry.vlib.ejb.IKeyAllocator</remote>
<ejb-class>org.apache.tapestry.vlib.ejb.impl.KeyAllocatorBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<env-entry>
<description>The number of keys to allocate in one database transaction</description>
<env-entry-name>blockSize</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>50</env-entry-value>
</env-entry>
<resource-ref>
<description>DataSource connected to the vlib database.</description>
<res-ref-name>jdbc/dataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
<session>
<display-name>BookQuery</display-name>
<ejb-name>BookQuery</ejb-name>
<home>org.apache.tapestry.vlib.ejb.IBookQueryHome</home>
<remote>org.apache.tapestry.vlib.ejb.IBookQuery</remote>
<ejb-class>org.apache.tapestry.vlib.ejb.impl.BookQueryBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
<resource-ref>
<description>DataSource connected to the vlib database.</description>
<res-ref-name>jdbc/dataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
<session>
<ejb-name>Operations</ejb-name>
<home>org.apache.tapestry.vlib.ejb.IOperationsHome</home>
<remote>org.apache.tapestry.vlib.ejb.IOperations</remote>
<ejb-class>org.apache.tapestry.vlib.ejb.impl.OperationsBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-ref>
<ejb-ref-name>ejb/Book</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>org.apache.tapestry.vlib.ejb.IBookHome</home>
<remote>org.apache.tapestry.vlib.ejb.IBook</remote>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/Person</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>org.apache.tapestry.vlib.ejb.IPersonHome</home>
<remote>org.apache.tapestry.vlib.ejb.IPerson</remote>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/Publisher</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>org.apache.tapestry.vlib.ejb.IPublisherHome</home>
<remote>org.apache.tapestry.vlib.ejb.IPublisher</remote>
</ejb-ref>
<resource-ref>
<description>DataSource connected to the vlib database.</description>
<res-ref-name>jdbc/dataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
<entity>
<display-name>Person</display-name>
<ejb-name>Person</ejb-name>
<home>org.apache.tapestry.vlib.ejb.IPersonHome</home>
<remote>org.apache.tapestry.vlib.ejb.IPerson</remote>
<ejb-class>org.apache.tapestry.vlib.ejb.impl.PersonBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
<abstract-schema-name>Person</abstract-schema-name>
<cmp-field>
<description>email address; must be unique, used as login identifier</description>
<field-name>email</field-name>
</cmp-field>
<cmp-field>
<description>secret password</description>
<field-name>password</field-name>
</cmp-field>
<cmp-field>
<description>first (individual) name</description>
<field-name>firstName</field-name>
</cmp-field>
<cmp-field>
<description>primary key</description>
<field-name>personId</field-name>
</cmp-field>
<cmp-field>
<description>last (family) name</description>
<field-name>lastName</field-name>
</cmp-field>
<cmp-field>
<description>If true, the user has been locked out of the system (for misconduct, or excessive invalid passwords).</description>
<field-name>lockedOut</field-name>
</cmp-field>
<cmp-field>
<description>If true, the user is an administrator, who has priviledged access to adminstrate books and users.</description>
<field-name>admin</field-name>
</cmp-field>
<cmp-field>
<description>The time of last access to the system by the user; this is set when the user logs in.</description>
<field-name>lastAccess</field-name>
</cmp-field>
<primkey-field>personId</primkey-field>
<query>
<query-method>
<method-name>findByEmail</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql>
<![CDATA[
select object(p)
from Person p
where p.email = ?1
]]>
</ejb-ql>
</query>
<ejb-ref>
<description/>
<ejb-ref-name>ejb/KeyAllocator</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>org.apache.tapestry.vlib.ejb.IKeyAllocatorHome</home>
<remote>org.apache.tapestry.vlib.ejb.IKeyAllocator</remote>
</ejb-ref>
</entity>
<entity>
<display-name>Book</display-name>
<ejb-name>Book</ejb-name>
<home>org.apache.tapestry.vlib.ejb.IBookHome</home>
<remote>org.apache.tapestry.vlib.ejb.IBook</remote>
<ejb-class>org.apache.tapestry.vlib.ejb.impl.BookBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
<abstract-schema-name>Book</abstract-schema-name>
<cmp-field>
<description>Long description of book.</description>
<field-name>description</field-name>
</cmp-field>
<cmp-field>
<description>Relationship to Publisher entity.</description>
<field-name>publisherId</field-name>
</cmp-field>
<cmp-field>
<description>Relationship to Person entity (holder of book).</description>
<field-name>holderId</field-name>
</cmp-field>
<cmp-field>
<description>ISBN of book.</description>
<field-name>ISBN</field-name>
</cmp-field>
<cmp-field>
<description>Primary key.</description>
<field-name>bookId</field-name>
</cmp-field>
<cmp-field>
<description>Relationship to Person entity (owner of book).</description>
<field-name>ownerId</field-name>
</cmp-field>
<cmp-field>
<description>Title of book.</description>
<field-name>title</field-name>
</cmp-field>
<cmp-field>
<description>Name of book author</description>
<field-name>author</field-name>
</cmp-field>
<cmp-field>
<description>If true, the book is not visible except to the owner.</description>
<field-name>hidden</field-name>
</cmp-field>
<cmp-field>
<description>If true (the default), the book may be lent out.</description>
<field-name>lendable</field-name>
</cmp-field>
<cmp-field>
<description>The time at which the book was initially added to the database.</description>
<field-name>dateAdded</field-name>
</cmp-field>
<primkey-field>bookId</primkey-field>
<ejb-ref>
<description/>
<ejb-ref-name>ejb/KeyAllocator</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>org.apache.tapestry.vlib.ejb.IKeyAllocatorHome</home>
<remote>org.apache.tapestry.vlib.ejb.IKeyAllocator</remote>
</ejb-ref>
</entity>
<entity>
<display-name>Publisher</display-name>
<ejb-name>Publisher</ejb-name>
<home>org.apache.tapestry.vlib.ejb.IPublisherHome</home>
<remote>org.apache.tapestry.vlib.ejb.IPublisher</remote>
<ejb-class>org.apache.tapestry.vlib.ejb.impl.PublisherBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
<abstract-schema-name>Publisher</abstract-schema-name>
<cmp-field>
<field-name>name</field-name>
</cmp-field>
<cmp-field>
<field-name>publisherId</field-name>
</cmp-field>
<primkey-field>publisherId</primkey-field>
<query>
<query-method>
<method-name>findByName</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql>
<![CDATA[
select object(p)
from Publisher p
where p.name = ?1
]]>
</ejb-ql>
</query>
<ejb-ref>
<description/>
<ejb-ref-name>ejb/KeyAllocator</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>org.apache.tapestry.vlib.ejb.IKeyAllocatorHome</home>
<remote>org.apache.tapestry.vlib.ejb.IKeyAllocator</remote>
</ejb-ref>
</entity>
<!-- Temporarily removed
<message-driven>
<ejb-name>MailQueue</ejb-name>
<ejb-class>org.apache.tapestry.vlib.ejb.impl.MailQueueBean</ejb-class>
<transaction-type>Bean</transaction-type>
<message-selector/>
<acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
<subscription-durability>NonDurable</subscription-durability>
</message-driven-destination>
<ejb-ref>
<ejb-ref-name>ejb/MailSender</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>org.apache.tapestry.vlib.ejb.IMailSenderHome</home>
<remote>org.apache.tapestry.vlib.ejb.IMailSender</remote>
</ejb-ref>
</message-driven>
-->
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>KeyAllocator</ejb-name>
<method-name>*</method-name>
</method>
<method>
<ejb-name>Person</ejb-name>
<method-name>*</method-name>
</method>
<method>
<ejb-name>Book</ejb-name>
<method-name>*</method-name>
</method>
<method>
<ejb-name>Publisher</ejb-name>
<method-name>*</method-name>
</method>
<method>
<ejb-name>BookQuery</ejb-name>
<method-name>*</method-name>
</method>
<method>
<ejb-name>Operations</ejb-name>
<method-name>*</method-name>
</method>
<!--
<method>
<ejb-name>MailQueue</ejb-name>
<method-name>*</method-name>
</method>
<method>
<ejb-name>MailSender</ejb-name>
<method-name>*</method-name>
</method>
-->
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>