jsr345-experts@ejb-spec.java.net

[jsr345-experts] Re: [ejb-spec users] Re: XXX under section 4.3.5

From: Stefan Heldt <stefan.heldt_at_holisticon.de>
Date: Thu, 8 Sep 2011 11:14:06 +0200

Marina,

to me it's pretty clear that all cited paragraphs talk about methods implemented on the bean class itself. All methods except ejbCreate are part of the interface SessionBean, hence you are forced to implement them on the bean class if it implements the interface.

Regards
Stefan!

-----Ursprüngliche Nachricht-----
Von: Marina Vatkina [mailto:marina.vatkina_at_oracle.com]
Gesendet: Donnerstag, 8. September 2011 00:42
An: jsr345-experts_at_ejb-spec.java.net
Betreff: [jsr345-experts] Re: [ejb-spec users] Re: XXX under section 4.3.5

Uh-oh... it's again the hidden characters that chop off most of my email :(. Trying again...

Marina Vatkina wrote:
> I think the spec is confusing in this area...
>
> A. The paragraph just above the one marked with XXX reads:
>
> "This specification requires that the ejbRemove, ejbActivate, and
> ejbPassivate methods of the SessionBean interface, and the ejbCreate
> method of a stateless session bean be treated as PreDestroy,
> PostActivate, PrePassivate and PostConstruct life cycle callback
> interceptor methods, respectively."

I can add "These callback methods must be implemented on the bean class itself (or on its superclasses)." to either the above par or the par marked with XXX that was the starting point of this discussion.



B. And while we are looking at the ejbXXX methods and interceptors, let's also look at the following compatibility note under section 4.9.3 "Lifecycle Callback Interceptor Methods":


"If the PostConstruct lifecycle callback interceptor method is the ejbCreate method, if the PreDestroy lifecycle callback interceptor method is the ejbRemove method, if the PostActivate lifecycle callback interceptor method is the ejbActivate method, or if the PrePassivate lifecycle callback interceptor method is the ejbPassivate method, these callback methods must be implemented on the bean class itself (or on its superclasses). "

Should the above be reworded to say the same as the 4.3.5 section or does it mean to say something different?

thanks,
-marina

> On 9/7/2011 4:27 AM, Carlo de Wolf wrote:
> Why should it be stated clearer?
>
> The bean class implementing the SessionBean interface or not is
> completely unrelated to anything defined on the interceptor classes.
>
> I think it would only complicate understanding to imply such a
> relationship.
>
> Carlo
>
> On 09/07/2011 03:46 AM, Marina Vatkina wrote:
>> Experts,
>>
>> Please advise on the following clarification request marked as XXX
>> under section 4.3.5 The SessionBean Interface
>>
>> Q Would interceptor classes apply as well? If yes, how it should be
>> stated?
>>
>> "If the session bean implements the SessionBean interface, the
>> PreDestroy annotation on the bean class can only be applied to the
>> ejbRemove method; the PostActivate annotation can only be applied to
>> the ejbActivate method; the PrePassivate annotation can only be
>> applied to the ejbPassivate method. Similar requirements apply to use
>> of deployment descriptor metadata as an alternative to the use of
>> annotations. "
>>
>> thanks,
>> -marina
>
>