alt
Advertisement
Certification Series
Online Training
Career Series
Exforsys
Exforsys arrow Certification Series arrow SCBCD arrow SCBCD Study Notes : Chapter 6 : Component Contract for Container-Managed Persistence (CMP) (Part 3)
Site Search


SCBCD Study Notes : Chapter 6 : Component Contract for Container-Managed Persistence (CMP) (Part 3)
Article Index
SCBCD Study Notes : Chapter 6 : Component Contract for Container-Managed Persistence (CMP) (Part 3)
Page 2

.

.

Identify correctly-implemented deployment descriptor elements for a CMP bean (including container-managed relationships).

The deployment descriptor is part of the contract between the ejb-jar file producer and consumer.

The entity element declares an entity bean. The declaration consists of:

  • an optional description
  • an optional display-name
  • an optional small icon file name
  • an optional large icon file name
  • a unique name assigned to the enterprise bean in the deployment descriptor
  • the names of the entity bean’s home and remote interfaces, if any
  • the names of the entity bean’s local home and local interfaces, if any
  • the entity bean’s implementation class
  • the entity bean’s persistence management type
  • the entity bean’s primary key class name
  • an indication of the entity bean’s reentrancy
  • an optional specification of the entity bean’s cmp-version (2.x default)
  • an optional specification of the entity bean’s abstract schema name (CMP only)
  • an optional list of container-managed fields (CMP only)
  • an optional specification of the primary key field (CMP only)
  • an optional declaration of the bean’s environment entries
  • an optional declaration of the bean’s EJB references
  • an optional declaration of the bean’s local EJB references
  • an optional declaration of the security role references
  • an optional declaration of the security identity to be used for the execution of the bean’s methods
  • an optional declaration of the bean’s resource manager connection factory references
  • an optional declaration of the bean’s resource environment references

An optional set of query declarations for finder and select methods for an entity bean with cmp-version 2.x :

  • The optional abstract-schema-name element must be specified for an entity bean with container-managed persistence and cmp-version 2.x.
  • The optional primkey-field may be present in the descriptor if the entity’s persistence-type is Container.
  • The optional cmp-version element may be present in the descriptor if the entity’s persistence-type is Container. If the persistence-type is Container and the cmp-version element is not specified, its value DEFAULTS to 2.x.
  • The optional home and remote elements must be specified if the entity bean has a remote home and remote interface.
  • The optional local-home and local elements must be specified if the entity bean has a local home and local interface.
  • The optional query elements must be present if the persistence-type is Container and the cmp-version is 2.x and query methods other than findByPrimaryKey have been defined for the entity bean.


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< ! ELEMENT entity (description?, display-name?, small-icon?, ;;;;;;;;;;;;;;;;
;;;;;;;large-icon?, ejb-name, home?, remote?, local-home?, ;;;;;;;;;;;;;;;;;;;
;;;;;;;local?, ejb-class, persistence-type, prim-key-class, ;;;;;;;;;;;;;;;;;;
;;;;;;;reentrant, cmp-version?, abstract-schema-name?, ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;cmp-field*, primkey-field?, env-entry*, ejb-ref*, ;;;;;;;;;;;;;;;;;;;;;
;;;;;;;ejb-local-ref*, security-role-ref*, security-identity?, ;;;;;;;;;;;;;;;
;;;;;;;resource-ref*, resource-env-ref*, query*) >;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Mandatory elements are:

  • ejb-name
  • ejb-class
  • persistence-type
  • prim-key-class
  • reentrant

