This is a problem of the test environment. Hammock tests are using
arquillian-weld-embedded which does NOT support implicit bean archives
(it's using flat deployment structure). I.e. Weld-specific Bootstrapper
is not used at all. Instead, Weld is started within
org.jboss.arquillian.container.weld.embedded.WeldMockContainer.deploy().
I believe that arquillian-container-se [1] would be a better match for
such test cases.
Martin
[1]
In this specific case, that may be what's happening. I also am
seeing
it on Entity classes.
John D. Ament
Cloud Software Architect**
Sparta Systems
p. 609.807.5466 |m.609.553.6130
john.ament(a)spartasystems.com <mailto:john.ament@spartasystems.com>
|www.spartasystems.com
<
http://www.spartasystems.com><http://www.spartasystems.com/>
------------------------------------------------------------------------
*From:* Matej Novotny <manovotn(a)redhat.com>
*Sent:* Monday, July 24, 2017 10:36 AM
*To:* John Ament
*Cc:* Tomas Remes; cdi-dev
*Subject:* Re: [cdi-dev] ProcessAnnotatedType & Bean Discovery mode
Hi John,
I took a look at the Hammock test and I think you are sailing
unspecified waters, so to say.
You are right that Weld picks up DefaultListener as a bean even without BDA.
In spec 2.0 section 26.2, there is this:
"In Java EE, the container automatically discovers EJB session beans and
**other Java EE component class supporting injection**, in bean archives
like it does for managed bean as defined in Type and Bean discovery."
So in EE, Listeners should be picked up with `annotated` even without
having BDA.
Now, hammock is using a combination of Weld SE + Servlet right?
So the EE isn't your case, but then again spec doesn't talk about
servlet at all.
Therefore, I would say this is up to implementations to decide.
Thoughts,opinions?
Matej
----- Original Message -----
> From: "John Ament" <john.ament(a)spartasystems.com>
> To: "Tomas Remes" <tremes(a)redhat.com>
> Cc: "Matej Novotny" <manovotn(a)redhat.com>, "cdi-dev"
<cdi-dev(a)lists.jboss.org>
> Sent: Monday, July 24, 2017 2:49:53 PM
> Subject: Re: [cdi-dev] ProcessAnnotatedType & Bean Discovery mode
>
> Sorry, should have been "DefaultListener"
>
>
> John
>
>
> ________________________________
> From: Tomas Remes <tremes(a)redhat.com>
> Sent: Monday, July 24, 2017 7:59 AM
> To: John Ament
> Cc: Matej Novotny; cdi-dev
> Subject: Re: [cdi-dev] ProcessAnnotatedType & Bean Discovery mode
>
>
> DefaultServlet appears to have @Dependent annotation.
>
>
https://github.com/hammock-project/hammock/blob/hammock-1.5/web-tck/src/m...
>
> T.
>
> ----- Original Message -----
> From: "John Ament" <john.ament(a)spartasystems.com>
> To: "Matej Novotny" <manovotn(a)redhat.com>
> Cc: "cdi-dev" <cdi-dev(a)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/m...
> 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(a)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(a)spartasystems.com>
> > To: "Antoine Sabot-Durand" <asd(a)redhat.com>, "Martin
Kouba"
> > <mkouba(a)redhat.com>
> > Cc: "cdi-dev" <cdi-dev(a)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(a)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(a)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(a)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(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.
> >
> >
> > 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(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.
>
> 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(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.
>
> --
> Tomas Remes
>
>
> ________________________________
> 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.
>
------------------------------------------------------------------------
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(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.