Share on Google+Share on Google+

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

Advertisement
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>

					

Advertisements

Advertisement

Posted on: April 18, 2011 If you enjoyed this post then why not add us on Google+? Add us to your Circles

Share this Tutorial Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

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

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments:0