blob: c31c2dda250a2ad6e14295df136424a19930ebb7 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Copyright 2005 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!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>
</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>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>