Hmm, what about ConcreteEntityEJB extends AbstractEntityEJB, but not
ConcreteEntityEJB extends AbstractEntityEJB implements
javax.ejb.EntityBean?

- getData() return type still needs some work in inheritance case.
- two no arg constructors shouldn't happen,
XDtEjbPersistent:ifHasAtLeastOnePkField should handle it.

Ara.

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:xdoclet-devel-
> [EMAIL PROTECTED]] On Behalf Of Andrew Stevens
> Sent: Tuesday, January 08, 2002 9:26 PM
> To: [EMAIL PROTECTED]
> Subject: [Xdoclet-devel] Abstract EJBs again
> 
> How is the abstract EJB inheritance stuff currently supposed to work?
The
> results I'm getting aren't exactly what I'd expected, but it could be
I've
> just not got the various tags quite right.
> 
> I've got an AbstractEntityEJB (implements javax.ejb.EntityBean) with
> @ejb:bean name="AbstractEntity" generate="false" type="BMP"
> and no other class level tags.  There's implementations of the various
EJB
> lifecycle methods, plus a few persistent fields that are included in
all
> our
> database tables due to audit requirements.  No primary key fields
> specified,
> though.
> 
> This class generates home & remote (I'm using EJB 1.1) interfaces,
> dataobject and primary key.  They're much as I expected.  I notice the
> AbstractEntityPK still has two no-argument constructors (this was
> mentioned
> previously, before the various inheritence changes were done,  but I
guess
> it's still a problem).  Other than that, they're okay.
> 
> So then I defined ConcreteEntityEJB extends AbstractEntityEJB
implements
> javax.ejb.EntityBean (possibly a poor choice of name, since it's still
an
> abstract class, but the BMP class won't be).  That has
> @ejb:bean name="ConcreteEntity" type="BMP"
> and, again, no other class level tags.  This class defines various
> persistent fields (a few of which are also pk fields), but nothing
else.
> 
> This class also generates home & remote, dataobject and PK, plus a BMP
> class.  However, they don't appear to have taken any notice of the
> inheritance.  I thought the new "component inheritance" meant the
> home/remote/dataobject/pk would extend the respective classes
generated
> from
> AbstractEntityEJB, but they're still derived from EJBObject, EJBHome
and
> Object.  The BMP class looks mostly okay.  Its getData is returning an
> AbstractDataObject, though I was slightly surprised to see two setData
> methods (one with each DataObject as argument) rather than a single
> setData
> that takes an AbstractDataObject as argument then downcasts it to a
> ConcreteDataObject.  Also, because the data object wasn't extending
the
> abstract one, the BMP won't compile since it thinks the dataHolder
> returned
> by getData is an incompatible type.
> 
> I've tried a couple of variations on adding other class-level tags
> (@ejb:pk
> and @ejb:data-object etc.) with different generate="..." settings, but
> haven't found a combination that works.  I suspect I could get it
working
> by
> adding extends="..." parameters in various places, but is that the way
> it's
> supposed to be done or is there a cleaner way?
> 
> 
> Andrew.
> 
> _________________________________________________________________
> Get your FREE download of MSN Explorer at
> http://explorer.msn.com/intl.asp.
> 
> 
> _______________________________________________
> Xdoclet-devel mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/xdoclet-devel


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to