[webbeans-dev] Spec Conflicts Between JSR-299, JSR-318

Carlo de Wolf cdewolf at redhat.com
Fri Mar 20 03:21:27 EDT 2009


Gavin King wrote:
> On Wed, Mar 18, 2009 at 1:11 AM, Andrew Lee Rubinger <alr at jboss.org> wrote:
>
>   
>> * JSR-299 implementations are treated the same as any client of EJB;
>> they use/consume EJB as one of the target component models.
>>     
>
> That is no longer true, since the pluggability contracts have been removed.
>
> EJB and 299 are just aspects of the EE container.
>   
There is no definition of the EE container yet. There is an EJB (JSR 
318) container on top of which we want WB.
In a perfect world we would have a definition of the EE container and 
how we can plug EJB and WB into it.
So in effect WB needs a pluggability contract on EJB, whether it's spec 
defined or vendor specific.
>   
>> * A mechanism EJB makes available to JSR-299 should be available to
>> everyone.
>>     
>
> I don't see why this should necessarily by the case. 299 is a piece of
> the container.
>   
The question becomes who's going to build *the* container. I think we 
should build it by composition on top of the EJB container which brings 
you back into the extension hooks you would need.
>
>   
>> 1) EJB does not define an endpoint for SFSB removal outside
>> business/component method @Remove/remove() and timeout
>>     
>
> But 299 does. What's the problem?
>   
Herein lies no real problem. Personally I find it a bummer that from a 
POJO perspective I see another destroy transition outside the bean 
definition.
Anyway it just means we just need to go back to some EJB 2 constructs 
like EJBHome & EJBObject to make it happen.
So you get SessionObjectHome and SessionObjectReference. Which gives me 
an itch.
>
>   
>> 2) JSR-299 defines activity in the middle of EJB Lifecycle
>>
>> JSR-299 PR2 6.11 - "When the EJB container creates a new instance of an EJB,
>> the container must perform the following steps after Java EE injection has
>> been performed and before the @PostConstruct callback occurs..."
>>
>> EJB defines no callback mechanism for a hypothetical @PostInstanciated
>> before @PostConstruct.  Thus there's no hook defined for WB to do its magic.
>>     
>
> 299 is now part of the container. It doesn't need a hook.
>   
This is exactly the wrong way around and leads into the spec conflict. 
Basically once I'm JSR 318 compliant I'm done and you're stuck. We 
should need a change request on JSR-318 and possibly define a minimal EE 
container.

To make sure we can move forward let's not yet go to JSR-318 yet and 
just continue our own internal change request. Still I think JSR-318 
could benefit highly from this.

Carlo



More information about the weld-dev mailing list