[cdi-dev] Accepting class type for simple (qualifier) annotations in APIs?

Martin Kouba mkouba at redhat.com
Mon Sep 12 10:09:05 EDT 2016


I've created https://issues.jboss.org/browse/CDI-629

Dne 12.9.2016 v 14:14 arjan tijms napsal(a):
> 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?

No and I cannot imagine a way to do this.

>
> Kind regards,
> Arjan Tijms
>
>
>
>
>
>
>
>
>
> On Mon, Sep 12, 2016 at 1:44 PM, Martin Kouba <mkouba at redhat.com
> <mailto:mkouba at 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/rmannibucau
>         <https://twitter.com/rmannibucau>> |  Blog
>         <https://blog-rmannibucau.rhcloud.com
>         <https://blog-rmannibucau.rhcloud.com>> | Old Wordpress Blog
>         <http://rmannibucau.wordpress.com
>         <http://rmannibucau.wordpress.com>> | Github
>         <https://github.com/rmannibucau
>         <https://github.com/rmannibucau>> | LinkedIn
>         <https://www.linkedin.com/in/rmannibucau
>         <https://www.linkedin.com/in/rmannibucau>> | Tomitriber
>         <http://www.tomitribe.com> | JavaEE Factory
>         <https://javaeefactory-rmannibucau.rhcloud.com
>         <https://javaeefactory-rmannibucau.rhcloud.com>>
>
>         2016-09-12 12:28 GMT+02:00 arjan tijms <arjan.tijms at gmail.com
>         <mailto:arjan.tijms at gmail.com>
>         <mailto:arjan.tijms at gmail.com <mailto:arjan.tijms at 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 at lists.jboss.org <mailto:cdi-dev at lists.jboss.org>
>         <mailto:cdi-dev at lists.jboss.org <mailto:cdi-dev at lists.jboss.org>>
>             https://lists.jboss.org/mailman/listinfo/cdi-dev
>         <https://lists.jboss.org/mailman/listinfo/cdi-dev>
>             <https://lists.jboss.org/mailman/listinfo/cdi-dev
>         <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
>         <http://www.apache.org/licenses/LICENSE-2.0.html>
>             <http://www.apache.org/licenses/LICENSE-2.0.html
>         <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.
>
>
>
>
>         _______________________________________________
>         cdi-dev mailing list
>         cdi-dev at lists.jboss.org <mailto:cdi-dev at lists.jboss.org>
>         https://lists.jboss.org/mailman/listinfo/cdi-dev
>         <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
>         <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.
>
>

-- 
Martin Kouba
Software Engineer
Red Hat, Czech Republic


More information about the cdi-dev mailing list