[weld-dev] [jsr-299-eg] Updated spec with @BeanTypes and clarification of @New

Jason T. Greene jason.greene at redhat.com
Mon Oct 19 12:56:34 EDT 2009


Roberto Chinnici wrote:
> Gavin King wrote:
>> Check out sections 2.2.2, 3.12, 3.5.2 together with the new sentence
>> regarding @New added to 5.7.1 and 11.3.4.
>>
>> This is everything that is needed for 299 to *elegantly* pass the 330 
>> TCK.
>>   
> 
> Can you explain again the new semantics for @New and why it is needed?

It's just a loosening of a restriction, so that the semantics of @New 
can apply to a class that is not part of a bean deployment archive. The 
problem is the previous approach required an additional support class 
NonContextual, which was using the BeanManager to implement the behavior 
of @New. With this change the user has to only a provide the simple 
class with producer methods.
> 
> I'm reading 3.12 and I have trouble understanding how a class inside an 
> archive which is NOT a bean deployment archive could give rise to a 
> managed bean (at least in the sense of 299). It seems then that the 
> premise of 3.12 is empty and no second beans will ever be created. And I 
> don't think you meant for DriversSeat and SpareTire in your example to 
> be annotated with @ManagedBean, since the 330 TCK doesn't do that.

The thinking was that we will treat them as a managed bean definition, 
since they basically are, even though they are not annotated with 
@ManagedBean. Are you saying we can't do that without the TCK using 
@ManagedBean on them? I was under the impression this wasn't a hard 
restriction, just that some frameworks may require it.

> Also, I'm not sure why you excluded @New in 11.3.4. Doesn't that make 
> the SPI less powerful than the annotations?

I don't recall the reason, I will let Gavin comment on that one.

-- 
Jason T. Greene
JBoss, a division of Red Hat


More information about the weld-dev mailing list