A wise old hermit known only as Brian McSweeney 
<[EMAIL PROTECTED]> once said:

> but some of the beans - eg the session beans - in xpetstore have the
> ejbCreates generated for them, but the entity beans don't seem to have
> this done. What I think needs to be clear, is what defines this 
> behaviour in xdoclet. 

The EJB spec :-)

> Is it just as simple as:
> 
> xdoclet generates defaul creates, ejbCreates etc for session beans but
> not for entity beans?

Stateless session beans *must have* (only) a single no-argument ejbCreate 
method.  Because the spec mandates this, XDoclet will add it automatically 
if there isn't one.  Obviously (!), create methods with arguments are a 
no-no, since passing in information implies some form of state and the 
bean is stateless...

Stateful session beans don't *have* to have a no-arg ejbCreate, so long as 
there's at least one create method.  It's okay to just have create methods 
with arguments, so we can't automatically add a no-arg one in case you 
actually intend there not to be one.  Up till EJB 1.1 I guess we *could* 
have checked that there's at least one ejbCreate method in there, and add 
a no-arg one if not, but since EJB 2.0 they don't even need to be named 
ejbCreate, just begin with it e.g. ejbCreateUsingMyData(MyData x) is okay. 
So having the template check <XDtMethod:ifDoesntHaveMethod 
name="ejbCreate"> won't work any more...

With entity beans, you *don't have* to have *any* ejbCreate methods at 
all; entity beans are representations of persistent data, and it's 
perfectly okay to have that data created solely through some external 
mechanism e.g. pre-loading tables of standing data (you can still access 
it through EJBs via their finders).  Since it's valid to have no create 
methods, XDoclet won't add any.  However, the spec does say there must be 
a corresponding ejbPostCreate method for each create method, so XDoclet 
will add those if you don't include them.

Can't remember offhand about MessageDrivenBeans (not used them much 
myself).  Since they're basically stateless beans that respond to message 
events, I'd guess the same applies as stateless session EJBs i.e. must 
have only a no-arg ejbCreate.  But we don't generate a subclass for them 
anyway, so it's a moot point.


Andrew.


-------------------------------------------------------
This SF.net email is sponsored by: Scholarships for Techies!
Can't afford IT training? All 2003 ictp students receive scholarships.
Get hands-on training in Microsoft, Cisco, Sun, Linux/UNIX, and more.
www.ictp.com/training/sourceforge.asp
_______________________________________________
Xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

Reply via email to