[webbeans-dev] Re: Updated EJB SPI

Andrew Lee Rubinger alr at jboss.org
Tue Mar 17 15:22:24 EDT 2009


Pete Muir wrote:
> We also discussed in some detail the contract imposed by A2. Session 
> Bean Interceptor 
> http://docs.jboss.org/webbeans/reference/snapshot/en-US/html/ri-spi.html
> 
> ALR said that he would prefer us to register for lifecycle callbacks 
> from the EJB container programatically, rather than use an EJB interceptor.

I raised this point to address a portable mechanism for JSR-299 to 
integrate with EJB Implementations, where 299 is an add-on 
(consumer/client) atop EJB3.  If that's left out of scope as Ken 
suggests, any vendor-specific way to get the job done should suffice. 
Especially in the case of JBoss WebBeans, which is solving the problem 
without touching the EJB3 codebase (==good).

> I'll think about the API for this later today, but in essence we would 
> pass an extra object as part of the resolveEJB call above, which would 
> implement some callback interface in the Web Beans SPI that allowed us 
> to listen for at least postConstruct, preInvokeBusinessMethod and 
> preDestroy. The JBoss-Web Beans integration project would then have to 
> decorate this with an interface JBoss EJB knows about, and somehow pass 
> it to JBoss EJB3 for registration.
> 
> ALR, do you think we need to do this for the 1.0 of Web Beans, or can 
> address it for 1.1? I certainly agree that programmatic registration of 
> an interceptor is less brittle than the current ThreadLocal approach, 
> but if we can get away with the ThreadLocal for now, it gives us more 
> time work on a good SPI.

The current mechanism should be good for the time being.  My concern is 
in imposing upon other vendors a specific implementation approach.

To that end, there are a few impositions the 299 spec defines that are 
outside of the EJB spec, and I'll raise those points in a more 
appropriate forum (the public webbeans-dev-list)

* SFSB remove() bypassing business method @Remove
* 299 injection inbetween backing object instance creation and 
@PostConstruct (violating the client view)

S,
ALR

-- 
Andrew Lee Rubinger
Sr. Software Engineer
JBoss, a division of Red Hat, Inc.
http://exitcondition.alrubinger.com



More information about the weld-dev mailing list