Well, the DeltaSpike AnnotationInstanceProvider (or OWB 'DefaultAnnotation' as it
used to be called) exist for a slightly different reason: With AnnotationLiteral you need
to know the class you want an Annotation for already at compile time.
The DeltaSpike AnnotationInstanceProvider does the same but fully dynamic. That way you
can create an empty Annotation instance just by having e.g. the classname as String.
I use it e.g. to create an interceptor binding Annotation from a configuration file:
LieGrue,
strub
On Monday, 12 September 2016, 14:16, arjan tijms <arjan.tijms(a)gmail.com> wrote:
Hi,
Annotation builder would be +1. It's a tiny bit less convenient, but more universal.
So better for the spec.
Convenience addition could theoretically still be:
Set<Bean<?>> getBeans(Type beanType, Class<?> annotationType, Object...
annotation attributes);
But... I acknowledge that this would again be for a more specific situation (namely, a
bean with exactly 1 qualifier and 0 or more binding attributes).
While on the subject, it's currently not possible for an injected bean to get hold of
the annotation instance that's used in CDI.current().select(), BeanManager.getBeans,
etc, is it?
Kind regards,
Arjan Tijms
On Mon, Sep 12, 2016 at 1:44 PM, Martin Kouba <mkouba(a)redhat.com> wrote:
Type safety is not guaranteed in the current version of AnnotationInstanceProvider
(deltaspike). We should at least check the provided map of member values against the set
of declared methods. Otherwise, I like the idea of standardizing a similar
"annotation instance builder".
>
>Martin
>
>Dne 12.9.2016 v 12:34 Romain Manni-Bucau napsal(a):
>
>Think it is maybe saner to have AnnotationProvider.of(type, params)
>>(like in deltaspike) since it doesnt leave the parameterized annotations
>>(which are not rare) next the road.
>>
>>
>>Romain Manni-Bucau
>> @rmannibucau <
https://twitter.com/rmannibuc au> | Blog
>><https://blog-rmannibucau.rhcl oud.com> | Old Wordpress Blog
>><http://rmannibucau.wordpress. com> | Github
>><https://github.com/rmannibuca u> | LinkedIn
>><https://www.linkedin.com/in/r mannibucau> | Tomitriber
>><http://www.tomitribe.com> | JavaEE Factory
>><https://javaeefactory-rmannib ucau.rhcloud.com>
>>
>>2016-09-12 12:28 GMT+02:00 arjan tijms <arjan.tijms(a)gmail.com
>> <mailto:arjan.tijms@gmail.com> >:
>>
>> Hi,
>>
>> Wouldn't it be convenient as the CDI API that now requires an
>> Annotation instance in various APIs, would also accept the class
>> type of that Annotation?
>>
>> E.g. in BeanManager there's this method:
>>
>> Set<Bean<?>> getBeans(Type beanType, Annotation... qualifiers)
>>
>> This not rarely requires one to create an AnnotationLiteral, which
>> is not specifically difficult but a tad verbose. For qualifiers that
>> have no (binding) attributes, a simple Class would be much easier to
>> use.
>>
>> Thoughts?
>>
>> Kind regards,
>> Arjan Tijms
>>
>> ______________________________ _________________
>> cdi-dev mailing list
>> cdi-dev(a)lists.jboss.org <mailto:cdi-dev@lists.jboss.or g>
>>
https://lists.jboss.org/mailma n/listinfo/cdi-dev
>> <
https://lists.jboss.org/mailm an/listinfo/cdi-dev>
>>
>> Note that for all code provided on this list, the provider licenses
>> the code under the Apache License, Version 2
>> (
http://www.apache.org/license s/LICENSE-2.0.html
>> <
http://www.apache.org/license s/LICENSE-2.0.html>). For all other
>> ideas provided on this list, the provider waives all patent and
>> other intellectual property rights inherent in such information.
>>
>>
>>
>>
>>______________________________ _________________
>>cdi-dev mailing list
>>cdi-dev(a)lists.jboss.org
>>https://lists.jboss.org/mailma n/listinfo/cdi-dev
>>
>>Note that for all code provided on this list, the provider licenses the code under
the Apache License, Version 2 (
http://www.apache.org/license s/LICENSE-2.0.html). For all
other ideas provided on this list, the provider waives all patent and other intellectual
property rights inherent in such information.
>>
>>
_______________________________________________
cdi-dev mailing list
cdi-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/cdi-dev
Note that for all code provided on this list, the provider licenses the code under the
Apache License, Version 2 (
http://www.apache.org/licenses/LICENSE-2.0.html). For all other
ideas provided on this list, the provider waives all patent and other intellectual
property rights inherent in such information.