Am 05.03.2015 um 14:14 schrieb Antoine Sabot-Durand
<antoine(a)sabot-durand.net>:
> Le 5 mars 2015 à 09:28, Mark Struberg <struberg(a)yahoo.de> a écrit :
>
> Well, the terms ‚explicit‘ and ‚implicit‘ BDA are blurry as well. I _explicitly_ add
a beans.xml with version=1.1 and bean-discovery-mode=„annotated“ and still it is an
‚implicit‘ BDA according to those definitions. Not very self-explaining but anyway. Has
not much to do with the current topic as well, so not sure why you mentioned it?
>
It’s the other way around. Implicit bean archive behave as if they have a beans.xml with
version 1.1 and “annotated” bean-discovery mode.
Sorry Antoine, what I wrote is imo correct according to the correct spec wording.
Please read 12.1:
"An explicit bean archive is an archive which contains a beans.xml file:
• with a version number of 1.1 (or later), with the bean-discovery-mode of all, or,
• with no version number, or,
• that is an empty file.“
The important part is „with the bean-discovery-mode of ALL“. So if it does have a
different bean-discovery-mode (here: annotated) then it is NOT an explicit bean archive
and is falls under the subsumption of the follow up paragraph:
"An implicit bean archive is any other archive which contains one or more bean
classes "
So according to the current wording (has been there that way since CDI-1.1) a jar with a
beans.xml with bean-discovery-mode=„annotated“ is an ‚implicit bean archive‘. Maybe
‚annotated‘ is just missing in the first sentence?
Yes, that’s why you shouldn’t use annotated discovery mode if you
want to do serious stuff in CDI.
Well that’s the same like saying „sorry folks, we fucked it up. Use something different.“
:)
The main reason for all this is to reduce the amount of beans by not picking up every damn
class on the classpath as @Dependent scoped bean.
LieGrue,
strub