[cdi-dev] Alternative producer methods

Pete Muir pmuir at redhat.com
Mon Apr 2 05:30:29 EDT 2012


Right now, I can't find a better path through the spec to explain this, if anyone knows, then say, if not we should clarify for CDI 1.1

Looking at 11.1 getBeanClass() you can see that the bean class of a producer method (or field) is the class of the bean declaring the producer method (or field). This should probably be actually specified, rather than just in a interface description!

>From this, we can use Mark's reference to 5.1.1 to see that when we want to enable an alternative producer, we in fact use the bean class name.



On 1 Apr 2012, at 14:51, Mark Struberg wrote:

> Dear EG colleagues!
> 
> 
> I have a question about @Alternative on producer methods:
> consider the following class:
> 
> // here is NO alternative annotation!
> 
> public class AlternativeOnProducerMethodOnlyBean {
>    @Produces  @Alternative
>    public IProducedBean generateBean2() {..}
> }
> 
> So the class itself is NOT annotated as @Alternative
> 
> I'm not sure if 5.1.1 allows this or the other way around: if this must be supported.
> 
> Imo the important parts are (from 5.1.1)
>> Each child <class> element must specify the name of an alternative bean class. 
> 
>> If there is no class with the specified name, or if the class with the specified 
> 
>> name is not an alternative bean class, the container automatically detects 
> 
>> the problem and treats it as a deployment problem.
> 
> The question is now how 'an alternative bean class' is to be interpreted ^^
> The first paragraph of 5.1.1 says:
> 
>>   An alternative is selected for the bean archive if either ...
>> * the alternative is a producer method, field or resource, and the 
> 
>> bean class that declares the method or field is listed, ...
> 
> 
> But does this qualify the AlternativeOnProducerMethodOnlyBean as 'alternative bean class'?
> 
> Any ideas?
> 
> Btw: the whole topic of disposal methods for @Alternative producers are completely unspecified...
> 
> LieGrue,
> strub
> 
> _______________________________________________
> cdi-dev mailing list
> cdi-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/cdi-dev




More information about the cdi-dev mailing list