Question about how to build an entity ejb hierarchy along side ejbdoclet:

If I have a hierarchy of entity ejbs with @ejb-finder ejbdoclet tags:

BaseBean


@ejb-finder

   signature="void findSomeBase()"

   query="some query"


DerivedBean extends BaseBean


@ejb-finder

   signature="void findSomeDerived()"

   query="some query"


Der2Bean extends DerivedBean


@ejb-finder

   signature="void findSomeDer2()"

   query="some query"



then <ejbdoclet> will add these finder interfaces to the <entity> specifications

withing the generated ejb-jar.xml file, such that each derived entity has its

superclass's finder methods specified, for example:


<entity>

  <ejb-name>BaseBean</ejb-name>

  <query><query-method><method-name>findSomeBase</method-name></query-method></query>

</entity>

<entity>
  <ejb-name>DerivedBean</ejb-name>

  <query><query-method><method-name>findSomeBase</method-name></query-method></query>

  <query><query-method><method-name>findSomeDerived</method-name></query-method></query>

</entity>

<entity>

  <ejb-name>Der2Bean</ejb-name>

  <query><query-method><method-name>findSomeBase</method-name></query-method></query>

  <query><query-method><method-name>findSomeDerived</method-name></query-method></query>

  <query><query-method><method-name>findSomeDer2</method-name></query-method></query>

</entity>


This is also true for the weblogic-ejb-jar.xml deployment descriptor.


The problem is:


The generated  remote interfaces only have the finder interfaces that belong

to that class, and does not have the superclass finder

methods, for example:


class BaseHome extends javax.ejb.EJBHome

{

   void findSomeBase();

}


class DerivedHome extends javax.ejb.EJBHome

{

   void findSomeDerived();

}


class Der2Home extends javax.ejb.EJBHome

{

   void findSomeDer2();

}


The problem is that   weblogic's ejbc tool fails to compile, correctly pointing out that

the deployment descriptor has finder methods defined that do not exist in the remote home

interface class.


So, I either need ejbdoclet to (a) not put the derived finder interfaces into the deployment descriptor xml,

or (b) add the derived finder interfaces into the generated home interface classes.


Is this a bug in ejbdoclet?  Or is this a stupid user trick?


this is version 1.2b4

Reply via email to