Example of Entity Bean deployment descriptor (with relationship):

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< ejb-jar >;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< enterprise-beans > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< entity > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< ejb-name >ReservationEJB< /ejb-name > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< local-home >com.titan.reservation.ReservationHomeLocal< /local-home>
;;;;;;;< local >com.titan.reservation.ReservationLocal< /local > ;;;;;;;;;;;;;
;;;;;;;< ejb-class >com.titan.reservation.ReservationBean< /ejb-class > ;;;;;;
;;;;;;;< persistence-type >Container< /persistence-type > ;;;;;;;;;;;;;;;;;;;;
;;;;;;;< prim-key-class >java.lang.Integer< /prim-key-class > ;;;;;;;;;;;;;;;;
;;;;;;;< reentrant >False< /reentrant > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< cmp-version >2.x< /cmp-version > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< abstract-schema-name >Reservation< /abstract-schema-name > ;;;;;;;;;;
;;;;;;;< cmp-field >< field-name >id< /field-name >< /cmp-field > ;;;;;;;;;;ll
;;;;;;;< cmp-field >< field-name >amountPaid< /field-name >< /cmp-field > ;;ll
;;;;;;;< cmp-field >< field-name >date< /field-name >< /cmp-field > ;;ll;;ll;;
;;;;;;;< primkey-field >id< /primkey-field > ;;ll;;ll;;ll;;ll;;ll;;ll;;ll;;;;;
;;;;;;;< security-identity >< use-caller-identity/ >< /security-identity > ;;;
;;;;;;;< query > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< query-method > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< method-name >findWithPaymentGreaterThan< /method-name>
;;;;;;;;;;;;;;;;;;;;;< method-params > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;< method-param >java.lang.Double< /method-param >
;;;;;;;;;;;;;;;;;;;;;< /method-params > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< /query-method > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< ejb-ql > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;SELECT OBJECT( r ) FROM Reservation r ;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;WHERE r.amountPaid > ?1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< /ejb-ql > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< /query > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< /entity > lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll;
< entity > lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll;;
;;;;;;;< ejb-name >CabinEJB< /ejb-name > lllllllllllllllllllllllllllllllllll;;
;;;;;;;< local-home >com.titan.cabin.CabinHomeLocal< /local-home > lllllllll;;
;;;;;;;< local >com.titan.cabin.CabinLocal< /local > lllllllll;;lllllllll;;;;;
;;;;;;;< ejb-class >com.titan.cabin.CabinBean< /ejb-class > lllllllll;;llllll;
;;;;;;;< persistence-type >Container< /persistence-type > lllllllll;;llllll;;;
;;;;;;;< prim-key-class >java.lang.Integer< /prim-key-class > lllll;;llllll;;;
;;;;;;;< reentrant >False< /reentrant > lllll;;llllll;;;lllll;;llllll;;;;;;;;;
;;;;;;;< cmp-version >2.x< /cmp-version > lllllllllllllllllllllllllllllllllll;
;;;;;;;< abstract-schema-name >Cabin< /abstract-schema-name > lllllllllllllll;
;;;;;;;< cmp-field >< field-name >id< /field-name >< /cmp-field > llllllllllll
;;;;;;;< cmp-field >< field-name >name< /field-name >< /cmp-field > llllllllll
;;;;;;;< cmp-field >< field-name >deckLevel< /field-name >< /cmp-field > lllll
;;;;;;;< cmp-field >< field-name >bedCount< /field-name >< /cmp-field > llllll
;;;;;;;< primkey-field >id< /primkey-field > ;;;;;;;;;;;;;;;;;;;;;;;;lllllllll
;;;;;;;< security-identity >< use-caller-identity/ >< /security-identity > lll
< /entity > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;lllllllll;
... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;lllllllllllllllll;
< /enterprise-beans > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< relationships > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< ejb-relation > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< ejb-relation-name >Cabin-Reservation< /ejb-relation-name > ;;;
;;;;;;;;;;;;;;< ejb-relationship-role > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< ejb-relationship-role-name > ;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;Cabin-has-many-Reservations ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< /ejb-relationship-role-name > ;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< multiplicity >Many< /multiplicity > ;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< relationship-role-source > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;< ejb-name >CabinEJB< /ejb-name > ;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< /relationship-role-source > ;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< /ejb-relationship-role > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< ejb-relationship-role > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< ejb-relationship-role-name > ;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;Reservation-has-many-Cabins ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< /ejb-relationship-role-name > ;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< multiplicity >Many< /multiplicity > ;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< relationship-role-source > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;< ejb-name >ReservationEJB< /ejb-name > ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< /relationship-role-source > ;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;< cmr-field > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;< cmr-field-name >cabins< /cmr-field-name > ;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;< cmr-field-type >java.util.Set< /cmr-field-type >
;;;;;;;;;;;;;;;;;;;;;< /cmr-field > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;< /ejb-relationship-role > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;< /ejb-relation > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< /relationships > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
< /ejb-jar > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



_________________
A
uthor: Mikalai Zaikin. Please Click Here to visit Authors site for any updates and changes to the study notes.


Trackback(0)
Comments (0)add comment

Write comment

busy

 
< Prev   Next >
Sponsored Links
© 2008 Exforsys.com
Joomla! is Free Software released under the GNU/GPL License.
Page copy protected against web site content infringement by Copyscape