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
