Quantcast

[JBoss JIRA] (CDI-701) Should addSterotype trigger discovery of new annotated types?

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[JBoss JIRA] (CDI-701) Should addSterotype trigger discovery of new annotated types?

JIRA issues@jboss.org

    [ https://issues.jboss.org/browse/CDI-701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13396997#comment-13396997 ]

Guillermo González de Agüero commented on CDI-701:
--------------------------------------------------

Thanks everyone for so fast respones!

[~manovotn] my original conclusion was exactly that (feature not supported by spec). Maybe the spec could incorporate a note regarding this, saying "Implementations are NOT MANDATED to treat stereotypes added by this method as bean defining annotations. Implementations are ALLOWED to do it in a non portable manner". That would clarify the situation and avoid confusions.

A way to add annotations to the set of "bean defining annotations" was what I was really looking for. I just wanted to clarify that the addStereotype() was not the way to go before creating a feature request. Has that been already discussed in the past?

> Should addSterotype trigger discovery of new annotated types?
> -------------------------------------------------------------
>
>                 Key: CDI-701
>                 URL: https://issues.jboss.org/browse/CDI-701
>             Project: CDI Specification Issues
>          Issue Type: Clarification
>          Components: Portable Extensions
>            Reporter: Guillermo González de Agüero
>
> I've tried to post this question to the mailing list multiple times without success, so I fill an issue for it.
> I'm adding some annotations as stereotypes via an extension, with the purpose of converting into beans any classes annotated with them (JAX-RS resources in my specific case). What I'm facing is that classes with that annotations are still only discovered if they were to be discovered before. So when using discovery-mode="annotated", my JAX-RS resources are not passed to the @ProcessAnnotatedType event.
> WildFly automatically converts JAX-RS resources into @RequestScoped CDI beans, but looking at the code I saw it does that dealing directly with Weld APIs at server level, not on a portable manner at RESTEasy level.
> I haven't found any mention in the spec that my approach wouldn't work, but the TCK doesn't address this usecase, which makes me think it's not supported.
> Could you please clarify me the situation? Could this me changed on a future version?
> And the original email I sent:
> {quote}
> Hi,
>  
> I have a question about the behavior of the "BeforeBeanDiscovery#add*()" methods.
>  
> My usecase is the following: I'd want to convert all JAX-RS resources into CDI beans. That resources are all annotated with @Path. My understanding was that converting that annotation into a stereotype would make them eligible as bean types.
>  
> Since I can't modify that annotation, I just created an extension that observes the BeforeBeanDiscovery event and converts @Path into a stereotype associated with the @RequestScoped annotation. But it doesn't work, neither on Weld nor on OpenWebBeans. The class is not discovered on the next ProcessAnnotatedType event.
>  
> I haven't found anything in the spec that explicitly says that a "runtime added" bean defining annotation makes clases eligible for discovery. But I think is makes sense.
>  
> Checking the TCK, test org.jboss.cdi.tck.tests.extensions.stereotype.StereotypeExtensionTest tests that the addition of the stereotype works, but doesn't cover my case of adding a stereotype to a non bean class.
>  
> Is this expected to work that way? Is a bug on the TCK and implementations? Any other way to achieve my goal?
>  
>  
> Regards,
> Guillermo González de Agüero
> {quote}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)

_______________________________________________
cdi-dev mailing list
[hidden email]
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.
Loading...