Replies: 1 comment 7 replies
-
IMO it stands for both as the same bullet point then goes on to explain the other variant. Both are, after all, just the means to the same end.
I don't see what in the specification states otherwise? The spec just says what events are fired, not exactly when. I vaguely recall other similar issues where one extension action attempts to wait on another within the same event. A way around it is to have the whole logic in a single extension which can (as a stateful object) remember what beans were registered. Alternatively, you can for instance move some bean registrations to earlier phases and add them as annotated types (I didn't go deep on the Helidon issue, not sure if it is applicable there). |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
The CDI specification says, in part:
(It is not immediately clear whether "
addBean()" here meansAfterBeanDiscovery#addBean()orAfterBeanDiscovery#addBean(Bean). I don't know if that makes a difference.)(It also does not appear to say anything special about beans added via configurators, though the specification language is a little less robust in these sections.)
I believe we are seeing that Weld batches up and fires
ProcessSyntheticBeanevents from all portable extensions after all portable extensions'AfterBeanDiscoveryphases have completed. This does not appear to be what the specification says. Why does it work this way?Beta Was this translation helpful? Give feedback.
All reactions