[cdi-dev] ProcessAnnotatedType & Bean Discovery mode

Tomas Remes tremes at redhat.com
Mon Jul 24 07:59:14 EDT 2017


DefaultServlet appears to have @Dependent annotation.

https://github.com/hammock-project/hammock/blob/hammock-1.5/web-tck/src/main/java/ws/ament/hammock/web/tck/DefaultServlet.java#L31

T.

----- Original Message -----
From: "John Ament" <john.ament at spartasystems.com>
To: "Matej Novotny" <manovotn at redhat.com>
Cc: "cdi-dev" <cdi-dev at lists.jboss.org>
Sent: Monday, July 24, 2017 1:35:16 PM
Subject: Re: [cdi-dev] ProcessAnnotatedType & Bean Discovery mode



The issue has to do with ProcessAnnotatedType firing in a bean archive of discovery mode "annotated." I think we all agree that if the discovery mode is all with a trim flag, it works correctly. 




It appears that if you have an Arquillian test in Weld, where a class has no bean defining annotations, it still has a PAT fired. If you look at https://github.com/hammock-project/hammock/blob/hammock-1.5/web-tck/src/main/java/ws/ament/hammock/web/tck/ServletTest.java you'll see it includes a DefaultServlet class, which has no bean defining annotations. In Weld, this generates a PAT, but in OWB it does not. 




John 






From: Matej Novotny <manovotn at redhat.com> 
Sent: Monday, July 24, 2017 6:38 AM 
To: John Ament 
Cc: Antoine Sabot-Durand; Martin Kouba; cdi-dev 
Subject: Re: [cdi-dev] ProcessAnnotatedType & Bean Discovery mode 
What case exactly do you think Weld does incorrectly? 

If you have beans.xml `all` with `<trimm/>`, you should be firing PAT for all. That's what me and Martin said. 

Matej 

----- Original Message ----- 
> From: "John Ament" <john.ament at spartasystems.com> 
> To: "Antoine Sabot-Durand" <asd at redhat.com>, "Martin Kouba" <mkouba at redhat.com> 
> Cc: "cdi-dev" <cdi-dev at lists.jboss.org> 
> Sent: Monday, July 24, 2017 12:09:16 PM 
> Subject: Re: [cdi-dev] ProcessAnnotatedType & Bean Discovery mode 
> 
> 
> 
> Then that means Weld is doing it wrong (firing PAT for all classes). 
> 
> 
> 
> 
> John 
> 
> From: Antoine Sabot-Durand <asd at redhat.com> 
> Sent: Monday, July 24, 2017 4:31 AM 
> To: Martin Kouba 
> Cc: John Ament; cdi-dev 
> Subject: Re: [cdi-dev] ProcessAnnotatedType & Bean Discovery mode 
> Yes it’s the correct interpretation. 
> Confusion may come from the fact that we first considered to specify this 
> feature the other way around (discover all types on implicites bean archive 
> but only keep classes with BDA for bean discovery). We switched to this 
> approach because we thought it was better for backward compatibility. 
> 
> Antoine 
> 
> > Le 24 juil. 2017 à 08:27, Martin Kouba <mkouba at redhat.com> a écrit : 
> > 
> > Hi John, 
> > 
> > I think OWB interpretation is correct. 
> > 
> > In an implicit bean archive (implicit = bean archive with 
> > bean-discovery-mode=annotated) PAT is only fired for discovered types 
> > and the container only discovers each class with a bean defining 
> > annotation. 
> > 
> > For trimmed bean archive - only explicit bean archives may be marked as 
> > 'trimmed'. PAT is fired there but if it does not have a bean defining 
> > annotation it's removed from the set of discovered types, i.e. no bean 
> > is created. 
> > 
> > Martin 
> > 
> > Dne 23.7.2017 v 14:32 John Ament napsal(a): 
> >> Hi, 
> >> 
> >> 
> >> An issue popped up in OWB wanted to get the EG's perspective on this. 
> >> 
> >> 
> >> I have a given bean archive, with a class in it (no bean defining 
> >> annotations). My interpretation of [1] and [2] is that this class is 
> >> fired as a ProcessAnnotatedType, regardless of what is in beans.xml. In 
> >> OWB, if I do bean-discovery-mode=annotated it does not get fired, but if 
> >> it is all, even with a <trim/> a PAT gets fired. However it seems that 
> >> it should get fired before anything is even considered about the class, 
> >> and whether it has annotations. 
> >> 
> >> 
> >> [1]: 
> >> https://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#process_annotated_type 
> 
> 
> Contexts and Dependency Injection for the Java EE platform 
> docs.jboss.org 
> A well-defined lifecycle for stateful objects bound to lifecycle contexts, 
> where the set of contexts is extensible. A sophisticated, typesafe 
> dependency injection ... 
> 
> 
> >> 
> >> [2]: 
> >> https://docs.jboss.org/cdi/spec/2.0/cdi-spec.html#process_annotated_type 
> >> 
> >> 
> >> John 
> >> 
> >> 
> >> ------------------------------------------------------------------------ 
> >> NOTICE: This e-mail message and any attachments may contain 
> >> confidential, proprietary, and/or privileged information which should be 
> >> treated accordingly. If you are not the intended recipient, please 
> >> notify the sender immediately by return e-mail, delete this message, and 
> >> destroy all physical and electronic copies. Thank you. 
> >> 
> >> 
> >> _______________________________________________ 
> >> cdi-dev mailing list 
> >> cdi-dev at lists.jboss.org 
> >> https://lists.jboss.org/mailman/listinfo/cdi-dev 
> 
> 
> cdi-dev Info Page - lists.jboss.org Mailing Lists 
> lists.jboss.org 
> List to discuss the development of CDI (the specification) To see the 
> collection of prior postings to the list, visit the cdi-dev Archives. 
> 
> 
> >> 
> >> 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. 
> >> 
> > 
> > -- 
> > Martin Kouba 
> > Senior Software Engineer 
> > Red Hat, Czech Republic 
> > _______________________________________________ 
> > cdi-dev mailing list 
> > cdi-dev at 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. 
> 
> 
> NOTICE: This e-mail message and any attachments may contain confidential, 
> proprietary, and/or privileged information which should be treated 
> accordingly. If you are not the intended recipient, please notify the sender 
> immediately by return e-mail, delete this message, and destroy all physical 
> and electronic copies. Thank you. 
> 
> _______________________________________________ 
> cdi-dev mailing list 
> cdi-dev at 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. 

NOTICE: This e-mail message and any attachments may contain confidential, proprietary, and/or privileged information which should be treated accordingly. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this message, and destroy all physical and electronic copies. Thank you. 

_______________________________________________
cdi-dev mailing list
cdi-dev at 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.

-- 
Tomas Remes





More information about the cdi-dev mailing list