[cdi-dev] @ThreadScoped?

Mark Struberg struberg at yahoo.de
Sun Mar 20 17:03:05 EDT 2016

Sorry for my brevity. Was on a cellphone only.

My point is: Context#get(Bean<T>) and Bean<T> only has getScope() which looks like

public Class<? extends Annotation> getScope();

Thus having something like

public class BlaBlaController {..}

would get represented by a Bean<BlaBlaController> which could only return RequestScoped.class.
There is simply no way to return the "allowMultithreads=true" information somewhere as we only deal with Classes.

The same applies to BeanManager#getContext():

public Context getContext(Class<? extends Annotation> scope);

No Annotation but Class, you see?

-> Currently there is no way to evaluate an additional attribute on a scope annotation.

And thus section 2.4.2 of the CDI specification also clearly states
"A scope type must not have any attributes. If a scope type has attributes non-portable behavior results."



On Sunday, 20 March 2016, 21:12, Romain Manni-Bucau <rmannibucau at gmail.com> wrote:
>Le 20 mars 2016 21:07, "Mark Struberg" <struberg at yahoo.de> a écrit :
>> See Bean#getScope() and BeanManager#getContext()
>> Just uses Class and no Annotation instance.
>That's ok I think. Since 1.2 you can get meta from any bean and find it if needee but i  most of cases the context will see the bean and will not need it.
>Would also break the Annotated contravt if true.
>> Lgm

More information about the cdi-dev mailing list