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

Ask Questions?

View Latest Questions

Advertisement


 
 

Identify correctly-implemented deployment descriptor elements for a CMP bean (including container-managed relationships).
Posted on: April 18, 2011 at 12:00 AM
This page discusses - Identify correctly-implemented deployment descriptor elements for a CMP bean (including container-managed relationships).

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>
	<cmp-field><field-name>amountPaid</field-name></cmp-field>
	<cmp-field><field-name>date</field-name></cmp-field>
	<primkey-field>id</primkey-field>
	<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 &gt; ?1
		</ejb-ql>
	</query>
</entity>
<entity>
	<ejb-name>CabinEJB</ejb-name>
	<local-home>com.titan.cabin.CabinHomeLocal</local-home>
	<local>com.titan.cabin.CabinLocal</local>
	<ejb-class>com.titan.cabin.CabinBean</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>Cabin</abstract-schema-name>
	<cmp-field><field-name>id</field-name></cmp-field>
	<cmp-field><field-name>name</field-name></cmp-field>
	<cmp-field><field-name>deckLevel</field-name></cmp-field>
	<cmp-field><field-name>bedCount</field-name></cmp-field>
	<primkey-field>id</primkey-field>
	<security-identity><use-caller-identity/></security-identity>
</entity>
...
</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>

					
Advertisement


DMCA.com